diff --git a/COPYRIGHT.txt b/COPYRIGHT.txt new file mode 100644 index 0000000..e9391db --- /dev/null +++ b/COPYRIGHT.txt @@ -0,0 +1,57 @@ +Copyright (c) 2014-2024 Danang Probo Sayekti. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or (at +your option) any later version. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with this program as the file LICENSE.txt; if not, please see +http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. + +HTMLy includes works under other copyright notices and distributed +according to the terms of the GNU General Public License or a compatible +license, including: + + Dispatch - (c) 2014 Jesus A. Domingo + + Composer - (c) 2011 Nils Adermann, Jordi Boggiano + + PHP Markdown & Extra - (c) 2004-2009 Michel Fortin + + Markdown - (c) 2003-2006 John Gruber + + RSSWriter - (c) Suin + + Showdown code - (c) 2007 John Fraser + + Pagedown modifications and bugfixes - (c) 2009 Dana Robinson + + Pagedown modifications and bugfixes - (c) 2009-2013 Stack Exchange Inc. + + jQuery - (c) The jQuery Foundation + + jQuery UI - (c) The jQuery Foundation + + Hub Updater - (c) Kanti.de + + Password Compat - (c) Anthony Ferrara + + URLify for PHP by jbroadway based on URLify.js - (c) Django Software Foundation and individual contributors + + Twenty Fifteen & Twenty Sixteen theme - (c) WordPress.org & Automattic.com + + Bootstrap - Copyright 2011-2019 The Bootstrap Authors + + AdminLTE - Copyright 2014-2020 Colorlib + + Font Awesome - @davegandy + + Nestable jQuery Plugin - Copyright (c) 2012 David Bushell + + Social Logos - (c) Automattic diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..d159169 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/README.md b/README.md old mode 100755 new mode 100644 index cc8afc8..4328b62 --- a/README.md +++ b/README.md @@ -1 +1,64 @@ -# kyledot.net +# [![HTMLy logo](https://raw.githubusercontent.com/danpros/htmly/master/system/resources/images/htmly-small.png)](https://www.htmly.com/) + +HTMLy is an open source databaseless blogging platform prioritizes simplicity and speed written in PHP. + +It uses a unique algorithm to find or list any content based on date, type, category, tag, or author, and it's performance remain fast even if we have ten thousand of posts and hundreds of tags. + +## Requirements + +HTMLy requires PHP 7.2 or greater, PHP-Mbstring, PHP-XML, PHP-INTL, PHP-GD, and PHP-ZIP package for backup feature. + +## Installations + +Install HTMLy using the source code: + + 1. Download the latest version from the [Github repo](https://github.com/danpros/htmly/releases/latest) + 2. Upload and extract the zip file to your web server. You can upload it in the root directory, or in subdirectory such as `htmly`. + 3. Visit your domain. If you extract it in root directory visit `https://www.example.com/install.php` and if in subdirectory visit `https://www.example.com/htmly/install.php`. + 4. Follow the installer to install HTMLy. + 5. The installer will try to delete itself. Please delete the installer manually if the `install.php` still exist. + +**Note:** If you don't need to log in to the dashboard, just rename `config.ini.example` to `config.ini`, delete `install.php`, and you are set. It's always good practice to set the `site.url` + +### Online install + +Install HTMLy without downloading the source code and use the online installer: + + 1. Download `online-installer.php` from the [latest release](https://github.com/danpros/htmly/releases/latest) + 2. If you upload it in root directory visit `https://www.example.com/online-installer.php` or if in subdirectory visit `https://www.example.com/subdirectory/online-installer.php`. + 3. Follow the installer to install HTMLy. + 4. Please delete the installer manually if the `online-installer.php` and `install.php` still exist. + +## Configurations + +Set written permission for the `cache` and `content` directories. + +Users assigned with the admin role can edit/delete all users posts. + +To access the admin panel, add `/login` to the end of your site's URL. +e.g. `www.yoursite.com/login` + +## Resources + + - Homepage: [HTMLy Homepage](https://www.htmly.com/) + - Documentation: [HTMLy Docs](https://docs.htmly.com/) + - Themes: [HTMLy Themes](https://www.htmly.com/theme/) + - Demo: [HTMLy Demo](http://demo.htmly.com/) + - Repository: [Github](https://github.com/danpros/htmly/) + +## Contribute + +1. Fork and edit +2. Submit pull request for consideration + +## Contributors + +Thank you to our [contributors](https://github.com/danpros/htmly/graphs/contributors) + +## Sponsors + +Support this project by becoming a [sponsor](https://github.com/sponsors/danpros) + +## Copyright / License + +For copyright notice please read [COPYRIGHT.txt](https://github.com/danpros/htmly/blob/master/COPYRIGHT.txt). HTMLy is licensed under the GNU General Public License Version 2.0 (or later). diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..2f5ad6d --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,5 @@ +## Security Policy + +### Reporting Vulnerability + +Please report any security vulnerabilities to **[dan@danpros.com](mailto:dan@danpros.com)**. If we can confirm the issue, we will release a patch as soon as possible. diff --git a/cache/installedVersion.json b/cache/installedVersion.json new file mode 100644 index 0000000..20e830a --- /dev/null +++ b/cache/installedVersion.json @@ -0,0 +1,3 @@ +{ + "tag_name": "v3.0.3" +} \ No newline at end of file diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..6394dcb --- /dev/null +++ b/composer.json @@ -0,0 +1,27 @@ +{ + "config": { + "vendor-dir": "system/vendor/", + "optimize-autoloader": true, + "platform": { + "php": "7.2" + } + }, + "require": { + "ircmaxell/password-compat": "1.*", + "michelf/php-markdown": "1.*", + "suin/php-rss-writer": "1.*", + "kanti/hub-updater": "0.*", + "jbroadway/urlify": "^1.0", + "pragmarx/google2fa": "^8.0", + "bacon/bacon-qr-code": "^3.0" + }, + "autoload": { + "files": [ + "system/includes/dispatch.php", + "system/includes/functions.php", + "system/admin/admin.php", + "system/includes/session.php", + "system/includes/opml.php" + ] + } +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..dfd36fe --- /dev/null +++ b/composer.lock @@ -0,0 +1,718 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "2628919cda4d7c16d0e4281811334ad7", + "packages": [ + { + "name": "bacon/bacon-qr-code", + "version": "v3.0.0", + "source": { + "type": "git", + "url": "https://github.com/Bacon/BaconQrCode.git", + "reference": "510de6eca6248d77d31b339d62437cc995e2fb41" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Bacon/BaconQrCode/zipball/510de6eca6248d77d31b339d62437cc995e2fb41", + "reference": "510de6eca6248d77d31b339d62437cc995e2fb41", + "shasum": "" + }, + "require": { + "dasprid/enum": "^1.0.3", + "ext-iconv": "*", + "php": "^8.1" + }, + "require-dev": { + "phly/keep-a-changelog": "^2.12", + "phpunit/phpunit": "^10.5.11 || 11.0.4", + "spatie/phpunit-snapshot-assertions": "^5.1.5", + "squizlabs/php_codesniffer": "^3.9" + }, + "suggest": { + "ext-imagick": "to generate QR code images" + }, + "type": "library", + "autoload": { + "psr-4": { + "BaconQrCode\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-2-Clause" + ], + "authors": [ + { + "name": "Ben Scholzen 'DASPRiD'", + "email": "mail@dasprids.de", + "homepage": "https://dasprids.de/", + "role": "Developer" + } + ], + "description": "BaconQrCode is a QR code generator for PHP.", + "homepage": "https://github.com/Bacon/BaconQrCode", + "support": { + "issues": "https://github.com/Bacon/BaconQrCode/issues", + "source": "https://github.com/Bacon/BaconQrCode/tree/v3.0.0" + }, + "time": "2024-04-18T11:16:25+00:00" + }, + { + "name": "composer/ca-bundle", + "version": "1.5.0", + "source": { + "type": "git", + "url": "https://github.com/composer/ca-bundle.git", + "reference": "0c5ccfcfea312b5c5a190a21ac5cef93f74baf99" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/0c5ccfcfea312b5c5a190a21ac5cef93f74baf99", + "reference": "0c5ccfcfea312b5c5a190a21ac5cef93f74baf99", + "shasum": "" + }, + "require": { + "ext-openssl": "*", + "ext-pcre": "*", + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.10", + "psr/log": "^1.0", + "symfony/phpunit-bridge": "^4.2 || ^5", + "symfony/process": "^4.0 || ^5.0 || ^6.0 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\CaBundle\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.", + "keywords": [ + "cabundle", + "cacert", + "certificate", + "ssl", + "tls" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/ca-bundle/issues", + "source": "https://github.com/composer/ca-bundle/tree/1.5.0" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2024-03-15T14:00:32+00:00" + }, + { + "name": "dasprid/enum", + "version": "1.0.5", + "source": { + "type": "git", + "url": "https://github.com/DASPRiD/Enum.git", + "reference": "6faf451159fb8ba4126b925ed2d78acfce0dc016" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/DASPRiD/Enum/zipball/6faf451159fb8ba4126b925ed2d78acfce0dc016", + "reference": "6faf451159fb8ba4126b925ed2d78acfce0dc016", + "shasum": "" + }, + "require": { + "php": ">=7.1 <9.0" + }, + "require-dev": { + "phpunit/phpunit": "^7 | ^8 | ^9", + "squizlabs/php_codesniffer": "*" + }, + "type": "library", + "autoload": { + "psr-4": { + "DASPRiD\\Enum\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-2-Clause" + ], + "authors": [ + { + "name": "Ben Scholzen 'DASPRiD'", + "email": "mail@dasprids.de", + "homepage": "https://dasprids.de/", + "role": "Developer" + } + ], + "description": "PHP 7.1 enum implementation", + "keywords": [ + "enum", + "map" + ], + "support": { + "issues": "https://github.com/DASPRiD/Enum/issues", + "source": "https://github.com/DASPRiD/Enum/tree/1.0.5" + }, + "time": "2023-08-25T16:18:39+00:00" + }, + { + "name": "ircmaxell/password-compat", + "version": "v1.0.4", + "source": { + "type": "git", + "url": "https://github.com/ircmaxell/password_compat.git", + "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ircmaxell/password_compat/zipball/5c5cde8822a69545767f7c7f3058cb15ff84614c", + "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c", + "shasum": "" + }, + "require-dev": { + "phpunit/phpunit": "4.*" + }, + "type": "library", + "autoload": { + "files": [ + "lib/password.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Anthony Ferrara", + "email": "ircmaxell@php.net", + "homepage": "http://blog.ircmaxell.com" + } + ], + "description": "A compatibility library for the proposed simplified password hashing algorithm: https://wiki.php.net/rfc/password_hash", + "homepage": "https://github.com/ircmaxell/password_compat", + "keywords": [ + "hashing", + "password" + ], + "support": { + "issues": "https://github.com/ircmaxell/password_compat/issues", + "source": "https://github.com/ircmaxell/password_compat/tree/v1.0" + }, + "time": "2014-11-20T16:49:30+00:00" + }, + { + "name": "jbroadway/urlify", + "version": "1.2.4-stable", + "source": { + "type": "git", + "url": "https://github.com/jbroadway/urlify.git", + "reference": "d0fafbaa1dc14e8039cdf5c72a932a8d1de1750e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/jbroadway/urlify/zipball/d0fafbaa1dc14e8039cdf5c72a932a8d1de1750e", + "reference": "d0fafbaa1dc14e8039cdf5c72a932a8d1de1750e", + "shasum": "" + }, + "require": { + "php": ">=7.2", + "voku/portable-ascii": "^2.0", + "voku/stop-words": "^2.0" + }, + "require-dev": { + "phpunit/phpunit": "^8.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-0": { + "URLify": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause-Clear" + ], + "authors": [ + { + "name": "Johnny Broadway", + "email": "johnny@johnnybroadway.com", + "homepage": "http://www.johnnybroadway.com/" + } + ], + "description": "A fast PHP slug generator and transliteration library that converts non-ascii characters for use in URLs.", + "homepage": "https://github.com/jbroadway/urlify", + "keywords": [ + "ascii", + "blogging", + "blogs", + "downcode", + "encode", + "iconv", + "link", + "seo", + "slug", + "slugify", + "slugs", + "translit", + "transliterate", + "transliteration", + "unicode", + "url", + "urlify" + ], + "support": { + "issues": "https://github.com/jbroadway/urlify/issues", + "source": "https://github.com/jbroadway/urlify/tree/1.2.4-stable" + }, + "time": "2022-06-15T16:46:46+00:00" + }, + { + "name": "kanti/hub-updater", + "version": "v0.5.1", + "source": { + "type": "git", + "url": "https://github.com/Kanti/hub-updater.git", + "reference": "014b33c1e3880bd8e037a960a89e7116eb08a26e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Kanti/hub-updater/zipball/014b33c1e3880bd8e037a960a89e7116eb08a26e", + "reference": "014b33c1e3880bd8e037a960a89e7116eb08a26e", + "shasum": "" + }, + "require": { + "composer/ca-bundle": "^1.0", + "php": ">=5.3.6" + }, + "require-dev": { + "codeclimate/php-test-reporter": "0.*", + "friendsofphp/php-cs-fixer": "1.*", + "phpro/grumphp": "0.*", + "phpunit/phpunit": "4.*", + "sebastian/phpcpd": "2.*", + "squizlabs/php_codesniffer": "2.*" + }, + "type": "library", + "autoload": { + "psr-4": { + "Kanti\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0" + ], + "authors": [ + { + "name": "Kanti", + "email": "git@kanti.de", + "homepage": "https://kanti.de", + "role": "Developer" + } + ], + "description": "Simple Github Updater for Web Projects", + "support": { + "forum": "https://github.com/Kanti/hub-updater/issues", + "issues": "https://github.com/Kanti/hub-updater/issues", + "source": "https://github.com/Kanti/hub-updater" + }, + "abandoned": true, + "time": "2016-08-02T19:12:55+00:00" + }, + { + "name": "michelf/php-markdown", + "version": "1.9.1", + "source": { + "type": "git", + "url": "https://github.com/michelf/php-markdown.git", + "reference": "5024d623c1a057dcd2d076d25b7d270a1d0d55f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/michelf/php-markdown/zipball/5024d623c1a057dcd2d076d25b7d270a1d0d55f3", + "reference": "5024d623c1a057dcd2d076d25b7d270a1d0d55f3", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": ">=4.3 <5.8" + }, + "type": "library", + "autoload": { + "psr-4": { + "Michelf\\": "Michelf/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Michel Fortin", + "email": "michel.fortin@michelf.ca", + "homepage": "https://michelf.ca/", + "role": "Developer" + }, + { + "name": "John Gruber", + "homepage": "https://daringfireball.net/" + } + ], + "description": "PHP Markdown", + "homepage": "https://michelf.ca/projects/php-markdown/", + "keywords": [ + "markdown" + ], + "support": { + "issues": "https://github.com/michelf/php-markdown/issues", + "source": "https://github.com/michelf/php-markdown/tree/1.9.1" + }, + "time": "2021-11-24T02:52:38+00:00" + }, + { + "name": "paragonie/constant_time_encoding", + "version": "v2.7.0", + "source": { + "type": "git", + "url": "https://github.com/paragonie/constant_time_encoding.git", + "reference": "52a0d99e69f56b9ec27ace92ba56897fe6993105" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/52a0d99e69f56b9ec27ace92ba56897fe6993105", + "reference": "52a0d99e69f56b9ec27ace92ba56897fe6993105", + "shasum": "" + }, + "require": { + "php": "^7|^8" + }, + "require-dev": { + "phpunit/phpunit": "^6|^7|^8|^9", + "vimeo/psalm": "^1|^2|^3|^4" + }, + "type": "library", + "autoload": { + "psr-4": { + "ParagonIE\\ConstantTime\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com", + "role": "Maintainer" + }, + { + "name": "Steve 'Sc00bz' Thomas", + "email": "steve@tobtu.com", + "homepage": "https://www.tobtu.com", + "role": "Original Developer" + } + ], + "description": "Constant-time Implementations of RFC 4648 Encoding (Base-64, Base-32, Base-16)", + "keywords": [ + "base16", + "base32", + "base32_decode", + "base32_encode", + "base64", + "base64_decode", + "base64_encode", + "bin2hex", + "encoding", + "hex", + "hex2bin", + "rfc4648" + ], + "support": { + "email": "info@paragonie.com", + "issues": "https://github.com/paragonie/constant_time_encoding/issues", + "source": "https://github.com/paragonie/constant_time_encoding" + }, + "time": "2024-05-08T12:18:48+00:00" + }, + { + "name": "pragmarx/google2fa", + "version": "v8.0.1", + "source": { + "type": "git", + "url": "https://github.com/antonioribeiro/google2fa.git", + "reference": "80c3d801b31fe165f8fe99ea085e0a37834e1be3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/antonioribeiro/google2fa/zipball/80c3d801b31fe165f8fe99ea085e0a37834e1be3", + "reference": "80c3d801b31fe165f8fe99ea085e0a37834e1be3", + "shasum": "" + }, + "require": { + "paragonie/constant_time_encoding": "^1.0|^2.0", + "php": "^7.1|^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.18", + "phpunit/phpunit": "^7.5.15|^8.5|^9.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "PragmaRX\\Google2FA\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Antonio Carlos Ribeiro", + "email": "acr@antoniocarlosribeiro.com", + "role": "Creator & Designer" + } + ], + "description": "A One Time Password Authentication package, compatible with Google Authenticator.", + "keywords": [ + "2fa", + "Authentication", + "Two Factor Authentication", + "google2fa" + ], + "support": { + "issues": "https://github.com/antonioribeiro/google2fa/issues", + "source": "https://github.com/antonioribeiro/google2fa/tree/v8.0.1" + }, + "time": "2022-06-13T21:57:56+00:00" + }, + { + "name": "suin/php-rss-writer", + "version": "1.6.0", + "source": { + "type": "git", + "url": "https://github.com/suin/php-rss-writer.git", + "reference": "78f45e44a2a7cb0d82e4b9efb6f7b7a075b9051c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/suin/php-rss-writer/zipball/78f45e44a2a7cb0d82e4b9efb6f7b7a075b9051c", + "reference": "78f45e44a2a7cb0d82e4b9efb6f7b7a075b9051c", + "shasum": "" + }, + "require": { + "php": ">=5.4.0" + }, + "require-dev": { + "eher/phpunit": ">=1.6", + "mockery/mockery": ">=0.7.2", + "suin/xoopsunit": ">=1.2" + }, + "type": "library", + "autoload": { + "psr-0": { + "Suin\\RSSWriter": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "suin", + "email": "suinyeze@gmail.com" + } + ], + "description": "Yet another simple RSS writer library for PHP 5.4 or later.", + "homepage": "https://github.com/suin/php-rss-writer", + "keywords": [ + "feed", + "generator", + "php", + "rss", + "writer" + ], + "support": { + "issues": "https://github.com/suin/php-rss-writer/issues", + "source": "https://github.com/suin/php-rss-writer/tree/master" + }, + "time": "2017-07-13T10:47:50+00:00" + }, + { + "name": "voku/portable-ascii", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/voku/portable-ascii.git", + "reference": "b56450eed252f6801410d810c8e1727224ae0743" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b56450eed252f6801410d810c8e1727224ae0743", + "reference": "b56450eed252f6801410d810c8e1727224ae0743", + "shasum": "" + }, + "require": { + "php": ">=7.0.0" + }, + "require-dev": { + "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0" + }, + "suggest": { + "ext-intl": "Use Intl for transliterator_transliterate() support" + }, + "type": "library", + "autoload": { + "psr-4": { + "voku\\": "src/voku/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Lars Moelleken", + "homepage": "http://www.moelleken.org/" + } + ], + "description": "Portable ASCII library - performance optimized (ascii) string functions for php.", + "homepage": "https://github.com/voku/portable-ascii", + "keywords": [ + "ascii", + "clean", + "php" + ], + "support": { + "issues": "https://github.com/voku/portable-ascii/issues", + "source": "https://github.com/voku/portable-ascii/tree/2.0.1" + }, + "funding": [ + { + "url": "https://www.paypal.me/moelleken", + "type": "custom" + }, + { + "url": "https://github.com/voku", + "type": "github" + }, + { + "url": "https://opencollective.com/portable-ascii", + "type": "open_collective" + }, + { + "url": "https://www.patreon.com/voku", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/voku/portable-ascii", + "type": "tidelift" + } + ], + "time": "2022-03-08T17:03:00+00:00" + }, + { + "name": "voku/stop-words", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/voku/stop-words.git", + "reference": "8e63c0af20f800b1600783764e0ce19e53969f71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/voku/stop-words/zipball/8e63c0af20f800b1600783764e0ce19e53969f71", + "reference": "8e63c0af20f800b1600783764e0ce19e53969f71", + "shasum": "" + }, + "require": { + "php": ">=7.0.0" + }, + "require-dev": { + "phpunit/phpunit": "~6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "voku\\": "src/voku/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Lars Moelleken", + "homepage": "http://www.moelleken.org/" + } + ], + "description": "Stop-Words via PHP", + "keywords": [ + "stop words", + "stop-words" + ], + "support": { + "issues": "https://github.com/voku/stop-words/issues", + "source": "https://github.com/voku/stop-words/tree/master" + }, + "time": "2018-11-23T01:37:27+00:00" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": [], + "platform-dev": [], + "platform-overrides": { + "php": "7.2" + }, + "plugin-api-version": "2.6.0" +} diff --git a/config/.htaccess b/config/.htaccess new file mode 100644 index 0000000..3418e55 --- /dev/null +++ b/config/.htaccess @@ -0,0 +1 @@ +deny from all \ No newline at end of file diff --git a/config/config.ini.example b/config/config.ini.example new file mode 100644 index 0000000..972f790 --- /dev/null +++ b/config/config.ini.example @@ -0,0 +1,208 @@ +; The URL of your blog. +site.url = "" + +; Your timezone +timezone = "Asia/Jakarta" + +; Date format. +date.format = "d F Y" + +; Your language (example "en_US" for English or "de_DE" for German. +; See lang directory for available language) +language = "en_US" + +; Blog info +blog.title = "HTMLy" +blog.tagline = "Just another HTMLy blog" +blog.description = "Proudly powered by HTMLy, a databaseless blogging platform." +blog.copyright = "(c) Your name." + +; Set permalink type. "default" using /year/month/title. "post" using /post/title +permalink.type = "default" + +; Make the frontpage static. Options "false" and "true" +static.frontpage = "false" + +; Show the /blog url as the blog homepage. Options "false" and "true" +blog.enable = "false" +blog.path = "blog" +blog.string = "Blog" + +; Social account +social.bluesky = "" +social.twitter = "" +social.facebook = "" +social.instagram = "" +social.linkedin = "" +social.github = "" +social.youtube = "" +social.mastodon = "" +social.tiktok = "" + +; Breadcrumb home text. Useful when installed on subfolder. +breadcrumb.home = "Home" + +; Comment system. Choose "facebook", "disqus", or "disable". +comment.system = "disable" + +; Facebook comments +fb.appid = "" +fb.num = "5" +fb.color = "light" + +; Disqus comments +disqus.shortname = "" + +; Google Web Master Tool ID verification +google.wmt.id = "" + +; Google analytics +google.analytics.id = "" + +; Google gtag analytics +google.gtag.id = "" + +; Login protection system Choose "google", "cloudflare", or "disable". +; https://www.google.com/recaptcha/admin +; https://developers.cloudflare.com/turnstile/ + +login.protect.system = "disable" +login.protect.public = "" +login.protect.private = "" + +; Multi-factor authentication +mfa.state = "false" + +; Pagination, RSS, and JSON +posts.perpage = "10" +category.perpage = "10" +tag.perpage = "10" +archive.perpage = "10" +search.perpage = "10" +profile.perpage = "10" +type.perpage = "10" +json.count = "10" + +; Category info +category.info = "true" + +; Related posts +related.count = "3" + +; Recent posts +recent.count = "5" + +; Popular posts +popular.count = "5" + +; Tagcloud +tagcloud.count = "40" + +; Read more link text for "full" teaser type +read.more = "Read more" + +; Teaser type: set "trimmed" or "full". +teaser.type = "full" + +; In summary mode, whether check the shortcode first or not before trim the content to x char +; Options: "default" and "check" +teaser.behave = "default" + +; Teaser character count +teaser.char = "200" + +; Description character count +description.char = "150" + +; rss description type. body or meta +rss.description = "body" + +; RSS feed count +rss.count = "10" + +; RSS feed description length. If left empty we will use full page. +rss.char = "200" + +; Enable views Counter, the options is "true" and "false". +; If set to "true", you can see the Counts in Admin page and popular posts. +views.counter = "false" + +; Sitemap priorities between "0.0" and "1.0". +; Set "-1" (minus one) to disable a sitemap for the given type. (See /sitemap.xml) +sitemap.priority.base = "1.0" +sitemap.priority.post = "0.5" +sitemap.priority.static = "0.5" +sitemap.priority.category = "0.5" +sitemap.priority.tag = "0.5" +sitemap.priority.archiveMonth = "0.5" +sitemap.priority.archiveYear = "0.5" +sitemap.priority.author = "0.5" +sitemap.priority.type = "0.5" + +; Also install pre-release +prerelease = "false" + +; Cache expiration in hour. Eg. "6", "12". Default 6 hours. +cache.expiration = "6" + +; Switch on and off the file cache for development purposes. Options "false" and "true" +cache.off = "false" + +; Switch on and off the page generation time. Options "false" and "true" +generation.time = "false" + +; Switch on and off the cache timestamp. Options "false" and "true" +cache.timestamp = "false" + +; The site.url depends on where you are visiting from. Same installation +multi.site = "false" + +; TOC label +toc.label = "Table of Contents" + +; TOC inital state. Option "close and "open" +toc.state = "close" + +; Load the default style or not. Option "default" and "theme" +toc.style = "default" + +; Automatically add TOC, but first it check if the shortcode available or not +; Option "true" and "false" +toc.automatic = "false" + +; Automatically insert the TOC after x paragraph +toc.position = "1" + +; Title formats +home.title.format = "%blog_title% - %blog_tagline%" +post.title.format = "%post_title% - %blog_title%" +page.title.format = "%page_title% - %blog_title%" +category.title.format = "%category_title% - %blog_title%" +tag.title.format = "%tag_title% - %blog_title%" +archive.title.format = "%archive_title% - %blog_title%" +search.title.format = "%search_title% - %blog_title%" +type.title.format = "%type_title% - %blog_title%" +profile.title.format = "%author_name% - %blog_title%" +blog.title.format = "Blog - %blog_title%" +default.title.format = "%page_title% - %blog_title%" + +; Default image for Open Graph +default.image = "" + +; Favicon image +favicon.image = "" + +; Autosave +autosave.enable = "true" + +; Show HTMLy version +show.version = "true" + +; Set the theme here +views.root = "themes/tailwind" + +; Framework config. No need to edit. +views.layout = "layout" + +; Admin theme mode: light or dark +admin.theme = "light" \ No newline at end of file diff --git a/config/users/username.ini.example b/config/users/username.ini.example new file mode 100644 index 0000000..86edf40 --- /dev/null +++ b/config/users/username.ini.example @@ -0,0 +1,11 @@ +;Password +password = yourpassword + +;Encryption. Set to clear, and later it will changed to password_hash automatically during login +encryption = clear + +;Role +role = admin + +;MFA Secret - This is generated inside of the admin area, set to "disabled" to turn off MFA for a user. +mfa_secret = disabled \ No newline at end of file diff --git a/content/.gitkeep b/content/.gitkeep new file mode 100644 index 0000000..da65661 --- /dev/null +++ b/content/.gitkeep @@ -0,0 +1 @@ +This folder must writeable by your server. diff --git a/favicon.png b/favicon.png new file mode 100644 index 0000000..631d8c0 Binary files /dev/null and b/favicon.png differ diff --git a/humans.txt b/humans.txt new file mode 100644 index 0000000..a3e54cb --- /dev/null +++ b/humans.txt @@ -0,0 +1,14 @@ +/* TEAM */ +Owner: danpros +Github: https://github.com/danpros +Weblog: https://www.danpros.com + +Contributor: Kanti +Github: https://github.com/Kanti +Weblog: https://kanti.de +Location: Stuttgart - Germany + +Full contributor: https://github.com/danpros/htmly/graphs/contributors + +/* SITE */ +Software: HTMLy diff --git a/index.php b/index.php new file mode 100644 index 0000000..1171256 --- /dev/null +++ b/index.php @@ -0,0 +1,6 @@ +errors[] = $message; + } + + protected $warnings = array(); + + public function warning($message) { + $this->warnings[] = $message; + } + + public function run() { + $string = ""; + if (!empty($this->errors)) { + foreach ($this->errors as $error) { + $string .= '

' . $error . "

"; + } + } + if (!empty($this->warnings)) { + foreach ($this->warnings as $warning) { + $string .= '

' . $warning . "

"; + } + } + return $string; + } + +} + +class Settings +{ + + protected $user = ""; + protected $userPassword = ""; + protected $siteUrl = ""; + + protected $overwriteEmptyForm = array( + "social.twitter" => "", + "social.facebook" => "", + ); + + protected function extractUser() + { + $this->user = (string)$_REQUEST["user_name"]; + unset($_REQUEST["user_name"]); + $this->userPassword = (string)$_REQUEST["user_password"]; + unset($_REQUEST["user_password"]); + } + + protected function convertRequestToConfig() + { + $array = array(); + foreach ($_REQUEST as $name => $value) { + if (!is_string($value) || empty($value)) + continue; + $name = str_replace("_", ".", $name); + $array[$name] = $value; + } + foreach ($this->overwriteEmptyForm as $name => $value) { + if (!isset($array[$name])) { + $array[$name] = $value; + } + } + return $array; + } + + protected function generateSiteUrl() + { + $dir = trim(dirname(substr($_SERVER["SCRIPT_FILENAME"], strlen($_SERVER["DOCUMENT_ROOT"]))), '/'); + if ($dir == '.' || $dir == '..') { + $dir = ''; + } + $port = ''; + if ($_SERVER["SERVER_PORT"] != "80" && $_SERVER["SERVER_PORT"] != "443") { + $port = ':' . $_SERVER["SERVER_PORT"]; + } + $scheme = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off' ? 'https' : 'http'; + if ($dir === '') { + $this->siteUrl = $scheme . '://' . trim($_SERVER['SERVER_NAME'], "/") . $port . "/"; + return; + } + $this->siteUrl = $scheme . '://' . trim($_SERVER['SERVER_NAME'], "/") . $port . "/" . $dir . '/'; + } + + protected function overwriteINI($data, $string) + { + foreach ($data as $word => $value) { + $string = preg_replace("/^" . $word . " = .+$/m", $word . ' = "' . $value . '"', $string); + } + return $string; + } + + protected function saveConfigs() + { + $this->extractUser(); + //save config.ini + $config = array( + "site.url" => $this->siteUrl, + "timezone" => $this->getTimeZone(), + ); + $config += $this->convertRequestToConfig(); + $configFile = file_get_contents("config/config.ini.example"); + $configFile = $this->overwriteINI($config, $configFile); + file_put_contents("config/config.ini", $configFile, LOCK_EX); + + //save users/[Username].ini + $userFile = file_get_contents("config/users/username.ini.example"); + $parsed = parse_ini_string($userFile); + if (isset($parsed['encryption'])) { + $userFile = $this->overwriteINI(array( + 'encryption' => 'sha512', + 'password' => hash('sha512', $this->userPassword), + 'role' => 'admin', + 'mfa_secret' => 'disabled', + ), $userFile); + } else { + $userFile = $this->overwriteINI(array( + "password" => $this->userPassword, + 'role' => 'admin', + 'mfa_secret' => 'disabled', + ), $userFile); + } + file_put_contents("config/users/" . $this->user . ".ini", $userFile, LOCK_EX); + } + + protected function testTheEnvironment() + { + $message = new Message; + + if (!defined('PHP_VERSION_ID') || PHP_VERSION_ID < 50300) { + $message->error('HTMLy requires at least PHP 5.3 to run.'); + } + if (!in_array('https', stream_get_wrappers())) { + $message->error('Installer needs the https wrapper, please install openssl.'); + } + if (function_exists('apache_get_modules') && !in_array('mod_rewrite', apache_get_modules())) { + $message->warning('mod_rewrite must be enabled if you use Apache.'); + } + if (!is__writable("./")) { + $message->error('no permission to write in the Directory.'); + } + return $message->run(); + } + + public function __construct() + { + $message = $this->testTheEnvironment(); + + $this->generateSiteUrl(); + if (!empty($message)) { + echo $message; + } elseif ($this->runForm()) { + unlink(__FILE__); + header("Location:" . $this->siteUrl . "add/content?type=post"); + exit(); + } + } + + protected function getTimeZone() + { + static $ip; + if (empty($ip)) { + $ip = @file_get_contents("http://ipecho.net/plain"); + if (!is_string($ip)) { + $ip = $_SERVER['REMOTE_ADDR']; + } + } + $json = @json_decode(@file_get_contents("http://ip-api.com/json/" . $ip), true); + if (isset($json['timezone'])) + return $json['timezone']; + return 'Europe/Berlin'; + } + + protected function runForm() + { + if (from($_REQUEST, 'user_name') && from($_REQUEST, 'user_password')) { + $this->saveConfigs(); + $_SESSION[$this->siteUrl]["user"] = $this->user; + return true; + } else { + unset($_SESSION[$this->siteUrl]["user"]); + return false; + } + } + +} + +if(from($_SERVER,'QUERY_STRING') == "rewriteRule.html") +{ + echo "YES!"; + die(); +} + +$samesite = 'strict'; +if(PHP_VERSION_ID < 70300) { + session_set_cookie_params('samesite='.$samesite); +} else { + session_set_cookie_params(['samesite' => $samesite]); +} + +session_start(); +new Settings; + +?> + + + + + + +HTMLy Installer + + +
+
+ +
+
+
+
+ +
+ + +
+ + +
+
+ + +
+ + +
+ + +
+ + +
+
+ + +
+ + +
+ + +
+ + + + +
+
+

+
Based on HTMLy installer (https://github.com/Kanti/htmly-installer) by Matthias Vogel
+
+
+ + + diff --git a/lang/ar_AR.ini b/lang/ar_AR.ini new file mode 100644 index 0000000..132fedb --- /dev/null +++ b/lang/ar_AR.ini @@ -0,0 +1,326 @@ +about = "حول" +add_category = "إضافة فئة" +add_content = "إضافة محتوى" +add_link = "إضافة ارتباط" +add_menu = "إضافة قائمة" +add_new_page = "إضافة صفحة جديدة" +add_new_post = "إضافة منشور جديد" +add_source_link_optional = "إضافة رابط المصدر (اختياري)" +add_sub = "إضافة صفحة فرعية" +address_url = "العنوان (URL)" +admin = "المسؤول" +admin_panel_style_based_on = "نمط لوحة المشرف يعتمد على" +all_blog_posts = "كافة منشورات المدونة" +all_cache_has_been_deleted = "تم حذف كل ذاكرة التخزين المؤقت!" +all_posts_tagged = "All posts tagged" +archive_for = "Archive for" +archive_page_for = "Archive page for" +archives = "أرشيفات" +are_you_sure_you_want_to_delete_ = "هل أنت متأكد أنك تريد حذف ٪ s ؟" +at_the_moment_you_are_using_auto_generated_menu = "في الوقت الحالي أنت تستخدم قائمة تم إنشاؤها تلقائيًا." +audio_post = "مشاركة صوتية" +audio_post_comment = "إنشاء منشور مدونة بصوت مميز" +author = "المؤلف" +author_description = "Just another HTMLy user" +back_to = "رجوع إلى" +backup = "النسخ الاحتياطي" +blog_description = "في فقرة واحدة ، أخبرنا بالمزيد عن مدونتك." +blog_theme = "سمة المدونة" +blog_title = "عنوان المدونة" +blog_title_placeholder = "مدونة HTMLy الخاصة بي" +blog_posts_displayed_as = "تم عرض مشاركات المدونة على شكل" +breadcrumb_home_text = "نص الصفحة الرئيسية لمسار التنقل" +by_using_this_importer_you_confirm_that_the_feed_is_yours_or_that_at_least_you_have_the_authority_to_publish_it = "باستخدام هذا المستورد ، فأنت توافق على ما إذا كانت الخلاصة ملكك أو على الأقل لديك الصلاحية لنشرها." +css_class_optional = "فئة CSS (اختياري)" +cache_expiration = "انتهاء صلاحية ذاكرة التخزين المؤقت (بالساعات)" +cache_off = "إيقاف ذاكرة التخزين المؤقت" +cache_timestamp = "الطابع الزمني لذاكرة التخزين المؤقت" +cancel = "إلغاء" +cannot_read_feed_content = "Cannot read feed content" +captcha_error = "reCaptcha not correct" +categories = "فئات" +category = "فئة" +check_update = "تحقق من التحديث" +clear_cache = "مسح ذاكرة التخزين المؤقت" +comma_separated_values = "قيم مفصولة بفواصل" +comment_system = "نظام التعليق" +comments = "تعليقات" +config = "التكوين" +congrats_you_have_the_latest_version_of_htmly = "تهانينا! لديك أحدث إصدار من HTMLy." +content = "المحتوى" +contents = "المحتويات" +copyright_line = "خط حقوق النشر" +copyright_line_placeholder = "(ج) اسمك." +create_backup = "إنشاء نسخة احتياطية" +created = "تم إنشاؤه" +custom = "مخصص" +custom_settings = "إعدادات مخصصة" +dashboard = "لوحة المعلومات" +date = "التاريخ" +date_format = "تنسيق التاريخ" +delete = "حذف" +description = "الوصف" +disable = "تعطيل" +disabled = "معطل" +disqus_shortname = "اسم قصير لمناقصة" +disqus_shortname_placeholder = "htmly" +draft = "مسودة" +edit = "تحرير" +edit_category = "تحرير فئة" +edit_post = "Edit" +edit_profile = "تحرير ملف التعريف" +enable = "تمكين" +enable_blog_url = "تمكين عنوان URL للمدونة" +enter_image_url = "أدخل عنوان URL للصورة" +facebook_app_id = "معرف تطبيق Facebook" +facebook_page = "صفحة Facebook" +featured_audio = "صوت مميز" +featured_image = "صورة مميزة" +featured_link = "رابط مميز" +featured_quote = "اقتباس مميز" +featured_video = "فيديو مميز" +feed_url = "موجز URL" +filename = "اسم الملف" +follow = "متابعة" +for_google_site_verification_meta = "بالنسبة إلى تعريف موقع google-site-verification" +front_page_displays = "الصفحة الأولى تعرض" +full_post = "مشاركة كاملة" +general = "عام" +general_settings = "إعدادات عامة" +get_one_here = "احصل على واحد هنا" +github_pre_release = "الإصدار التجريبي من Github" +google_analytics = "تحليلات Google" +google_analytics_legacy = "Google Analytics (قديم)" +google_search_console = "Google Search Console" +home = "الصفحة الرئيسية" +if_left_empty_we_will_excerpt_it_from_the_content_below = "إذا تركت فارغة ، فسنقتطفها من المحتوى أدناه" +if_the_url_is_left_empty_we_will_use_the_page_title = "إذا ترك عنوان url فارغًا ، فسنستخدم عنوان الصفحة" +if_the_url_is_left_empty_we_will_use_the_post_title = "إذا ترك عنوان url فارغًا ، فسنستخدم عنوان المنشور" +image_post = "مشاركة صورة" +image_post_comment = "إنشاء منشور مدونة بصورة مميزة" +import = "استيراد" +import_feed = "بدء استيراد موجز ويب" +import_rss = "استيراد RSS" +import_rss_feed_2.0 = "استيراد موجز RSS 2.0" +insert_image = "إدراج صورة" +invalid_error = "ERROR: Invalid username or password" +language = "لغة النظام" +link_name = "اسم الرابط" +link_post = "رابط المنشور" +link_post_comment = "إنشاء منشور مدونة مع ارتباط مميز" +login = "تسجيل الدخول" +login_page = "صفحة تسجيل الدخول" +logout = "تسجيل الخروج" +menu = "Menu" +menus = "محرر القائمة" +meta_description = "وصف التعريف" +meta_description_character = "حرف وصف التعريف" +metatags = "العلامات الوصفية" +metatags_settings = "إعدادات العلامات الوصفية" +mine = "ملكي" +more = "المزيد" +my_draft = "مسودتي" +my_posts = "مشاركاتي" +name = "الاسم" +newer = "أحدث" +next = "التالي" +next_post = "المنشور التالي" +no_available_backup = "لا يوجد نسخ احتياطي متوفر في الوقت الحالي." +no_draft_found = "لم يتم العثور على مسودة" +no_posts_found = "لم يتم العثور على أية مشاركات" +no_related_post_found = "لم يتم العثور على منشور ذي صلة" +no_scheduled_posts_found = "No scheduled posts found!" +no_search_results = "No search results" +nope = "لا" +not = "لا" +older = "أقدم" +only = "فقط" +operations = "العمليات" +page = "Page" +page_generation_time = "وقت إنشاء الصفحة" +pages = "Pages" +pass_error = "Password field is required" +password = "كلمة المرور" +performance = "أداء" +performance_settings = "إعدادات الأداء" +permalink = "الرابط الثابت" +popular = "Popular" +popular_posts = "المشاركات الشائعة" +popular_posts_widget = "أداة المشاركات الشائعة" +popular_posts_widget_at_most = "أداة المشاركات الشائعة على الأكثر" +popular_tags = "العلامات الشائعة" +post_by_author = "Posts by this author" +posted_in = "تم النشر في" +posted_on = "تم النشر في" +posts = "المشاركات" +posts_by = "Posts by" +posts_draft = "مسودة المشاركات" +posts_in_archive_page_at_most = "المشاركات في صفحة الأرشيف على الأكثر" +posts_in_category_page_at_most = "المشاركات في صفحة الفئات على الأكثر" +posts_in_front_page_show_at_most = "تظهر المشاركات في الصفحة الأولى على الأكثر" +posts_in_profile_page_at_most = "المشاركات في صفحة الملف الشخصي على الأكثر" +posts_in_search_result_at_most = "المشاركات في نتائج البحث على الأكثر" +posts_in_tag_page_at_most = "المشاركات في صفحة العلامة على الأكثر" +posts_in_type_page_at_most = "المشاركات في صفحة النوع على الأكثر" +posts_index_settings = "إعدادات فهرس المشاركات" +posts_list = "قائمة المشاركات" +posts_tagged = "Posts tagged" +posts_with_type = "Posts with type" +pre_release = "الإصدار التجريبي" +prev = "قديم" +prev_post = "المنشور السابق" +preview = "معاينة" +profile_for = "Profile for" +proudly_powered_by = "مدعوم بفخر بواسطة" +publish = "نشر" +publish_draft = "نشر المسودة" +published = "منشور" +quote_post = "مشاركة مقتبسة" +quote_post_comment = "إنشاء منشور مدونة باقتباس مميز" +rss_character = "شخصية RSS" +rss_feeds_show_the_most_recent = "تظهر موجزات RSS الأحدث" +rss_settings = "إعدادات RSS" +read_more_text = "قراءة المزيد من النص" +read_more_text_placeholder = "قراءة المزيد" +reading = "جارٍ القراءة" +reading_settings = "إعدادات القراءة" +recaptcha = "reCAPTCHA" +recent_posts = "المشاركات الأخيرة" +recent_posts_widget_at_most = "أداة المشاركات الأخيرة على الأكثر" +regular_post = "مشاركة عادية" +regular_post_comment = "إنشاء منشور مدونة عادي" +related_posts = "منشورات ذات صلة" +related_widget_posts_at_most = "منشورات الأدوات ذات الصلة على الأكثر" +revert_to_draft = "عودة إلى المسودة" +save = "حفظ" +save_config = "حفظ التكوين" +save_edit = "حفظ التحرير" +save_menu = "حفظ القائمة" +save_as_draft = "حفظ كمسودة" +save_category = "حفظ فئة" +scheduled = "Scheduled" +scheduled_posts = "Scheduled posts" +scheduled_tips = "Publishing a post with future date or time, it will go into scheduled posts" +search = "بحث" +search_for = "بحث عن" +search_results_for = "Search results for" +search_results_not_found = "Search results not found!" +secret_key = "المفتاح السري" +settings = "الإعدادات" +sign_in_to_start_your_session = "قم بتسجيل الدخول لبدء جلستك" +site_key = "مفتاح الموقع" +sitemap = "خريطة الموقع" +slug = "سبيكة" +social_media = "وسائل التواصل الاجتماعي" +static_page = "صفحة ثابتة" +static_page_comment = "إنشاء صفحة ثابتة" +static_pages = "صفحات ثابتة" +summary = "ملخص" +summary_character = "شخصية الملخص" +tag = "علامة" +tagcloud_widget_at_most = "TagCloud at most" +tagline = "سطر الوصف" +tagline_placeholder = "منصة تدوين PHP بدون قاعدة بيانات" +tagline_description = "في بضع كلمات ، اشرح موضوع هذه المدونة." +tags = "علامات" +this_is_legacy_code_usually_new_created_analytics_using_gtag_js = "هذا رمز قديم. عادةً ما يتم إنشاء تحليلات جديدة باستخدام gtag.js" +this_page_doesnt_exist = "هذه الصفحة غير موجودة!" +time = "الوقت" +timezone = "المنطقة الزمنية" +title = "العنوان" +to_use_disqus_or_facebook_comment_you_need_to_provide_disqus_shortname_or_facebook_app_id = "لاستخدام Disqus أو Facebook ، تحتاج إلى تقديم اسم قصير لـ Disqus أو معرّف تطبيق Facebook." +token_error = "CSRF Token not correct" +tools = "أدوات" +twitter_account = "حساب Twitter" +type_to_search = "اكتب للبحث" +uncategorized = "غير مصنف" +uncategorized_comment = "الموضوعات التي لا تحتاج إلى فئة أو لا تتناسب مع أي فئة أخرى موجودة" +universal_analytics = "Universal Analytics (gtag.js)" +unknown_feed_format = "Unknown feed format" +update = "تحديث" +update_available = "التحديث متاح" +update_draft = "تحديث المسودة" +update_post = "تحديث المنشور" +update_to = "تحديث إلى" +upload = "تحميل" +user = "مستخدم" +user_error = "User field is required" +valid_values_range_from_0_to_1.0._see = "تتراوح القيم الصالحة من 0.0 إلى 1.0. راجع" +video_post = "مشاركة فيديو" +video_post_comment = "إنشاء منشور مدونة بفيديو مميز" +view = "عرض" +view_post = "View" +views = "المشاهدات" +widget = "أداة" +widget_settings = "إعدادات الأداة" +would_you_like_to_try_our = "هل ترغب في تجربة" +yes_im_in = "نعم أنا موجود" +yes_not_recommended = "نعم (غير مستحسن)" +you_dont_have_permission_to_access_this_page = "ليس لديك إذن للوصول إلى هذه الصفحة" +your_new_config_key = "مفتاح التكوين الجديد الخاص بك" +your_new_value = "قيمتك الجديدة" +your_backups = "نُسخك الاحتياطية" +your_latest_blog_posts = "أحدث مشاركات المدونة الخاصة بك" +your_recent_posts = "مشاركاتك الأخيرة" +by = "بقلم" +hint_use_ctrlcmdf_to_search_for_your_config_key_or_value = " تلميح: استخدم Ctrl / CMD + F للبحث عن مفتاح التهيئة أو القيمة." +homepage = "الصفحة الرئيسية" +instead = "بدلاً من ذلك" +item_class = "إدراج فئة CSS" +item_slug = "إدراج عنوان URL للرابط" +now = "الآن" +of = "of" +optional = "اختياري" +post_your_post_slug = "/ نشر / your-post-slug" +pro_tips_you_can_create_custom_config_key_and_print_out_your_config_key_value_anywhere_in_your_template = " نصائح احترافية: يمكنك إنشاء مفتاح تهيئة مخصص وطباعة قيمة مفتاح التهيئة في أي مكان في القالب." +read_more = "اقرأ المزيد" +widget_key_placeholder = "12345abcde" +year_month_your_post_slug = "/ سنة / شهر / your-post-slug" +your_key = "your.key" +summary_behavior = "Summary behavior" +default = "Default" +check_shortcode = "Check shortcode" +in_summary_mode_whether_check_the_shortcode_first_or_not_before_trim_the_content_to_x_char = "In summary mode, whether check the shortcode first or not before trim the content to x char" +manage_users = "Manage users" +add_user = "Add user" +username = "Username" +role = "Role" +change_password = "Change password" +config_mfa = "Configure MFA" +mfacode = "MFA Code" +verify_code = "Verify the MFA code" +verify_password = "Verify current password" +manualsetupkey = "You can also manually add the setup key" +mfa_error = "MFA code is not correct" +disablemfa = "Disable MFA" +enable_auto_save = "Enable Auto Save" +explain_autosave = "When enabled, new content or draft will be automatically saved every 60 seconds." +login_protect_system = "Login protection system" +cloudflare_info = "Review Cloudflare's Turnstile documentation: " +mfa_config = "Multi Factor Authentication (MFA)" +set_mfa_globally = "Set the status of MFA" +explain_mfa = "When enabled, MFA is optional for all users. When disabled, no users can use it and it hides the field on the login page." +set_version_publicly = "Version Visibility" +explain_version = "By default the version of HTMLy is visible publicly in the source code, some admins may prefer to hide this." +focus_mode = "Toggle Focus" +writing = "Writing" +writing_settings = "Writing Settings" +security = "Security" +security_settings = "Security Settings" +msg_error_field_req_username = "Username field is required." +msg_error_field_req_password = "Password field is required." +msg_error_field_req_title = "Title field is required." +msg_error_field_req_content = "Content field is required." +msg_error_field_req_tag = "Tag field is required." +msg_error_field_req_image = "Image field is required." +msg_error_field_req_video = "Video field is required." +msg_error_field_req_link = "Link field is required." +msg_error_field_req_quote = "Quote field is required." +msg_error_field_req_audio = "Audio field is required." +msg_error_field_req_feedurl = "You need to specify the feed url." +rss_feeds_description_select = "RSS Description" +rss_description_body = "Post Body" +rss_description_meta = "Post Meta Description" +admin_theme = "Admin theme" +admin_theme_light = "Light" +admin_theme_dark = "Dark" diff --git a/lang/da_DK.ini b/lang/da_DK.ini new file mode 100644 index 0000000..94499f9 --- /dev/null +++ b/lang/da_DK.ini @@ -0,0 +1,337 @@ +about = "Om" +add_category = "Tilføj kategori" +add_content = "Tilføj" +add_link = "Tilføj link" +add_menu = "Tilføj menu" +add_new_page = "Tilføj ny side" +add_new_post = "Tilføj nyt indlæg" +add_source_link_optional = "Tilføj link til kilde (valgfrit)" +add_sub = "Ny underside" +address_url = "Adresse (URL)" +admin = "Admin" +admin_panel_style_based_on = "Admin-panelets design er baseret på" +all_blog_posts = "Alle blogindlæg" +all_cache_has_been_deleted = "Hele cachen er blevet ryddet!" +all_posts_tagged = "Alle indlæg tagget" +archive = "Arkiv" +archive_for = "Arkiv for" +archive_page_for = "Arkivside for" +archives = "Arkiver" +are_you_sure_you_want_to_delete_ = "Er du sikker på, at du ønsker at slette %s?" +at_the_moment_you_are_using_auto_generated_menu = "Lige nu bruger du den autogenererede menu." +audio_post = "Lydindlæg" +audio_post_comment = "Opret indlæg med lydklip" +author = "Forfatter" +author_description = "Bare endnu en HTMLy-bruger" +back_to = "Tilbage til" +backup = "Backup" +blog_description = "Skriv et par linier om din blog." +blog_theme = "Blog-tema" +blog_title = "Blogtitel" +blog_title_placeholder = "Min HTMLy-blog" +blog_posts_displayed_as = "Blogindlæg vist som" +breadcrumb_home_text = "Breadcrumb-tekst for Hjem" +by = "af" +by_using_this_importer_you_confirm_that_the_feed_is_yours_or_that_at_least_you_have_the_authority_to_publish_it = "Ved at bruge importværktøjet angiver du, at dette feed er dit, eller du har ret til at videreudgive det." +css_class_optional = "CSS-klasse (valgfrit)" +cache_expiration = "Cache-udløb (i timer)" +cache_off = "Cache deaktiveret" +cache_timestamp = "Cache-tidsstempel" +cancel = "Afbryd" +cannot_read_feed_content = "Kan ikke indlæse feed-indhold" +captcha_error = "reCaptcha ikke korrekt" +categories = "Kategorier" +category = "Kategori" +check_update = "Check opdateringer" +clear_cache = "Ryd cache" +comma_separated_values = "Kommaseparerede værdier (CSV)" +comment_system = "Kommentarsystem" +comments = "kommentarer" +config = "Konfiguration" +congrats_you_have_the_latest_version_of_htmly = "Tillykke! Du har den seneste version af HTMLy." +content = "Indhold" +contents = "Indhold" +continue_reading = "Læs videre" +copyright_line = "Copyright-linje" +copyright_line_placeholder = "(c) Dit navn." +create_backup = "Opret backup" +created = "Oprettet" +custom = "Særligt defineret" +custom_settings = "Særligt definerede indstillinger" +dashboard = "Dashboard" +date = "Dato" +date_format = "Datoformat" +delete = "Slet" +description = "Beskrivelse" +design_by = "Designet af" +disable = "Deaktiver" +disabled = "Deaktiveret" +disqus_shortname = "Disqus-navn (shortname)" +disqus_shortname_placeholder = "htmly" +draft = "Udkast" +edit = "Rediger" +edit_category = "Rediger kategori" +edit_post = "Rediger indlæg" +edit_profile = "Rediger profil" +enable = "Aktiver" +enable_blog_url = "Aktiver blog-URL" +enter_image_url = "Indtast billede-URL" +facebook_app_id = "Facebook App ID" +facebook_page = "Facebook-side" +featured_audio = "Fremhævet lydklip" +featured_image = "Fremhævet billede" +featured_link = "Fremhævet link" +featured_quote = "Fremhævet citat" +featured_video = "Fremhævet videoklip" +feed_url = "Feed-URL" +filename = "Filnavn" +follow = "Følg" +for_google_site_verification_meta = "For google-site-verification meta" +front_page_displays = "Visning på forside" +full_post = "Fuldt indlæg" +general = "Generelt" +general_settings = "Generelle indstillinger" +get_one_here = "Get one here" +github_pre_release = "Github pre-release" +google_analytics = "Google Analytics" +google_analytics_legacy = "Google Analytics (legacy)" +google_search_console = "Google Search Console" +home = "Hjem" +if_left_empty_we_will_excerpt_it_from_the_content_below = "Hvis denne ikke udfyldes, vil der blive indsat et uddrag fra indlægget nedenfor" +if_the_url_is_left_empty_we_will_use_the_page_title = "Hvis URL ikke udfyldes, vil sidens navn blive anvendt" +if_the_url_is_left_empty_we_will_use_the_post_title = "Hvis URL ikke udfyldes, vil indlæggets titel blive anvendt" +image_post = "Billedindlæg" +image_post_comment = "Opret indlæg med billede" +import = "Importer" +import_feed = "Start import af feed" +import_rss = "Importer RSS" +import_rss_feed_2.0 = "Importer RSS Feed 2.0" +insert_image = "Indsæt billede" +invalid_error = "FEJL: Ugyldigt navn og adgangskode" +language = "Systemsprog" +link_name = "Navn på link" +link_post = "Linkindlæg" +link_post_comment = "Opret indlæg med link" +login = "Login" +login_page = "Login-side" +logout = "Log ud" +menu = "Menu" +menus = "Menu-editor" +meta_description = "Metabeskrivelse" +meta_description_character = "Metabeskrivelse - antal tegn" +metatags = "Metatags" +metatags_settings = "Metatag-indstillinger" +mine = "Mine" +more = "Mere" +my_draft = "Mine udkast" +my_posts = "Mine indlæg" +name = "Navn" +newer = "Nyere" +newer_posts = "Nyere indlæg" +next = "Næste" +next_post = "Næste indlæg" +no_available_backup = "Der er ingen backups til rådighed." +no_draft_found = "Der er ikke fundet nogen udkast" +no_newer_posts = "Ingen nyere indlæg" +no_older_posts = "Ingen ældre indlæg" +no_posts_found = "Der er ikke fundet nogen indlæg" +no_related_post_found = "Der er ikke fundet nogen relaterede indlæg" +no_scheduled_posts_found = "Der er ikke fundet nogen planlagte indlæg" +no_search_results = "Ingen søgeresultater" +nope = "Nej" +not = "Ikke deaktiveret" +older = "Ældre" +older_posts = "Ældre indlæg" +only = "Kun" +operations = "Operationer" +page = "Side" +page_generation_time = "Tid til at generere side" +pages = "Sider" +pass_error = "Adgangskode påkrævet" +password = "Adgangskode" +performance = "Ydelse" +performance_settings = "Indstillinger for ydelse" +permalink = "Permalink" +popular = "Populært" +popular_posts = "Populære indlæg" +popular_posts_widget = "Widget med populære indlæg" +popular_posts_widget_at_most = "Widget med populære indlæg maksimalt" +popular_tags = "Populære tags" +post_by_author = "Indlæg af denne forfatter" +posted_in = "Indlæg i" +posted_on = "Indlæg den" +posts = "Indlæg" +posts_by = "Indlæg af" +posts_draft = "Udkast til indlæg" +posts_in_archive_page_at_most = "Indlæg på Arkivsiden maksimalt" +posts_in_category_page_at_most = "Indlæg på Kategorisiden maksimalt" +posts_in_front_page_show_at_most = "Indlæg på forsiden maksimalt" +posts_in_profile_page_at_most = "Indlæg på profilsiden maksimalt" +posts_in_search_result_at_most = "Indlæg på listen over søgeresultater maksimalt" +posts_in_tag_page_at_most = "Indlæg på tag-side maksimalt" +posts_in_type_page_at_most = "Indlæg på type-side maksimalt" +posts_index_settings = "Indstillinger for indlægsoversigt" +posts_list = "Liste over indlæg" +posts_tagged = "Indlæg tagget" +posts_with_type = "Indlæg med type" +pre_release = "Pre-release" +prev = "Foregående" +prev_post = "Foregående indlæg" +preview = "Forhåndsvisning" +previous = "Foregående" +profile_for = "Profil for" +proudly_powered_by = "Drives med stolthed på" +publish = "Udgiv" +publish_draft = "Udgiv udkast" +published = "Udgivet" +published_by = "Udgivet af" +quote_post = "Citatindlæg" +quote_post_comment = "Opret indlæg med citat" +rss_character = "RSS - antal tegn" +rss_feeds_show_the_most_recent = "RSS-feeds viser seneste" +rss_settings = "RSS-Indstillinger" +read_more = "Læs mere" +read_more_text = "Læs mere tekst" +read_more_text_placeholder = "Læs mere" +reading = "Læsning" +reading_settings = "Indstillinger for læsning" +recaptcha = "reCAPTCHA" +recent_comments = "Seneste kommentarer" +recent_posts = "Seneste indlæg" +recent_posts_widget_at_most = "Widget med seneste indlæg maksimalt" +regular_post = "Standardindlæg" +regular_post_comment = "Opret standardindlæg" +related_posts = "Relaterade indlæg" +related_widget_posts_at_most = "Widget med relaterede indlæg maksimalt" +return_to_home = "Tibage til forsiden" +revert_to_draft = "Tilbage til udkast" +save = "Gem" +save_config = "Gem konfiguration" +save_menu = "Save menu" +save_as_draft = "Gem som udkast" +save_category = "Gem kategori" +scheduled = "Planlagte indlæg" +scheduled_posts = "Planlagte indlæg" +scheduled_tips = "Hvis man udgiver et indlæg med fremtidig dato eller tidspunkt, vil det komme in under planlage indlæg" +search = "Søg" +search_for = "Søg efter" +search_results_for = "søgeresultater for" +search_results_not_found = "Ingen søgeresultater fundet!" +secret_key = "Hemmelig nøgle" +settings = "Indstillinger" +share_this_post = "Del indlæg" +sign_in_to_start_your_session = "Log ind for at starte din session" +site_key = "Site Key" +sitemap = "Sitemap" +slug = "Slug" +social_media = "Sociale medier" +static_page = "Statisk side" +static_page_comment = "Opret statisk side" +static_pages = "Statiske sider" +summary = "Resummé" +summary_character = "Resummé - antal tegn" +tag = "Tag" +tagcloud_widget_at_most = "TagCloud maksimalt" +tagline = "Tagline" +tagline_placeholder = "Database-løs PHP-Blogging-Platform" +tagline_description = "Forklar med få ord, hvad denne blog handler om." +tags = "Tags" +this_is_legacy_code_usually_new_created_analytics_using_gtag_js = "This is legacy code. Usually new created analytics using gtag.js" +this_page_doesnt_exist = "Denne side findes ikke!" +time = "Tid" +timezone = "Tidszone" +title = "Titel" +to_use_disqus_or_facebook_comment_you_need_to_provide_disqus_shortname_or_facebook_app_id = "For at bruge Disqus eller Facebook til at kommentere, skal de bruge dit Disqus-kortnavn eller Facebook App ID." +token_error = "CSRF Token ikke korrekt" +tools = "Værktøjer" +twitter_account = "Twitter-konto" +type_to_search = "Type at søge efter" +uncategorized = "Ingen kategori" +uncategorized_comment = "Indlæg, som ikke behøver en kategori eller ikke passer i de øvrige kategorier." +universal_analytics = "Universal Analytics (gtag.js)" +unknown_feed_format = "Ukendt feed-format" +update = "Opdater" +update_available = "Opdatering tilgængelig" +update_draft = "Opdater udkast" +update_post = "Opdater indlæg" +update_to = "Opdater til" +upload = "Upload" +user = "Bruger" +user_error = "Bruger-felt påkrævet" +valid_values_range_from_0_to_1.0._see = "Gyldige værdier er fra 0.0 til 1.0. Se" +video_post = "Videindlæg" +video_post_comment = "Opret indlæg med video" +view = "Vis" +view_post = "Vis indlæg" +views = "Visninger" +widget = "Widget" +widget_settings = "Widget-indstillinger" +would_you_like_to_try_our = "Vil du gerne prøve vores " +yes_im_in = "Yes, jeg er med" +yes_not_recommended = "Ja (Anbefales ikke)" +you_dont_have_permission_to_access_this_page = "Du har ikke rettigheder til at tilgå denne side" +your_new_config_key = "Din nye konfigurationsnøgle" +your_new_value = "Din nye værdi" +your_backups = "Dine backups" +your_latest_blog_posts = "Dine seneste blogindlæg" +your_recent_posts = "Dine seneste indlæg" +hint_use_ctrlcmdf_to_search_for_your_config_key_or_value = "Hint: Brug Ctrl/CMD + F for at søge efter din konfigurationsnøgle eller -værdi." +homepage = "Hjemmeside" +instead = "i stedet" +item_class = "Indsæt CSS-klasse" +item_slug = "Indsæt Link-URL" +now = "nu" +of = "af" +optional = "valgfri" +post_your_post_slug = "/indlæg/din-slug" +pro_tips_you_can_create_custom_config_key_and_print_out_your_config_key_value_anywhere_in_your_template = "Pro-tips: Du kan oprette egen konfigurationsnøgle og få vist værdien, hvor du vil i din skabelon." +widget_key_placeholder = "12345abcde" +year_month_your_post_slug = "/år/måned/din-slug" +your_key = "din.nøgle" +summary_behavior = "Summary behavior" +default = "Default" +check_shortcode = "Check shortcode" +in_summary_mode_whether_check_the_shortcode_first_or_not_before_trim_the_content_to_x_char = "In summary mode, whether check the shortcode first or not before trim the content to x char" +manage_users = "Manage users" +add_user = "Add user" +username = "Username" +role = "Role" +change_password = "Change password" +config_mfa = "Configure MFA" +mfacode = "MFA Code" +verify_code = "Verify the MFA code" +verify_password = "Verify current password" +manualsetupkey = "You can also manually add the setup key" +mfa_error = "MFA code is not correct" +disablemfa = "Disable MFA" +enable_auto_save = "Enable Auto Save" +explain_autosave = "When enabled, new content or draft will be automatically saved every 60 seconds." +login_protect_system = "Login protection system" +cloudflare_info = "Review Cloudflare's Turnstile documentation: " +mfa_config = "Multi Factor Authentication (MFA)" +set_mfa_globally = "Set the status of MFA" +explain_mfa = "When enabled, MFA is optional for all users. When disabled, no users can use it and it hides the field on the login page." +set_version_publicly = "Version Visibility" +explain_version = "By default the version of HTMLy is visible publicly in the source code, some admins may prefer to hide this." +focus_mode = "Toggle Focus" +writing = "Writing" +writing_settings = "Writing Settings" +security = "Security" +security_settings = "Security Settings" +msg_error_field_req_username = "Username field is required." +msg_error_field_req_password = "Password field is required." +msg_error_field_req_title = "Title field is required." +msg_error_field_req_content = "Content field is required." +msg_error_field_req_tag = "Tag field is required." +msg_error_field_req_image = "Image field is required." +msg_error_field_req_video = "Video field is required." +msg_error_field_req_link = "Link field is required." +msg_error_field_req_quote = "Quote field is required." +msg_error_field_req_audio = "Audio field is required." +msg_error_field_req_feedurl = "You need to specify the feed url." +rss_feeds_description_select = "RSS Description" +rss_description_body = "Post Body" +rss_description_meta = "Post Meta Description" +admin_theme = "Admin theme" +admin_theme_light = "Light" +admin_theme_dark = "Dark" diff --git a/lang/de_DE.ini b/lang/de_DE.ini new file mode 100644 index 0000000..2ac54ed --- /dev/null +++ b/lang/de_DE.ini @@ -0,0 +1,326 @@ +about = "Über" +add_category = "Kategorie hinzufügen" +add_content = "Inhalt hinzufügen" +add_link = "Link hinzufügen" +add_menu = "Menü hinzufügen" +add_new_page = "Neue Seite hinzufügen" +add_new_post = "Neuen Beitrag hinzufügen" +add_source_link_optional = "Quell-Link hinzufügen (optional)" +add_sub = "Unterseite hinzufügen" +address_url = "Adresse (URL)" +admin = "Administrator" +admin_panel_style_based_on = "Admin-Panel-Stil basierend auf" +all_blog_posts = "Alle Beiträge" +all_cache_has_been_deleted = "Der gesamte Cache wurde gelöscht!" +all_posts_tagged = "Alle Beiträge getaggten" +archive_for = "Archiv für" +archive_page_for = "Archivseite für" +archives = "Archiv" +are_you_sure_you_want_to_delete_ = "Sind Sie sicher, dass Sie %s löschen wollen?" +at_the_moment_you_are_using_auto_generated_menu = "Im Moment verwenden Sie ein automatisch generiertes Menü." +audio_post = "Audio-Beitrag" +audio_post_comment = "Einen Beitrag zur Präsentation eines Audios erstellen" +author = "Autor" +author_description = "Nur ein weiterer HTMLy-Benutzer" +back_to = "Zurück zu" +backup = "Backup" +blog_description = "Beschreiben Sie in einem Absatz die Ausrichtung Ihres Blogs." +blog_posts_displayed_as = "Blog-Beiträge anzeigen als" +blog_theme = "Blog-Theme (Design)" +blog_title = "Blog-Titel" +blog_title_placeholder = "Ein HTMLy-Blog" +breadcrumb_home_text = "Bezeichnung für die Startseite im Breadcrumb-Menü" +by = "von" +by_using_this_importer_you_confirm_that_the_feed_is_yours_or_that_at_least_you_have_the_authority_to_publish_it = "Durch die Verwendung dieses Importeurs bestätigen Sie, dass der importierte Feed Ihnen gehört oder Sie berechtigt sind, seine Inhalte zu veröffentlichen." +cache_expiration = "Cache-Gültigkeitsdauer (in Stunden)" +cache_off = "Caching ausschalten" +cache_timestamp = "Cache-Zeitstempel" +cancel = "Abbrechen" +cannot_read_feed_content = "Feedinhalt kann nicht gelesen werden" +captcha_error = "reCAPTCHA nicht korrekt" +categories = "Kategorien" +category = "Kategorie" +check_shortcode = "Berücksichtige shortcode" +check_update = "Aktualisierung suchen" +clear_cache = "Cache löschen" +comma_separated_values = "Komma-getrennte Werte" +comment_system = "Kommentarsystem" +comments = "Kommentare" +config = "Konfiguration" +congrats_you_have_the_latest_version_of_htmly = "Herzlichen Glückwunsch! Sie haben die neueste Version von HTMLy." +content = "Inhalt" +contents = "Inhalt" +copyright_line = "Copyright-Zeile" +copyright_line_placeholder = "(c) Ihr Name." +create_backup = "Ein Backup erstellen" +created = "Erstellungsdatum" +css_class_optional = "CSS-Klasse (optional) " +custom = "Benutzerdefiniert" +custom_settings = "Benutzerdefinierte Einstellungen" +dashboard = "Übersicht" +date = "Datum" +date_format = "Datumsformat" +default = "Standard" +delete = "Löschen" +description = "Beschreibung" +disable = "Deaktivieren" +disabled = "Ausgeschaltet" +disqus_shortname = "Disqus shortname" +disqus_shortname_placeholder = "htmly" +draft = "Entwurf" +edit = "Bearbeiten" +edit_category = "Kategorie bearbeiten" +edit_post = "Bearbeiten" +edit_profile = "Profil bearbeiten" +enable = "Aktivieren" +enable_blog_url = "URL blog aktivieren" +enter_image_url = "Bild-URL eingeben" +facebook_app_id = "Facebook App-ID" +facebook_page = "Facebook-Seite" +featured_audio = "Ausgewähltes Audio" +featured_image = "Ausgewähltes Bild" +featured_link = "Ausgewählter Link" +featured_quote = "Ausgewähltes Zitat" +featured_video = "Ausgewähltes Video" +feed_url = "Feed-URL" +filename = "Dateiname" +follow = "Folgen" +for_google_site_verification_meta = "For google-site-verification meta" +front_page_displays = "Startseite zeigt" +full_post = "Vollständiger Beitrag" +general = "Allgemeines" +general_settings = "Allgemeine Einstellungen" +get_one_here = "Get one here" +github_pre_release = "Github pre-release" +google_analytics = "Google Analytics" +google_analytics_legacy = "Google Analytics (legacy)" +google_search_console = "Google Search Console" +hint_use_ctrlcmdf_to_search_for_your_config_key_or_value = "Hinweis: Nutzen Sie STRG/CMD + F, um nach einem Konfigurationsschlüssel oder Wert zu suchen." +home = "Startseite" +homepage = "Startseite" +if_left_empty_we_will_excerpt_it_from_the_content_below = "Wenn das Feld leer bleibt, wird es aus dem folgenden Inhalt extrahiert" +if_the_url_is_left_empty_we_will_use_the_page_title = "Wenn die URL leer bleibt, wird der Seitentitel verwendet" +if_the_url_is_left_empty_we_will_use_the_post_title = "Wenn die URL leer bleibt, wird der Beitragstitel verwendet" +image_post = "Bild-Beitrag" +image_post_comment = "Einen Beitrag zur Präsentation eines Bildes erstellen" +import = "Importieren" +import_feed = "Feed importieren" +import_rss = "RSS importieren" +import_rss_feed_2.0 = "RSS-Feed 2.0 importieren" +in_summary_mode_whether_check_the_shortcode_first_or_not_before_trim_the_content_to_x_char = 'Bei Anzeige als Zusammenfassung wird entweder ein vorhandener shortcode ignoriert und die Zusammenfassung auf die angegebene Anzahl von Zeichen gekürzt (Standard) oder bis zum shortcode angezeigt (Berücksichtige shortcode).' +insert_image = "Bild einfügen" +instead = "stattdessen" +invalid_error = "FEHLER: Ungültiger Benutzername oder Passwort" +item_class = "CSS-Klasse" +item_slug = "Link-URL" +language = "Systemsprache" +link_name = "Name des Links" +link_post = "Link-Beitrag" +link_post_comment = "Einen Beitrag zur Präsentation eines Links erstellen" +login = "Anmeldung" +login_page = "Anmeldeseite" +logout = "Abmelden" +menu = "Menüs" +menus = "Menü-Editor" +meta_description = "Meta-Beschreibung" +meta_description_character = "Anzahl von Zeichen, die vom Inhalt übernommen werden, wenn das Feld Meta-Beschreibung leer gelassen wird" +metatags = "Metatags" +metatags_settings = "Metatags-Einstellungen" +mine = "Eigene Beiträge" +more = "Mehr" +my_draft = "Eigene Entwürfe" +my_posts = "Eigene Beiträge" +name = "Name" +newer = "Neuere" +next = "Nächster" +next_post = "Nächster Beitrag" +no_available_backup = "Derzeit ist kein Backup verfügbar." +no_draft_found = "Keine Entwürfe gefunden!" +no_posts_found = "Keine Beiträge gefunden!" +no_related_post_found = "Kein ähnlicher Beitrag gefunden!" +no_scheduled_posts_found = "Keine geplanten Beiträge gefunden!" +no_search_results = "Keine Suchergebnisse!" +nope = "Nein, danke." +not = "Nein" +now = "jetzt" +of = "von" +older = "Ältere" +only = "Nur" +operations = "Operationen" +optional = "optional" +page = "Seite" +page_generation_time = "Dauer der Seitenerzeugung" +pages = "Seiten" +pass_error = "Passwortfeld ist erforderlich!" +password = "Passwort" +performance = "Leistung" +performance_settings = "Leistungseinstellungen" +permalink = "Permalink" +popular = "Zugriffe" +popular_posts = "Beliebte Beiträge" +popular_posts_widget = "Zugriffszähler aktivieren und Widget Beliebte Beiträge einblenden" +popular_posts_widget_at_most = "Maximale Anzahl von Beiträgen im Widget Beliebte Beiträge" +popular_tags = "Beliebte Tags" +post_by_author = "Beiträge dieses Autors" +post_your_post_slug = "/post/your-post-slug" +posted_in = "Veröffentlicht unter" +posted_on = "Veröffentlicht am" +posts = "Inhalte" +posts_by = "Beiträge von" +posts_draft = "Entwürfe" +posts_in_archive_page_at_most = "Maximale Anzahl von Beiträgen auf Archiv-Seiten" +posts_in_category_page_at_most = "Maximale Anzahl von Beiträgen auf Kategorien-Seiten" +posts_in_front_page_show_at_most = "Maximale Anzahl von Beiträgen auf der Startseite" +posts_in_profile_page_at_most = "Maximale Anzahl von Beiträgen auf Profil-Seiten" +posts_in_search_result_at_most = "Maximale Anzahl von Beiträgen in Suchergebnissen" +posts_in_tag_page_at_most = "Maximale Anzahl von Beiträgen auf tag-Seiten" +posts_in_type_page_at_most = "Posts in type page at most" +posts_index_settings = "Einstellungen zur Anzahl von Beiträgen" +posts_list = "Beiträge" +posts_tagged = "Beiträge mit Stichwort" +posts_with_type = "Beiträge mit Typ" +pre_release = "Pre-release" +prev = "Voriger" +prev_post = "Vorheriger Beitrag" +preview = "Vorschau" +pro_tips_you_can_create_custom_config_key_and_print_out_your_config_key_value_anywhere_in_your_template = "Profi-Tipp: Sie können einen eigenen Konfigurationsschlüssel erzeugen und dessen Wert überall im Template anzeigen lassen." +profile_for = "Profil von" +proudly_powered_by = "Powered by" +publish = "Veröffentlichen" +publish_draft = "Veröffentlichen" +published = "Veröffentlicht" +quote_post = "Zitat-Beitrag" +quote_post_comment = "Einen Beitrag zur Präsentation eines Zitats erstellen" +read_more = "weiterlesen" +read_more_text = "Weiterlesen-Text" +read_more_text_placeholder = "Mehr ..." +reading = "Lesen" +reading_settings = "Leseeinstellungen" +recaptcha = "reCAPTCHA" +recent_posts = "Letzte Beiträge" +recent_posts_widget_at_most = "Maximale Anzahl von Beiträgen im Widget Letzte Beiträge" +regular_post = "Normaler Beitrag" +regular_post_comment = "Einen normalen Beitrag erstellen" +related_posts = "Ähnliche Beiträge" +related_widget_posts_at_most = "Maximale Anzahl von Beiträgen im Widget Ähnliche Beiträge" +revert_to_draft = "Als Entwurf speichern" +rss_character = "Länge eines RSS-Beitrags (in Zeichen)" +rss_feeds_show_the_most_recent = "RSS-Feeds zeigen die folgende Anzahl der aktuellsten Beiträge" +rss_settings = "RSS-Einstellungen" +save = "Speichern" +save_as_draft = "Speichern als Entwurf" +save_category = "Kategorie speichern" +save_config = "Konfiguration speichern" +save_edit = "Änderungen speichern" +save_menu = "Menü speichern" +scheduled = "Geplant" +scheduled_posts = "Geplante Beiträge" +scheduled_tips = "Veröffentlichen eines Beitrags mit Zeitpunkt in der Zukunft, fügt ihn bei Geplante Beiträge hinzu" +search = "Suche" +search_for = "Suche nach" +search_results_for = "Suchergebnisse für" +search_results_not_found = "Suchergebnisse nicht gefunden!" +secret_key = "Secret Key" +settings = "Einstellungen" +sign_in_to_start_your_session = "Melden Sie sich an, um Ihre Sitzung zu starten" +site_key = "Site Key" +sitemap = "Sitemap" +slug = "Slug" +social_media = "Social Media" +static_page = "Statische Seite" +static_page_comment = "Eine statische Seite erstellen" +static_pages = "Statische Seiten" +summary = "Zusammenfassung" +summary_behavior = 'Generieren der Zusammenfassung' +summary_character = "Länge der Zusammenfassung (in Zeichen)" +tag = "Schlagwort" +tagcloud_widget_at_most = "Höchstzahl Schlagwörter in Tag-Cloud" +tagline = "Slogan" +tagline_description = "Erklären Sie in wenigen Worten, worum es in diesem Blog geht." +tagline_placeholder = "Datenbanklose PHP-Blogging-Plattform" +tags = "Schlagworte" +this_is_legacy_code_usually_new_created_analytics_using_gtag_js = "Dies ist veralteter Code. Normalerweise wird gtag.js verwendet." +this_page_doesnt_exist = "Diese Seite existiert nicht!" +time = "Zeit" +timezone = "Zeitzone" +title = "Titel" +to_use_disqus_or_facebook_comment_you_need_to_provide_disqus_shortname_or_facebook_app_id = "Um Disqus- oder Facebook-Kommentare einzubinden, geben Sie den Disqus-Kurznamen oder die Facebook App-ID an." +token_error = "CSRF-Token nicht korrekt" +tools = "Werkzeuge" +twitter_account = "Twitter-Konto" +type_to_search = "Tippen Sie, um zu suchen" +uncategorized = "Unkategorisiert" +uncategorized_comment = "Beiträge, die in keine Kategorie passen (sollen)." +universal_analytics = "Universal Analytics (gtag.js)" +unknown_feed_format = "Unbekanntes Feedformat" +update = "Aktualisieren" +update_available = "Update verfügbar" +update_draft = "Entwurf aktualisieren" +update_post = "Beitrag aktualisieren" +update_to = "Aktualisieren auf" +upload = "Upload" +user = "Benutzer" +user_error = "Benutzerfeld ist erforderlich" +valid_values_range_from_0_to_1.0._see = "Gültige Werte nur zwischen 0.0 und 1.0. Siehe" +video_post = "Video-Beitrag" +video_post_comment = "Einen Beitrag zur Präsentation eines Videos erstellen" +view = "Ansicht" +view_post = "Ansicht" +views = "Ansichten" +widget = "Widget" +widget_key_placeholder = "12345abcde" +widget_settings = "Widget-Einstellungen" +would_you_like_to_try_our = "Besuchen Sie doch unsere " +year_month_your_post_slug = "/year/month/your-post-slug" +yes_im_in = "Ja, ich bin dabei!" +yes_not_recommended = "Ja (nicht empfohlen)" +you_dont_have_permission_to_access_this_page = "Sie haben keine Berechtigung, auf diese Seite zuzugreifen." +your_backups = "Ihre Backups" +your_key = "your.key" +your_latest_blog_posts = "Neueste Blog-Beiträge" +your_new_config_key = "Neuer Konfigurations-Schlüssel" +your_new_value = "Neuer Wert" +your_recent_posts = "Ihre letzten Beiträge" +manage_users = "Benutzerverwaltung" +add_user = "Benutzer hinzufügen" +username = "Benutzername" +role = "Rolle" +change_password = "Passwort ändern" +config_mfa = "MFA konfigurieren" +mfacode = "MFA Code" +verify_code = "MFA code verifizieren" +verify_password = "Aktuelles Passwort verifizieren" +manualsetupkey = "Der setup key kann auch manuell hinzugefügt werden" +mfa_error = "MFA code ist nicht korrekt" +disablemfa = "MFA deaktivieren" +enable_auto_save = "Automatisches Speichern aktivieren" +explain_autosave = "Neue Inhalte oder Entwürfe werden automatisch alle 60 Sekunden gespeichert, wenn aktiviert." +login_protect_system = "Login-Schutz" +cloudflare_info = "Sehen Sie sich die Turnstile-Dokumentation von Cloudflare an: " +mfa_config = "Multi-Faktor-Authentifizierung (MFA)" +set_mfa_globally = "MFA ermöglichen" +explain_mfa = "Wenn aktiviert, ist MFA für alle Benutzer optional. Wenn deaktiviert, kann MFA nicht verwendet werden und das Feld wird auf der Anmeldeseite ausgeblendet." +set_version_publicly = "Version öffentlich sichtbar" +explain_version = "Standardmäßig ist die Version von HTMLy öffentlich im Quellcode sichtbar. Einige Administratoren ziehen es möglicherweise vor, dies auszublenden." +focus_mode = "Fokus-Modus umschalten" +writing = "Schreiben" +writing_settings = "Schreibeinstellungen" +security = "Sicherheit" +security_settings = "Sicherheitseinstellungen" +msg_error_field_req_username = "Username field is required." +msg_error_field_req_password = "Password field is required." +msg_error_field_req_title = "Title field is required." +msg_error_field_req_content = "Content field is required." +msg_error_field_req_tag = "Tag field is required." +msg_error_field_req_image = "Image field is required." +msg_error_field_req_video = "Video field is required." +msg_error_field_req_link = "Link field is required." +msg_error_field_req_quote = "Quote field is required." +msg_error_field_req_audio = "Audio field is required." +msg_error_field_req_feedurl = "You need to specify the feed url." +rss_feeds_description_select = "RSS Description" +rss_description_body = "Post Body" +rss_description_meta = "Post Meta Description" +admin_theme = "Admin theme" +admin_theme_light = "Light" +admin_theme_dark = "Dark" diff --git a/lang/de_DE_gender_doppelpunkt.ini b/lang/de_DE_gender_doppelpunkt.ini new file mode 100644 index 0000000..68ca949 --- /dev/null +++ b/lang/de_DE_gender_doppelpunkt.ini @@ -0,0 +1,326 @@ +about = "Über" +add_category = "Kategorie hinzufügen" +add_content = "Inhalt hinzufügen" +add_link = "Link hinzufügen" +add_menu = "Menü hinzufügen" +add_new_page = "Neue Seite hinzufügen" +add_new_post = "Neuen Beitrag hinzufügen" +add_source_link_optional = "Quell-Link hinzufügen (optional)" +add_sub = "Unterseite hinzufügen" +address_url = "Adresse (URL)" +admin = "Administrator:in" +admin_panel_style_based_on = "Admin-Panel-Stil basierend auf" +all_blog_posts = "Alle Beiträge" +all_cache_has_been_deleted = "Der gesamte Cache wurde gelöscht!" +all_posts_tagged = "Alle Beiträge getaggten" +archive_for = "Archiv für" +archive_page_for = "Archivseite für" +archives = "Archiv" +are_you_sure_you_want_to_delete_ = "Sind Sie sicher, dass Sie %s löschen wollen?" +at_the_moment_you_are_using_auto_generated_menu = "Im Moment verwenden Sie ein automatisch generiertes Menü." +audio_post = "Audio-Beitrag" +audio_post_comment = "Einen Beitrag zur Präsentation eines Audios erstellen" +author = "Autor:in" +author_description = "Nur ein:e weitere:r HTMLy-Benutzer:in" +back_to = "Zurück zu" +backup = "Backup" +blog_description = "Beschreiben Sie in einem Absatz die Ausrichtung Ihres Blogs." +blog_posts_displayed_as = "Blog-Beiträge anzeigen als" +blog_theme = "Blog-Theme (Design)" +blog_title = "Blog-Titel" +blog_title_placeholder = "Ein HTMLy-Blog" +breadcrumb_home_text = "Bezeichnung für die Startseite im Breadcrumb-Menü" +by = "von" +by_using_this_importer_you_confirm_that_the_feed_is_yours_or_that_at_least_you_have_the_authority_to_publish_it = "Durch die Verwendung dieses Importeurs bestätigen Sie, dass der importierte Feed Ihnen gehört oder Sie berechtigt sind, seine Inhalte zu veröffentlichen." +cache_expiration = "Cache-Gültigkeitsdauer (in Stunden)" +cache_off = "Caching ausschalten" +cache_timestamp = "Cache-Zeitstempel" +cancel = "Abbrechen" +cannot_read_feed_content = "Feedinhalt kann nicht gelesen werden" +captcha_error = "reCAPTCHA nicht korrekt" +categories = "Kategorien" +category = "Kategorie" +check_shortcode = "Berücksichtige shortcode" +check_update = "Aktualisierung suchen" +clear_cache = "Cache löschen" +comma_separated_values = "Komma-getrennte Werte" +comment_system = "Kommentarsystem" +comments = "Kommentare" +config = "Konfiguration" +congrats_you_have_the_latest_version_of_htmly = "Herzlichen Glückwunsch! Sie haben die neueste Version von HTMLy." +content = "Inhalt" +contents = "Inhalt" +copyright_line = "Copyright-Zeile" +copyright_line_placeholder = "(c) Ihr Name." +create_backup = "Ein Backup erstellen" +created = "Erstellungsdatum" +css_class_optional = "CSS-Klasse (optional) " +custom = "Benutzerdefiniert" +custom_settings = "Benutzerdefinierte Einstellungen" +dashboard = "Übersicht" +date = "Datum" +date_format = "Datumsformat" +default = "Standard" +delete = "Löschen" +description = "Beschreibung" +disable = "Deaktivieren" +disabled = "Ausgeschaltet" +disqus_shortname = "Disqus shortname" +disqus_shortname_placeholder = "htmly" +draft = "Entwurf" +edit = "Bearbeiten" +edit_category = "Kategorie bearbeiten" +edit_post = "Bearbeiten" +edit_profile = "Profil bearbeiten" +enable = "Aktivieren" +enable_blog_url = "URL blog aktivieren" +enter_image_url = "Bild-URL eingeben" +facebook_app_id = "Facebook App-ID" +facebook_page = "Facebook-Seite" +featured_audio = "Ausgewähltes Audio" +featured_image = "Ausgewähltes Bild" +featured_link = "Ausgewählter Link" +featured_quote = "Ausgewähltes Zitat" +featured_video = "Ausgewähltes Video" +feed_url = "Feed-URL" +filename = "Dateiname" +follow = "Folgen" +for_google_site_verification_meta = "For google-site-verification meta" +front_page_displays = "Startseite zeigt" +full_post = "Vollständiger Beitrag" +general = "Allgemeines" +general_settings = "Allgemeine Einstellungen" +get_one_here = "Get one here" +github_pre_release = "Github pre-release" +google_analytics = "Google Analytics" +google_analytics_legacy = "Google Analytics (legacy)" +google_search_console = "Google Search Console" +hint_use_ctrlcmdf_to_search_for_your_config_key_or_value = "Hinweis: Nutzen Sie STRG/CMD + F, um nach einem Konfigurationsschlüssel oder Wert zu suchen." +home = "Startseite" +homepage = "Startseite" +if_left_empty_we_will_excerpt_it_from_the_content_below = "Wenn das Feld leer bleibt, wird es aus dem folgenden Inhalt extrahiert" +if_the_url_is_left_empty_we_will_use_the_page_title = "Wenn die URL leer bleibt, wird der Seitentitel verwendet" +if_the_url_is_left_empty_we_will_use_the_post_title = "Wenn die URL leer bleibt, wird der Beitragstitel verwendet" +image_post = "Bild-Beitrag" +image_post_comment = "Einen Beitrag zur Präsentation eines Bildes erstellen" +import = "Importieren" +import_feed = "Feed importieren" +import_rss = "RSS importieren" +import_rss_feed_2.0 = "RSS-Feed 2.0 importieren" +in_summary_mode_whether_check_the_shortcode_first_or_not_before_trim_the_content_to_x_char = "Bei Anzeige als Zusammenfassung wird entweder ein vorhandener shortcode ignoriert und die Zusammenfassung auf die angegebene Anzahl von Zeichen gekürzt (Standard) oder bis zum shortcode angezeigt (Berücksichtige shortcode)." +insert_image = "Bild einfügen" +instead = "stattdessen" +invalid_error = "FEHLER: Ungültiger Benutzer:innen-Name oder Passwort" +item_class = "CSS-Klasse" +item_slug = "Link-URL" +language = "Systemsprache" +link_name = "Name des Links" +link_post = "Link-Beitrag" +link_post_comment = "Einen Beitrag zur Präsentation eines Links erstellen" +login = "Anmeldung" +login_page = "Anmeldeseite" +logout = "Abmelden" +menu = "Menüs" +menus = "Menü-Editor" +meta_description = "Meta-Beschreibung" +meta_description_character = "Anzahl von Zeichen, die vom Inhalt übernommen werden, wenn das Feld Meta-Beschreibung leer gelassen wird" +metatags = "Metatags" +metatags_settings = "Metatags-Einstellungen" +mine = "Eigene Beiträge" +more = "Mehr" +my_draft = "Eigene Entwürfe" +my_posts = "Eigene Beiträge" +name = "Name" +newer = "Neuere" +next = "Nächster" +next_post = "Nächster Beitrag" +no_available_backup = "Derzeit ist kein Backup verfügbar." +no_draft_found = "Keine Entwürfe gefunden!" +no_posts_found = "Keine Beiträge gefunden!" +no_related_post_found = "Kein ähnlicher Beitrag gefunden!" +no_scheduled_posts_found = "Keine geplanten Beiträge gefunden!" +no_search_results = "Keine Suchergebnisse!" +nope = "Nein, danke." +not = "Nein" +now = "jetzt" +of = "von" +older = "Ältere" +only = "Nur" +operations = "Operationen" +optional = "optional" +page = "Seite" +page_generation_time = "Dauer der Seitenerzeugung" +pages = "Seiten" +pass_error = "Passwortfeld ist erforderlich!" +password = "Passwort" +performance = "Leistung" +performance_settings = "Leistungseinstellungen" +permalink = "Permalink" +popular = "Zugriffe" +popular_posts = "Beliebte Beiträge" +popular_posts_widget = "Zugriffszähler aktivieren und Widget Beliebte Beiträge einblenden" +popular_posts_widget_at_most = "Maximale Anzahl von Beiträgen im Widget Beliebte Beiträge" +popular_tags = "Beliebte Tags" +post_by_author = "Beiträge dieser Autorin oder dieses Autors" +post_your_post_slug = "/post/your-post-slug" +posted_in = "Veröffentlicht unter" +posted_on = "Veröffentlicht am" +posts = "Inhalte" +posts_by = "Beiträge von" +posts_draft = "Entwürfe" +posts_in_archive_page_at_most = "Maximale Anzahl von Beiträgen auf Archiv-Seiten" +posts_in_category_page_at_most = "Maximale Anzahl von Beiträgen auf Kategorien-Seiten" +posts_in_front_page_show_at_most = "Maximale Anzahl von Beiträgen auf der Startseite" +posts_in_profile_page_at_most = "Maximale Anzahl von Beiträgen auf Profil-Seiten" +posts_in_search_result_at_most = "Maximale Anzahl von Beiträgen in Suchergebnissen" +posts_in_tag_page_at_most = "Maximale Anzahl von Beiträgen auf tag-Seiten" +posts_in_type_page_at_most = "Posts in type page at most" +posts_index_settings = "Einstellungen zur Anzahl von Beiträgen" +posts_list = "Beiträge" +posts_tagged = "Beiträge mit Stichwort" +posts_with_type = "Beiträge mit Typ" +pre_release = "Pre-release" +prev = "Voriger" +prev_post = "Vorheriger Beitrag" +preview = "Vorschau" +pro_tips_you_can_create_custom_config_key_and_print_out_your_config_key_value_anywhere_in_your_template = "Profi-Tipp: Sie können einen eigenen Konfigurationsschlüssel erzeugen und dessen Wert überall im Template anzeigen lassen." +profile_for = "Profil von" +proudly_powered_by = "Powered by" +publish = "Veröffentlichen" +publish_draft = "Veröffentlichen" +published = "Veröffentlicht" +quote_post = "Zitat-Beitrag" +quote_post_comment = "Einen Beitrag zur Präsentation eines Zitats erstellen" +read_more = "weiterlesen" +read_more_text = "Weiterlesen-Text" +read_more_text_placeholder = "Mehr ..." +reading = "Lesen" +reading_settings = "Leseeinstellungen" +recaptcha = "reCAPTCHA" +recent_posts = "Letzte Beiträge" +recent_posts_widget_at_most = "Maximale Anzahl von Beiträgen im Widget Letzte Beiträge" +regular_post = "Normaler Beitrag" +regular_post_comment = "Einen normalen Beitrag erstellen" +related_posts = "Ähnliche Beiträge" +related_widget_posts_at_most = "Maximale Anzahl von Beiträgen im Widget Ähnliche Beiträge" +revert_to_draft = "Als Entwurf speichern" +rss_character = "Länge eines RSS-Beitrags (in Zeichen)" +rss_feeds_show_the_most_recent = "RSS-Feeds zeigen die folgende Anzahl der aktuellsten Beiträge" +rss_settings = "RSS-Einstellungen" +save = "Speichern" +save_as_draft = "Speichern als Entwurf" +save_category = "Kategorie speichern" +save_config = "Konfiguration speichern" +save_edit = "Änderungen speichern" +save_menu = "Menü speichern" +scheduled = "Geplant" +scheduled_posts = "Geplante Beiträge" +scheduled_tips = "Veröffentlichen eines Beitrags mit Zeitpunkt in der Zukunft, fügt ihn bei Geplante Beiträge hinzu" +search = "Suche" +search_for = "Suche nach" +search_results_for = "Suchergebnisse für" +search_results_not_found = "Suchergebnisse nicht gefunden!" +secret_key = "Secret Key" +settings = "Einstellungen" +sign_in_to_start_your_session = "Melden Sie sich an, um Ihre Sitzung zu starten" +site_key = "Site Key" +sitemap = "Sitemap" +slug = "Slug" +social_media = "Social Media" +static_page = "Statische Seite" +static_page_comment = "Eine statische Seite erstellen" +static_pages = "Statische Seiten" +summary = "Zusammenfassung" +summary_behavior = "Generieren der Zusammenfassung" +summary_character = "Länge der Zusammenfassung (in Zeichen)" +tag = "Schlagwort" +tagcloud_widget_at_most = "Höchstzahl Schlagwörter in Tag-Cloud" +tagline = "Slogan" +tagline_description = "Erklären Sie in wenigen Worten, worum es in diesem Blog geht." +tagline_placeholder = "Datenbanklose PHP-Blogging-Plattform" +tags = "Schlagworte" +this_is_legacy_code_usually_new_created_analytics_using_gtag_js = "Dies ist veralteter Code. Normalerweise wird gtag.js verwendet." +this_page_doesnt_exist = "Diese Seite existiert nicht!" +time = "Zeit" +timezone = "Zeitzone" +title = "Titel" +to_use_disqus_or_facebook_comment_you_need_to_provide_disqus_shortname_or_facebook_app_id = "Um Disqus- oder Facebook-Kommentare einzubinden, geben Sie den Disqus-Kurznamen oder die Facebook App-ID an." +token_error = "CSRF-Token nicht korrekt" +tools = "Werkzeuge" +twitter_account = "Twitter-Konto" +type_to_search = "Tippen Sie, um zu suchen" +uncategorized = "Unkategorisiert" +uncategorized_comment = "Beiträge, die in keine Kategorie passen (sollen)." +universal_analytics = "Universal Analytics (gtag.js)" +unknown_feed_format = "Unbekanntes Feedformat" +update = "Aktualisieren" +update_available = "Update verfügbar" +update_draft = "Entwurf aktualisieren" +update_post = "Beitrag aktualisieren" +update_to = "Aktualisieren auf" +upload = "Upload" +user = "Benutzer:in" +user_error = "Benutzer:innen-Feld ist erforderlich" +valid_values_range_from_0_to_1.0._see = "Gültige Werte nur zwischen 0.0 und 1.0. Siehe" +video_post = "Video-Beitrag" +video_post_comment = "Einen Beitrag zur Präsentation eines Videos erstellen" +view = "Ansicht" +view_post = "Ansicht" +views = "Ansichten" +widget = "Widget" +widget_key_placeholder = "12345abcde" +widget_settings = "Widget-Einstellungen" +would_you_like_to_try_our = "Besuchen Sie doch unsere " +year_month_your_post_slug = "/year/month/your-post-slug" +yes_im_in = "Ja, ich bin dabei!" +yes_not_recommended = "Ja (nicht empfohlen)" +you_dont_have_permission_to_access_this_page = "Sie haben keine Berechtigung, auf diese Seite zuzugreifen." +your_backups = "Ihre Backups" +your_key = "your.key" +your_latest_blog_posts = "Neueste Blog-Beiträge" +your_new_config_key = "Neuer Konfigurations-Schlüssel" +your_new_value = "Neuer Wert" +your_recent_posts = "Ihre letzten Beiträge" +manage_users = "Benutzer:innen-Verwaltung" +add_user = "Benutzer:in hinzufügen" +username = "Benutzer:innen-Name" +role = "Rolle" +change_password = "Passwort ändern" +config_mfa = "MFA konfigurieren" +mfacode = "MFA Code" +verify_code = "MFA code verifizieren" +verify_password = "Aktuelles Passwort verifizieren" +manualsetupkey = "Der setup key kann auch manuell hinzugefügt werden" +mfa_error = "MFA code ist nicht korrekt" +disablemfa = "MFA deaktivieren" +enable_auto_save = "Automatisches Speichern aktivieren" +explain_autosave = "Neue Inhalte oder Entwürfe werden automatisch alle 60 Sekunden gespeichert, wenn aktiviert." +login_protect_system = "Login-Schutz" +cloudflare_info = "Sehen Sie sich die Turnstile-Dokumentation von Cloudflare an: " +mfa_config = "Multi-Faktor-Authentifizierung (MFA)" +set_mfa_globally = "MFA ermöglichen" +explain_mfa = "Wenn aktiviert, ist MFA für alle Benutzer:innen optional. Wenn deaktiviert, kann MFA nicht verwendet werden und das Feld wird auf der Anmeldeseite ausgeblendet." +set_version_publicly = "Version öffentlich sichtbar" +explain_version = "Standardmäßig ist die Version von HTMLy öffentlich im Quellcode sichtbar. Einige Administrator:innen ziehen es möglicherweise vor, dies auszublenden." +focus_mode = "Fokus-Modus umschalten" +writing = "Schreiben" +writing_settings = "Schreibeinstellungen" +security = "Sicherheit" +security_settings = "Sicherheitseinstellungen" +msg_error_field_req_username = "Username field is required." +msg_error_field_req_password = "Password field is required." +msg_error_field_req_title = "Title field is required." +msg_error_field_req_content = "Content field is required." +msg_error_field_req_tag = "Tag field is required." +msg_error_field_req_image = "Image field is required." +msg_error_field_req_video = "Video field is required." +msg_error_field_req_link = "Link field is required." +msg_error_field_req_quote = "Quote field is required." +msg_error_field_req_audio = "Audio field is required." +msg_error_field_req_feedurl = "You need to specify the feed url." +rss_feeds_description_select = "RSS Description" +rss_description_body = "Post Body" +rss_description_meta = "Post Meta Description" +admin_theme = "Admin theme" +admin_theme_light = "Light" +admin_theme_dark = "Dark" diff --git a/lang/de_DE_gender_dudenkonform.ini b/lang/de_DE_gender_dudenkonform.ini new file mode 100644 index 0000000..4a8d720 --- /dev/null +++ b/lang/de_DE_gender_dudenkonform.ini @@ -0,0 +1,326 @@ +about = "Über" +add_category = "Kategorie hinzufügen" +add_content = "Inhalt hinzufügen" +add_link = "Link hinzufügen" +add_menu = "Menü hinzufügen" +add_new_page = "Neue Seite hinzufügen" +add_new_post = "Neuen Beitrag hinzufügen" +add_source_link_optional = "Quell-Link hinzufügen (optional)" +add_sub = "Unterseite hinzufügen" +address_url = "Adresse (URL)" +admin = "Administrator/-in" +admin_panel_style_based_on = "Admin-Panel-Stil basierend auf" +all_blog_posts = "Alle Beiträge" +all_cache_has_been_deleted = "Der gesamte Cache wurde gelöscht!" +all_posts_tagged = "Alle Beiträge getaggten" +archive_for = "Archiv für" +archive_page_for = "Archivseite für" +archives = "Archiv" +are_you_sure_you_want_to_delete_ = "Sind Sie sicher, dass Sie %s löschen wollen?" +at_the_moment_you_are_using_auto_generated_menu = "Im Moment verwenden Sie ein automatisch generiertes Menü." +audio_post = "Audio-Beitrag" +audio_post_comment = "Einen Beitrag zur Präsentation eines Audios erstellen" +author = "Autor/-in" +author_description = "Nur ein/-e weitere/-r HTMLy-Benutzer/-in" +back_to = "Zurück zu" +backup = "Backup" +blog_description = "Beschreiben Sie in einem Absatz die Ausrichtung Ihres Blogs." +blog_posts_displayed_as = "Blog-Beiträge anzeigen als" +blog_theme = "Blog-Theme (Design)" +blog_title = "Blog-Titel" +blog_title_placeholder = "Ein HTMLy-Blog" +breadcrumb_home_text = "Bezeichnung für die Startseite im Breadcrumb-Menü" +by = "von" +by_using_this_importer_you_confirm_that_the_feed_is_yours_or_that_at_least_you_have_the_authority_to_publish_it = "Durch die Verwendung dieses Importeurs bestätigen Sie, dass der importierte Feed Ihnen gehört oder Sie berechtigt sind, seine Inhalte zu veröffentlichen." +cache_expiration = "Cache-Gültigkeitsdauer (in Stunden)" +cache_off = "Caching ausschalten" +cache_timestamp = "Cache-Zeitstempel" +cancel = "Abbrechen" +cannot_read_feed_content = "Feedinhalt kann nicht gelesen werden" +captcha_error = "reCAPTCHA nicht korrekt" +categories = "Kategorien" +category = "Kategorie" +check_shortcode = "Berücksichtige shortcode" +check_update = "Aktualisierung suchen" +clear_cache = "Cache löschen" +comma_separated_values = "Komma-getrennte Werte" +comment_system = "Kommentarsystem" +comments = "Kommentare" +config = "Konfiguration" +congrats_you_have_the_latest_version_of_htmly = "Herzlichen Glückwunsch! Sie haben die neueste Version von HTMLy." +content = "Inhalt" +contents = "Inhalt" +copyright_line = "Copyright-Zeile" +copyright_line_placeholder = "(c) Ihr Name." +create_backup = "Ein Backup erstellen" +created = "Erstellungsdatum" +css_class_optional = "CSS-Klasse (optional) " +custom = "Benutzerdefiniert" +custom_settings = "Benutzerdefinierte Einstellungen" +dashboard = "Übersicht" +date = "Datum" +date_format = "Datumsformat" +default = "Standard" +delete = "Löschen" +description = "Beschreibung" +disable = "Deaktivieren" +disabled = "Ausgeschaltet" +disqus_shortname = "Disqus shortname" +disqus_shortname_placeholder = "htmly" +draft = "Entwurf" +edit = "Bearbeiten" +edit_category = "Kategorie bearbeiten" +edit_post = "Bearbeiten" +edit_profile = "Profil bearbeiten" +enable = "Aktivieren" +enable_blog_url = "URL blog aktivieren" +enter_image_url = "Bild-URL eingeben" +facebook_app_id = "Facebook App-ID" +facebook_page = "Facebook-Seite" +featured_audio = "Ausgewähltes Audio" +featured_image = "Ausgewähltes Bild" +featured_link = "Ausgewählter Link" +featured_quote = "Ausgewähltes Zitat" +featured_video = "Ausgewähltes Video" +feed_url = "Feed-URL" +filename = "Dateiname" +follow = "Folgen" +for_google_site_verification_meta = "For google-site-verification meta" +front_page_displays = "Startseite zeigt" +full_post = "Vollständiger Beitrag" +general = "Allgemeines" +general_settings = "Allgemeine Einstellungen" +get_one_here = "Get one here" +github_pre_release = "Github pre-release" +google_analytics = "Google Analytics" +google_analytics_legacy = "Google Analytics (legacy)" +google_search_console = "Google Search Console" +hint_use_ctrlcmdf_to_search_for_your_config_key_or_value = "Hinweis: Nutzen Sie STRG/CMD + F, um nach einem Konfigurationsschlüssel oder Wert zu suchen." +home = "Startseite" +homepage = "Startseite" +if_left_empty_we_will_excerpt_it_from_the_content_below = "Wenn das Feld leer bleibt, wird es aus dem folgenden Inhalt extrahiert" +if_the_url_is_left_empty_we_will_use_the_page_title = "Wenn die URL leer bleibt, wird der Seitentitel verwendet" +if_the_url_is_left_empty_we_will_use_the_post_title = "Wenn die URL leer bleibt, wird der Beitragstitel verwendet" +image_post = "Bild-Beitrag" +image_post_comment = "Einen Beitrag zur Präsentation eines Bildes erstellen" +import = "Importieren" +import_feed = "Feed importieren" +import_rss = "RSS importieren" +import_rss_feed_2.0 = "RSS-Feed 2.0 importieren" +in_summary_mode_whether_check_the_shortcode_first_or_not_before_trim_the_content_to_x_char = "Bei Anzeige als Zusammenfassung wird entweder ein vorhandener shortcode ignoriert und die Zusammenfassung auf die angegebene Anzahl von Zeichen gekürzt (Standard) oder bis zum shortcode angezeigt (Berücksichtige shortcode)." +insert_image = "Bild einfügen" +instead = "stattdessen" +invalid_error = "FEHLER: Ungültiger Benutzer/-innen-Name oder Passwort" +item_class = "CSS-Klasse" +item_slug = "Link-URL" +language = "Systemsprache" +link_name = "Name des Links" +link_post = "Link-Beitrag" +link_post_comment = "Einen Beitrag zur Präsentation eines Links erstellen" +login = "Anmeldung" +login_page = "Anmeldeseite" +logout = "Abmelden" +menu = "Menüs" +menus = "Menü-Editor" +meta_description = "Meta-Beschreibung" +meta_description_character = "Anzahl von Zeichen, die vom Inhalt übernommen werden, wenn das Feld Meta-Beschreibung leer gelassen wird" +metatags = "Metatags" +metatags_settings = "Metatags-Einstellungen" +mine = "Eigene Beiträge" +more = "Mehr" +my_draft = "Eigene Entwürfe" +my_posts = "Eigene Beiträge" +name = "Name" +newer = "Neuere" +next = "Nächster" +next_post = "Nächster Beitrag" +no_available_backup = "Derzeit ist kein Backup verfügbar." +no_draft_found = "Keine Entwürfe gefunden!" +no_posts_found = "Keine Beiträge gefunden!" +no_related_post_found = "Kein ähnlicher Beitrag gefunden!" +no_scheduled_posts_found = "Keine geplanten Beiträge gefunden!" +no_search_results = "Keine Suchergebnisse!" +nope = "Nein, danke." +not = "Nein" +now = "jetzt" +of = "von" +older = "Ältere" +only = "Nur" +operations = "Operationen" +optional = "optional" +page = "Seite" +page_generation_time = "Dauer der Seitenerzeugung" +pages = "Seiten" +pass_error = "Passwortfeld ist erforderlich!" +password = "Passwort" +performance = "Leistung" +performance_settings = "Leistungseinstellungen" +permalink = "Permalink" +popular = "Zugriffe" +popular_posts = "Beliebte Beiträge" +popular_posts_widget = "Zugriffszähler aktivieren und Widget Beliebte Beiträge einblenden" +popular_posts_widget_at_most = "Maximale Anzahl von Beiträgen im Widget Beliebte Beiträge" +popular_tags = "Beliebte Tags" +post_by_author = "Beiträge dieser Autorin oder dieses Autors" +post_your_post_slug = "/post/your-post-slug" +posted_in = "Veröffentlicht unter" +posted_on = "Veröffentlicht am" +posts = "Inhalte" +posts_by = "Beiträge von" +posts_draft = "Entwürfe" +posts_in_archive_page_at_most = "Maximale Anzahl von Beiträgen auf Archiv-Seiten" +posts_in_category_page_at_most = "Maximale Anzahl von Beiträgen auf Kategorien-Seiten" +posts_in_front_page_show_at_most = "Maximale Anzahl von Beiträgen auf der Startseite" +posts_in_profile_page_at_most = "Maximale Anzahl von Beiträgen auf Profil-Seiten" +posts_in_search_result_at_most = "Maximale Anzahl von Beiträgen in Suchergebnissen" +posts_in_tag_page_at_most = "Maximale Anzahl von Beiträgen auf tag-Seiten" +posts_in_type_page_at_most = "Posts in type page at most" +posts_index_settings = "Einstellungen zur Anzahl von Beiträgen" +posts_list = "Beiträge" +posts_tagged = "Beiträge mit Stichwort" +posts_with_type = "Beiträge mit Typ" +pre_release = "Pre-release" +prev = "Voriger" +prev_post = "Vorheriger Beitrag" +preview = "Vorschau" +pro_tips_you_can_create_custom_config_key_and_print_out_your_config_key_value_anywhere_in_your_template = "Profi-Tipp: Sie können einen eigenen Konfigurationsschlüssel erzeugen und dessen Wert überall im Template anzeigen lassen." +profile_for = "Profil von" +proudly_powered_by = "Powered by" +publish = "Veröffentlichen" +publish_draft = "Veröffentlichen" +published = "Veröffentlicht" +quote_post = "Zitat-Beitrag" +quote_post_comment = "Einen Beitrag zur Präsentation eines Zitats erstellen" +read_more = "weiterlesen" +read_more_text = "Weiterlesen-Text" +read_more_text_placeholder = "Mehr ..." +reading = "Lesen" +reading_settings = "Leseeinstellungen" +recaptcha = "reCAPTCHA" +recent_posts = "Letzte Beiträge" +recent_posts_widget_at_most = "Maximale Anzahl von Beiträgen im Widget Letzte Beiträge" +regular_post = "Normaler Beitrag" +regular_post_comment = "Einen normalen Beitrag erstellen" +related_posts = "Ähnliche Beiträge" +related_widget_posts_at_most = "Maximale Anzahl von Beiträgen im Widget Ähnliche Beiträge" +revert_to_draft = "Als Entwurf speichern" +rss_character = "Länge eines RSS-Beitrags (in Zeichen)" +rss_feeds_show_the_most_recent = "RSS-Feeds zeigen die folgende Anzahl der aktuellsten Beiträge" +rss_settings = "RSS-Einstellungen" +save = "Speichern" +save_as_draft = "Speichern als Entwurf" +save_category = "Kategorie speichern" +save_config = "Konfiguration speichern" +save_edit = "Änderungen speichern" +save_menu = "Menü speichern" +scheduled = "Geplant" +scheduled_posts = "Geplante Beiträge" +scheduled_tips = "Veröffentlichen eines Beitrags mit Zeitpunkt in der Zukunft, fügt ihn bei Geplante Beiträge hinzu" +search = "Suche" +search_for = "Suche nach" +search_results_for = "Suchergebnisse für" +search_results_not_found = "Suchergebnisse nicht gefunden!" +secret_key = "Secret Key" +settings = "Einstellungen" +sign_in_to_start_your_session = "Melden Sie sich an, um Ihre Sitzung zu starten" +site_key = "Site Key" +sitemap = "Sitemap" +slug = "Slug" +social_media = "Social Media" +static_page = "Statische Seite" +static_page_comment = "Eine statische Seite erstellen" +static_pages = "Statische Seiten" +summary = "Zusammenfassung" +summary_behavior = "Generieren der Zusammenfassung" +summary_character = "Länge der Zusammenfassung (in Zeichen)" +tag = "Schlagwort" +tagcloud_widget_at_most = "Höchstzahl Schlagwörter in Tag-Cloud" +tagline = "Slogan" +tagline_description = "Erklären Sie in wenigen Worten, worum es in diesem Blog geht." +tagline_placeholder = "Datenbanklose PHP-Blogging-Plattform" +tags = "Schlagworte" +this_is_legacy_code_usually_new_created_analytics_using_gtag_js = "Dies ist veralteter Code. Normalerweise wird gtag.js verwendet." +this_page_doesnt_exist = "Diese Seite existiert nicht!" +time = "Zeit" +timezone = "Zeitzone" +title = "Titel" +to_use_disqus_or_facebook_comment_you_need_to_provide_disqus_shortname_or_facebook_app_id = "Um Disqus- oder Facebook-Kommentare einzubinden, geben Sie den Disqus-Kurznamen oder die Facebook App-ID an." +token_error = "CSRF-Token nicht korrekt" +tools = "Werkzeuge" +twitter_account = "Twitter-Konto" +type_to_search = "Tippen Sie, um zu suchen" +uncategorized = "Unkategorisiert" +uncategorized_comment = "Beiträge, die in keine Kategorie passen (sollen)." +universal_analytics = "Universal Analytics (gtag.js)" +unknown_feed_format = "Unbekanntes Feedformat" +update = "Aktualisieren" +update_available = "Update verfügbar" +update_draft = "Entwurf aktualisieren" +update_post = "Beitrag aktualisieren" +update_to = "Aktualisieren auf" +upload = "Upload" +user = "Benutzer/-in" +user_error = "Benutzer/-innen-Feld ist erforderlich" +valid_values_range_from_0_to_1.0._see = "Gültige Werte nur zwischen 0.0 und 1.0. Siehe" +video_post = "Video-Beitrag" +video_post_comment = "Einen Beitrag zur Präsentation eines Videos erstellen" +view = "Ansicht" +view_post = "Ansicht" +views = "Ansichten" +widget = "Widget" +widget_key_placeholder = "12345abcde" +widget_settings = "Widget-Einstellungen" +would_you_like_to_try_our = "Besuchen Sie doch unsere " +year_month_your_post_slug = "/year/month/your-post-slug" +yes_im_in = "Ja, ich bin dabei!" +yes_not_recommended = "Ja (nicht empfohlen)" +you_dont_have_permission_to_access_this_page = "Sie haben keine Berechtigung, auf diese Seite zuzugreifen." +your_backups = "Ihre Backups" +your_key = "your.key" +your_latest_blog_posts = "Neueste Blog-Beiträge" +your_new_config_key = "Neuer Konfigurations-Schlüssel" +your_new_value = "Neuer Wert" +your_recent_posts = "Ihre letzten Beiträge" +manage_users = "Benutzer/-innen-Verwaltung" +add_user = "Benutzer/-in hinzufügen" +username = "Benutzer/-innen-Name" +role = "Rolle" +change_password = "Passwort ändern" +config_mfa = "MFA konfigurieren" +mfacode = "MFA Code" +verify_code = "MFA code verifizieren" +verify_password = "Aktuelles Passwort verifizieren" +manualsetupkey = "Der setup key kann auch manuell hinzugefügt werden" +mfa_error = "MFA code ist nicht korrekt" +disablemfa = "MFA deaktivieren" +enable_auto_save = "Automatisches Speichern aktivieren" +explain_autosave = "Neue Inhalte oder Entwürfe werden automatisch alle 60 Sekunden gespeichert, wenn aktiviert." +login_protect_system = "Login-Schutz" +cloudflare_info = "Sehen Sie sich die Turnstile-Dokumentation von Cloudflare an: " +mfa_config = "Multi-Faktor-Authentifizierung (MFA)" +set_mfa_globally = "MFA ermöglichen" +explain_mfa = "Wenn aktiviert, ist MFA für alle Benutzer/-innen optional. Wenn deaktiviert, kann MFA nicht verwendet werden und das Feld wird auf der Anmeldeseite ausgeblendet." +set_version_publicly = "Version öffentlich sichtbar" +explain_version = "Standardmäßig ist die Version von HTMLy öffentlich im Quellcode sichtbar. Einige Administrator/-innen ziehen es möglicherweise vor, dies auszublenden." +focus_mode = "Fokus-Modus umschalten" +writing = "Schreiben" +writing_settings = "Schreibeinstellungen" +security = "Sicherheit" +security_settings = "Sicherheitseinstellungen" +msg_error_field_req_username = "Username field is required." +msg_error_field_req_password = "Password field is required." +msg_error_field_req_title = "Title field is required." +msg_error_field_req_content = "Content field is required." +msg_error_field_req_tag = "Tag field is required." +msg_error_field_req_image = "Image field is required." +msg_error_field_req_video = "Video field is required." +msg_error_field_req_link = "Link field is required." +msg_error_field_req_quote = "Quote field is required." +msg_error_field_req_audio = "Audio field is required." +msg_error_field_req_feedurl = "You need to specify the feed url." +rss_feeds_description_select = "RSS Description" +rss_description_body = "Post Body" +rss_description_meta = "Post Meta Description" +admin_theme = "Admin theme" +admin_theme_light = "Light" +admin_theme_dark = "Dark" diff --git a/lang/el_GR.ini b/lang/el_GR.ini new file mode 100644 index 0000000..bf5ed33 --- /dev/null +++ b/lang/el_GR.ini @@ -0,0 +1,328 @@ +about = "Σχετικά" +add_category = "Προσθήκη Κατηγορίας" +add_content = "Προσθήκη Περιεχομένου" +add_link = "Προσθήκη συνδέσμου" +add_menu = "Προσθήκη μενού" +add_new_page = "Προσθήκη νέας σελίδας" +add_new_post = "Προσθήκη νέας ανάρτησης" +add_source_link_optional = "Προσθήκη συνδέσμου πηγής (προαιρετικό)" +add_sub = "Προσθήκη Υποσελίδας" +address_url = "Διεύθυνση (URL)" +admin = "Διαχειριστής" +admin_panel_style_based_on = "Στιλ πίνακα διαχειριστή με βάση" +all_blog_posts = "Όλες οι αναρτήσεις ιστολογίου" +all_cache_has_been_deleted = "Όλη η προσωρινή μνήμη έχει διαγραφεί !" +all_posts_tagged = "Όλες οι αναρτήσεις με ετικέτα" +archive_for = "Αρχείο για" +archive_page_for = "Αρχειοθέτηση σελίδας για" +archives = "Αρχειοθέτηση" +are_you_sure_you_want_to_delete_ = "Είστε βέβαιοι ότι θέλετε να διαγράψετε %s;" +at_the_moment_you_are_using_auto_generated_menu = "Αυτή τη στιγμή χρησιμοποιείτε το μενού που δημιουργείται αυτόματα." +audio_post = "Ηχητική ανάρτηση" +audio_post_comment = "Δημιουργία ανάρτησης ιστολογίου με επιλεγμένο ήχο" +author = "Συγγραφέας" +author_description = " " +back_to = "Επιστροφή στο" +backup = "Αντίγραφα ασφαλείας" +blog_description = "Σε μία παράγραφο, πείτε μας περισσότερα για το ιστολόγιό σας." +blog_theme = "Θέμα ιστολογίου" +blog_title = "Τίτλος ιστολογίου" +blog_title_placeholder = "Το ιστολόγιό μου HTMLy" +blog_posts_displayed_as = "Οι αναρτήσεις ιστολογίου εμφανίζονται ως" +breadcrumb_home_text = "Αρχικό κείμενο ψωμιού" +by_using_this_importer_you_confirm_that_the_feed_is_yours_or_that_at_least_you_have_the_authority_to_publish_it = "Χρησιμοποιώντας αυτόν τον εισαγωγέα συμφωνείτε εάν η ροή είναι δική σας ή τουλάχιστον έχετε την εξουσία να τη δημοσιεύσετε." +css_class_optional = "Κλάση CSS (προαιρετικό)" +cache_expiration = "Λήξη προσωρινής μνήμης (σε ώρες)" +cache_off = "Απενεργοποίηση προσωρινής μνήμης" +cache_timestamp = "Cache timestamp" +cancel = "Άκυρο" +cannot_read_feed_content = "Δεν είναι δυνατή η ανάγνωση της ροής" +captcha_error = "το reCaptcha δεν είναι σωστό" +categories = "Κατηγορίες" +category = "Κατηγορία" +check_update = "Έλεγχος έκδοσης" +clear_cache = "Εκκαθάριση προσωρινής μνήμης" +comma_separated_values = "Τιμές διαχωρισμένες με κόμμα" +comment_system = "Σύστημα σχολίων" +comments = "Σχόλια" +config = "Διαμόρφωση" +congrats_you_have_the_latest_version_of_htmly = "Συγχαρητήρια! Έχετε την πιο πρόσφατη έκδοση του HTMLy." +content = "Περιεχόμενο" +contents = "Περιεχόμενα" +copyright_line = "Γραμμή πνευματικών δικαιωμάτων" +copyright_line_placeholder = "(γ) Το όνομά σας." +create_backup = "Δημιουργία αντιγράφου ασφαλείας" +created = "Δημιουργήθηκε" +custom = "Προσαρμοσμένο" +custom_settings = "Προσαρμοσμένες ρυθμίσεις" +dashboard = "Πίνακας ελέγχου" +date = "Ημερομηνία" +date_format = "Μορφή ημερομηνίας" +delete = "Διαγραφή" +description = "Περιγραφή" +disable = "Απενεργοποίηση" +disabled = "Απενεργοποιημένο" +disqus_shortname = "Σύντομο όνομα Disqus" +disqus_shortname_placeholder = "htmly" +draft = "Προσχέδιο" +edit = "Επεξεργασία" +edit_category = "Επεξεργασία κατηγορίας" +edit_post = "Επεξεργασία" +edit_profile = "Επεξεργασία προφίλ" +enable = "Ενεργοποίηση" +enable_blog_url = "Ενεργοποίηση διεύθυνσης URL blog" +enter_image_url = "Εισαγωγή διεύθυνσης URL εικόνας" +facebook_app_id = "Αναγνωριστικό εφαρμογής Facebook" +facebook_page = "Σελίδα Facebook" +featured_audio = "Επιλεγμένος ήχος" +featured_image = "Επιλεγμένη εικόνα" +featured_link = "Επιλεγμένος σύνδεσμος" +featured_quote = "Επιλεγμένη προσφορά" +featured_video = "Επιλεγμένο βίντεο" +feed_url = "Διεύθυνση URL ροής" +filename = "Όνομα αρχείου" +follow = "Ακολούθησε" +for_google_site_verification_meta = "Για meta google-site-verification" +front_page_displays = "Εμφάνιση πρώτης σελίδας" +full_post = "Πλήρης ανάρτηση" +general = "Γενικά" +general_settings = "Γενικές ρυθμίσεις" +get_one_here = "Αποκτήστε ένα εδώ" +github_pre_release = "Github προέκδοση" +google_analytics = "Google Analytics" +google_analytics_legacy = "Google Analytics (κληρονομιά)" +google_search_console = "Google Search Console" +home = "Αρχική" +if_left_empty_we_will_excerpt_it_from_the_content_below = "Αν αφήσουμε κενό, θα το αποσπάσουμε από το παρακάτω περιεχόμενο" +if_the_url_is_left_empty_we_will_use_the_page_title = "Εάν το url μείνει κενό, θα χρησιμοποιήσουμε τον τίτλο της σελίδας" +if_the_url_is_left_empty_we_will_use_the_post_title = "Εάν το url μείνει κενό, θα χρησιμοποιήσουμε τον τίτλο της ανάρτησης" +image_post = "Ανάρτηση εικόνας" +image_post_comment = "Δημιουργία ανάρτησης ιστολογίου με επιλεγμένη εικόνα" +import = "Εισαγωγή" +import_feed = "Έναρξη εισαγωγής ροής" +import_rss = "Εισαγωγή RSS" +import_rss_feed_2.0 = "Εισαγωγή RSS Feed 2.0" +insert_image = "Εισαγωγή εικόνας" +invalid_error = "ΣΦΑΛΜΑ: Μη έγκυρο όνομα χρήστη ή κωδικός πρόσβασης" +language = "Γλώσσα συστήματος" +link_name = "Όνομα συνδέσμου" +link_post = "Ανάρτηση συνδέσμου" +link_post_comment = "Δημιουργία ανάρτησης ιστολογίου με επιλεγμένο σύνδεσμο" +login = "Είσοδος" +login_page = "Σελίδα σύνδεσης" +logout = "Αποσύνδεση" +menu = "Μενού" +menus = "Επεξεργαστής μενού" +meta_description = "Meta περιγραφή" +meta_description_character = "Χαρακτήρας μετα περιγραφής" +metatags = "Metatags" +metatags_settings = "Ρυθμίσεις Metatags" +mine = "Δικά μου" +more = "Περισσότερα" +my_draft = "Τα προσχέδιά μου" +my_posts = "Οι αναρτήσεις μου" +name = "Όνομα" +newer = "Νεότερα" +next = "Επόμενο" +next_post = "Επόμενο post" +no_available_backup = "Δεν υπάρχει διαθέσιμο αντίγραφο ασφαλείας αυτή τη στιγμή." +no_draft_found = "Δεν βρέθηκε προσχέδιο" +no_posts_found = "Δεν βρέθηκαν δημοσιεύσεις" +no_related_post_found = "Δεν βρέθηκε σχετική ανάρτηση" +no_scheduled_posts_found = "Δεν υπάρχουν προγραμματισμένες αναρτήσεις!" +no_search_results = "Δεν υπάρχουν αποτελέσματα αναζήτησης" +nope = "Όχι" +not = "Όχι" +older = "Παλαιότερα" +only = "Μόνο" +operations = "Λειτουργίες" +page = "Σελίδα" +page_generation_time = "Χρόνος δημιουργίας σελίδας" +pages = "Σελίδες" +pass_error = "Απαιτείται το πεδίο κωδικού πρόσβασης" +password = "Κωδικός πρόσβασης" +performance = "Απόδοση" +performance_settings = "Ρυθμίσεις απόδοσης" +permalink = "Permalink" +popular = "Δημοφιλές" +popular_posts = "Δημοφιλείς αναρτήσεις" +popular_posts_widget = "Γραφικό στοιχείο δημοφιλών αναρτήσεων" +popular_posts_widget_at_most = "Γραφικό στοιχείο δημοφιλών αναρτήσεων το πολύ" +popular_tags = "Δημοφιλείς ετικέτες" +post_by_author = "Αναρτήσεις από αυτόν τον συγγραφέα" +posted_in = "Δημοσιεύτηκε στο" +posted_on = "Δημοσιεύτηκε στις" +posts = "Αναρτήσεις" +posts_by = "Αναρτήσεις από" +posts_draft = "Προσχέδιο αναρτήσεων" +posts_in_archive_page_at_most = "Το πολύ δημοσιεύσεις στη σελίδα αρχείου" +posts_in_category_page_at_most = "Το πολύ δημοσιεύσεις στη σελίδα κατηγορίας" +posts_in_front_page_show_at_most = "Οι αναρτήσεις στην πρώτη σελίδα εμφανίζονται το πολύ" +posts_in_profile_page_at_most = "Το πολύ δημοσιεύσεις στη σελίδα προφίλ" +posts_in_search_result_at_most = "Το πολύ δημοσιεύσεις στο αποτέλεσμα αναζήτησης" +posts_in_tag_page_at_most = "Το πολύ δημοσιεύσεις στη σελίδα ετικέτας" +posts_in_type_page_at_most = "Το πολύ δημοσιεύσεις στη σελίδα τύπου" +posts_index_settings = "Ρυθμίσεις ευρετηρίου αναρτήσεων" +posts_list = "Λίστα αναρτήσεων" +posts_tagged = "Δημοσιεύσεις με ετικέτα" +posts_with_type = "Δημοσιεύσεις με τύπο" +pre_release = "Προκυκλοφορία" +prev = "Προηγούμενο" +prev_post = "Προηγούμενη ανάρτηση" +preview = "Προεπισκόπηση" +profile_for = "Προφίλ για" +proudly_powered_by = "Περήφανα τροφοδοτείται από" +publish = "Δημοσίευση" +publish_draft = "Δημοσίευση προχείρου" +published = "Δημοσιεύτηκε" +quote_post = "Παράθεση ανάρτησης" +quote_post_comment = "Δημιουργία ανάρτησης ιστολογίου με επιλεγμένο απόσπασμα" +rss_character = "χαρακτήρας RSS" +rss_feeds_show_the_most_recent = "Οι ροές RSS εμφανίζουν τις πιο πρόσφατες" +rss_settings = "Ρυθμίσεις RSS" +read_more_text = "Διαβάστε περισσότερα κείμενο" +read_more_text_placeholder = "Διαβάστε περισσότερα" +reading = "Διαβάζοντας" +reading_settings = "Ρυθμίσεις ανάγνωσης" +recaptcha = "reCAPTCHA" +recent_posts = "Πρόσφατες δημοσιεύσεις" +recent_posts_widget_at_most = "Γραφικό στοιχείο πρόσφατων αναρτήσεων το πολύ" +regular_post = "Κανονική ανάρτηση" +regular_post_comment = "Δημιουργία κανονικής ανάρτησης ιστολογίου" +related_posts = "Σχετικές αναρτήσεις" +related_widget_posts_at_most = "Σχετικές αναρτήσεις widget το πολύ" +revert_to_draft = "Επαναφορά στο πρόχειρο" +save = "Αποθήκευση" +save_config = "Αποθήκευση διαμόρφωσης" +save_edit = "Αποθήκευση επεξεργασίας" +save_menu = "Αποθήκευση μενού" +save_as_draft = "Αποθήκευση ως πρόχειρο" +save_category = "Αποθήκευση κατηγορίας" +scheduled = "Προγραμματισμένες" +scheduled_posts = "Προγραμματισμένες αναρτήσεις" +scheduled_tips = "Δημοσιεύοντας μια ανάρτηση με μελλοντική ημερομηνία ή ώρα, θα μεταφερθεί στις προγραμματισμένες αναρτήσεις" +search = "Αναζήτηση" +search_for = "Αναζήτηση" +search_results_for = "Αποτελέσματα αναζήτησης για" +search_results_not_found = "Δεν βρέθηκαν αποτελέσματα αναζήτησης!" +secret_key = "Μυστικό κλειδί" +settings = "Ρυθμίσεις" +sign_in_to_start_your_session = "Συνδεθείτε για επεξεργασία περιεχομένου" +site_key = "Κλειδί τοποθεσίας" +sitemap = "Χάρτης ιστότοπου" +slug = "Slug" +social_media = "Μέσα κοινωνικής δικτύωσης" +static_page = "Στατική σελίδα" +static_page_comment = "Δημιουργία στατικής σελίδας" +static_pages = "Στατικές σελίδες" +summary = "Σύνοψη" +summary_character = "Σύνοψη χαρακτήρα" +tag = "Ετικέτα" +tagcloud_widget_at_most = "TagCloud το πολύ" +tagline = "Tagline" +tagline_placeholder = "Πλατφόρμα ιστολογίων PHP χωρίς βάση δεδομένων" +tagline_description = "Με λίγα λόγια, εξηγήστε τι είναι αυτό το ιστολόγιο." +tags = "Ετικέτες" +this_is_legacy_code_usually_new_created_analytics_using_gtag_js = "Αυτός είναι κώδικας παλαιού τύπου. Συνήθως νέα αναλυτικά στοιχεία που δημιουργούνται χρησιμοποιώντας gtag.js" +this_page_doesnt_exist = "Αυτή η σελίδα δεν υπάρχει!" +time = "Ώρα" +timezone = "Ζώνη ώρας" +title = "Τίτλος" +to_use_disqus_or_facebook_comment_you_need_to_provide_disqus_shortname_or_facebook_app_id = "Για να χρησιμοποιήσετε τα σχόλια του Disqus ή του Facebook, πρέπει να δώσετε το σύντομο όνομα του Disqus ή το αναγνωριστικό εφαρμογής του Facebook." +token_error = "Το CSRF Token δεν είναι σωστό" +tools = "Εργαλεία" +twitter_account = "Λογαριασμός Twitter" +type_to_search = "Aναζήτηση" +uncategorized = "Χωρίς κατηγορία" +uncategorized_comment = "Θέματα που δεν χρειάζονται κατηγορία ή δεν ταιριάζουν σε καμία άλλη υπάρχουσα κατηγορία" +universal_analytics = "Universal Analytics (gtag.js)" +unknown_feed_format = "Άγνωστη μορφή ροής" +update = "Ενημέρωση" +update_available = "Ενημέρωση διαθεσιμότητας" +update_draft = "Ενημέρωση σχεδίου" +update_post = "Ενημέρωση ανάρτησης" +update_to = "Ενημέρωση σε" +upload = "Μεταφόρτωση" +user = "Χρήστης" +user_error = "Απαιτείται πεδίο χρήστη" +valid_values_range_from_0_to_1.0._see = "Οι έγκυρες τιμές κυμαίνονται από 0,0 έως 1,0. Δείτε" +video_post = "Βίντεο ανάρτηση" +video_post_comment = "Δημιουργία ανάρτησης ιστολογίου με επιλεγμένο βίντεο" +view = "Προβολή" +view_post = "Προβολή" +views = "Προβολές" +widget = "Widget" +widget_settings = "Ρυθμίσεις widget" +would_you_like_to_try_our = "Θα θέλατε να δοκιμάσετε το " +yes_im_in = "Ναι, είμαι μέσα" +yes_not_recommended = "Ναι (δεν συνιστάται)" +you_dont_have_permission_to_access_this_page = "Δεν έχετε άδεια πρόσβασης σε αυτήν τη σελίδα" +your_new_config_key = "Το νέο κλειδί διαμόρφωσης" +your_new_value = "Η νέα σας αξία" +your_backups = "Τα αντίγραφα ασφαλείας σας (Backup)" +your_latest_blog_posts = "Οι πιο πρόσφατες αναρτήσεις ιστολογίου σας" +your_recent_posts = "Οι πρόσφατες αναρτήσεις σας" +by = "από" +hint_use_ctrlcmdf_to_search_for_your_config_key_or_value = "hint: Χρησιμοποιήστε Ctrl/CMD + F για να αναζητήσετε το κλειδί ή την τιμή διαμόρφωσης." +homepage = "αρχική σελίδα" +instead = "αντί" +item_class = "Εισαγωγή κλάσης CSS" +item_slug = "Εισαγωγή URL συνδέσμου" +now = "τώρα" +of = "από" +optional = "προαιρετικό" +post_your_post_slug = "/post/your-post-slug" +pro_tips_you_can_create_custom_config_key_and_print_out_your_config_key_value_anywhere_in_your_template = "επαγγελματικές συμβουλές: Μπορείτε να δημιουργήσετε προσαρμοσμένα κλειδιά διαμόρφωσης και να εκτυπώσετε την τιμή του κλειδιού διαμόρφωσης οπουδήποτε στο πρότυπό σας." +read_more = "διαβάστε περισσότερα" +widget_key_placeholder = "12345abcde" +year_month_your_post_slug = "/year/month/your-post-slug" +your_key = "your.key" +summary_behavior = "Summary behavior" +default = "Default" +check_shortcode = "Check shortcode" +in_summary_mode_whether_check_the_shortcode_first_or_not_before_trim_the_content_to_x_char = "In summary mode, whether check the shortcode first or not before trim the content to x char" +manage_users = "Manage users" +add_user = "Add user" +username = "Username" +role = "Role" +change_password = "Change password" +config_mfa = "Configure MFA" +mfacode = "MFA Code" +verify_code = "Verify the MFA code" +verify_password = "Verify current password" +manualsetupkey = "You can also manually add the setup key" +mfa_error = "MFA code is not correct" +disablemfa = "Disable MFA" +enable_auto_save = "Enable Auto Save" +explain_autosave = "When enabled, new content or draft will be automatically saved every 60 seconds." +login_protect_system = "Login protection system" +cloudflare_info = "Review Cloudflare's Turnstile documentation: " +mfa_config = "Multi Factor Authentication (MFA)" +set_mfa_globally = "Set the status of MFA" +explain_mfa = "When enabled, MFA is optional for all users. When disabled, no users can use it and it hides the field on the login page." +set_version_publicly = "Version Visibility" +explain_version = "By default the version of HTMLy is visible publicly in the source code, some admins may prefer to hide this." +focus_mode = "Toggle Focus" +security = "Security" +security_settings = "Security Settings" +writing = "Writing" +writing_settings = "Writing Settings" +security = "Security" +security_settings = "Security Settings" +msg_error_field_req_username = "Username field is required." +msg_error_field_req_password = "Password field is required." +msg_error_field_req_title = "Title field is required." +msg_error_field_req_content = "Content field is required." +msg_error_field_req_tag = "Tag field is required." +msg_error_field_req_image = "Image field is required." +msg_error_field_req_video = "Video field is required." +msg_error_field_req_link = "Link field is required." +msg_error_field_req_quote = "Quote field is required." +msg_error_field_req_audio = "Audio field is required." +msg_error_field_req_feedurl = "You need to specify the feed url." +rss_feeds_description_select = "RSS Description" +rss_description_body = "Post Body" +rss_description_meta = "Post Meta Description" +admin_theme = "Admin theme" +admin_theme_light = "Light" +admin_theme_dark = "Dark" diff --git a/lang/en_US.ini b/lang/en_US.ini new file mode 100644 index 0000000..dd0c96c --- /dev/null +++ b/lang/en_US.ini @@ -0,0 +1,326 @@ +about = "About" +add_category = "Add category" +add_content = "Add content" +add_link = "Add link" +add_menu = "Add menu" +add_new_page = "Add new page" +add_new_post = "Add new post" +add_source_link_optional = "Add source link (optional)" +add_sub = "Add sub page" +address_url = "Address (URL)" +admin = "Admin" +admin_panel_style_based_on = "Admin panel style based on" +all_blog_posts = "All blog posts" +all_cache_has_been_deleted = "All cache has been deleted !" +all_posts_tagged = "All posts tagged" +archive_for = "Archive for" +archive_page_for = "Archive page for" +archives = "Archives" +are_you_sure_you_want_to_delete_ = "Are you sure you want to delete %s?" +at_the_moment_you_are_using_auto_generated_menu = "At the moment you are using auto generated menu." +audio_post = "Audio post" +audio_post_comment = "Creating blog post with featured audio" +author = "Author" +author_description = "Just another HTMLy user" +back_to = "Back to" +backup = "Backup" +blog_description = "In one paragraph, tell us more about your blog." +blog_theme = "Blog theme" +blog_title = "Blog title" +blog_title_placeholder = "My HTMLy Blog" +blog_posts_displayed_as = "Blog posts displayed as" +breadcrumb_home_text = "Breadcrumb home text" +by_using_this_importer_you_confirm_that_the_feed_is_yours_or_that_at_least_you_have_the_authority_to_publish_it = "By using this importer you are agree if the feed is yours or at least you have the authority to publish it." +css_class_optional = "CSS Class (optional)" +cache_expiration = "Cache expiration (in hours)" +cache_off = "Cache off" +cache_timestamp = "Cache timestamp" +cancel = "Cancel" +cannot_read_feed_content = "Cannot read feed content" +captcha_error = "Captcha failed" +categories = "Categories" +category = "Category" +check_update = "Check for update" +clear_cache = "Clear cache" +comma_separated_values = "Comma separated values" +comment_system = "Comment system" +comments = "Comments" +config = "Config" +congrats_you_have_the_latest_version_of_htmly = "Congrats! You have the latest version of HTMLy." +content = "Content" +contents = "Contents" +copyright_line = "Copyright line" +copyright_line_placeholder = "(c) Your name." +create_backup = "Create backup" +created = "Created" +custom = "Custom" +custom_settings = "Custom Settings" +dashboard = "Dashboard" +date = "Date" +date_format = "Date Format" +delete = "Delete" +description = "Description" +disable = "Disable" +disabled = "Disabled" +disqus_shortname = "Disqus shortname" +disqus_shortname_placeholder = "htmly" +draft = "Draft" +edit = "Edit" +edit_category = "Edit category" +edit_post = "Edit" +edit_profile = "Edit profile" +enable = "Enable" +enable_blog_url = "Enable blog URL" +enter_image_url = "Enter image URL" +facebook_app_id = "Facebook App ID" +facebook_page = "Facebook page" +featured_audio = "Featured Audio" +featured_image = "Featured Image" +featured_link = "Featured Link" +featured_quote = "Featured Quote" +featured_video = "Featured Video" +feed_url = "Feed URL" +filename = "Filename" +follow = "Follow" +for_google_site_verification_meta = "For google-site-verification meta" +front_page_displays = "Front page displays" +full_post = "Full post" +general = "General" +general_settings = "General Settings" +get_one_here = "Obtain your reCaptcha keys here: " +github_pre_release = "Github pre-release" +google_analytics = "Google Analytics" +google_analytics_legacy = "Google Analytics (legacy)" +google_search_console = "Google Search Console" +home = "Home" +if_left_empty_we_will_excerpt_it_from_the_content_below = "If leave empty we will excerpt it from the content below" +if_the_url_is_left_empty_we_will_use_the_page_title = "If the url leave empty we will use the page title" +if_the_url_is_left_empty_we_will_use_the_post_title = "If the url leave empty we will use the post title" +image_post = "Image post" +image_post_comment = "Creating blog post with featured image" +import = "Import" +import_feed = "Start Import Feed" +import_rss = "Import RSS" +import_rss_feed_2.0 = "Import RSS Feed 2.0" +insert_image = "Insert Image" +invalid_error = "ERROR: Invalid username or password" +language = "System Language" +link_name = "Link name" +link_post = "Link post" +link_post_comment = "Creating blog post with featured link" +login = "Login" +login_page = "Login page" +logout = "Logout" +menu = "Menu" +menus = "Menu Editor" +meta_description = "Meta description" +meta_description_character = "Meta description character" +metatags = "Metatags" +metatags_settings = "Metatags Settings" +mine = "Mine" +more = "More" +my_draft = "My draft" +my_posts = "My posts" +name = "Name" +newer = "Newer" +next = "Next" +next_post = "Next post" +no_available_backup = "No available backup at this time." +no_draft_found = "No draft found" +no_posts_found = "No posts found" +no_related_post_found = "No related post found" +no_scheduled_posts_found = "No scheduled posts found!" +no_search_results = "No search results" +nope = "Nope" +not = "No" +older = "Older" +only = "Only" +operations = "Operations" +page = "Page" +page_generation_time = "Page generation time" +pages = "Pages" +pass_error = "Password field is required" +password = "Password" +performance = "Performance" +performance_settings = "Performance Settings" +permalink = "Permalink" +popular = "Popular" +popular_posts = "Popular posts" +popular_posts_widget = "Popular posts widget" +popular_posts_widget_at_most = "Popular posts widget at most" +popular_tags = "Popular tags" +post_by_author = "Posts by this author" +posted_in = "Posted in" +posted_on = "Posted on" +posts = "Posts" +posts_by = "Post by" +posts_draft = "Posts draft" +posts_in_archive_page_at_most = "Posts in archive page at most" +posts_in_category_page_at_most = "Posts in category page at most" +posts_in_front_page_show_at_most = "Posts in front page show at most" +posts_in_profile_page_at_most = "Posts in profile page at most" +posts_in_search_result_at_most = "Posts in search result at most" +posts_in_tag_page_at_most = "Posts in tag page at most" +posts_in_type_page_at_most = "Posts in type page at most" +posts_index_settings = "Posts index settings" +posts_list = "Posts list" +posts_tagged = "Posts tagged" +posts_with_type = "Posts with type" +pre_release = "Pre-release" +prev = "Previous" +prev_post = "Previous Post" +preview = "Preview" +profile_for = "Profile for" +proudly_powered_by = "Proudly powered by" +publish = "Publish" +publish_draft = "Publish draft" +published = "Published" +quote_post = "Quote post" +quote_post_comment = "Creating blog post with featured quote" +rss_character = "RSS character" +rss_feeds_show_the_most_recent = "RSS feeds show the most recent" +rss_settings = "RSS settings" +read_more_text = "Read more text" +read_more_text_placeholder = "Read more" +reading = "Reading" +reading_settings = "Reading Settings" +recaptcha = "Login Protection" +recent_posts = "Recent posts" +recent_posts_widget_at_most = "Recent posts widget at most" +regular_post = "Regular post" +regular_post_comment = "Creating regular blog post" +related_posts = "Related posts" +related_widget_posts_at_most = "Related widget posts at most" +revert_to_draft = "Revert to draft" +save = "Save" +save_config = "Save config" +save_edit = "Save Edit" +save_menu = "Save menu" +save_as_draft = "Save as draft" +save_category = "Save category" +scheduled = "Scheduled" +scheduled_posts = "Scheduled posts" +scheduled_tips = "Publishing a post with future date or time, it will go into scheduled posts" +search = "Search" +search_for = "Search for" +search_results_for = "Search results for" +search_results_not_found = "Search results not found!" +secret_key = "Secret Key" +settings = "Settings" +sign_in_to_start_your_session = "Sign in to start your session" +site_key = "Site Key" +sitemap = "Sitemap" +slug = "Slug" +social_media = "Social Media" +static_page = "Static page" +static_page_comment = "Creating static page" +static_pages = "Static pages" +summary = "Summary" +summary_character = "Summary character" +tag = "Tag" +tagcloud_widget_at_most = "TagCloud at most" +tagline = "Tagline" +tagline_placeholder = "Databaseless PHP Blogging Platform" +tagline_description = "In a few words, explain what this blog is about." +tags = "Tags" +this_is_legacy_code_usually_new_created_analytics_using_gtag_js = "This is legacy code. Usually new created analytics using gtag.js" +this_page_doesnt_exist = "This page doesn't exist !" +time = "Time" +timezone = "Timezone" +title = "Title" +to_use_disqus_or_facebook_comment_you_need_to_provide_disqus_shortname_or_facebook_app_id = "To use Disqus or Facebook comments you need to provide your Disqus shortname or your Facebook App ID." +token_error = "CSRF Token not correct" +tools = "Tools" +twitter_account = "Twitter account" +type_to_search = "Type to search" +uncategorized = "Uncategorized" +uncategorized_comment = "Topics that don't need a category, or don't fit into any other existing category" +universal_analytics = "Universal Analytics (gtag.js)" +unknown_feed_format = "Unknown feed format" +update = "Update" +update_available = "Update Available" +update_draft = "Update draft" +update_post = "Update post" +update_to = "Update to" +upload = "Upload" +user = "User" +user_error = "User field is required" +valid_values_range_from_0_to_1.0._see = "Valid values range from 0.0 to 1.0. See" +video_post = "Video post" +video_post_comment = "Creating blog post with featured video" +view = "View" +view_post = "View" +views = "Views" +widget = "Widget" +widget_settings = "Widget Settings" +would_you_like_to_try_our = "Would you like to try our " +yes_im_in = "Yes I'm in" +yes_not_recommended = "Yes (not recommended)" +you_dont_have_permission_to_access_this_page = "You don't have permission to access this page" +your_new_config_key = "Your New Config Key" +your_new_value = "Your New Value" +your_backups = "Your backups" +your_latest_blog_posts = "Your latest blog posts" +your_recent_posts = "Your recent posts" +by = "by" +hint_use_ctrlcmdf_to_search_for_your_config_key_or_value = "hint: Use Ctrl/CMD + F to search for your config key or value." +homepage = "homepage" +instead = "instead" +item_class = "Insert CSS class" +item_slug = "Insert Link URL" +now = "now" +of = "of" +optional = "optional" +post_your_post_slug = "/post/your-post-slug" +pro_tips_you_can_create_custom_config_key_and_print_out_your_config_key_value_anywhere_in_your_template = "pro tips: You can create custom config keys and print out your config key value anywhere in your template." +read_more = "read more" +widget_key_placeholder = "12345abcde" +year_month_your_post_slug = "/year/month/your-post-slug" +your_key = "your.key" +summary_behavior = "Summary behavior" +default = "Default" +check_shortcode = "Check shortcode" +in_summary_mode_whether_check_the_shortcode_first_or_not_before_trim_the_content_to_x_char = "In summary mode, whether check the shortcode first or not before trim the content to x char" +manage_users = "Manage users" +add_user = "Add user" +username = "Username" +role = "Role" +change_password = "Change password" +config_mfa = "Configure MFA" +mfacode = "MFA Code" +verify_code = "Verify the MFA code" +verify_password = "Verify current password" +manualsetupkey = "You can also manually add the setup key" +mfa_error = "MFA code is not correct" +disablemfa = "Disable MFA" +enable_auto_save = "Enable Auto Save" +explain_autosave = "When enabled, new content or draft will be automatically saved every 60 seconds." +login_protect_system = "Login protection system" +cloudflare_info = "Review Cloudflare's Turnstile documentation: " +mfa_config = "Multi Factor Authentication (MFA)" +set_mfa_globally = "Set the status of MFA" +explain_mfa = "When enabled, MFA is optional for all users. When disabled, no users can use it and it hides the field on the login page." +set_version_publicly = "Version Visibility" +explain_version = "By default the version of HTMLy is visible publicly in the source code, some admins may prefer to hide this." +focus_mode = "Toggle Focus" +writing = "Writing" +writing_settings = "Writing Settings" +security = "Security" +security_settings = "Security Settings" +msg_error_field_req_username = "Username field is required." +msg_error_field_req_password = "Password field is required." +msg_error_field_req_title = "Title field is required." +msg_error_field_req_content = "Content field is required." +msg_error_field_req_tag = "Tag field is required." +msg_error_field_req_image = "Image field is required." +msg_error_field_req_video = "Video field is required." +msg_error_field_req_link = "Link field is required." +msg_error_field_req_quote = "Quote field is required." +msg_error_field_req_audio = "Audio field is required." +msg_error_field_req_feedurl = "You need to specify the feed url." +rss_feeds_description_select = "RSS Description" +rss_description_body = "Post Body" +rss_description_meta = "Post Meta Description" +admin_theme = "Admin theme" +admin_theme_light = "Light" +admin_theme_dark = "Dark" diff --git a/lang/eo_EO.ini b/lang/eo_EO.ini new file mode 100644 index 0000000..72d7fe8 --- /dev/null +++ b/lang/eo_EO.ini @@ -0,0 +1,327 @@ +about = "Pri" +add_category = "Aldoni kategorion" +add_content = "Aldoni enhavon" +add_link = "Aldoni ligilon" +add_menu = "Aldoni menuon" +add_new_page = "Aldoni novan paĝon" +add_new_post = "Aldoni novan afiŝon" +add_source_link_optional = "Aldoni fontligilon (nedeviga)" +add_sub = "Aldoni subpaĝon" +address_url = "Adreso (URL)" +admin = "Administranto" +admin_panel_style_based_on = "Aspekto de la administrpanelo bazita sur" +all_blog_posts = "Ĉiuj blogafiŝoj" +all_cache_has_been_deleted = "Ĉiuj kaŝmemoraĵoj forigitaj!" +all_posts_tagged = "Ĉiuj afiŝoj etikeditaj" +archive_for = "Arkivo por" +archive_page_for = "Arkiva paĝo por" +archives = "Arkivoj" +are_you_sure_you_want_to_delete_ = "Ĉu vi certas, ke vi volas forigi %s?" +at_the_moment_you_are_using_auto_generated_menu = "Nuntempe vi uzas aŭtomate generitan menuon." +audio_post = "Sonafiŝo" +audio_post_comment = "Krei blogafiŝon kun elstarigita sono" +author = "Aŭtoro" +author_description = "Nur alia HTMLy-uzanto" +back_to = "Reen al" +backup = "Sekurkopio" +blog_description = "En unu paragrafo, rakontu pli pri via blogo." +blog_theme = "Bloga etoso" +blog_title = "Bloga titolo" +blog_title_placeholder = "Mia HTMLy Blogo" +blog_posts_displayed_as = "Blogafiŝoj montritaj kiel" +breadcrumb_home_text = "Hejma teksto por navigilo" +by_using_this_importer_you_confirm_that_the_feed_is_yours_or_that_at_least_you_have_the_authority_to_publish_it = "Per uzo de ĉi tiu enportilo vi konfirmas, ke la fluo apartenas al vi aŭ ke vi almenaŭ havas la rajton publikigi ĝin." +css_class_optional = "CSS-klaso (nedeviga)" +cache_expiration = "Kaŝmemora eksvalidiĝo (en horoj)" +cache_off = "Kaŝmemoro malŝaltita" +cache_timestamp = "Kaŝmemora tempindiko" +cancel = "Nuligi" +cannot_read_feed_content = "Ne eblas legi la enhavon de la fluo" +captcha_error = "Captcha malsukcesis" +categories = "Kategorioj" +category = "Kategorio" +check_update = "Kontroli ĝisdatigon" +clear_cache = "Forigi kaŝmemoron" +comma_separated_values = "Valoroj disigitaj per komo" +comment_system = "Komenta sistemo" +comments = "Komentoj" +config = "Agordoj" +congrats_you_have_the_latest_version_of_htmly = "Gratulon! Vi havas la plej novan version de HTMLy." +content = "Enhavo" +contents = "Enhavoj" +copyright_line = "Kopirajta linio" +copyright_line_placeholder = "(c) Via nomo." +create_backup = "Krei sekurkopion" +created = "Kreita" +custom = "Propraj" +custom_settings = "Propraj agordoj" +dashboard = "Stirpanelo" +date = "Dato" +date_format = "Data formato" +delete = "Forigi" +description = "Priskribo" +disable = "Malebligi" +disabled = "Malebligita" +disqus_shortname = "Disqus mallongnomo" +disqus_shortname_placeholder = "htmly" +draft = "Malneto" +edit = "Redakti" +edit_category = "Redakti kategorion" +edit_post = "Redakti" +edit_profile = "Redakti profilon" +enable = "Ebligi" +enable_blog_url = "Ebligi blogan URL" +enter_image_url = "Enigi bildan URL" +facebook_app_id = "Facebook App ID" +facebook_page = "Facebook paĝo" +featured_audio = "Elstarigita sono" +featured_image = "Elstarigita bildo" +featured_link = "Elstarigita ligilo" +featured_quote = "Elstarigita citaĵo" +featured_video = "Elstarigita filmeto" +feed_url = "Flua URL" +filename = "Dosiernomo" +follow = "Sekvi" +for_google_site_verification_meta = "Por google-site-verification meta" +front_page_displays = "Ĉefpaĝo montras" +full_post = "Plena afiŝo" +general = "Ĝenerala" +general_settings = "Ĝeneralaj agordoj" +get_one_here = "Akiru viajn reCaptcha-ŝlosilojn ĉi tie: " +github_pre_release = "GitHub antaŭeldono" +google_analytics = "Google Analytics" +google_analytics_legacy = "Google Analytics (malnova)" +google_search_console = "Google Search Console" +home = "Hejmo" +if_left_empty_we_will_excerpt_it_from_the_content_below = "Se lasite malplena, ni eltiros ĝin el la malsupra enhavo" +if_the_url_is_left_empty_we_will_use_the_page_title = "Se la URL restas malplena, ni uzos la paĝan titolon" +if_the_url_is_left_empty_we_will_use_the_post_title = "Se la URL restas malplena, ni uzos la afiŝan titolon" +image_post = "Bilda afiŝo" +image_post_comment = "Krei blogafiŝon kun elstarigita bildo" +import = "Importi" +import_feed = "Komenci importi fluon" +import_rss = "Importi RSS" +import_rss_feed_2.0 = "Importi RSS-fluon 2.0" +insert_image = "Enmeti bildon" +invalid_error = "ERARO: Malĝusta uzantnomo aŭ pasvorto" +language = "Sistema lingvo" +link_name = "Ligila nomo" +link_post = "Ligila afiŝo" +link_post_comment = "Krei blogafiŝon kun elstarigita ligilo" +login = "Ensaluti" +login_page = "Ensaluta paĝo" +logout = "Elsaluti" +menu = "Menuo" +menus = "Menua redaktilo" +meta_description = "Metapriskribo" +meta_description_character = "Signoj por metapriskribo" +metatags = "Meta-etikedoj" +metatags_settings = "Meta-etikedaj agordoj" +mine = "Mia" +more = "Pli" +my_draft = "Mia malneto" +my_posts = "Miaj afiŝoj" +name = "Nomo" +newer = "Pli novaj" +next = "Sekva" +next_post = "Sekva afiŝo" +no_available_backup = "Neniu disponebla sekurkopio nuntempe." +no_draft_found = "Neniu malneto trovita" +no_posts_found = "Neniu afiŝo trovita" +no_related_post_found = "Neniu rilata afiŝo trovita" +no_scheduled_posts_found = "Neniu planita afiŝo trovita!" +no_search_results = "Neniuj serĉrezultoj" +nope = "Ne" +not = "Ne" +older = "Pli malnova" +only = "Nur" +operations = "Operacioj" +page = "Paĝo" +page_generation_time = "Generotempo de la paĝo" +pages = "Paĝoj" +pass_error = "La pasvorta kampo estas deviga" +password = "Pasvorto" +performance = "Rendimento" +performance_settings = "Rendimentaj agordoj" +permalink = "Fiksligilo" +popular = "Populara" +popular_posts = "Popularaj afiŝoj" +popular_posts_widget = "Fenestreto pri popularaj afiŝoj" +popular_posts_widget_at_most = "Popularaj afiŝoj fenestreto maksimume" +popular_tags = "Popularaj etikedoj" +post_by_author = "Afiŝoj de tiu aŭtoro" +posted_in = "Afiŝita en" +posted_on = "Afiŝita je" +posts = "Afiŝoj" +posts_by = "Afiŝoj de" +posts_draft = "Malnetaj afiŝoj" +posts_in_archive_page_at_most = "Afiŝoj en arkiva paĝo maksimume" +posts_in_category_page_at_most = "Afiŝoj en kategoria paĝo maksimume" +posts_in_front_page_show_at_most = "Afiŝoj en ĉefpaĝo maksimume" +posts_in_profile_page_at_most = "Afiŝoj en profilpaĝo maksimume" +posts_in_search_result_at_most = "Afiŝoj en serĉrezultoj maksimume" +posts_in_tag_page_at_most = "Afiŝoj en etikedpaĝo maksimume" +posts_in_type_page_at_most = "Afiŝoj en tipa paĝo maksimume" +posts_index_settings = "Agordoj de afiŝindekso" +posts_list = "Listo de afiŝoj" +posts_tagged = "Afiŝoj etikeditaj" +posts_with_type = "Afiŝoj kun tipo" +pre_release = "Antaŭeldono" +prev = "Antaŭa" +prev_post = "Antaŭa afiŝo" +preview = "Antaŭrigardo" +profile_for = "Profilo por" +proudly_powered_by = "Fiere funkciigita de" +publish = "Publikigi" +publish_draft = "Publikigi malneton" +published = "Publikigita" +quote_post = "Citaĵa afiŝo" +quote_post_comment = "Krei blogafiŝon kun elstarigita citaĵo" +rss_character = "RSS-signo" +rss_feeds_show_the_most_recent = "RSS-fluoj montras la plej freŝajn" +rss_settings = "RSS-agordoj" +read_more_text = "Legu pli teksto" +read_more_text_placeholder = "Legu pli" +reading = "Legado" +reading_settings = "Legadaj agordoj" +recaptcha = "Protekto de ensaluto" +recent_posts = "Lastatempaj afiŝoj" +recent_posts_widget_at_most = "Lastatempaj afiŝoj fenestreto maksimume" +regular_post = "Ordinara afiŝo" +regular_post_comment = "Krei ordinaran blogafiŝon" +related_posts = "Rilataj afiŝoj" +related_widget_posts_at_most = "Rilataj afiŝoj fenestreto maksimume" +revert_to_draft = "Reveni al malneto" +save = "Konservi" +save_config = "Konservi agordojn" +save_edit = "Konservi redakton" +save_menu = "Konservi menuon" +save_as_draft = "Konservi kiel malneto" +save_category = "Konservi kategorion" +scheduled = "Planita" +scheduled_posts = "Planitaj afiŝoj" +scheduled_tips = "Se afiŝo havas estontan daton/horon, ĝi aperos en planitaj afiŝoj" +search = "Serĉi" +search_for = "Serĉi por" +search_results_for = "Serĉrezultoj por" +search_results_not_found = "Neniuj serĉrezultoj trovita!" +secret_key = "Sekreta ŝlosilo" +settings = "Agordoj" +sign_in_to_start_your_session = "Ensalutu por komenci vian sesion" +site_key = "Retej-ŝlosilo" +sitemap = "Sitemap" +slug = "Slug" +social_media = "Sociaj retoj" +static_page = "Statika paĝo" +static_page_comment = "Krei statikan paĝon" +static_pages = "Statikaj paĝoj" +summary = "Resumo" +summary_character = "Resumo signo" +tag = "Etikedo" +tagcloud_widget_at_most = "Etikednubo maksimume" +tagline = "Subtitolo" +tagline_placeholder = "Sendatumbaza PHP Bloga Platformo" +tagline_description = "En kelkaj vortoj, klarigu pri kio temas via blogo." +tags = "Etikedoj" +this_is_legacy_code_usually_new_created_analytics_using_gtag_js = "Tio estas malnova kodo; kutime novkreita Analytics uzas gtag.js" +this_page_doesnt_exist = "Ĉi tiu paĝo ne ekzistas!" +time = "Tempo" +timezone = "Horzono" +title = "Titolo" +to_use_disqus_or_facebook_comment_you_need_to_provide_disqus_shortname_or_facebook_app_id = "Por uzi Disqus aŭ Facebook-komentojn, vi devas provizi vian Disqus-mallongnomon aŭ Facebook App ID." +token_error = "CSRF-ĵetono ne ĝustas" +tools = "Iloj" +twitter_account = "Twitter-konto" +type_to_search = "Tajpu por serĉi" +uncategorized = "Senkategoriaj" +uncategorized_comment = "Temoj, kiuj ne bezonas kategorion aŭ ne konvenas al ajna alia ekzistanta kategorio" +universal_analytics = "Universal Analytics (gtag.js)" +unknown_feed_format = "Nekonata flua formato" +update = "Ĝisdatigi" +update_available = "Disponeblas ĝisdatigo" +update_draft = "Ĝisdatigi malneton" +update_post = "Ĝisdatigi afiŝon" +update_to = "Ĝisdatigi al" +upload = "Alŝuti" +user = "Uzanto" +user_error = "La uzanta kampo estas deviga" +valid_values_range_from_0_to_1.0._see = "Validaj valoroj intervalas de 0.0 ĝis 1.0. Vidu" +video_post = "Filmeta afiŝo" +video_post_comment = "Krei blogafiŝon kun elstarigita filmeto" +view = "Vidi" +view_post = "Vidi" +views = "Vidoj" +widget = "Fenestreto" +widget_settings = "Fenestreta agordo" +would_you_like_to_try_our = "Ĉu vi ŝatus provi nian " +yes_im_in = "Jes, mi ŝatus" +yes_not_recommended = "Jes (ne rekomendita)" +you_dont_have_permission_to_access_this_page = "Vi ne rajtas aliri ĉi tiun paĝon" +your_new_config_key = "Via nova agordo-ŝlosilo" +your_new_value = "Via nova valoro" +your_backups = "Viaj sekurkopioj" +your_latest_blog_posts = "Viaj plej novaj blogafiŝoj" +your_recent_posts = "Viaj lastatempaj afiŝoj" +by = "de" +hint_use_ctrlcmdf_to_search_for_your_config_key_or_value = "rimarko: Uzu Ctrl/CMD+F por serĉi vian agordo-ŝlosilon aŭ valoron." +homepage = "Hejmpaĝo" +instead = "anstataŭ" +item_class = "Enmetu CSS-klason" +item_slug = "Enmetu URL-on por la ligilo" +now = "nun" +of = "de" +optional = "nedeviga" +post_your_post_slug = "/post/via-afiŝ-limako" +pro_tips_you_can_create_custom_config_key_and_print_out_your_config_key_value_anywhere_in_your_template = "profesiaj konsiloj: Vi povas krei proprajn agordo-ŝlosilojn kaj printi ilian valoron ie ajn en via ŝablono." +read_more = "Legu pli" +widget_key_placeholder = "12345abcde" +year_month_your_post_slug = "/jaro/monato/via-afiŝ-limako" +your_key = "via.ŝlosilo" +summary_behavior = "Konduto de resumo" +default = "Defaŭlta" +check_shortcode = "Kontroli la mallongigon" +in_summary_mode_whether_check_the_shortcode_first_or_not_before_trim_the_content_to_x_char = "En resumreĝimo, ĉu unue kontroli la mallongigon antaŭ ol mallongigi la enhavon ĝis x signoj" +manage_users = "Administri uzantojn" +add_user = "Aldoni uzanton" +username = "Uzantnomo" +role = "Rolo" +change_password = "Ŝanĝi pasvorton" +config_mfa = "Agordi MFA" +mfacode = "MFA-kodo" +verify_code = "Kontroli la MFA-kodon" +verify_password = "Kontroli la nunan pasvorton" +manualsetupkey = "Vi ankaŭ povas mane enmeti la agordan ŝlosilon" +mfa_error = "MFA-kodo estas malĝusta" +disablemfa = "Malebligi MFA" +enable_auto_save = "Ebligi aŭtomatan konservadon" +explain_autosave = "Kiam ebligita, nova enhavo aŭ malneto estos aŭtomate konservita ĉiun 60 sekundojn." +login_protect_system = "Ensaluta protekta sistemo" +cloudflare_info = "Rigardu la dokumentaron de Cloudflare pri Turnstile: " +mfa_config = "Plurpaŝa Aŭtentikigo (MFA)" +set_mfa_globally = "Agordi la staton de MFA" +explain_mfa = "Kiam ebligita, MFA estas nedeviga por ĉiuj uzantoj. Kiam malebligita, neniu povas uzi ĝin kaj la kampo en la ensaluta paĝo kaŝiĝas." +set_version_publicly = "Versio videbleco" +explain_version = "Defaŭlte la versio de HTMLy videblas en la fontkodo, sed iuj administrantoj eble preferas kaŝi ĝin." +focus_mode = "Ŝalti fokuson" +writing = "Verkado" +writing_settings = "Verkadaj agordoj" +security = "Sekureco" +security_settings = "Sekurecaj agordoj" +msg_error_field_req_username = "La kampo Uzantnomo estas deviga." +msg_error_field_req_password = "La kampo Pasvorto estas deviga." +msg_error_field_req_title = "La kampo Titolo estas deviga." +msg_error_field_req_content = "La kampo Enhavo estas deviga." +msg_error_field_req_tag = "La kampo Etikedo estas deviga." +msg_error_field_req_image = "La kampo Bildo estas deviga." +msg_error_field_req_video = "La kampo Filmeto estas deviga." +msg_error_field_req_link = "La kampo Ligilo estas deviga." +msg_error_field_req_quote = "La kampo Citaĵo estas deviga." +msg_error_field_req_audio = "La kampo Sono estas deviga." +msg_error_field_req_feedurl = "Vi devas precizigi la fluan URL-on." +rss_feeds_description_select = "RSS-priskribo" +rss_description_body = "Korpo de afiŝo" +rss_description_meta = "Metapriskribo de afiŝo" +admin_theme = "Admin-etoso" +admin_theme_light = "Hela" +admin_theme_dark = "Malhela" + diff --git a/lang/es_ES.ini b/lang/es_ES.ini new file mode 100644 index 0000000..830ae2c --- /dev/null +++ b/lang/es_ES.ini @@ -0,0 +1,326 @@ +about = "Acerca de" +add_category = "Añadir categoría" +add_content = "Agregar contenido" +add_link = "Agregar enlace" +add_menu = "Agregar menú" +add_new_page = "Agregar nueva página" +add_new_post = "Agregar nueva publicación" +add_source_link_optional = "Agregar enlace de origen (opcional)" +add_sub = "Agregar sub categoría" +address_url = "Address (URL)" +admin = "Administración" +admin_panel_style_based_on = "Estilo del panel de administración basado en" +all_blog_posts = "Todas las publicaciones del blog" +all_cache_has_been_deleted = "¡Se ha eliminado todo el caché!" +all_posts_tagged = "Todas las publicaciones etiquetadas" +archive_for = "Archivar para" +archive_page_for = "Página de archivo para" +archives = "Archivo" +are_you_sure_you_want_to_delete_ = "Está seguro de que desea eliminar % s ?" +at_the_moment_you_are_using_auto_generated_menu = "En este momento estás utilizando el menú generado automáticamente." +audio_post = "Publicación de audio" +audio_post_comment = "Creación de una publicación de blog con audio destacado" +author = "Autor" +author_description = "Sólo otro usuario HTMLy" +back_to = "Volver a" +backup = "Respaldo" +blog_description = "En un párrafo, cuéntanos más sobre tu blog." +blog_theme = "Tema del blog" +blog_title = "Título del blog" +blog_title_placeholder = "Mi HTMLy Blog" +blog_posts_displayed_as = "Las publicaciones del blog se muestran como" +breadcrumb_home_text = "Texto de inicio de ruta de navegación" +by_using_this_importer_you_confirm_that_the_feed_is_yours_or_that_at_least_you_have_the_authority_to_publish_it = "Al utilizar este importador, aceptas si el feed es tuyo o al menos tienes la autoridad para publicarlo." +css_class_optional = "Clase CSS (opcional)" +cache_expiration = "Caducidad de la caché (en horas)" +cache_off = "Caché desactivado" +cache_timestamp = "Marca de tiempo de caché" +cancel = "Cancelar" +cannot_read_feed_content = "No se puede leer el contenido del feed" +captcha_error = "reCaptcha no es correcto" +categories = "Categorías" +category = "Categoría" +check_update = "Buscar actualizaciones" +clear_cache = "Limpiar cache" +comma_separated_values = "Valores separados por comas" +comment_system = "Sistema de comentarios" +comments = "Comentarios" +config = "Configuración" +congrats_you_have_the_latest_version_of_htmly = "¡Felicidades! Tienes la última versión de HTMLy." +content = "Contenido" +contents = "Contenido" +copyright_line = "Línea de derechos de autor" +copyright_line_placeholder = "(c) Su nombre." +create_backup = "Crear copia de seguridad" +created = "Creado" +custom = "Personalizado" +custom_settings = "Configuración personalizada" +dashboard = "Panel de control" +date = "Fecha" +date_format = "Formato de fecha" +delete = "Eliminar" +description = "Descripción" +disable = "Desactivar" +disabled = "Desactivado" +disqus_shortname = "Nombre corto de Disqus" +disqus_shortname_placeholder = "htmly" +draft = "Borrador" +edit = "Editar" +edit_category = "Editar categoría" +edit_post = "Editar" +edit_profile = "Editar perfil" +enable = "Habilitar" +enable_blog_url = "Habilitar URL del blog" +enter_image_url = "Ingrese la URL de la imagen" +facebook_app_id = "ID de aplicación de Facebook" +facebook_page = "página de Facebook" +featured_audio = "Audio destacado" +featured_image = "Imagen destacada" +featured_link = "Enlace destacado" +featured_quote = "Cita destacada" +featured_video = "Vídeo destacado" +feed_url = "URL de la fuente" +filename = "Nombre del archivo" +follow = "Seguir" +for_google_site_verification_meta = "Para meta de verificación del sitio de Google" +front_page_displays = "Visualizaciones de la página principal" +full_post = "Publicación completa" +general = "Generales" +general_settings = "Configuración general" +get_one_here = "Consigue uno aquí" +github_pre_release = "Prelanzamiento de Github" +google_analytics = "Google Analytics" +google_analytics_legacy = "Google Analytics (heredado)" +google_search_console = "Consola de búsqueda de Google" +home = "Inicio" +if_left_empty_we_will_excerpt_it_from_the_content_below = "Si lo dejamos vacío, lo extraeremos del contenido siguiente" +if_the_url_is_left_empty_we_will_use_the_page_title = "Si la URL se deja vacía usaremos el título de la página" +if_the_url_is_left_empty_we_will_use_the_post_title = "Si la URL se deja vacía usaremos el título de la publicación" +image_post = "Publicación de imagen" +image_post_comment = "Crear publicación de blog con imagen destacada" +import = "Importar" +import_feed = "Iniciar importación de feed" +import_rss = "Importar RSS" +import_rss_feed_2.0 = "Importar fuente RSS 2.0" +insert_image = "Insertar imagen" +invalid_error = "ERROR: nombre de usuario o contraseña no válidos" +language = "Idioma del sistema" +link_name = "Nombre del enlace" +link_post = "Enlace de la Publicación" +link_post_comment = "Creación de una publicación de blog con un enlace destacado" +login = "acceso" +login_page = "Página de inicio de sesión" +logout = "Cerrar sesión" +menu = "menú" +menus = "Editora de menús" +meta_description = "Meta descripción" +meta_description_character = "Carácter de meta descripción" +metatags = "Metaetiquetas" +metatags_settings = "Configuración de metaetiquetas" +mine = "Mía" +more = "Más" +my_draft = "Mi borrador" +my_posts = "Mis publicaciones" +name = "Nombre" +newer = "Más nuevo" +next = "Próximo" +next_post = "Publicación siguiente" +no_available_backup = "No hay copia de seguridad disponible en este momento." +no_draft_found = "No se encontró ningún borrador" +no_posts_found = "No se han encontrado publicaciones" +no_related_post_found = "No se encontró ninguna publicación relacionada" +no_scheduled_posts_found = "No scheduled posts found!" +no_search_results = "Sin resultados de búsqueda" +nope = "Nope" +not = "No" +older = "Mayor" +only = "Only" +operations = "Operaciones" +page = "Página" +page_generation_time = "Tiempo de generación de página" +pages = "Paginas" +pass_error = "El campo de contraseña es obligatorio" +password = "Contraseña" +performance = "Rendimiento" +performance_settings = "Configuración de rendimiento" +permalink = "enlace permanente" +popular = "populares" +popular_posts = "Entradas populares" +popular_posts_widget = "Widget de publicaciones populares" +popular_posts_widget_at_most = "Widget de publicaciones populares como máximo" +popular_tags = "Etiquetas Populares" +post_by_author = "Publicaciones de este autor" +posted_in = "Publicado en" +posted_on = "Publicado en" +posts = "Publicaciones" +posts_by = "Publicaciones por" +posts_draft = "Borrador de publicaciones" +posts_in_archive_page_at_most = "Publicaciones en la página de archivo como máximo" +posts_in_category_page_at_most = "Publicaciones en la página de categoría como máximo" +posts_in_front_page_show_at_most = "Las publicaciones en la página principal se muestran como máximo" +posts_in_profile_page_at_most = "Publicaciones en la página de perfil como máximo" +posts_in_search_result_at_most = "Publicaciones en el resultado de búsqueda como máximo" +posts_in_tag_page_at_most = "Publicaciones en la página de etiquetas como máximo" +posts_in_type_page_at_most = "Publicaciones en la página tipo como máximo" +posts_index_settings = "Configuración del índice de publicaciones" +posts_list = "Lista de publicaciones" +posts_tagged = "Publicaciones etiquetadas" +posts_with_type = "Publicaciones con tipo" +pre_release = "Prelanzamiento" +prev = "Antiguo" +prev_post = "Publicación anterior" +preview = "Vista anticipada" +profile_for = "Perfil para" +proudly_powered_by = "Orgullosamente impulsado por" +publish = "Publicar" +publish_draft = "Publicar borrador" +published = "Publicado" +quote_post = "Publicación de cotización" +quote_post_comment = "Crear publicación de blog con cita destacada" +rss_character = "carácter RSS" +rss_feeds_show_the_most_recent = "Los canales RSS muestran los más recientes" +rss_settings = "Configuración RSS" +read_more_text = "Leer más texto" +read_more_text_placeholder = "Leer más" +reading = "Leyendo" +Reading_settings = "Configuración de lectura" +recaptcha = "reCAPTCHA" +recent_posts = "Mensajes recientes" +recientes_posts_widget_at_most = "Widget de publicaciones recientes como máximo" +regular_post = "Correo ordinario" +regular_post_comment = "Crear una publicación de blog regular" +related_posts = "Artículos Relacionados" +related_widget_posts_at_most = "Publicaciones de widgets relacionados como máximo" +revert_to_draft = "Volver a borrador" +save = "Salvar" +save_config = "Guardar configuración" +save_edit = "Guardar edición" +save_menu = "Guardar menú" +save_as_draft = "Guardar como borrador" +save_category = "Guardar categoría" +scheduled = "Programado" +scheduled_posts = "Publicaciones programadas" +scheduled_tips = "Al publicar una publicación con fecha u hora futura, irá a las publicaciones programadas" +search = "Buscar" +search_for = "Buscar" +search_results_for = "Resultados de búsqueda para" +search_results_not_found = "¡No se encontraron resultados de búsqueda!" +secret_key = "Clave secreta" +settings = "Configuración" +sign_in_to_start_your_session = "Inicia sesión para iniciar tu sesión" +site_key = "Clave del sitio" +sitestamp = "Mapa del sitio" +slug = "Babosa" +social_media = "Medios sociales" +static_page = "Página estática" +static_page_comment = "Creando página estática" +static_pages = "Páginas estáticas" +summary = "Sumario" +summary_character = "Carácter sumario" +tag = "Etiqueta" +tagcloud_widget_at_most = "TagCloud como máximo" +tagline = "Tagline" +tagline_placeholder = "Plataforma de blogs PHP sin base de datos" +tagline_description = "En pocas palabras, explica de qué trata este blog." +tags = "Etiquetas" +this_is_legacy_code_usually_new_created_analytics_using_gtag_js = "Este es el código heredado. Generalmente se crean nuevos análisis usando gtag.js." +this_page_doesnt_exist = "¡Esta página no existe!" +time = "Tiempo" +timezone = "Zona horaria" +title = "Título" +to_use_disqus_or_facebook_comment_you_need_to_provide_disqus_shortname_or_facebook_app_id = "Para utilizar Disqus o comentarios de Facebook, debe proporcionar el nombre corto de Disqus o el ID de la aplicación de Facebook." +token_error = "El token CSRF no es correcto" +tools = "Útiles" +twitter_account = "cuenta de Twitter" +type_to_search = "Escriba para buscar" +uncategorized = "Sin categorizar" +uncategorized_comment = "Temas que no necesitan una categoría o que no encajan en ninguna otra categoría existente" +universal_analytics = "Análisis universal (gtag.js)" +unknown_feed_format = "Formato de alimentación desconocido" +update = "Actualizar" +update_available = "Actualización disponible" +update_draft = "Actualizar borrador" +update_post = "Actualizar publicación" +update_to = "Update to" +upload = "subir" +user = "Usuario" +user_error = "El campo de usuario es obligatorio" +valid_values_range_from_0_to_1.0._see = "Los valores válidos varían de 0,0 a 1,0. Ver" +video_post = "Publicación de video" +video_post_comment = "Creación de una publicación de blog con video destacado" +view = "Ver" +view_post = "Ver" +views = "Puntos de vista" +widget = "Widget" +widget_settings = "Configuración de widgets" +would_you_like_to_try_our = "¿Te gustaría probar nuestra " +yes_im_in = "Sí, estoy en" +yes_not_recommended = "Sí (no recomendado)" +you_dont_have_permission_to_access_this_page = "No tienes permiso para acceder a esta pagina" +your_new_config_key = "Su nueva clave de configuración" +your_new_value = "Tu nuevo valor" +your_backups = "Tus copias de seguridad" +your_latest_blog_posts = "Tus últimas publicaciones de blog" +your_recent_posts = "Tus publicaciones recientes" +by = "por" +hint_use_ctrlcmdf_to_search_for_your_config_key_or_value = "sugerencia: Utilice Ctrl/CMD + F para buscar su clave o valor de configuración." +homepage = "página de inicio" +instead = "en lugar" +item_class = "Insertar clase CSS" +item_slug = "Insertar URL del enlace" +now = "ahora" +of = "de" +optional = "opcional" +post_your_post_slug = "/post/tu-post-slug" +pro_tips_you_can_create_custom_config_key_and_print_out_your_config_key_value_anywhere_in_your_template = "consejos profesionales: Puede crear una clave de configuración personalizada e imprimir el valor de su clave de configuración en cualquier lugar de su plantilla." +read_more = "Lee mas" +widget_key_placeholder = "12345abcde" +year_month_your_post_slug = "/year/month/your-post-slug" +your_key = "your.key" +summary_behavior = "Comportamiento resumido" +default = "Predeterminado" +check_shortcode = "comprobar el código corto" +in_summary_mode_whether_check_the_shortcode_first_or_not_before_trim_the_content_to_x_char = "En el modo resumen, verifique el código abreviado primero o no antes de recortar el contenido a x char" +manage_users = "Administrar usuarios" +add_user = "Agregar usuario" +username = "nombre de usuario" +role = "rol" +change_password = "Cambiar contraseña" +config_mfa = "Configure MFA" +mfacode = "MFA Code" +verify_code = "Verify the MFA code" +verify_password = "Verify current password" +manualsetupkey = "You can also manually add the setup key" +mfa_error = "MFA code is not correct" +disablemfa = "Disable MFA" +enable_auto_save = "Enable Auto Save" +explain_autosave = "When enabled, new content or draft will be automatically saved every 60 seconds." +login_protect_system = "Login protection system" +cloudflare_info = "Review Cloudflare's Turnstile documentation: " +mfa_config = "Multi Factor Authentication (MFA)" +set_mfa_globally = "Set the status of MFA" +explain_mfa = "When enabled, MFA is optional for all users. When disabled, no users can use it and it hides the field on the login page." +set_version_publicly = "Version Visibility" +explain_version = "By default the version of HTMLy is visible publicly in the source code, some admins may prefer to hide this." +focus_mode = "Toggle Focus" +writing = "Writing" +writing_settings = "Writing Settings" +security = "Security" +security_settings = "Security Settings" +msg_error_field_req_username = "Username field is required." +msg_error_field_req_password = "Password field is required." +msg_error_field_req_title = "Title field is required." +msg_error_field_req_content = "Content field is required." +msg_error_field_req_tag = "Tag field is required." +msg_error_field_req_image = "Image field is required." +msg_error_field_req_video = "Video field is required." +msg_error_field_req_link = "Link field is required." +msg_error_field_req_quote = "Quote field is required." +msg_error_field_req_audio = "Audio field is required." +msg_error_field_req_feedurl = "You need to specify the feed url." +rss_feeds_description_select = "RSS Description" +rss_description_body = "Post Body" +rss_description_meta = "Post Meta Description" +admin_theme = "Admin theme" +admin_theme_light = "Light" +admin_theme_dark = "Dark" diff --git a/lang/fa_IR.ini b/lang/fa_IR.ini new file mode 100644 index 0000000..7a2b523 --- /dev/null +++ b/lang/fa_IR.ini @@ -0,0 +1,326 @@ +about = "درباره ما" +add_category = "افزودن دسته بندی" +add_content = "افزودن محتوا" +add_link = "افزودن لینک" +add_menu = "افزودن منو" +add_new_page = "افزودن صفحه جدید" +add_new_post = "افزودن پست جدید" +add_source_link_optional = "Add source link (optional)" +add_sub = "افزودن صفحه فرعی" +address_url = "Address (URL)" +admin = "ادمین" +admin_panel_style_based_on = "Admin panel style based on" +all_blog_posts = "تمام ارسالی ها" +all_cache_has_been_deleted = "حافظه کش پاک شد!" +all_posts_tagged = "All posts tagged" +archive_for = "Archive for" +archive_page_for = "Archive page for" +archives = "آرشیو" +are_you_sure_you_want_to_delete_ = "Are you sure you want to delete %s?" +at_the_moment_you_are_using_auto_generated_menu = "At the moment you are using auto generated menu." +audio_post = "پست های صوتی" +audio_post_comment = "Creating blog post with featured audio" +author = "نویسنده" +author_description = "Just another HTMLy user" +back_to = "برگشت به" +backup = "پشتیبان" +blog_description = "In one paragraph, tell us more about your blog." +blog_theme = "تم وبلاگ" +blog_title = "عنوان وبلاگ" +blog_title_placeholder = "My HTMLy Blog" +blog_posts_displayed_as = "Blog posts displayed as" +breadcrumb_home_text = "Breadcrumb home text" +by_using_this_importer_you_confirm_that_the_feed_is_yours_or_that_at_least_you_have_the_authority_to_publish_it = "By using this importer you are agree if the feed is yours or at least you have the authority to publish it." +css_class_optional = "CSS Class (optional)" +cache_expiration = "Cache expiration (in hours)" +cache_off = "Cache off" +cache_timestamp = "Cache timestamp" +cancel = "انصراف" +cannot_read_feed_content = "Cannot read feed content" +captcha_error = "reCaptcha not correct" +categories = "دسته بندی ها" +category = "دسته بندی" +check_update = "بررسی به روزرسانی" +clear_cache = "پاک کردن حافظه کش" +comma_separated_values = "Comma separated values" +comment_system = "Comment system" +comments = "نظرات" +config = "تنظیمات" +congrats_you_have_the_latest_version_of_htmly = "Congrats! You have the latest version of HTMLy." +content = "محتوا" +contents = "فهرست" +copyright_line = "خط کپی رایت" +copyright_line_placeholder = "(c) Your name." +create_backup = "ساجاد نسخه پشتیبان" +created = "ایجاد شد" +custom = "سفارشی" +custom_settings = "تنظیمات سفارشی" +dashboard = "داشبورد" +date = "تاریخ" +date_format = "فرمت تاریخ" +delete = "حذف" +description = "توضیحات" +disable = "غیر فعال" +disabled = "غیرفعال شد" +disqus_shortname = "Disqus shortname" +disqus_shortname_placeholder = "htmly" +draft = "پیش نویس" +edit = "ویرایش" +edit_category = "ویرایش دسته بندی" +edit_post = "ویرایش" +edit_profile = "ویرایش پروفایل" +enable = "فعال" +enable_blog_url = "Enable blog URL" +enter_image_url = "ورود آدرس تصویر" +facebook_app_id = "Facebook App ID" +facebook_page = "Facebook page" +featured_audio = "Featured Audio" +featured_image = "Featured Image" +featured_link = "Featured Link" +featured_quote = "Featured Quote" +featured_video = "Featured Video" +feed_url = "Feed URL" +filename = "نام فایل" +follow = "دنبال کردن" +for_google_site_verification_meta = "For google-site-verification meta" +front_page_displays = "نمایش صفحه اول" +full_post = "پست کامل" +general = "عمومی" +general_settings = "تنظیمات عمومی" +get_one_here = "Get one here" +github_pre_release = "Github pre-release" +google_analytics = "Google Analytics" +google_analytics_legacy = "Google Analytics (legacy)" +google_search_console = "Google Search Console" +home = "صفحه اصلی" +if_left_empty_we_will_excerpt_it_from_the_content_below = "If leave empty we will excerpt it from the content below" +if_the_url_is_left_empty_we_will_use_the_page_title = "If the url leave empty we will use the page title" +if_the_url_is_left_empty_we_will_use_the_post_title = "If the url leave empty we will use the post title" +image_post = "ارسال تصویر" +image_post_comment = "ایجاد پست وبلاگ به همراه تصویر" +import = "وارد كردن" +import_feed = "Start Import Feed" +import_rss = "Import RSS" +import_rss_feed_2.0 = "Import RSS Feed 2.0" +insert_image = "درج تصویر" +invalid_error = "ERROR: Invalid username or password" +language = "زیان سیستم" +link_name = "نام لینک" +link_post = "لینک پست" +link_post_comment = "ایجاد پست وبلگ به همراه لینک" +login = "ورود" +login_page = "صفحه ورود" +logout = "خروج" +menu = "منو" +menus = "Menu Editor" +meta_description = "توضیحات متا" +meta_description_character = "Meta description character" +metatags = "متاتگ" +metatags_settings = "Metatags Settings" +mine = "Mine" +more = "بیشتر" +my_draft = "پیش نویس های من" +my_posts = "پست های من" +name = "نام" +newer = "جدیدتر" +next = "بعد" +next_post = "پست بعدی" +no_available_backup = "هیچ نسخه پشتیبانی وجود ندارد" +no_draft_found = "پیش نویس یافت نشد" +no_posts_found = "هیچ پستی ارسال نشده است" +no_related_post_found = "پست مرتبطی یافت نشد" +no_scheduled_posts_found = "No scheduled posts found!" +no_search_results = "No search results" +nope = "Nope" +not = "No" +older = "قدیمی ترها" +only = "فقط" +operations = "عملیات" +page = "صفحه" +page_generation_time = "Page generation time" +pages = "صفحه ها" +pass_error = "Password field is required" +password = "کلمه عبور" +performance = "پرفورمنس" +performance_settings = "Performance Settings" +permalink = "پیوند ثابت" +popular = "محبوب" +popular_posts = "پست های محبوب" +popular_posts_widget = "Popular posts widget" +popular_posts_widget_at_most = "Popular posts widget at most" +popular_tags = "تگ های محبوب" +post_by_author = "Posts by this author" +posted_in = "ارسال شده" +posted_on = "Posted on" +posts = "پست ها" +posts_by = "ارسال توسط" +posts_draft = "Posts draft" +posts_in_archive_page_at_most = "Posts in archive page at most" +posts_in_category_page_at_most = "Posts in category page at most" +posts_in_front_page_show_at_most = "Posts in front page show at most" +posts_in_profile_page_at_most = "Posts in profile page at most" +posts_in_search_result_at_most = "Posts in search result at most" +posts_in_tag_page_at_most = "Posts in tag page at most" +posts_in_type_page_at_most = "Posts in type page at most" +posts_index_settings = "Posts index settings" +posts_list = "لیست پست ها" +posts_tagged = "Posts tagged" +posts_with_type = "Posts with type" +pre_release = "Pre-release" +prev = "قدیمی" +prev_post = "پست قبلی" +preview = "مشاهده" +profile_for = "Profile for" +proudly_powered_by = "Proudly powered by" +publish = "انتشار" +publish_draft = "انتشار پیش نویس" +published = "منتشر شد" +quote_post = "Quote post" +quote_post_comment = "Creating blog post with featured quote" +rss_character = "RSS character" +rss_feeds_show_the_most_recent = "RSS feeds show the most recent" +rss_settings = "RSS settings" +read_more_text = "Read more text" +read_more_text_placeholder = "ادامه مطلب" +reading = "خواندن" +reading_settings = "Reading Settings" +recaptcha = "reCAPTCHA" +recent_posts = "پست های اخیر" +recent_posts_widget_at_most = "Recent posts widget at most" +regular_post = "پست عادی" +regular_post_comment = "ایجاد پست عادی وبلاگ" +related_posts = "پست های مرتبط" +related_widget_posts_at_most = "Related widget posts at most" +revert_to_draft = "Revert to draft" +save = "ذخیره" +save_config = "ذخیره تنظیمات" +save_edit = "Save Edit" +save_menu = "Save menu" +save_as_draft = "Save as draft" +save_category = "دخیره دسته بندی" +scheduled = "Scheduled" +scheduled_posts = "Scheduled posts" +scheduled_tips = "Publishing a post with future date or time, it will go into scheduled posts" +search = "جستجو" +search_for = "جستجو برای" +search_results_for = "Search results for" +search_results_not_found = "Search results not found!" +secret_key = "Secret Key" +settings = "تنظیمات" +sign_in_to_start_your_session = "Sign in to start your session" +site_key = "Site Key" +sitemap = "نقشه سایت" +slug = "Slug" +social_media = "رسانه های اجتماعی" +static_page = "صفحه ایستا" +static_page_comment = "ایجاد صفحه ایستا" +static_pages = "صفحه های ایستا" +summary = "خلاصه" +summary_character = "Summary character" +tag = "تگ" +tagcloud_widget_at_most = "TagCloud at most" +tagline = "Tagline" +tagline_placeholder = "Databaseless PHP Blogging Platform" +tagline_description = "In a few words, explain what this blog is about." +tags = "تگ ها" +this_is_legacy_code_usually_new_created_analytics_using_gtag_js = "This is legacy code. Usually new created analytics using gtag.js" +this_page_doesnt_exist = "این صفحه وجود ندارد" +time = "ساعت" +timezone = "Timezone" +title = "عنوان" +to_use_disqus_or_facebook_comment_you_need_to_provide_disqus_shortname_or_facebook_app_id = "To use Disqus or Facebook comments you need to provide your Disqus shortname or your Facebook App ID." +token_error = "CSRF Token not correct" +tools = "ابزار" +twitter_account = "Twitter account" +type_to_search = "برای جستجو تایپ کنید" +uncategorized = "دسته بندی نشده" +uncategorized_comment = "Topics that don't need a category, or don't fit into any other existing category" +universal_analytics = "Universal Analytics (gtag.js)" +unknown_feed_format = "Unknown feed format" +update = "به روز رسانی" +update_available = "Update Available" +update_draft = "به روز رسانی پیش نویس" +update_post = "به روز رسانی پست" +update_to = "به روزرسانی به" +upload = "ارسال" +user = "نام کاربری" +user_error = "User field is required" +valid_values_range_from_0_to_1.0._see = "Valid values range from 0.0 to 1.0. See" +video_post = "پست ویدیویی" +video_post_comment = "Creating blog post with featured video" +view = "View" +view_post = "View" +views = "Views" +widget = "ویجت" +widget_settings = "Widget Settings" +would_you_like_to_try_our = "Would you like to try our " +yes_im_in = "Yes I'm in" +yes_not_recommended = "Yes (not recommended)" +you_dont_have_permission_to_access_this_page = "You don't have permission to access this page" +your_new_config_key = "Your New Config Key" +your_new_value = "Your New Value" +your_backups = "Your backups" +your_latest_blog_posts = "آخرین پست های وبلاگ" +your_recent_posts = "آخرین پست ها" +by = "توسط" +hint_use_ctrlcmdf_to_search_for_your_config_key_or_value = "hint: Use Ctrl/CMD + F to search for your config key or value." +homepage = "صفحه اصلی" +instead = "به جای" +item_class = "Insert CSS class" +item_slug = "افزودن لینک" +now = "now" +of = "of" +optional = "اختیاری" +post_your_post_slug = "/post/your-post-slug" +pro_tips_you_can_create_custom_config_key_and_print_out_your_config_key_value_anywhere_in_your_template = "pro tips: You can create custom config keys and print out your config key value anywhere in your template." +read_more = "read more" +widget_key_placeholder = "12345abcde" +year_month_your_post_slug = "/year/month/your-post-slug" +your_key = "your.key" +summary_behavior = "Summary behavior" +default = "Default" +check_shortcode = "Check shortcode" +in_summary_mode_whether_check_the_shortcode_first_or_not_before_trim_the_content_to_x_char = "In summary mode, whether check the shortcode first or not before trim the content to x char" +manage_users = "Manage users" +add_user = "Add user" +username = "Username" +role = "Role" +change_password = "Change password" +config_mfa = "Configure MFA" +mfacode = "MFA Code" +verify_code = "Verify the MFA code" +verify_password = "Verify current password" +manualsetupkey = "You can also manually add the setup key" +mfa_error = "MFA code is not correct" +disablemfa = "Disable MFA" +enable_auto_save = "Enable Auto Save" +explain_autosave = "When enabled, new content or draft will be automatically saved every 60 seconds." +login_protect_system = "Login protection system" +cloudflare_info = "Review Cloudflare's Turnstile documentation: " +mfa_config = "Multi Factor Authentication (MFA)" +set_mfa_globally = "Set the status of MFA" +explain_mfa = "When enabled, MFA is optional for all users. When disabled, no users can use it and it hides the field on the login page." +set_version_publicly = "Version Visibility" +explain_version = "By default the version of HTMLy is visible publicly in the source code, some admins may prefer to hide this." +focus_mode = "Toggle Focus" +writing = "Writing" +writing_settings = "Writing Settings" +security = "Security" +security_settings = "Security Settings" +msg_error_field_req_username = "Username field is required." +msg_error_field_req_password = "Password field is required." +msg_error_field_req_title = "Title field is required." +msg_error_field_req_content = "Content field is required." +msg_error_field_req_tag = "Tag field is required." +msg_error_field_req_image = "Image field is required." +msg_error_field_req_video = "Video field is required." +msg_error_field_req_link = "Link field is required." +msg_error_field_req_quote = "Quote field is required." +msg_error_field_req_audio = "Audio field is required." +msg_error_field_req_feedurl = "You need to specify the feed url." +rss_feeds_description_select = "RSS Description" +rss_description_body = "Post Body" +rss_description_meta = "Post Meta Description" +admin_theme = "Admin theme" +admin_theme_light = "Light" +admin_theme_dark = "Dark" diff --git a/lang/fr_FR.ini b/lang/fr_FR.ini new file mode 100644 index 0000000..c2e341f --- /dev/null +++ b/lang/fr_FR.ini @@ -0,0 +1,326 @@ +about = "À propos" +add_category = "Ajouter une catégorie" +add_content = "Ajouter du contenu" +add_link = "Ajouter le lien" +add_menu = "Ajouter un menu" +add_new_page = "Ajouter une page" +add_new_post = "Ajouter un billet" +add_source_link_optional = "Ajouter le lien source (optionnel)" +add_sub = "Ajouter une sous-page" +address_url = "Adresse (URL)" +admin = "Administrateur" +admin_panel_style_based_on = "Style du panneau d'administration basé sur" +all_blog_posts = "Tous les billets de blog" +all_cache_has_been_deleted = "Le cache a été vidé !" +all_posts_tagged = "Tous les billets taggués" +archive_for = "Archive pour" +archive_page_for = "Page d'archive pour" +archives = "Archives" +are_you_sure_you_want_to_delete_ = "Êtes-vous sûr de vouloir supprimer %s ?" +at_the_moment_you_are_using_auto_generated_menu = "Pour le moment, vous utilisez le menu généré automatiquement." +audio_post = "Billet audio" +audio_post_comment = "Créer un billet de blog avec un fichier audio" +author = "Auteur" +author_description = "Un autre utilisateur de HTMLy" +back_to = "Retourner vers" +backup = "Sauvegarde" +blog_description = "En un paragraphe, dites-nous en plus sur votre blog." +blog_theme = "Thème graphique du blog" +blog_title = "Titre du blog" +blog_title_placeholder = "Mon blog HTMLy" +blog_posts_displayed_as = "Billets affichés comme" +breadcrumb_home_text = "Texte d'accueil du fil d'Ariane" +by_using_this_importer_you_confirm_that_the_feed_is_yours_or_that_at_least_you_have_the_authority_to_publish_it = "En utilisant cet importateur, vous devez vous assurer qu'il s'agit de votre flux RSS ou que vous ayez l'autorisation de publier son contenu." +css_class_optional = "Classe CSS (optionnel)" +cache_expiration = "Durée avant l'expiration du cache (en heures)" +cache_off = "Désactiver le cache" +cache_timestamp = "Horodatage du cache" +cancel = "Annuler" +cannot_read_feed_content = "Impossible de lire le contenu du flux" +captcha_error = "reCaptcha incorrect" +categories = "Catégories" +category = "Catégorie" +check_update = "Rechercher des mises à jour" +clear_cache = "Nettoyer le cache" +comma_separated_values = "Valeurs séparées par des virgules" +comment_system = "Système de commentaires" +comments = "Commentaires" +config = "Configuration" +congrats_you_have_the_latest_version_of_htmly = "Félicitations ! Vous disposez de la dernière version de HTMLy." +content = "Contenu" +contents = "Contenus" +copyright_line = "Ligne de copyright" +copyright_line_placeholder = "(c) Votre nom." +create_backup = "Créer une sauvegarde" +created = "Créé" +custom = "Personnalisé" +custom_settings = "Paramètres personnalisés" +dashboard = "Tableau de bord" +date = "Date" +date_format = "Format des dates" +delete = "Supprimer" +description = "Description" +disable = "Désactiver" +disabled = "Désactivé" +disqus_shortname = "Nom abrégé (shortname) Disqus" +disqus_shortname_placeholder = "htmly" +draft = "Brouillon" +edit = "Éditer" +edit_category = "Éditer la catégorie" +edit_post = "Éditer" +edit_profile = "Éditer le profil" +enable = "Activer" +enable_blog_url = "Activer l'URL blog" +enter_image_url = "Entrer l'URL de l'image" +facebook_app_id = "ID d'application Facebook" +facebook_page = "Page Facebook" +featured_audio = "Audio en vedette" +featured_image = "Image en vedette" +featured_link = "Lien en vedette" +featured_quote = "Citation en vedette" +featured_video = "Vidéo en vedette" +feed_url = "Adresse du flux" +filename = "Nom du fichier" +follow = "Suivre" +for_google_site_verification_meta = "Pour le méta-tag google-site-verification" +front_page_displays = "Affichage en première page" +full_post = "Billet entier" +general = "Général" +general_settings = "Paramètres généraux" +get_one_here = "Obtenez vos clés reCaptcha ici :" +github_pre_release = "Pré-release Github" +google_analytics = "Google Analytics" +google_analytics_legacy = "Google Analytics (legacy)" +google_search_console = "Google Search Console" +home = "Accueil" +if_left_empty_we_will_excerpt_it_from_the_content_below = "Si vous laissez vide, nous l'extrairons du contenu ci-dessous" +if_the_url_is_left_empty_we_will_use_the_page_title = "Si l'URL est laissée vide, nous utiliserons le titre de la page" +if_the_url_is_left_empty_we_will_use_the_post_title = "Si l'URL est laissée vide, nous utiliserons le titre du billet" +image_post = "Billet avec une image" +image_post_comment = "Créer un billet de blog avec une image" +import = "Importer" +import_feed = "Démarrer l'importation du flux" +import_rss = "Importer un flux RSS" +import_rss_feed_2.0 = "Importer le flux RSS 2.0" +insert_image = "Insérer l'image" +invalid_error = "Erreur : nom d'utilisateur ou mot de passe incorrect" +language = "Langue du système" +link_name = "Nom du lien" +link_post = "Billet avec un lien" +link_post_comment = "Créer un billet de blog avec un lien" +login = "Connexion" +login_page = "Page de connexion" +logout = "Déconnexion" +menu = "Menu" +menus = "Éditeur de menu" +meta_description = "Meta-description" +meta_description_character = "Nombre de caractères des méta-description" +metatags = "Méta-tags" +metatags_settings = "Paramètres des méta-tags" +mine = "Mes billets" +more = "Plus" +my_draft = "Mes brouillons" +my_posts = "Mes billets" +name = "Nom" +newer = "Plus récent" +next = "Suivant" +next_post = "Billet suivant" +no_available_backup = "Aucune sauvegarde disponible." +no_draft_found = "Aucun brouillon trouvé" +no_posts_found = "Aucun billet trouvé" +no_related_post_found = "Aucun billet en rapport trouvé" +no_scheduled_posts_found = "Aucun billet programmé trouvé !" +no_search_results = "Aucun résultat de recherche" +nope = "Non !" +not = "Non" +older = "Plus ancien" +only = "Seulement" +operations = "Opérations" +page = "Page" +page_generation_time = "Temps de génération de la page" +pages = "Pages" +pass_error = "Le champ Mot de passe est requis" +password = "Mot de passe" +performance = "Performance" +performance_settings = "Paramètres des performances" +permalink = "Lien permanent" +popular = "Populaire" +popular_posts = "Billets populaires" +popular_posts_widget = "Widget des billets populaires" +popular_posts_widget_at_most = "Nombre de billets maximum affichés dans le widget des billets populaires" +popular_tags = "Tags populaires" +post_by_author = "Billets de cet auteur" +posted_in = "Posté en" +posted_on = "Posté le" +posts = "Billets" +posts_by = "Billets par" +posts_draft = "Billets à l'état brouillon" +posts_in_archive_page_at_most = "Nombre de billets maximum dans la page des archives" +posts_in_category_page_at_most = "Nombre de billets maximum dans la page des catégories" +posts_in_front_page_show_at_most = "Nombre de billets maximum en première page" +posts_in_profile_page_at_most = "Nombre de billets maximum dans la page des profils" +posts_in_search_result_at_most = "Nombre de billets maximum dans les résultats de recherche" +posts_in_tag_page_at_most = "Nombre de billets maximum dans la page des tags" +posts_in_type_page_at_most = "Nombre de billets maximum dans la page des types" +posts_index_settings = "Paramètres d'indexation des articles" +posts_list = "Liste des billets" +posts_tagged = "Billets taggués" +posts_with_type = "Billets avec type" +pre_release = "Pré-release" +prev = "Ancien" +prev_post = "Billet précédent" +preview = "Pré-visualisation" +profile_for = "Profil de" +proudly_powered_by = "Fièrement propulsé par" +publish = "Publier" +publish_draft = "Publier le brouillon" +published = "Publié" +quote_post = "Billet avec une citation" +quote_post_comment = "Créer un billet avec un citation" +rss_character = "Caractères maximum des contenus du flux RSS" +rss_feeds_show_the_most_recent = "Nombre de billets maximum les plus récents du flux RSS" +rss_settings = "Paramètres du flux RSS" +read_more_text = "Texte Continuer à lire" +read_more_text_placeholder = "Continuer à lire" +reading = "Lecture" +reading_settings = "Paramètres de lecture" +recaptcha = "reCAPTCHA" +recent_posts = "Billets récents" +recent_posts_widget_at_most = "Nombre de billets maximum affichés dans le widget des billets récents" +regular_post = "Billet simple" +regular_post_comment = "Créer un billet de blog simple" +related_posts = "Billets en rapport" +related_widget_posts_at_most = "Nombre de billets maximum affichés dans le widget des billets similaires" +revert_to_draft = "Retourner en brouillon" +save = "Enregistrer" +save_config = "Sauvegarder la configuration" +save_edit = "Sauvegarder la modification" +save_menu = "Sauvegarder le menu" +save_as_draft = "Enregistrer en brouillon" +save_category = "Catégorie de la sauvegarde" +scheduled = "Programmés" +scheduled_posts = "Billets programmés" +scheduled_tips = "La publication d'un billet avec une date ou une heure future sera intégrée dans les billets programmés." +search = "Recherche" +search_for = "Rechercher pour" +search_results_for = "Résultats de recherche pour" +search_results_not_found = "Résultats de recherche non trouvés !" +secret_key = "Clé secrète" +settings = "Paramètres" +sign_in_to_start_your_session = "Connectez-vous pour démarrer votre session" +site_key = "Clé de site" +sitemap = "Plan du site" +slug = "Jeton" +social_media = "Réseaux sociaux" +static_page = "Page statique" +static_page_comment = "Créer une page statique" +static_pages = "Pages statiques" +summary = "Résumé" +summary_character = "Nombre de caractères du résumé" +tag = "Tag" +tagcloud_widget_at_most = "TagCloud au maximum" +tagline = "Slogan" +tagline_placeholder = "Plateforme de blog PHP sans base de données" +tagline_description = "En quelques mots, expliquez de quoi parle ce blog." +tags = "Tags" +this_is_legacy_code_usually_new_created_analytics_using_gtag_js = "Il s'agit d'un code hérité (legacy). Généralement, gtag.js est utilisé" +this_page_doesnt_exist = "Cette page n'existe pas !" +time = "Temps" +timezone = "Fuseau horaire" +title = "Titre" +to_use_disqus_or_facebook_comment_you_need_to_provide_disqus_shortname_or_facebook_app_id = "Pour utiliser Disqus ou les commentaires Facebook, vous devez fournir le nom abrégé (shortname) Disqus ou l'ID d'application Facebook." +token_error = "Jeton CSRF incorrect" +tools = "Outils" +twitter_account = "Compte Twitter" +type_to_search = "Tapez pour rechercher" +uncategorized = "Sans catégorie" +uncategorized_comment = "Sujets qui n'ont pas besoin de catégorie, ou qui ne conviennent à aucune catégorie existante" +universal_analytics = "Universal Analytics (gtag.js)" +unknown_feed_format = "Format de flux inconnu" +update = "Mise à jour" +update_available = "Mise à jour disponible" +update_draft = "Mettre à jour le brouillon" +update_post = "Mettre à jour le billet" +update_to = "Mettre à jour vers" +upload = "Envoyer" +user = "Utilisateur" +user_error = "Le champ Utilisateur est requis" +valid_values_range_from_0_to_1.0._see = "Les valeurs valides vont de 0,0 à 1,0. Voir" +video_post = "Billet vidéo" +video_post_comment = "Créer un billet de blog avec une vidéo" +view = "Voir" +view_post = "Consulter" +views = "Vues" +widget = "Widget" +widget_settings = "Paramètres des widgets" +would_you_like_to_try_our = "Souhaitez-vous essayer notre " +yes_im_in = "Oui, je suis prêt" +yes_not_recommended = "Oui (déconseillé)" +you_dont_have_permission_to_access_this_page = "Vous n'êtes pas autorisé à accéder à cette page" +your_new_config_key = "Votre nouvelle clé de configuration" +your_new_value = "Votre nouvelle valeur" +your_backups = "Vos sauvegardes" +your_latest_blog_posts = "Vos derniers billets" +your_recent_posts = "Vos billets récents" +by = "par" +hint_use_ctrlcmdf_to_search_for_your_config_key_or_value = "astuce : Utilisez Ctrl/CMD + F pour rechercher votre clé ou valeur de configuration." +homepage = "page d'accueil" +instead = "à la place" +item_class = "Insérer la classe CSS" +item_slug = "Insérer le jeton" +now = "maintenant" +of = "de" +optional = "optionnel" +post_your_post_slug = "/billet/jeton-du-billet" +pro_tips_you_can_create_custom_config_key_and_print_out_your_config_key_value_anywhere_in_your_template = "astuce de pro : Vous pouvez créer une clé de configuration personnalisée et afficher la valeur de votre clé de configuration n'importe où dans votre modèle." +read_more = "lire plus" +widget_key_placeholder = "12345abcde" +year_month_your_post_slug = "/annee/mois/jeton-du-billet" +your_key = "votre.cle" +summary_behavior = "Comportement du résumé" +default = "Défaut" +check_shortcode = "Vérifier le shortcode" +in_summary_mode_whether_check_the_shortcode_first_or_not_before_trim_the_content_to_x_char = "En mode résumé, il est possible de vérifier le shortcode avant de réduire le contenu à x caractères." +manage_users = "Gérer les utilisateurs" +add_user = "Ajouter un utilisateur" +username = "Nom d'utilisateur" +role = "Rôle" +change_password = "Changer le mot de passe" +config_mfa = "Configure MFA" +mfacode = "MFA Code" +verify_code = "Verify the MFA code" +verify_password = "Verify current password" +manualsetupkey = "You can also manually add the setup key" +mfa_error = "MFA code is not correct" +disablemfa = "Disable MFA" +enable_auto_save = "Enable Auto Save" +explain_autosave = "When enabled, new content or draft will be automatically saved every 60 seconds." +login_protect_system = "Login protection system" +cloudflare_info = "Review Cloudflare's Turnstile documentation: " +mfa_config = "Multi Factor Authentication (MFA)" +set_mfa_globally = "Set the status of MFA" +explain_mfa = "When enabled, MFA is optional for all users. When disabled, no users can use it and it hides the field on the login page." +set_version_publicly = "Version Visibility" +explain_version = "By default the version of HTMLy is visible publicly in the source code, some admins may prefer to hide this." +focus_mode = "Toggle Focus" +writing = "Writing" +writing_settings = "Writing Settings" +security = "Security" +security_settings = "Security Settings" +msg_error_field_req_username = "Username field is required." +msg_error_field_req_password = "Password field is required." +msg_error_field_req_title = "Title field is required." +msg_error_field_req_content = "Content field is required." +msg_error_field_req_tag = "Tag field is required." +msg_error_field_req_image = "Image field is required." +msg_error_field_req_video = "Video field is required." +msg_error_field_req_link = "Link field is required." +msg_error_field_req_quote = "Quote field is required." +msg_error_field_req_audio = "Audio field is required." +msg_error_field_req_feedurl = "You need to specify the feed url." +rss_feeds_description_select = "RSS Description" +rss_description_body = "Post Body" +rss_description_meta = "Post Meta Description" +admin_theme = "Admin theme" +admin_theme_light = "Light" +admin_theme_dark = "Dark" diff --git a/lang/gu_GU.ini b/lang/gu_GU.ini new file mode 100644 index 0000000..b9daa30 --- /dev/null +++ b/lang/gu_GU.ini @@ -0,0 +1,326 @@ +about = "વિશે" +add_category = "વર્ગ ઉમેરો" +add_content = "સામગ્રી ઉમેરો" +add_link = "એડ_લિંક" +add_menu = "મેનુ ઉમેરો" +add_new_page = "નવું પૃષ્ઠ ઉમેરો" +add_new_post = "નવી પોસ્ટ ઉમેરો" +add_source_link_optional = "સ્રોત લિંક ઉમેરો (વૈકલ્પિક)" +add_sub = "પેટા પૃષ્ઠ ઉમેરો" +address_url = "સરનામું (URL)" +admin ="એડમિન" +admin_panel_style_based_on = "એડમિન પેનલ શૈલી પર આધારિત" +all_blog_posts = "બધી બ્લોગ પોસ્ટ્સ" +all_cache_has_been_deleted = "બધી કેશ કાઢી નાખવામાં આવી છે." +all_posts_tagged = "બધી પોસ્ટ ટૅગ કરેલી" +archive_for = "આર્કાઇવ માટે" +archive_page_for = "માટે પૃષ્ઠ આર્કાઇવ" +archives = "આર્કાઇવ્સ" +are_you_sure_you_want_to_delete_ = "શું તમે ખરેખર %s ને કાઢી નાખવા માંગો છો?" +at_the_moment_you_are_using_auto_generated_menu = "આ ક્ષણે તમે સ્વતઃ જનરેટેડ મેનૂનો ઉપયોગ કરી રહ્યાં છો." +audio_post = "ઓડિયો પોસ્ટ" +audio_post_comment = "વિશિષ્ટ ઓડિયો સાથે બ્લોગ પોસ્ટ બનાવવી" +author = "લેખક" +author_description = "માત્ર અન્ય HTMLy વપરાશકર્તા" +back_to = "પાછળ" +backup = "બેકઅપ" +blog_description = "એક ફકરામાં, અમને તમારા બ્લોગ વિશે વધુ માહિતી આપો." +blog_theme = "બ્લોગ થીમ (શૈલી)" +blog_title = "બ્લોગ શીર્ષક" +blog_title_placeholder = "મારો HTMLy બ્લોગ" +blog_posts_displayed_as = "બ્લોગ પોસ્ટ કેવી રીતે પ્રદર્શિત થાય છે" +breadcrumb_home_text = "બ્રેડક્રમ્બ હોમ ટેક્સ્ટ" +by_using_this_importer_you_are_agree_if_the_feed_is_yours_or_at_least_you_have_the_authority_to_publish_it = "આ આયાતકારનો ઉપયોગ કરીને તમે સંમત થાઓ છો કે ફીડ તમારું છે અથવા ઓછામાં ઓછું તમારી પાસે તેને પ્રકાશિત કરવાની સત્તા છે." +css_class_optional = "CSS વર્ગ (વૈકલ્પિક)" +cache_expiration = "કેશ સમાપ્તિ (કલાકોમાં)" +cache_off = "કેશ બંધ" +cache_timestamp = "કેશ ટાઇમસ્ટેમ્પ" +cancel = "રદ કરો" +can_read_feed_content = "ફીડ સામગ્રી વાંચી શકાતી નથી" +captcha_error = "ReCAPTCHA ખોટું છે" +categories = "શ્રેણીઓ" +category = "શ્રેણી" +check_update = "અપડેટ તપાસો" +clear_cache = "કેશ સાફ કરો (દ્રુતિકા)" +comma_separated_values = "અલ્પવિરામથી અલગ કરેલ મૂલ્યો" +comment_system = "ટિપ્પણી સિસ્ટમ" +comments = "ટિપ્પણીઓ" +config= "config" +congrats_you_have_the_latest_version_of_htmly = "અભિનંદન! તમારી પાસે HTMLy નું નવીનતમ સંસ્કરણ છે." +content = "સામગ્રી" +contents = "સામગ્રીનું કોષ્ટક" +copyright_line = "કૉપિરાઇટ લાઇન" +copyright_line_placeholder = "(C) તમારું નામ." +create_backup = "બેકઅપ બનાવો" +created = "બનાવ્યું હતું" +custom = "કસ્ટમ" +custom_settings = "કસ્ટમ સેટિંગ્સ" +dashboard = "ડેશબોર્ડ" +date = "તારીખ" +date_format = "તારીખ ફોર્મેટ" +delete = "કાઢી નાખો" +description = "વર્ણન" +disable = "અક્ષમ કરો" +disabled = "અક્ષમ" +disqus_shortname = "ડિસ્કસ નામ" +disqus_shortname_placeholder = "htmly" +draft = "ડ્રાફ્ટ" +edit = "સંપાદિત કરો" +edit_category = "શ્રેણી સંપાદિત કરો" +edit_post = "સંપાદિત કરો" +edit_profile = "પ્રોફાઇલ સંપાદિત કરો" +enable = "સક્ષમ કરો" +enable_blog_url = "/બ્લોગ URL સક્ષમ કરો" +enter_image_url = "છબી URL દાખલ કરો" +facebook_app_id = "ફેસબુક એપ ID" +facebook_page = "ફેસબુક પેજ" +featured_audio = "ફીચર્ડ ઓડિયો" +featured_image = "વિશિષ્ટ છબી" +featured_link = "વિશિષ્ટ લિંક" +featured_quote = "ફીચર્ડ ક્વોટ" +featured_video = "વિશિષ્ટ વિડિઓ" +feed_url = "ફીડ URL" +filename = "ફાઈલનામ" +follow = "અનુસરી રહ્યા છીએ" +for_google_site_verification_meta = "Google સાઇટ ચકાસણી મેટા માટે" +front_page_displays = "ફ્રન્ટ પેજ ડિસ્પ્લે" +full_post = "સંપૂર્ણ પોસ્ટ" +general = "સામાન્ય" +general_settings = "સામાન્ય સેટિંગ્સ" +get_one_here = "એક અહીં મેળવો" +github_pre_release = "ગીથબ પ્રી-રીલીઝ" +google_analytics = "Google Analytics" +google_analytics_legacy = "Google Analytics (લેગસી)" +google_search_console = "Google શોધ કન્સોલ" +home = "ઘર" +if_leave_empty_we_will_excerpt_it_from_the_content_below = "જો ખાલી છોડીએ તો અમે નીચેની સામગ્રીમાંથી તેનો અંશો લઈશું" +if_the_url_leave_empty_we_will_use_the_page_title = "જો URL ખાલી રહેશે તો અમે પૃષ્ઠ શીર્ષકનો ઉપયોગ કરીશું" +if_the_url_leave_empty_we_will_use_the_post_title = "જો URL ખાલી રહેશે તો અમે પોસ્ટ શીર્ષકનો ઉપયોગ કરીશું" +image_post = "છબી પોસ્ટ" +image_post_comment = "વિશિષ્ટ છબી સાથે બ્લોગ પોસ્ટ બનાવવી" +import = "આયાત કરો" +import_feed = "ફીડ આયાત શરૂ કરો" +import_rss = "આરએસએસ આયાત કરો" +import_rss_feed_2.0 = "RSS ફીડ 2.0 આયાત કરો" +insert_image = "છબી દાખલ કરો" +invalid_error = "ભૂલ! અમાન્ય વપરાશકર્તાનામ અથવા પાસવર્ડ" +language = "સિસ્ટમ ભાષા" +link_name = "લિંક નામ" +link_post = "લિંક પોસ્ટ" +link_post_comment = "વિશિષ્ટ લિંક સાથે બ્લોગ પોસ્ટ બનાવવી" +login = "લોગ ઇન" +login_page = "લોગિન પૃષ્ઠ" +logout = "લોગ આઉટ" +menu = "મેનુ" +menus = "મેનુ એડિટર" +meta_description = "મેટા વર્ણન" +meta_description_character = "મેટા વર્ણન અક્ષર" +metatags = "મેટા ટૅગ્સ" +metatags_settings = "મેટાટેગ સેટિંગ્સ" +mine = "મારું" +more = "વધુ" +my_draft = "મારો ડ્રાફ્ટ" +my_posts = "મારી પોસ્ટ્સ" +name = "નામ" +newer = "નવું" +next = "આગલું" +next_post = "આગલી પોસ્ટ" +no_available_backup = "આ સમયે કોઈ બેકઅપ ઉપલબ્ધ નથી." +no_draft_found = "કોઈ ડ્રાફ્ટ નથી મળ્યું" +no_posts_found = "કોઈ પોસ્ટ મળી નથી" +no_related_post_found = "કોઈ સંબંધિત પોસ્ટ મળી નથી" +no_scheduled_posts_found = "કોઈ સુનિશ્ચિત પોસ્ટ્સ મળી નથી!" +no_search_results = "કોઈ શોધ પરિણામો મળ્યા નથી" +nope =" ના" +not = "ના" +older = "જૂની" +only = "માત્ર" +operations = "ઓપરેશન્સ" +page = "પાનું" +page_generation_time = "પેજ જનરેશન સમય" +pages = "પૃષ્ઠો" +pass_error = "પાસવર્ડ ફીલ્ડ જરૂરી છે" +password= "પાસવર્ડ" +performance = "પ્રદર્શન" +performance_settings = "પ્રદર્શન સેટિંગ્સ" +permalink = "પરમાલિંક" +popular = "લોકપ્રિય" +popular_posts = "લોકપ્રિય પોસ્ટ્સ" +popular_posts_widget = "લોકપ્રિય પોસ્ટ્સ વિજેટ" +popular_posts_widget_at_most = "સૌથી વધુ લોકપ્રિય પોસ્ટ્સ વિજેટ" +popular_tags = "પ્રખ્યાત ટૅગ્સ" +post_by_author = "આ લેખક દ્વારા પોસ્ટ" +posted_in = "માં પ્રકાશિત થયું હતું" +posted_on = "પ્રકાશિત" +posts = "પોસ્ટ્સ" +posts_by = "પોસ્ટ્સ દ્વારા" +posts_draft = "પોસ્ટ ડ્રાફ્ટ" +posts_in_archive_page_at_most = "વધુમાં વધુ આર્કાઇવ પૃષ્ઠમાં પોસ્ટ્સ" +posts_in_category_page_at_most = "વધુમાં વધુ કેટેગરી પૃષ્ઠમાં પોસ્ટ્સ" +posts_in_front_page_show_at_most = "ફ્રન્ટ પેજ પરની પોસ્ટ્સ વધુમાં વધુ બતાવવામાં આવે છે" +posts_in_profile_page_at_most = "પ્રોફાઇલ પૃષ્ઠ પર વધુમાં વધુ પોસ્ટ કરો" +posts_in_search_result_at_most = "શોધ પરિણામમાં વધુમાં વધુ પોસ્ટ્સ" +posts_in_tag_page_at_most = "મોટા ભાગના ટેગ પેજમાં પોસ્ટ્સ" +posts_in_type_page_at_most = "વધુમાં વધુ પૃષ્ઠ પ્રકારમાં પોસ્ટ્સ" +posts_index_settings = "પોસ્ટ અનુક્રમણિકા સેટિંગ્સ" +posts_list = "પોસ્ટની યાદી" +posts_tagged = "ટૅગ કરેલી પોસ્ટ્સ" +posts_with_type = "પ્રકાર સાથેની પોસ્ટ" +pre_release = "પ્રી-રીલીઝ" +prev = "અગાઉ" +prev_post = "પહેલાની પોસ્ટ" +preview = "ઝલકી" +profile_for = "માટે પ્રોફાઇલ" +proudly_powered_by = "ગર્વથી સંચાલિત" +publish = "પ્રકાશિત કરો" +publish_draft = "ડ્રાફ્ટ પ્રકાશિત કરો" +published = "પ્રકાશિત" +quote_post = "અવતરણ પોસ્ટ" +quote_post_comment = "ખાસ અવતરણ સાથે બ્લોગ પોસ્ટ બનાવવી" +rss_character = "RSS અક્ષર" +rss_feeds_show_the_most_recent = "RSS ફીડ્સ સૌથી તાજેતરનું દર્શાવે છે" +rss_settings = "RSS સેટિંગ્સ" +read_more_text = "વધુ ટેક્સ્ટ વાંચો" +read_more_text_placeholder = "વધુ વાંચો" +reading = "વાંચન" +read_settings = "વાંચન સેટિંગ્સ" +recaptcha = "રીકેપ્ચા" +fresh_posts = "તાજેતરની પોસ્ટ્સ" +fresh_posts_widget_at_most = "મોટાભાગે તાજેતરની પોસ્ટ્સ વિજેટ" +regular_post = "નિયમિત પોસ્ટ" +regular_post_comment = "નિયમિત બ્લોગ પોસ્ટ બનાવવી" +related_posts = "સંબંધિત પોસ્ટ્સ" +related_widget_posts_at_most = "વધુમાં વધુ સંબંધિત વિજેટ પોસ્ટ્સ" +revert_to_draft = "ડ્રાફ્ટ પર પાછા ફરો" +save = "સાચવો" +save_config = "રૂપરેખાંકન સાચવો" +save_edit = "સંપાદન સાચવો" +save_menu = "સેવ મેનુ" +save_as_draft = "ડ્રાફ્ટ તરીકે સાચવો" +save_category = "વર્ગ સાચવો" +scheduled = "સુનિશ્ચિત" +scheduled_posts = "અનુસૂચિત પોસ્ટ્સ" +scheduled_tips = "ભવિષ્યની તારીખ અથવા સમય સાથે પોસ્ટ પ્રકાશિત કરવાથી તે શેડ્યૂલ કરેલી પોસ્ટમાં ખસેડવામાં આવશે" +search = "શોધ" +search_for = "માટે શોધો" +search_results_for = "શોધ પરિણામો" +search_results_not_found = "શોધ પરિણામો મળ્યા નથી!" +secret_key = "ગુપ્ત ચાવી" +settings="સેટિંગ્સ" +sign_in_to_start_your_session = "તમારું સત્ર શરૂ કરવા માટે સાઇન ઇન કરો" +site_key = "સાઇટ_કી" +sitemap = "સાઇટ મેપ" +slug = "કાઉન્ટર" +social_media = "સોશિયલ મીડિયા" +static_page = "સ્થિર પૃષ્ઠ" +static_page_comment = "સ્થિર પૃષ્ઠ બનાવવું" +static_pages = "સ્થિર પૃષ્ઠો" +summary = "સારાંશ" +summary_character = "સારાંશ અક્ષર" +tag = "ટેગ" +tagcloud_widget_at_most = "વધુમાં વધુ ટેગક્લાઉડ" +tagline = "ટેગ લાઇન" +tagline_placeholder = "ડેટાબેઝલેસ PHP બ્લોગિંગ પ્લેટફોર્મ" +tagline_description = "થોડા શબ્દોમાં વર્ણન કરો કે આ બ્લોગ શેના વિશે છે." +tags = "ટૅગ્સ" +this_is_legacy_code_usually_new_created_analytics_using_gtag_js = "આ લેગસી કોડ છે. નવા એનાલિટિક્સ સામાન્ય રીતે gtag.js નો ઉપયોગ કરીને બનાવવામાં આવે છે" +this_page_doesnt_exist = "આ પૃષ્ઠ અસ્તિત્વમાં નથી!" +time = "સમય" +timezone = "સમય ઝોન" +title = "શીર્ષક" +to_use_disqus_or_facebook_comment_you_need_to_provide_disqus_shortname_or_facebook_app_id = "Disqus અથવા Facebook ટિપ્પણીઓનો ઉપયોગ કરવા માટે તમારે તમારું Disqus ટૂંકું નામ અથવા તમારી Facebook એપ્લિકેશન ID પ્રદાન કરવાની જરૂર છે." +token_error = "CSRF ટોકન અમાન્ય છે" +tools = "ટૂલ્સ" +twitter_account = "Twitter એકાઉન્ટ" +type_to_search = "શોધવા માટે લખો" +uncategorized = "અવર્ગીકૃત" +uncategorized_comment = "વિષયો કે જેને શ્રેણીની જરૂર નથી, અથવા અન્ય અસ્તિત્વમાંની શ્રેણીમાં બંધબેસતી નથી" +universal_analytics = "યુનિવર્સલ એનાલિટિક્સ (gtag.js)" +unknown_feed_format = "અજ્ઞાત ફીડ ફોર્મેટ" +update = "અપડેટ" +update_available = "અપડેટ્સ ઉપલબ્ધ" +update_draft = "ડ્રાફ્ટ અપડેટ કરો" +update_post = "અપડેટ પોસ્ટ" +update_to = "આને અપડેટ કરો" +upload = "અપલોડ કરો" +user = "વપરાશકર્તા" +user_error = "વપરાશકર્તા ફીલ્ડ જરૂરી છે" +valid_values_range_from_0_to_1.0._see = "માન્ય મૂલ્યો 0 થી 1.0 સુધીની છે. જુઓ ..." +video_post = "વિડિયો પોસ્ટ" +video_post_comment = "વિશિષ્ટ વિડિઓ સાથે બ્લોગ પોસ્ટ બનાવવી" +view = "જુઓ" +view_post = "જુઓ" +views = "જોયું" +widget = "વિજેટ" +widget_settings = "વિજેટ સેટિંગ્સ" +will_you_like_to_try_our = "શું તમે અમારું પ્રયાસ કરવા માંગો છો" +yes_im_in = "હા, હું સંમત છું" +yes_not_recommended = "હા (ભલામણ કરેલ નથી)" +you_dont_have_permission_to_access_this_page = "તમને આ પૃષ્ઠને ઍક્સેસ કરવાની પરવાનગી નથી" +your_new_config_key = "તમારી નવી રૂપરેખાંકન કી" +your_new_value = "તમારું નવું મૂલ્ય" +your_backups = "તમારા બેકઅપ્સ" +your_latest_blog_posts = "તમારી નવીનતમ બ્લોગ પોસ્ટ્સ" +your_recent_posts = "તમારી તાજેતરની પોસ્ટ્સ" +દby = "દ્વારા" +hint_use_ctrlcmdf_to_search_for_your_config_key_or_value = "સંકેત: તમારી રૂપરેખાંકન કી અથવા મૂલ્ય શોધવા માટે Ctrl/CMD + F નો ઉપયોગ કરો." +homepage = "હોમપેજ" +instead = "ને બદલે" +item_class = "CSS વર્ગ દાખલ કરો" +item_slug = "લિંક URL દાખલ કરો" +now = "હવે" +of = "માંથી" +optional = "વૈકલ્પિક" +post_your_post_slug = "/post/your-post-slug" +pro_tips_you_can_create_custom_config_key_and_print_out_your_config_key_value_anywhere_in_your_template = "પ્રો ટીપ્સ:તમે કસ્ટમ રૂપરેખા કી બનાવી શકો છો અને તમારા નમૂનામાં ગમે ત્યાં તમારી રૂપરેખા કી મૂલ્ય છાપી શકો છો." +read_more = "વધુ વાંચો" +widget_key_placeholder = "12345abcde" +year_month_your_post_slug = "/year/month/your-post-slug" +your_key = "your.key" +summary_behavior = "સારાંશ વર્તન" +default = "મૂળભૂત" +check_shortcode = "શોર્ટકોડ તપાસો" +in_summary_mode_whether_check_the_shortcode_first_or_not_before_trim_the_content_to_x_char = "સારાંશ મોડમાં, સામગ્રીને x char પર ટ્રિમ કરતા પહેલા શોર્ટકોડ તપાસવો કે કેમ" +manage_users = "વપરાશકર્તાઓને મેનેજ કરો" +add_user = "વપરાશકર્તા ઉમેરો" +username = "વપરાશકર્તા નામ" +role = "ભૂમિકા" +change_password = "પાસવર્ડ બદલો" +config_mfa = "Configure MFA" +mfacode = "MFA Code" +verify_code = "Verify the MFA code" +verify_password = "Verify current password" +manualsetupkey = "You can also manually add the setup key" +mfa_error = "MFA code is not correct" +disablemfa = "Disable MFA" +enable_auto_save = "Enable Auto Save" +explain_autosave = "When enabled, new content or draft will be automatically saved every 60 seconds." +login_protect_system = "Login protection system" +cloudflare_info = "Review Cloudflare's Turnstile documentation: " +mfa_config = "Multi Factor Authentication (MFA)" +set_mfa_globally = "Set the status of MFA" +explain_mfa = "When enabled, MFA is optional for all users. When disabled, no users can use it and it hides the field on the login page." +set_version_publicly = "Version Visibility" +explain_version = "By default the version of HTMLy is visible publicly in the source code, some admins may prefer to hide this." +focus_mode = "Toggle Focus" +writing = "Writing" +writing_settings = "Writing Settings" +security = "Security" +security_settings = "Security Settings" +msg_error_field_req_username = "Username field is required." +msg_error_field_req_password = "Password field is required." +msg_error_field_req_title = "Title field is required." +msg_error_field_req_content = "Content field is required." +msg_error_field_req_tag = "Tag field is required." +msg_error_field_req_image = "Image field is required." +msg_error_field_req_video = "Video field is required." +msg_error_field_req_link = "Link field is required." +msg_error_field_req_quote = "Quote field is required." +msg_error_field_req_audio = "Audio field is required." +msg_error_field_req_feedurl = "You need to specify the feed url." +rss_feeds_description_select = "RSS Description" +rss_description_body = "Post Body" +rss_description_meta = "Post Meta Description" +admin_theme = "Admin theme" +admin_theme_light = "Light" +admin_theme_dark = "Dark" diff --git a/lang/hi_HI.ini b/lang/hi_HI.ini new file mode 100644 index 0000000..acec68c --- /dev/null +++ b/lang/hi_HI.ini @@ -0,0 +1,326 @@ +about = "के बारे में" +add_category = "श्रेणी जोड़ना" +add_content = "सामग्री जोड़ें" +add_link = "लिंक_जोड़ें" +add_menu = "मेनू जोड़ें" +add_new_page = "नया पेज जोड़ें" +add_new_post = "नई पोस्ट जोड़ें" +add_source_link_optional = "स्रोत लिंक जोड़ें (वैकल्पिक)" +add_sub = "उप पृष्ठ जोड़ें" +address_url = "पता (URL)" +admin = "व्यवस्थापक" +admin_panel_style_based_on = "व्यवस्थापक पैनल शैली पर आधारित" +all_blog_posts = "सभी ब्लॉग पोस्ट" +all_cache_has_been_deleted = "सारा कैश (द्रुतिका) हटा दिया गया है|" +all_posts_tagged = "सभी पोस्ट टैग किए गए" +archive_for = "पुरालेख के लिए" +archive_page_for = "पृष्ठ पुरालेख के लिए" +archives = "अभिलेखागार" +are_you_sure_you_want_to_delete_ = "क्या आप आश्वस्त है कि आपको डिलीट करना है %s?" +at_the_moment_you_are_using_auto_generated_menu = "फिलहाल आप ऑटो जेनरेटेड मेनू का उपयोग कर रहे हैं।" +audio_post = "ऑडियो पोस्ट" +audio_post_comment = "फ़ीचर्ड ऑडियो के साथ ब्लॉग पोस्ट बनाया जा रहा है" +author = "लेखक" +author_description = "केवल एक और HTMLy उपयोगकर्ता" +back_to = "वापस" +backup = "बैकअप" +blog_description = "एक पैराग्राफ में, हमें अपने ब्लॉग के बारे में और जानकारी दे।" +blog_theme = "ब्लॉग थीम (शैली)" +blog_title = "ब्लॉग का शीर्षक" +blog_title_placeholder = "मेरा HTMLy ब्लॉग" +blog_posts_displayed_as = "ब्लॉग पोस्ट के प्रदर्शन का तरीका" +breadcrumb_home_text = "ब्रेडक्रंब होम टेक्स्ट" +by_using_this_importer_you_confirm_that_the_feed_is_yours_or_that_at_least_you_have_the_authority_to_publish_itv = "इस आयातक का उपयोग करके आप पुष्टि करते हैं कि फ़ीड आपकी है या कम से कम आपके पास इसे प्रकाशित करने का अधिकार है।" +css_class_optional = "सीएसएस क्लास (वैकल्पिक)" +cache_expiration = "कैश (द्रुतिका) समाप्ति (घंटे में)" +cache_off = "कैश द(्रुतिका) बंद" +cache_timestamp = "कैश (द्रुतिका) समयमोहर" +cancel = "रद्द करना" +cannot_read_feed_content = "फ़ीड सामग्री नहीं पढ़ सकता" +captcha_error = "रीकैप्चा सही नहीं है" +categories = "श्रेणियाँ" +category = "वर्ग" +check_update = "अपडेट जांचें" +clear_cache = "कैश (द्रुतिका) को साफ़ करें" +comma_separated_values = "अल्पविराम से अलग किये गए मान" +comment_system = "टिप्पणी प्रणाली" +comments = "टिप्पणियाँ" +config = "कॉन्फ़िग" +congrats_you_have_the_latest_version_of_htmly = "बधाई! आपके पास HTMLy का नवीनतम संस्करण है|" +content = "विषय" +contents = "विषय-सूची" +copyright_line = "कॉपीराइट लाइन" +copyright_line_placeholder = "(C) आपका नाम|" +create_backup = "बैकअप बनाना" +created = "बनाया था" +custom = "स्वनिर्धारित" +custom_settings = "कस्टम सेटिंग्स" +dashboard = "डैशबोर्ड" +date = "तारीख" +date_format = "तारिख का प्रारूप" +delete = "मिटाना" +description = "विवरण" +disable = "अक्षम करना" +disabled = "अक्षम" +disqus_shortname = "डिस्कस का नाम" +disqus_shortname_placeholder = "htmly" +draft = "ड्राफ्ट" +edit = "संपादन करें" +edit_category = "श्रेणी संपादित करें" +edit_post = "संपादन करें" +edit_profile = "प्रोफ़ाइल संपादित करें" +enable = "सक्षम करें" +enable_blog_url = "सक्षम करे ब्लॉग URL" +enter_image_url = "छवि URL दर्ज करें" +facebook_app_id = "फेसबुक ऐप आईडी" +facebook_page = "फेसबुक पेज" +featured_audio = "विशेष रुप से प्रदर्शित ऑडियो" +featured_image = "फीचर्ड चित्र" +featured_link = "विशेष रुप से प्रदर्शित लिंक" +featured_quote = "विशेष उद्धरण" +featured_video = "विशेष रुप से प्रदर्शित वीडियो" +feed_url = "फीड URL" +filename = "फ़ाइल का नाम" +follow = "अनुसरण करना" +for_google_site_verification_meta = "Google साइट सत्यापन मेटा के लिए" +front_page_displays = "फ्रंट पेज प्रदर्शित करता है" +full_post = "पूरी पोस्ट" +general = "सामान्य" +general_settings = "सामान्य सेटिंग्स" +get_one_here = "यहां एक प्राप्त करें" +github_pre_release = "Github प्री-रिलीज़" +google_analytics = "Google एनालिटिक्स" +google_analytics_legacy = "Google एनालिटिक्स (प्राचीन)" +google_search_console = "Google खोज कंसोल" +home = "घर" +if_left_empty_we_will_excerpt_it_from_the_content_below = "यदि खाली छोड़ दिया जाए तो हम इसे नीचे दी गई सामग्री से उद्धृत करेंगे" +if_the_url_is_left_empty_we_will_use_the_page_title = "यदि URL खाली छोड़ दिया जाए तो हम पृष्ठ शीर्षक का उपयोग करेंगे" +if_the_url_is_left_empty_we_will_use_the_post_title = "यदि URL खाली छोड़ दिया जाए तो हम पोस्ट शीर्षक का उपयोग करेंगे" +image_post = "छवि पोस्ट" +image_post_comment = "विशेष रुप से प्रदर्शित छवि के साथ ब्लॉग पोस्ट बनाया जा रहा है" +import = "आयात" +import_feed = "फ़ीड आयात प्रारंभ करें" +import_rss = "RSS आयात करें" +import_rss_feed_2.0 = "RSS फ़ीड 2.0 आयात करें" +insert_image = "चित्र डालें" +invalid_error = "त्रुटि! अमान्य उपयोगकर्ता नाम या पासवर्ड" +language = "सिस्टम भाषा" +link_name = "लिंक नाम" +link_post = "लिंक पोस्ट" +link_post_comment = "विशेष रुप से प्रदर्शित लिंक के साथ ब्लॉग पोस्ट बनाया जा रहा है" +login = "लॉग इन करें" +login_page = "लोग इन वाला पन्ना" +logout = "लॉग आउट" +menu = "मेन्यू" +menus = "मेनू संपादक" +meta_description = "मेटा विवरण" +meta_description_character = "मेटा विवरण अक्षर" +metatags = "मेटा टैग" +metatags_settings = "मेटाटैग सेटिंग्स" +mine = "मेरा" +more = "अधिक" +my_draft = "मेरा ड्राफ्ट" +my_posts = "मेरी पोस्ट" +name = "नाम" +newer = "नया" +next = "अगला" +next_post = "अगली पोस्ट" +no_available_backup = "इस समय कोई बैकअप उपलब्ध नहीं है|" +no_draft_found = "कोई ड्राफ्ट नहीं मिला" +no_posts_found = "कोई प्रकाशन नहीं मिला" +no_related_post_found = "कोई संबंधित पोस्ट नहीं मिली" +no_scheduled_posts_found = "कोई निर्धारित पोस्ट नहीं मिली!" +no_search_results = "खोजने पर कोई परिणाम नहीं मिला" +nope = "नहीं" +not = "नहीं" +older = "पुराने" +only = "केवल" +operations = "संचालन" +page = "पृष्ठ" +page_generation_time = "पेज निर्माण का समय" +pages = "पृष्ठों" +pass_error = "पासवर्ड फ़ील्ड आवश्यक है" +password = "पासवर्ड" +performance = "प्रदर्शन" +performance_settings = "प्रदर्शन समायोजन" +permalink = "स्थायी लिंक" +popular = "लोकप्रिय" +popular_posts = "लोकप्रिय लेख" +popular_posts_widget = "लोकप्रिय पोस्ट विजेट" +popular_posts_widget_at_most = "अधिक से अधिक लोकप्रिय पोस्ट विजेट" +popular_tags = "प्रसिद्ध टग्स" +post_by_author = "इस लेखक द्वारा पोस्ट" +posted_in = "में प्रकाशित किया गया था" +posted_on = "प्रकाशित किया गया" +posts = "पोस्ट" +posts_by = "द्वारा पोस्ट" +posts_draft = "पोस्ट ड्राफ्ट" +posts_in_archive_page_at_most = "अधिकतम संग्रह पृष्ठ में पोस्ट" +posts_in_category_page_at_most = "अधिकतम श्रेणी पृष्ठ में पोस्ट" +posts_in_front_page_show_at_most = "पहले पन्ने पर पोस्ट अधिकतम दिखाई देती हैं" +posts_in_profile_page_at_most = "अधिकतम प्रोफ़ाइल पृष्ठ पर पोस्ट करें" +posts_in_search_result_at_most = "अधिकतम खोज परिणाम में पोस्ट" +posts_in_tag_page_at_most = "अधिकतम टैग पेज में पोस्ट" +posts_in_type_page_at_most = "अधिक से अधिक टाइप पेज में पोस्ट करें" +posts_index_settings = "इंडेक्स सेटिंग्स पोस्ट करें" +posts_list = "पोस्ट सूची" +posts_tagged = "टैग किए गए पोस्ट" +posts_with_type = "प्रकार सहित पोस्ट" +pre_release = "पूर्व-रिलीज़" +prev = "पिछला" +prev_post = "पिछला पोस्ट" +preview = "झलकी" +profile_for = "के लिए प्रोफाइल" +proudly_powered_by = "गर्व से संचालित" +publish = "प्रकाशित करना" +publish_draft = "ड्राफ्ट प्रकाशित करें" +published = "प्रकाशित" +quote_post = "उद्धरण पोस्ट" +quote_post_comment = "विशेष उद्धरण के साथ ब्लॉग पोस्ट बनाया जा रहा है" +rss_character = "RSS अक्षर" +rss_feeds_show_the_most_recent = "RSS फ़ीड नवीनतम दिखाते हैं " +rss_settings = "RSS समायोजन" +read_more_text = "और अधिक पाठ पढ़ें" +read_more_text_placeholder = "अधिक पढ़े" +reading = "पढ़ना" +reading_settings = "सेटिंग पढ़ना" +recaptcha = "रीकैप्चा" +recent_posts = "हाल के पोस्ट" +recent_posts_widget_at_most = "अधिक से अधिक हालिया पोस्ट विजेट" +regular_post = "नियमित पोस्ट" +regular_post_comment = "नियमित ब्लॉग पोस्ट बनाया जा रहा है" +related_posts = "संबंधित पोस्ट" +related_widget_posts_at_most = "अधिक से अधिक संबंधित विजेट पोस्ट" +revert_to_draft = "ड्राफ्ट पर वापस लौटें" +save = "सहेजें" +save_config = "कॉन्फ़िगरेशन सहेजें" +save_edit = "संपादित सहेजें" +save_menu = "मेनू सहेजें" +save_as_draft = "ड्राफ्ट के रूप में सेव करें" +save_category = "श्रेणी सहेजें" +scheduled = "अनुसूचित" +scheduled_posts = "अनुसूचित पोस्ट" +scheduled_tips = "किसी पोस्ट को भविष्य की तारीख या समय के साथ प्रकाशित करने पर वह निर्धारित पोस्ट में चला जाएगा" +search = "खोज" +search_for = "निम्न को खोजें" +search_results_for = "खोजे गए परिणाम" +search_results_not_found = "खोज परिणाम नहीं मिले!" +secret_key = "गुप्त कुंजी" +settings = "समायोजन" +sign_in_to_start_your_session = "अपना सत्र शुरू करने के लिए साइन इन करें" +site_key = "कार्यस्थल की कुंजी" +sitemap = "साइट मैप" +slug = "काउंटर" +social_media = "सामाजिक मीडिया" +static_page = "स्टेटिक पृष्ठ" +static_page_comment = "स्टेटिक पेज बनाया जा रहा है" +static_pages = "स्टेटिक पेज" +summary = "सारांश" +summary_character = "सारांश अक्षर" +tag = "टैग" +tagcloud_widget_at_most = "अधिक से अधिक टैगक्लाउड" +tagline = "टैग लाइन" +tagline_placeholder = "डेटाबेस रहित PHP ब्लॉगिंग प्लेटफ़ॉर्म" +tagline_description = "कुछ शब्दों में बताएं कि यह ब्लॉग किस बारे में है।" +tags = "टैग" +this_is_legacy_code_usually_new_created_analytics_using_gtag_js = "यह लीगेसी कोड है. आमतौर पर gtag.js का उपयोग करके नए विश्लेषण तैयार किए जाते हैं" +this_page_doesnt_exist = "यह पेज मौजूद नहीं है!" +time = "समय" +timezone = "समय क्षेत्र" +title = "शीर्षक" +to_use_disqus_or_facebook_comment_you_need_to_provide_disqus_shortname_or_facebook_app_id = "डिस्कस या फेसबुक टिप्पणियों का उपयोग करने के लिए आपको अपना डिस्कस संक्षिप्त नाम या अपनी फेसबुक ऐप आईडी प्रदान करनी होगी।" +token_error = "CSRF टोकन सही नहीं है" +tools = "औजार" +twitter_account = "ट्विटर खाता" +type_to_search = "खोजने के लिए लिखें" +uncategorized = "अवर्गीकृत" +uncategorized_comment = "ऐसे विषय जिन्हें किसी श्रेणी की आवश्यकता नहीं है, या किसी अन्य मौजूदा श्रेणी में फिट नहीं बैठते हैं" +universal_analytics = "यूनिवर्सल एनालिटिक्स (gtag.js)" +unknown_feed_format = "अज्ञात फ़ीड प्रारूप" +update = "अद्यतन" +update_available = "उपलब्ध अद्यतन" +update_draft = "ड्राफ्ट अद्यतन करें" +update_post = "पोस्ट अपडेट करें" +update_to = "इसे अपडेट करें" +upload = "अपलोड" +user = "उपयोगकर्ता" +user_error = "उपयोगकर्ता फ़ील्ड आवश्यक है" +valid_values_range_from_0_to_1.0._see = "वैध मूल्यों 0 से 1.0 की रेंज में है| आगे देखिये ..." +video_post = "वीडियो पोस्ट" +video_post_comment = "विशेष रुप से प्रदर्शित वीडियो के साथ ब्लॉग पोस्ट बनाया जा रहा है" +view = "देखिए" +view_post = "देखिए" +views = "देखा गया" +widget = "विजेट" +widget_settings = "विजेट सेटिंग्स" +would_you_like_to_try_our = "क्या आप आज़माना चाहेंगे हमारा " +yes_im_in = "हा मुझे मंजूर है" +yes_not_recommended = "हाँ (अनुशंसित नहीं)" +you_dont_have_permission_to_access_this_page = "आपको इस पृष्ठ तक पहुंचने की अनुमति नहीं है" +your_new_config_key = "आपकी नई कॉन्फ़िगरेशन कुंजी" +your_new_value = "आपका नया मूल्य" +your_backups = "आपके बैकअप" +your_latest_blog_posts = "आपके नवीनतम ब्लॉग पोस्ट" +your_recent_posts = "आपकी हाल की पोस्ट" +by = "द्वारा" +hint_use_ctrlcmdf_to_search_for_your_config_key_or_value = "संकेत: अपनी कॉन्फ़िगरेशन कुंजी या मान खोजने के लिए Ctrl/CMD + F का उपयोग करें।" +homepage = "मुखपृष्ठ" +instead = "के बजाय" +item_class = "CSS क्लास डालें" +item_slug = "लिंक URL डालें" +now = "अब" +of = "का" +optional = "वैकल्पिक" +post_your_post_slug = "/post/your-post-slug" +pro_tips_you_can_create_custom_config_key_and_print_out_your_config_key_value_anywhere_in_your_template = "प्रो युक्तियाँ:आप कस्टम कॉन्फिग कुंजी बना सकते हैं और अपने टेम्पलेट में कहीं भी अपनी कॉन्फिग कुंजी मान प्रिंट कर सकते हैं|" +read_more = "और पढ़ें" +widget_key_placeholder = "12345abcde" +year_month_your_post_slug = "/year/month/your-post-slug" +your_key = "your.key" +summary_behavior = "सारांश व्यवहार" +default = "Default" +check_shortcode = "शॉर्टकोड जांचें" +in_summary_mode_whether_check_the_shortcode_first_or_not_before_trim_the_content_to_x_char = "सारांश मोड में, सामग्री को x वर्ण में ट्रिम करने से पहले शॉर्टकोड की जांच करें या नहीं" +manage_users = "उपयोगकर्ताओं को प्रबंधित करें" +add_user = "उपयोगकर्ता जोड़ें" +username = "उपयोगकर्ता नाम" +role = "भूमिका" +change_password = "पासवर्ड बदलें" +config_mfa = "Configure MFA" +mfacode = "MFA Code" +verify_code = "Verify the MFA code" +verify_password = "Verify current password" +manualsetupkey = "You can also manually add the setup key" +mfa_error = "MFA code is not correct" +disablemfa = "Disable MFA" +enable_auto_save = "Enable Auto Save" +explain_autosave = "When enabled, new content or draft will be automatically saved every 60 seconds." +login_protect_system = "Login protection system" +cloudflare_info = "Review Cloudflare's Turnstile documentation: " +mfa_config = "Multi Factor Authentication (MFA)" +set_mfa_globally = "Set the status of MFA" +explain_mfa = "When enabled, MFA is optional for all users. When disabled, no users can use it and it hides the field on the login page." +set_version_publicly = "Version Visibility" +explain_version = "By default the version of HTMLy is visible publicly in the source code, some admins may prefer to hide this." +focus_mode = "Toggle Focus" +writing = "Writing" +writing_settings = "Writing Settings" +security = "Security" +security_settings = "Security Settings" +msg_error_field_req_username = "Username field is required." +msg_error_field_req_password = "Password field is required." +msg_error_field_req_title = "Title field is required." +msg_error_field_req_content = "Content field is required." +msg_error_field_req_tag = "Tag field is required." +msg_error_field_req_image = "Image field is required." +msg_error_field_req_video = "Video field is required." +msg_error_field_req_link = "Link field is required." +msg_error_field_req_quote = "Quote field is required." +msg_error_field_req_audio = "Audio field is required." +msg_error_field_req_feedurl = "You need to specify the feed url." +rss_feeds_description_select = "RSS Description" +rss_description_body = "Post Body" +rss_description_meta = "Post Meta Description" +admin_theme = "Admin theme" +admin_theme_light = "Light" +admin_theme_dark = "Dark" diff --git a/lang/hr_HR.ini b/lang/hr_HR.ini new file mode 100644 index 0000000..0a93dd9 --- /dev/null +++ b/lang/hr_HR.ini @@ -0,0 +1,326 @@ +about = "O nama" +add_category = "Dodaj kategoriju" +add_content = "Dodaj sadržaj" +add_link = "Dodaj link" +add_menu = "Dodaj izbornik" +add_new_page = "Dodaj novu stranicu" +add_new_post = "Dodaj novi post" +add_source_link_optional = "Dodaj izvorni link (opcionalno)" +add_sub = "Dodaj podstranicu" +address_url = "Adresa (URL)" +admin = "Admin" +admin_panel_style_based_on = "Stil admin panela temeljen na" +all_blog_posts = "Svi blog zapisi" +all_cache_has_been_deleted = "Sva memorija predmemorije je izbrisana!" +all_posts_tagged = "Svi označeni zapisi" +archive_for = "Arhiva za" +archive_page_for = "Stranica arhive za" +archives = "Arhive" +are_you_sure_you_want_to_delete_ = "Jeste li sigurni da želite izbrisati %s?" +at_the_moment_you_are_using_auto_generated_menu = "Trenutno koristite automatski generirani izbornik." +audio_post = "Audio post" +audio_post_comment = "Stvaranje blog zapisa s istaknutim audio zapisom" +author = "Autor" +author_description = "Samo još jedan korisnik HTMLy-ja" +back_to = "Povratak na" +backup = "Backup" +blog_description = "U jednom odlomku, recite nam više o svom blogu." +blog_theme = "Tema bloga" +blog_title = "Naslov bloga" +blog_title_placeholder = "Moj HTMLy Blog" +blog_posts_displayed_as = "Blog zapisi prikazani kao" +breadcrumb_home_text = "Tekst početne stranice" +by_using_this_importer_you_confirm_that_the_feed_is_yours_or_that_at_least_you_have_the_authority_to_publish_it = "Korištenjem ovog uvoznika pristajete ako je feed vaš ili barem imate ovlasti za objavljivanje." +css_class_optional = "CSS razred (opcionalno)" +cache_expiration = "Istjecanje predmemorije (u satima)" +cache_off = "Isključi predmemoriju" +cache_timestamp = "Oznaka vremena predmemorije" +cancel = "Otkaži" +cannot_read_feed_content = "Ne mogu pročitati sadržaj feeda" +captcha_error = "reCaptcha nije ispravna" +categories = "Kategorije" +category = "Kategorija" +check_update = "Provjeri ažuriranje" +clear_cache = "Očisti predmemoriju" +comma_separated_values = "Vrijednosti odvojene zarezom" +comment_system = "Sustav komentara" +comments = "Komentari" +config = "Konfiguracija" +congrats_you_have_the_latest_version_of_htmly = "Čestitamo! Imate najnoviju verziju HTMLy-ja." +content = "Sadržaj" +contents = "Sadržaji" +copyright_line = "Linija autorskog prava" +copyright_line_placeholder = "(c) Vaše ime." +create_backup = "Kreiraj backup" +created = "Stvoreno" +custom = "Prilagođeno" +custom_settings = "Prilagođene postavke" +dashboard = "Kontrolna ploča" +date = "Datum" +date_format = "Format datuma" +delete = "Izbriši" +description = "Opis" +disable = "Onemogući" +disabled = "Onemogućeno" +disqus_shortname = "Disqus kratko ime" +disqus_shortname_placeholder = "htmly" +draft = "Skica" +edit = "Uredi" +edit_category = "Uredi kategoriju" +edit_post = "Uredi" +edit_profile = "Uredi profil" +enable = "Omogući" +enable_blog_url = "Omogući blog URL" +enter_image_url = "Unesite URL slike" +facebook_app_id = "Facebook ID aplikacije" +facebook_page = "Facebook stranica" +featured_audio = "Istaknuti audio" +featured_image = "Istaknuta slika" +featured_link = "Istaknuti link" +featured_quote = "Istaknuta citat" +featured_video = "Istaknuti video" +feed_url = "URL feeda" +filename = "Naziv datoteke" +follow = "Prati" +for_google_site_verification_meta = "Za meta provjeru Google stranice" +front_page_displays = "Početna stranica prikazuje" +full_post = "Cijeli post" +general = "Općenito" +general_settings = "Opće postavke" +get_one_here = "Dobiti jedan ovdje" +github_pre_release = "Github pretpregled" +google_analytics = "Google Analytics" +google_analytics_legacy = "Google Analytics (stari)" +google_search_console = "Google konzola za pretraživanje" +home = "Početna" +if_left_empty_we_will_excerpt_it_from_the_content_below = "Ako ostavite prazno, izvat ćemo ga iz sadržaja ispod" +if_the_url_is_left_empty_we_will_use_the_page_title = "Ako URL ostavite prazno, koristit ćemo naslov stranice" +if_the_url_is_left_empty_we_will_use_the_post_title = "Ako URL ostavite prazno, koristit ćemo naslov posta" +image_post = "Slični post" +image_post_comment = "Stvaranje blog posta s istaknutom slikom" +import = "Uvoz" +import_feed = "Započni uvoz feeda" +import_rss = "Uvezi RSS" +import_rss_feed_2.0 = "Uvoz RSS feeda 2.0" +insert_image = "Umetni sliku" +invalid_error = "GREŠKA: Neispravno korisničko ime ili lozinka" +language = "Jezik sustava" +link_name = "Naziv linka" +link_post = "Link post" +link_post_comment = "Stvaranje blog posta s istaknutim linkom" +login = "Prijava" +login_page = "Stranica prijave" +logout = "Odjava" +menu = "Izbornik" +menus = "Uređivač izbornika" +meta_description = "Meta opis" +meta_description_character = "Meta opis znakova" +metatags = "Metatagi" +metatags_settings = "Postavke metataga" +mine = "Moje" +more = "Više" +my_draft = "Moja skica" +my_posts = "Moji postovi" +name = "Ime" +newer = "Novije" +next = "Sljedeće" +next_post = "Sljedeći post" +no_available_backup = "Nema dostupnih sigurnosnih kopija trenutno." +no_draft_found = "Nema pronađenih skica" +no_posts_found = "Nema pronađenih postova" +no_related_post_found = "Nema pronađenih srodnih postova" +no_scheduled_posts_found = "Nema zakazanih postova!" +no_search_results = "Nema rezultata pretraživanja" +nope = "Ne" +not = "Ne" +older = "Starije" +only = "Samo" +operations = "Operacije" +page = "Stranica" +page_generation_time = "Vrijeme generiranja stranice" +pages = "Stranice" +pass_error = "Polje lozinke je obavezno" +password = "Lozinka" +performance = "Performanse" +performance_settings = "Postavke performansi" +permalink = "Trajna poveznica" +popular = "Popularno" +popular_posts = "Popularni postovi" +popular_posts_widget = "Widget popularnih postova" +popular_posts_widget_at_most = "Widget popularnih postova najviše" +popular_tags = "Popularne oznake" +post_by_author = "Postovi ovog autora" +posted_in = "Objavljeno u" +posted_on = "Objavljeno" +posts = "Postovi" +posts_by = "Postovi od" +posts_draft = "Skice postova" +posts_in_archive_page_at_most = "Postovi na stranici arhive najviše" +posts_in_category_page_at_most = "Postovi na stranici kategorije najviše" +posts_in_front_page_show_at_most = "Postovi na početnoj stranici prikazuju najviše" +posts_in_profile_page_at_most = "Postovi na stranici profila najviše" +posts_in_search_result_at_most = "Postovi u rezultatima pretraživanja najviše" +posts_in_tag_page_at_most = "Postovi na stranici oznake najviše" +posts_in_type_page_at_most = "Postovi na stranici tipa najviše" +posts_index_settings = "Postavke indeksa postova" +posts_list = "Popis postova" +posts_tagged = "Postovi označeni" +posts_with_type = "Postovi s tipom" +pre_release = "Predačka verzija" +prev = "Prethodno" +prev_post = "Prethodni post" +preview = "Pregled" +profile_for = "Profil za" +proudly_powered_by = "Ponosno pokreće" +publish = "Objavi" +publish_draft = "Objavi skicu" +published = "Objavljeno" +quote_post = "Citirani post" +quote_post_comment = "Stvaranje blog posta s istaknutim citatom" +rss_character = "RSS znakova" +rss_feeds_show_the_most_recent = "RSS feedovi prikazuju najnovije" +rss_settings = "Postavke RSS-a" +read_more_text = "Tekst za pročitaj više" +read_more_text_placeholder = "Pročitaj više" +reading = "Čitanje" +reading_settings = "Postavke čitanja" +recaptcha = "reCAPTCHA" +recent_posts = "Nedavni postovi" +recent_posts_widget_at_most = "Widget nedavnih postova najviše" +regular_post = "Redoviti post" +regular_post_comment = "Stvaranje redovitog blog posta" +related_posts = "Srodni postovi" +related_widget_posts_at_most = "Widget srodnih postova najviše" +revert_to_draft = "Vrati u skicu" +save = "Spremi" +save_config = "Spremi konfiguraciju" +save_edit = "Spremi uređivanje" +save_menu = "Spremi izbornik" +save_as_draft = "Spremi kao skicu" +save_category = "Spremi kategoriju" +scheduled = "Zakazano" +scheduled_posts = "Zakazani postovi" +scheduled_tips = "Objavljivanje posta s budućim datumom ili vremenom, bit će dodano u zakazane postove" +search = "Pretraži" +search_for = "Pretraži" +search_results_for = "Rezultati pretrage za" +search_results_not_found = "Nisu pronađeni rezultati pretrage!" +secret_key = "Tajni ključ" +settings = "Postavke" +sign_in_to_start_your_session = "Prijavite se kako biste započeli svoju sesiju" +site_key = "Ključ web stranice" +sitemap = "Sitemap" +slug = "Slug" +social_media = "Društveni mediji" +static_page = "Statička stranica" +static_page_comment = "Stvaranje statičke stranice" +static_pages = "Statičke stranice" +summary = "Sažetak" +summary_character = "Sažetak znakova" +tag = "Oznaka" +tagcloud_widget_at_most = "Tag oblak najviše" +tagline = "Slogan" +tagline_placeholder = "Platforma za blogovanje bez baze podataka u PHP-u" +tagline_description = "U nekoliko riječi, objasnite o čemu se radi u ovom blogu." +tags = "Oznake" +this_is_legacy_code_usually_new_created_analytics_using_gtag_js = "Ovo je stari kod. Obično se novi stvoreni analitički podaci koriste pomoću gtag.js" +this_page_doesnt_exist = "Ova stranica ne postoji!" +time = "Vrijeme" +timezone = "Vremenska zona" +title = "Naslov" +to_use_disqus_or_facebook_comment_you_need_to_provide_disqus_shortname_or_facebook_app_id = "Za korištenje Disqus ili Facebook komentara morate pružiti svoje Disqus kratko ime ili vaš Facebook App ID." +token_error = "CSRF token nije ispravan" +tools = "Alati" +twitter_account = "Twitter račun" +type_to_search = "Upišite za pretraživanje" +uncategorized = "Nekategorizirano" +uncategorized_comment = "Teme koje ne trebaju kategoriju ili ne odgovaraju bilo kojoj drugoj postojećoj kategoriji" +universal_analytics = "Univerzalna analitika (gtag.js)" +unknown_feed_format = "Nepoznat format feeda" +update = "Ažuriraj" +update_available = "Dostupno ažuriranje" +update_draft = "Ažuriraj skicu" +update_post = "Ažuriraj post" +update_to = "Ažuriraj na" +upload = "Učitaj" +user = "Korisnik" +user_error = "Polje korisnika je obavezno" +valid_values_range_from_0_to_1.0._see = "Valjane vrijednosti su u rasponu od 0,0 do 1,0. Pogledajte" +video_post = "Video post" +video_post_comment = "Stvaranje blog posta s istaknutim videom" +view = "Pogled" +view_post = "Pogledaj" +views = "Pregledi" +widget = "Widget" +widget_settings = "Postavke widgeta" +would_you_like_to_try_our = "Biste li željeli isprobati naš" +yes_im_in = "Da, uključen sam" +yes_not_recommended = "Da (nije preporučeno)" +you_dont_have_permission_to_access_this_page = "Nemate dopuštenje pristupiti ovoj stranici" +your_new_config_key = "Vaš novi konfiguracijski ključ" +your_new_value = "Vaša nova vrijednost" +your_backups = "Vaše sigurnosne kopije" +your_latest_blog_posts = "Vaši najnoviji blog postovi" +your_recent_posts = "Vaši nedavni postovi" +by = "od" +hint_use_ctrlcmdf_to_search_for_your_config_key_or_value = "savjet: Koristite Ctrl/CMD + F za pretraživanje vašeg konfiguracijskog ključa ili vrijednosti." +homepage = "početna stranica" +instead = "umjesto" +item_class = "Unesite CSS razred" +item_slug = "Unesite URL linka" +now = "sada" +of = "od" +optional = "opcionalno" +post_your_post_slug = "/post/naslov-posta" +pro_tips_you_can_create_custom_config_key_and_print_out_your_config_key_value_anywhere_in_your_template = "pro savjeti: Možete stvoriti prilagođene konfiguracijske ključeve i ispisati vrijednost vašeg konfiguracijskog ključa bilo gdje u vašem predlošku." +read_more = "pročitaj više" +widget_key_placeholder = "12345abcde" +year_month_your_post_slug = "/godina/mjesec/naslov-posta" +your_key = "vaš.ključ" +summary_behavior = "Summary behavior" +default = "Default" +check_shortcode = "Check shortcode" +in_summary_mode_whether_check_the_shortcode_first_or_not_before_trim_the_content_to_x_char = "In summary mode, whether check the shortcode first or not before trim the content to x char" +manage_users = "Manage users" +add_user = "Add user" +username = "Username" +role = "Role" +change_password = "Change password" +config_mfa = "Configure MFA" +mfacode = "MFA Code" +verify_code = "Verify the MFA code" +verify_password = "Verify current password" +manualsetupkey = "You can also manually add the setup key" +mfa_error = "MFA code is not correct" +disablemfa = "Disable MFA" +enable_auto_save = "Enable Auto Save" +explain_autosave = "When enabled, new content or draft will be automatically saved every 60 seconds." +login_protect_system = "Login protection system" +cloudflare_info = "Review Cloudflare's Turnstile documentation: " +mfa_config = "Multi Factor Authentication (MFA)" +set_mfa_globally = "Set the status of MFA" +explain_mfa = "When enabled, MFA is optional for all users. When disabled, no users can use it and it hides the field on the login page." +set_version_publicly = "Version Visibility" +explain_version = "By default the version of HTMLy is visible publicly in the source code, some admins may prefer to hide this." +focus_mode = "Toggle Focus" +writing = "Writing" +writing_settings = "Writing Settings" +security = "Security" +security_settings = "Security Settings" +msg_error_field_req_username = "Username field is required." +msg_error_field_req_password = "Password field is required." +msg_error_field_req_title = "Title field is required." +msg_error_field_req_content = "Content field is required." +msg_error_field_req_tag = "Tag field is required." +msg_error_field_req_image = "Image field is required." +msg_error_field_req_video = "Video field is required." +msg_error_field_req_link = "Link field is required." +msg_error_field_req_quote = "Quote field is required." +msg_error_field_req_audio = "Audio field is required." +msg_error_field_req_feedurl = "You need to specify the feed url." +rss_feeds_description_select = "RSS Description" +rss_description_body = "Post Body" +rss_description_meta = "Post Meta Description" +admin_theme = "Admin theme" +admin_theme_light = "Light" +admin_theme_dark = "Dark" diff --git a/lang/hu_HU.ini b/lang/hu_HU.ini new file mode 100644 index 0000000..d6841a3 --- /dev/null +++ b/lang/hu_HU.ini @@ -0,0 +1,326 @@ +about = "About" +add_category = "Kategória hozzáadása" +add_content = "Tartalom hozzáadása" +add_link = "Link hozzáadása" +add_menu = "Menü hozzáadása" +add_new_page = "Új oldal hozzáadása" +add_new_post = "Új bejegyzés hozzáadása" +add_source_link_optional = "Forrás link hozzáadása (nem kötelező)" +add_sub = "Aloldal hozzáadása" +address_url = "Address (URL)" +admin = "Rendszergazda" +admin_panel_style_based_on = "Az adminisztrációs panel stílusa" +all_blog_posts = "Minden blogbejegyzés" +all_cache_has_been_deleted = "Az összes gyorsítótár törölve lett!" +all_posts_tagged = "All posts tagged" +archive_for = "Archive for" +archive_page_for = "Archive page for" +archives = "Archívum" +are_you_sure_you_want_to_delete_ = "Biztosan törli a következőt: %s?" +at_the_moment_you_are_using_auto_generated_menu = "Jelenleg ön automatikusan generált menüt használ." +audio_post = "Hangbejegyzés" +audio_post_comment = "Blogbejegyzés létrehozása kiemelt hanganyaggal" +author = "Szerző" +author_description = "Just another HTMLy user" +back_to = "Vissza ide" +backup = "Biztonsági másolat" +blog_description = "In one paragraph, tell us more about your blog." +blog_theme = "Blog Theme" +blog_title = "Blog title" +blog_title_placeholder = "My HTMLy Blog" +blog_posts_displayed_as = "Blog posts displayed as" +breadcrumb_home_text = "Breadcrumb home text" +by_using_this_importer_you_confirm_that_the_feed_is_yours_or_that_at_least_you_have_the_authority_to_publish_it = "Ennek az importnak a használatával elfogadja, ha a hírcsatorna a tiéd, vagy legalábbis jogosult vagy közzétenni." +css_class_optional = "CSS osztály (nem kötelező)" +cache_expiration = "Cache expiration (in hours)" +cache_off = "Cache off" +cache_timestamp = "Cache timestamp" +cancel = "Mégse" +cannot_read_feed_content = "Cannot read feed content" +captcha_error = "reCaptcha not correct" +categories = "Kategóriák" +category = "Kategória" +check_update = "Frissítés ellenőrzése" +clear_cache = "Gyorsítótár törlése" +comma_separated_values = "Vesszővel elválasztott értékek" +comment_system = "Comment system" +comments = "Comments" +config = "Beállítás" +congrats_you_have_the_latest_version_of_htmly = "Gratulálunk! Ön a HTMLy legújabb verzióját használja." +content = "Tartalom" +contents = "Tartalom" +copyright_line = "Copyright line" +copyright_line_placeholder = "(c) Your name." +create_backup = "Biztonsági másolat létrehozása" +created = "Létrehozva" +custom = "Egyedi" +custom_settings = "Egyéni beállítások" +dashboard = "Irányítópult" +date = "Dátum" +date_format = "Date Format" +delete = "Törlés" +description = "Leírás" +disable = "Disable" +disabled = "Disabled" +disqus_shortname = "Disqus shortname" +disqus_shortname_placeholder = "htmly" +draft = "Piszkozat" +edit = "Szerkesztés" +edit_category = "Kategória szerkesztése" +edit_post = "Edit" +edit_profile = "Profil szerkesztése" +enable = "Enable" +enable_blog_url = "Enable blog URL" +enter_image_url = "Írja be a kép URL-jét" +facebook_app_id = "Facebook App ID" +facebook_page = "Facebook page" +featured_audio = "Kiemelt hang" +featured_image = "Kiemelt kép" +featured_link = "Kiemelt hivatkozás" +featured_quote = "Kiemelt idézet" +featured_video = "Kiemelt videó" +feed_url = "Hírcsatorna URL" +filename = "Fájlnév" +follow = "Követés" +for_google_site_verification_meta = "For google-site-verification meta" +front_page_displays = "Front page displays" +full_post = "Full post" +general = "Általános" +general_settings = "Általános beállítások" +get_one_here = "Get one here" +github_pre_release = "Github pre-release" +google_analytics = "Google Analytics" +google_analytics_legacy = "Google Analytics (legacy)" +google_search_console = "Google Search Console" +home = "Főoldal" +if_left_empty_we_will_excerpt_it_from_the_content_below = "Ha üresen hagyja, akkor kivonjuk az alábbi tartalomból" +if_the_url_is_left_empty_we_will_use_the_page_title = "Ha az URL üres marad, akkor az oldal címét fogjuk használni" +if_the_url_is_left_empty_we_will_use_the_post_title = "Ha az URL üres marad, akkor a bejegyzés címét fogjuk használni" +image_post = "Képes bejegyzés" +image_post_comment = "Blogbejegyzés létrehozása kiemelt képpel" +import = "Import" +import_feed = "Hírcsatorna iport elindítása" +import_rss = "RSS importálása" +import_rss_feed_2.0 = "RSS-hírcsatorna 2.0 importálása" +insert_image = "Kép beszúrása" +invalid_error = "ERROR: Invalid username or password" +language = "System Language" +link_name = "Link neve" +link_post = "Link bejegyzés" +link_post_comment = "Blogbejegyzés létrehozása kiemelt linkkel" +login = "Bejelentkezés" +login_page = "Bejelentkezés oldal" +logout = "Kijelentkezés" +menu = "Menu" +menus = "Menüszerkesztő" +meta_description = "Meta leírás" +meta_description_character = "Meta description character" +metatags = "Metacímkék" +metatags_settings = "Metacímkék beállításai" +mine = "Az enyém" +more = "Több" +my_draft = "Saját piszkozat" +my_posts = "Saját bejegyzések" +name = "Név" +newer = "Újabb" +next = "Következő" +next_post = "Következő bejegyzés" +no_available_backup = "Jelenleg nincs elérhető biztonsági másolat." +no_draft_found = "Nincs vázlat" +no_posts_found = "Nincs bejegyzés" +no_related_post_found = "Nem található kapcsolódó bejegyzés" +no_scheduled_posts_found = "No scheduled posts found!" +no_search_results = "No search results" +nope = "Nope" +not = "No" +older = "Régebbi" +only = "Csak" +operations = "Műveletek" +page = "Page" +page_generation_time = "Page generation time" +pages = "Pages" +pass_error = "Password field is required" +password = "Jelszó" +performance = "Teljesítmény" +performance_settings = "Teljesítménybeállítás" +permalink = "Permalink" +popular = "Popular" +popular_posts = "Népszerű bejegyzések" +popular_posts_widget = "Popular posts widget" +popular_posts_widget_at_most = "Popular posts widget at most" +popular_tags = "Népszerű címkék" +post_by_author = "Posts by this author" +posted_in = "Bejegyzés helye" +posted_on = "Bejegyzés ideje" +posts = "Bejegyzések" +posts_by = "Posts by" +posts_draft = "Bejegyzések vázlata" +posts_in_archive_page_at_most = "Posts in archive page at most" +posts_in_category_page_at_most = "Posts in category page at most" +posts_in_front_page_show_at_most = "Posts in front page show at most" +posts_in_profile_page_at_most = "Posts in profile page at most" +posts_in_search_result_at_most = "Posts in search result at most" +posts_in_tag_page_at_most = "Posts in tag page at most" +posts_in_type_page_at_most = "Posts in type page at most" +posts_index_settings = "Posts index settings" +posts_list = "Bejegyzések listája" +posts_tagged = "Posts tagged" +posts_with_type = "Posts with type" +pre_release = "Pre-release" +prev = "Elöző" +prev_post = "Elöző bejegyzés" +preview = "Előnézet" +profile_for = "Profile for" +proudly_powered_by = "Büszkén működteti" +publish = "Közzététel" +publish_draft = "Piszkozat közzététele" +published = "Közzétett" +quote_post = "Bejegyzés idézettel" +quote_post_comment = "Blogbejegyzés létrehozása kiemelt idézettel" +rss_character = "RSS character" +rss_feeds_show_the_most_recent = "RSS feeds show the most recent" +rss_settings = "RSS settings" +read_more_text = "Read more text" +read_more_text_placeholder = "Read more" +reading = "Olvasás" +reading_settings = "Olvasási beállítások" +recaptcha = "reCAPTCHA" +recent_posts = "Legutóbbi bejegyzések" +recent_posts_widget_at_most = "Recent posts widget at most" +regular_post = "Rendszeres bejegyzés" +regular_post_comment = "Rendszeres bejegyzés létrehozása" +related_posts = "Kapcsolódó bejegyzések" +related_widget_posts_at_most = "Related widget posts at most" +revert_to_draft = "Vissza a piszkozathoz" +save = "Mentés" +save_config = "Save config" +save_edit = "Szerkesztés mentése" +save_menu = "Mentés menü" +save_as_draft = "Mentés piszkozatként" +save_category = "Kategória mentése" +scheduled = "Scheduled" +scheduled_posts = "Scheduled posts" +scheduled_tips = "Publishing a post with future date or time, it will go into scheduled posts" +search = "Keresés" +search_for = "Keresés" +search_results_for = "Search results for" +search_results_not_found = "Search results not found!" +secret_key = "Secret Key" +settings = "Beállítások" +sign_in_to_start_your_session = "Jelentkezzen be a munkamenet megkezdéséhez" +site_key = "Site Key" +sitemap = "Sitemap" +slug = "TLD utáni elérési útvonal" +social_media = "Social Media" +static_page = "Statikus oldal" +static_page_comment = "Statikus oldal létrehozása" +static_pages = "Statikus oldalak" +summary = "Summary" +summary_character = "Summary character" +tag = "Címke" +tagcloud_widget_at_most = "TagCloud at most" +tagline = "Tagline" +tagline_placeholder = "Databaseless PHP Blogging Platform" +tagline_description = "In a few words, explain what this blog is about." +tags = "Címkék" +this_is_legacy_code_usually_new_created_analytics_using_gtag_js = "This is legacy code. Usually new created analytics using gtag.js" +this_page_doesnt_exist = "Ez az oldal nem létezik!" +time = "Idő" +timezone = "Timezone" +title = "Cím" +to_use_disqus_or_facebook_comment_you_need_to_provide_disqus_shortname_or_facebook_app_id = "To using Disqus or Facebook comment you need to provide Disqus shortname or Facebook App ID." +token_error = "CSRF Token not correct" +tools = "Eszközök" +twitter_account = "Twitter account" +type_to_search = "Írja be a kereséshez" +uncategorized = "Nincs kategorizálva" +uncategorized_comment = "Olyan témák, amelyekhez nincs szükség kategóriára, vagy amelyek nem illenek más létező kategóriába" +universal_analytics = "Universal Analytics (gtag.js)" +unknown_feed_format = "Unknown feed format" +update = "Frissítés" +update_available = "Elérhető frissítés" +update_draft = "Piszkozat frissítése" +update_post = "Bejegyzés frissítése" +update_to = "Frissítés" +upload = "Feltöltés" +user = "Felhasználó" +user_error = "User field is required" +valid_values_range_from_0_to_1.0._see = "Valid values range from 0.0 to 1.0. See" +video_post = "Videó bejegyzés" +video_post_comment = "Blogbejegyzés létrehozása kiemelt videóval" +view = "Nézet" +view_post = "View" +views = "Nézetek" +widget = "Widget" +widget_settings = "Widget beállítások" +would_you_like_to_try_our = "Szeretné kipróbálni a mi " +yes_im_in = "Yes I'm in" +yes_not_recommended = "Yes (not recommended)" +you_dont_have_permission_to_access_this_page = "Nincs engedélyed az oldal elérésére" +your_new_config_key = "Your New Config Key" +your_new_value = "Your New Value" +your_backups = "A biztonsági másolatok" +your_latest_blog_posts = "Your latest blog posts" +your_recent_posts = "Legutóbbi bejegyzéseid" +by = "által" +hint_use_ctrlcmdf_to_search_for_your_config_key_or_value = "hint: Use Ctrl/CMD + F to search for your config key or value." +homepage = "kezdőlap" +instead = "helyett" +item_class = "CSS osztály beszúrása" +item_slug = "Link URL beszúrása" +now = "most" +of = "of" +optional = "választható" +post_your_post_slug = "/post/your-post-slug" +pro_tips_you_can_create_custom_config_key_and_print_out_your_config_key_value_anywhere_in_your_template = "pro tips: You can creating custom config key and print out your config key value anywhere in your template." +read_more = "tovább" +widget_key_placeholder = "12345abcde" +year_month_your_post_slug = "/year/month/your-post-slug" +your_key = "your.key" +summary_behavior = "Summary behavior" +default = "Default" +check_shortcode = "Check shortcode" +in_summary_mode_whether_check_the_shortcode_first_or_not_before_trim_the_content_to_x_char = "In summary mode, whether check the shortcode first or not before trim the content to x char" +manage_users = "Manage users" +add_user = "Add user" +username = "Username" +role = "Role" +change_password = "Change password" +config_mfa = "Configure MFA" +mfacode = "MFA Code" +verify_code = "Verify the MFA code" +verify_password = "Verify current password" +manualsetupkey = "You can also manually add the setup key" +mfa_error = "MFA code is not correct" +disablemfa = "Disable MFA" +enable_auto_save = "Enable Auto Save" +explain_autosave = "When enabled, new content or draft will be automatically saved every 60 seconds." +login_protect_system = "Login protection system" +cloudflare_info = "Review Cloudflare's Turnstile documentation: " +mfa_config = "Multi Factor Authentication (MFA)" +set_mfa_globally = "Set the status of MFA" +explain_mfa = "When enabled, MFA is optional for all users. When disabled, no users can use it and it hides the field on the login page." +set_version_publicly = "Version Visibility" +explain_version = "By default the version of HTMLy is visible publicly in the source code, some admins may prefer to hide this." +focus_mode = "Toggle Focus" +writing = "Writing" +writing_settings = "Writing Settings" +security = "Security" +security_settings = "Security Settings" +msg_error_field_req_username = "Username field is required." +msg_error_field_req_password = "Password field is required." +msg_error_field_req_title = "Title field is required." +msg_error_field_req_content = "Content field is required." +msg_error_field_req_tag = "Tag field is required." +msg_error_field_req_image = "Image field is required." +msg_error_field_req_video = "Video field is required." +msg_error_field_req_link = "Link field is required." +msg_error_field_req_quote = "Quote field is required." +msg_error_field_req_audio = "Audio field is required." +msg_error_field_req_feedurl = "You need to specify the feed url." +rss_feeds_description_select = "RSS Description" +rss_description_body = "Post Body" +rss_description_meta = "Post Meta Description" +admin_theme = "Admin theme" +admin_theme_light = "Light" +admin_theme_dark = "Dark" diff --git a/lang/id_ID.ini b/lang/id_ID.ini new file mode 100644 index 0000000..dd58a68 --- /dev/null +++ b/lang/id_ID.ini @@ -0,0 +1,326 @@ +about = "Tentang" +add_category = "Tambah kategori" +add_content = "Tambah konten" +add_link = "Tambahkan link" +add_menu = "Tambah menu" +add_new_page = "Tambahkan halaman baru" +add_new_post = "Tambahkan artikel baru" +add_source_link_optional = "Tambahkan link sumber (opsional)" +add_sub = "Tambah sub halaman" +address_url = "Alamat (URL)" +admin = "Admin" +admin_panel_style_based_on = "Gaya panel admin berdasarkan" +all_blog_posts = "Semua artikel" +all_cache_has_been_deleted = "Cache telah dihapus!" +all_posts_tagged = "Semua postingan dengan tag" +archive_for = "Arsip untuk" +archive_page_for = "Halaman arsip untuk" +archives = "Arsip" +are_you_sure_you_want_to_delete_ = "Anda yakin ingin menghapus %s?" +at_the_moment_you_are_using_auto_generated_menu = "Saat ini Anda menggunakan menu yang dibuat secara otomatis." +audio_post = "Artikel dengan Audio" +audio_post_comment = "Membuat artikel dengan audio unggulan" +author = "Penulis" +author_description = "Hanya pengguna HTMLy lainnya" +back_to = "Kembali ke" +backup = "Cadangkan" +blog_description = "Dalam satu paragraf, ceritakan lebih banyak tentang blog Anda." +blog_theme = "Tema" +blog_title = "Judul blog" +blog_title_placeholder = "Blog HTMLy saya" +blog_posts_displayed_as = "Artikel blog ditampilkan sebagai" +breadcrumb_home_text = "Teks beranda pada breadcrumb" +by_using_this_importer_you_confirm_that_the_feed_is_yours_or_that_at_least_you_have_the_authority_to_publish_it = "Dengan menggunakan importir ini Anda setuju jika feed adalah milik Anda atau setidaknya Anda memiliki kewenangan untuk mempublikasikannya." +css_class_optional = "CSS Class (opsional)" +cache_expiration = "Masa berlaku cache (dalam jam)" +cache_off = "Cache nonaktif" +cache_timestamp = "Stempel waktu cache" +cancel = "Batal" +cannot_read_feed_content = "Tidak bisa membaca konten feed" +captcha_error = "reCaptcha tidak benar" +categories = "Kategori" +category = "Kategori" +check_update = "Cek pembaruan" +clear_cache = "Bersihkan cache" +comma_separated_values = "Pisahkan dengan koma" +comment_system = "Sistem komentar" +comments = "Komentar" +config = "Konfigurasi" +congrats_you_have_the_latest_version_of_htmly = "Selamat! Anda memiliki HTMLy versi terbaru." +content = "Konten" +contents = "Isi" +copyright_line = "Hak cipta" +copyright_line_placeholder = "(c) Nama Anda." +create_backup = "Membuat cadangan" +created = "Dibuat" +custom = "Kustom" +custom_settings = "Pengaturan Kustom" +dashboard = "Dasbor" +date = "Tanggal" +date_format = "Format tanggal" +delete = "Hapus" +description = "Keterangan" +disable = "Matikan" +disabled = "Dimatikan" +disqus_shortname = "Nama Panggilan Disqus" +disqus_shortname_placeholder = "htmly" +draft = "Konsep" +edit = "Sunting" +edit_category = "Ubah kategori" +edit_post = "Ubah" +edit_profile = "Sunting profil" +enable = "Aktifkan" +enable_blog_url = "Aktifkan URL blog" +enter_image_url = "Masukkan URL gambar" +facebook_app_id = "ID Aplikasi Facebook" +facebook_page = "Halaman Facebook" +featured_audio = "Audio Unggulan" +featured_image = "Gambar Unggulan" +featured_link = "Tautan Unggulan" +featured_quote = "Kutipan Unggulan" +featured_video = "Video Unggulan" +feed_url = "URL RSS" +filename = "Nama berkas" +follow = "Ikuti" +for_google_site_verification_meta = "Untuk meta verifikasi situs-google" +front_page_displays = "Tampilan halaman depan" +full_post = "Artikel lengkap" +general = "Umum" +general_settings = "Pengaturan Umum" +get_one_here = "Dapatkan satu di sini" +github_pre_release = "Pra-rilis Github" +google_analytics = "Penganalisa Google" +google_analytics_legacy = "Penganalisa Google (lama)" +google_search_console = "Google Search Console" +home = "Beranda" +if_left_empty_we_will_excerpt_it_from_the_content_below = "Jika dibiarkan kosong kami akan mengutipnya dari konten di bawah ini" +if_the_url_is_left_empty_we_will_use_the_page_title = "Jika url dibiarkan kosong kita akan menggunakan judul halaman" +if_the_url_is_left_empty_we_will_use_the_post_title = "Jika URL dibiarkan kosong kita akan menggunakan judul artikel" +image_post = "Artikel bergambar" +image_post_comment = "Membuat artikel dengan gambar unggulan" +import = "Import" +import_feed = "Mulai Impor RSS" +import_rss = "Impor RSS" +import_rss_feed_2.0 = "Impor RSS Feed 2.0" +insert_image = "Sisipkan gambar" +invalid_error = "Kesalahan: nama pengguna atau kata sandi tidak sah" +language = "Bahasa Sistem" +link_name = "Nama tautan" +link_post = "Artikel tautan" +link_post_comment = "Membuat artikel dengan tautan unggulan" +login = "Masuk" +login_page = "Halaman login" +logout = "Keluar" +menu = "Menu" +menus = "Menu Editor" +meta_description = "Meta deskripsi" +meta_description_character = "Karakter meta deskripsi" +metatags = "Metatags" +metatags_settings = "Pengaturan Metatags" +mine = "Punya saya" +more = "Selengkapnya" +my_draft = "Konsep saya" +my_posts = "Artikel saya" +name = "Nama" +newer = "Baru" +next = "Selanjutnya" +next_post = "Artikel selanjutnya" +no_available_backup = "Tidak ada cadangan yang tersedia saat ini." +no_draft_found = "Konsep tidak ditemukan" +no_posts_found = "Artikel tidak ditemukan" +no_related_post_found = "Artikel terkait tidak ditemukan" +no_scheduled_posts_found = "Postingan terjadwal tidak ditemukan!" +no_search_results = "Tidak ada hasil pencarian" +nope = "Tidak" +not = "Tidak" +older = "Lama" +only = "Hanya" +operations = "Operasi" +page = "Halaman" +page_generation_time = "Waktu pembuatan halaman" +pages = "Halaman" +pass_error = "Kolom kata sandi diperlukan" +password = "Sandi" +performance = "Performa" +performance_settings = "Pengaturan Performa" +permalink = "Tautan permanen" +popular = "Populer" +popular_posts = "Artikel populer" +popular_posts_widget = "Widget artikel populer" +popular_posts_widget_at_most = "Widget artikel populer paling banyak" +popular_tags = "Tag populer" +post_by_author = "Artikel oleh Penulis ini" +posted_in = "Terbit di" +posted_on = "Terbit pada" +posts = "Artikel" +posts_by = "Postingan oleh" +posts_draft = "Daftar konsep" +posts_in_archive_page_at_most = "Artikel di halaman arsip paling banyak" +posts_in_category_page_at_most = "Artikel dalam halaman kategori paling banyak" +posts_in_front_page_show_at_most = "Artikel paling banyak ditampilkan" +posts_in_profile_page_at_most = "Artikel di halaman profil paling banyak" +posts_in_search_result_at_most = "Artikel dalam hasil pencarian paling banyak" +posts_in_tag_page_at_most = "Artikel paling banyak di halaman tag" +posts_in_type_page_at_most = "Artikel dalam halaman tipe paling banyak" +posts_index_settings = "Pengaturan indeks artikel" +posts_list = "Daftar artikel" +posts_tagged = "Postingan dengan tag" +posts_with_type = "Postingan dengan tipe" +pre_release = "Pra-rilis" +prev = "Sebelumnya" +prev_post = "Artikel sebelumnya" +preview = "Pratayang" +profile_for = "Profil untuk" +proudly_powered_by = "Dengan bangga ditenagai" +publish = "Terbitkan" +publish_draft = "Terbitkan konsep" +published = "Telah terbit" +quote_post = "Artikel dengan kutipan" +quote_post_comment = "Membuat Artikel dengan kutipan unggulan" +rss_character = "Karakter RSS" +rss_feeds_show_the_most_recent = "Umpan RSS menampilkan berapa artikel" +rss_settings = "Pengaturan RSS" +read_more_text = "Baca lebih banyak teks" +read_more_text_placeholder = "Baca lebih banyak" +reading = "Bacaan" +reading_settings = "Pengaturan Membaca" +recaptcha = "reCAPTCHA" +recent_posts = "Artikel terbaru" +recent_posts_widget_at_most = "Widget artikel terbaru paling banyak" +regular_post = "Artikel reguler" +regular_post_comment = "Membuat Artikel reguler" +related_posts = "Artikel terkait" +related_widget_posts_at_most = "Artikel widget terkait paling banyak" +revert_to_draft = "Ubah ke konsep" +save = "Simpan" +save_config = "Simpan konfigurasi" +save_edit = "Simpan Edit" +save_menu = "Simpan menu" +save_as_draft = "Simpan sebagai konsep" +save_category = "Simpan kategori" +scheduled = "Terjadwal" +scheduled_posts = "Postingan terjadwal" +scheduled_tips = "Publikasikan dengan waktu yang akan datang untuk membuat postingan terjadwal" +search = "Cari" +search_for = "Mencari" +search_results_for = "Hasil pencarian untuk" +search_results_not_found = "Hasil pencarian tidak ada!" +secret_key = "Kunci rahasia" +settings = "Pengaturan" +sign_in_to_start_your_session = "Masuk untuk memulai sesi Anda" +site_key = "Kunci Situs" +sitemap = "Peta Situs" +slug = "Tautan" +social_media = "Sosial Media" +static_page = "Halaman statis" +static_page_comment = "Membuat halaman statis" +static_pages = "Halaman statis" +summary = "Ringkasan" +summary_character = "Karakter ringkasan" +tag = "Tag" +tagcloud_widget_at_most = "TagCloud terbanyak" +tagline = "Slogan" +tagline_placeholder = "Platform Blogging PHP Tanpa Database" +tagline_description = "Secara singkat, jelaskan blog ini tentang apa" +tags = "Tags" +this_is_legacy_code_usually_new_created_analytics_using_gtag_js = "Ini adalah kode lama. Biasanya analitik baru dibuat menggunakan gtag.js" +this_page_doesnt_exist = "Halaman ini tidak ada!" +time = "Jam" +timezone = "Zona waktu" +title = "Judul" +to_use_disqus_or_facebook_comment_you_need_to_provide_disqus_shortname_or_facebook_app_id = "Untuk menggunakan Disqus atau komentar Facebook, Anda perlu memberikan username Disqus atau App ID Facebook." +token_error = "Token CSRF tidak benar" +tools = "Alat" +twitter_account = "Akun Twitter" +type_to_search = "Ketik untuk mencari" +uncategorized = "Tanpa kategori" +uncategorized_comment = "Topik yang tidak perlu kategori, atau tidak cocok dengan kategori yang ada" +universal_analytics = "Penganalisa Universal (gtag.js)" +unknown_feed_format = "Format feed tidak diketahui" +update = "Perbarui" +update_available = "Pembaruan tersedia" +update_draft = "Perbarui konsep" +update_post = "Perbarui artikel" +update_to = "Perbarui ke" +upload = "Unggah" +user = "Pengguna" +user_error = "Kolom pengguna dibutuhkan" +valid_values_range_from_0_to_1.0._see = "Nilai yang valid berkisar dari 0,0 hingga 1,0. Lihat" +video_post = "Artikel dengan video" +video_post_comment = "Membuat artikel dengan video unggulan" +view = "Lihat" +view_post = "Lihat" +views = "Tampilan" +widget = "Widget" +widget_settings = "Pengaturan Widget" +would_you_like_to_try_our = "Apakah Anda ingin mencoba " +yes_im_in = "Ya, saya ikut" +yes_not_recommended = "Ya (tidak disarankan)" +you_dont_have_permission_to_access_this_page = "Anda tidak memiliki izin untuk mengakses halaman ini" +your_new_config_key = "Kunci Konfigurasi Baru Anda" +your_new_value = "Nilai Baru Anda" +your_backups = "Cadangan Anda" +your_latest_blog_posts = "Artikel blog terbaru Anda" +your_recent_posts = "Artikel terbaru Anda" +by = "oleh" +hint_use_ctrlcmdf_to_search_for_your_config_key_or_value = " petunjuk: Gunakan Ctrl / CMD + F untuk menelusuri kunci konfigurasi atau nilai Anda." +homepage = "Beranda" +instead = "Sebagai gantinya" +item_class = "Sisipkan CSS class" +item_slug = "Sisipkan URL Tautan" +now = "sekarang" +of = "dari" +optional = "Opsional" +post_your_post_slug = "/post/slug-artikel-anda" +pro_tips_you_can_create_custom_config_key_and_print_out_your_config_key_value_anywhere_in_your_template = " tips pro: Anda dapat membuat kunci konfigurasi khusus dan mencetak nilai kunci konfigurasi Anda di mana saja di template Anda." +read_more = "Baca selengkapnya" +widget_key_placeholder = "12345abcde" +year_month_your_post_slug = "/tahun/bulan/slug-artikel-anda" +your_key = "kunci.anda" +summary_behavior = "Perilaku ringkasan" +default = "Default" +check_shortcode = "Cek shortcode" +in_summary_mode_whether_check_the_shortcode_first_or_not_before_trim_the_content_to_x_char = "Di mode ringkasan, apakah harus mengecek shortcode terlebih dahulu sebelum memangkas konten ke karakter x" +manage_users = "Kelola pengguna" +add_user = "Tambah pengguna" +username = "Username" +role = "Role" +change_password = "Ganti password" +config_mfa = "Mengonfigurasi MFA" +mfacode = "Kode MFA" +verify_code = "Verifikasi kode MFA" +verify_password = "Verifikasi kata sandi saat ini" +manualsetupkey = "Anda juga dapat menambahkan kunci pengaturan secara manual" +mfa_error = "Kode MFA tidak benar" +disablemfa = "Nonaktifkan MFA" +enable_auto_save = "Aktifkan Simpan Otomatis" +explain_autosave = "Jika diaktifkan, konten atau draf baru akan disimpan secara otomatis setiap 60 detik." +login_protect_system = "Sistem perlindungan login" +cloudflare_info = "Tinjau dokumentasi Pintu Putar Cloudflare:" +mfa_config = "Autentikasi Multi Faktor (MFA)" +set_mfa_globally = "Atur status MFA" +explain_mfa = "Saat diaktifkan, MFA bersifat opsional untuk semua pengguna. Saat dinonaktifkan, tidak ada pengguna yang dapat menggunakannya dan menyembunyikan bidang di halaman login." +set_version_publicly = "Visibilitas Versi" +explain_version = "Secara default versi HTMLy terlihat secara publik di kode sumber, beberapa admin mungkin lebih suka menyembunyikannya." +focus_mode = "Beralih Fokus" +writing = "Penulisan" +writing_settings = "Pengaturan Penulisan" +security = "Keamanan" +security_settings = "Pengaturan Keamanan" +msg_error_field_req_username = "Bidang nama pengguna wajib diisi" +msg_error_field_req_password = "Bidang kata sandi wajib diisi" +msg_error_field_req_title = "Bidang judul wajib diisi" +msg_error_field_req_content = "Bidang konten wajib diisi" +msg_error_field_req_tag = "Bidang tag wajib diisi" +msg_error_field_req_image = "Bidang gambar wajib diisi" +msg_error_field_req_video = "Bidang vidio wajib diisi" +msg_error_field_req_link = "Bidang tautan wajin diisi" +msg_error_field_req_quote = "Bidang kutipan wajib diisi." +msg_error_field_req_audio = "Bidang audio wajib diisi." +msg_error_field_req_feedurl = "Anda perlu menentukan url feed." +rss_feeds_description_select = "Deskripsi RSS" +rss_description_body = "Isi postingan" +rss_description_meta = "Deskripsi Meta Postingan" +admin_theme = "Tema admin" +admin_theme_light = "Terang" +admin_theme_dark = "Gelap" diff --git a/lang/it_IT.ini b/lang/it_IT.ini new file mode 100644 index 0000000..cc73cda --- /dev/null +++ b/lang/it_IT.ini @@ -0,0 +1,326 @@ +about = "Informazioni" +add_category = "Aggiungi categoria" +add_content = "Aggiungi contenuto" +add_link = "Aggiungi link" +add_menu = "Aggiungi menu" +add_new_page = "Aggiungi una nuova pagina" +add_new_post = "Aggiungi un nuovo articolo" +add_source_link_optional = "Aggiungi link sorgente (facoltativo)" +add_sub = "Aggiungi sub" +address_url = "Indirizzo (URL)" +admin = "Pannello Amministratore" +admin_panel_style_based_on = "Stile del pannello amminstratore basato su" +all_blog_posts = "Tutti gli articoli del blog" +all_cache_has_been_deleted = "Tutta la cache è stata svuotata !" +all_posts_tagged = "Tutti gli articoli etichettati" +archive_for = "Archivio per" +archive_page_for = "Pagina di archivio per" +archives = "Archivi" +are_you_sure_you_want_to_delete_ = "Sei sicuro di voler eliminare %s?" +at_the_moment_you_are_using_auto_generated_menu = "Al momento stai usando un menu generato automaticamente." +audio_post = "Articolo con audio" +audio_post_comment = "Crea un articolo del blog con un audio in evidenza" +author = "Autore" +author_description = "Solo un altro utente di HTMLy" +back_to = "Torna indietro" +backup = "Backup" +blog_description = "In un paragrafo, parlaci un po' di più del tuo blog." +blog_theme = "Tema del Blog" +blog_title = "Titolo del Blog" +blog_title_placeholder = "Il mio blog con HTMLy" +blog_posts_displayed_as = "Articoli del blog visualizzati come" +breadcrumb_home_text = "Testo della home Breadcrumb" +by_using_this_importer_you_confirm_that_the_feed_is_yours_or_that_at_least_you_have_the_authority_to_publish_it = "Usando questo importatore sei d'accordo che il feed sia tuo o almeno tu ne abbia l'autorità per pubblicarlo." +css_class_optional = "Classe CSS (facoltativa)" +cache_expiration = "Scadenza della cache (in ore)" +cache_off = "Disattiva cache" +cache_timestamp = "Fuso orario della cache" +cancel = "Annulla" +cannot_read_feed_content = "Impossibile leggere il contenuto del feed" +captcha_error = "reCaptcha non corretto" +categories = "Categorie" +category = "Categoria" +check_update = "Controllo aggiornamenti" +clear_cache = "Svuota la cache" +comma_separated_values = "Valori separati da virgole" +comment_system = "Sistema dei commenti" +comments = "Commenti" +config = "Configurazione" +congrats_you_have_the_latest_version_of_htmly = "Congratulazioni! Hai l'ultima versione di HTMLy." +content = "Contenuto" +contents = "Contenuti" +copyright_line = "Riga del Copyright" +copyright_line_placeholder = "(c) Il tuo nome." +create_backup = "Crea backup" +created = "Creato" +custom = "Personalizzato" +custom_settings = "Impostazioni personalizzate" +dashboard = "Pannello utente" +date = "Data" +date_format = "Formato della data" +delete = "Elimina" +description = "Descrizione" +disable = "Disabilita" +disabled = "Disabilitato" +disqus_shortname = "Nomignolo Disqus" +disqus_shortname_placeholder = "htmly" +draft = "Bozza" +edit = "Modifica" +edit_category = "Modifica categoria" +edit_post = "Modifica" +edit_profile = "Modifica profilo" +enable = "Abilita" +enable_blog_url = "Abilita URL del blog" +enter_image_url = "Inserisci l'URL dell'immagine" +facebook_app_id = "ID di Facebook" +facebook_page = "Pagina Facebook" +featured_audio = "Audio in primo piano" +featured_image = "Immagine in primo piano" +featured_link = "Link in primo piano" +featured_quote = "Citazione in primo piano" +featured_video = "Video in primo piano" +feed_url = "URL del Feed" +filename = "Nome del file" +follow = "Segui" +for_google_site_verification_meta = "For google-site-verification meta" +front_page_displays = "Visualizza pagina principale" +full_post = "Articoli completi" +general = "Generali" +general_settings = "Impostazioni generali" +get_one_here = "Prendine una qui" +github_pre_release = "Pre-release di Github" +google_analytics = "Google Analytics" +google_analytics_legacy = "Google Analytics (legacy)" +google_search_console = "Google Search Console" +home = "Home" +if_left_empty_we_will_excerpt_it_from_the_content_below = "Se assente verrà estratto dai contenuti qui sotto" +if_the_url_is_left_empty_we_will_use_the_page_title = "Se l'url rimane in bianco verrà usato il titolo della pagina" +if_the_url_is_left_empty_we_will_use_the_post_title = "Se l'url rimane in bianco verrà usato il titolo dell'articolo" +image_post = "Articolo con immagine" +image_post_comment = "Crea un articolo del blog con un'immagine in evidenza" +import = "Importa" +import_feed = "Avvia importazione del Feed" +import_rss = "Importa RSS" +import_rss_feed_2.0 = "Importa Feed RSS 2.0" +insert_image = "Inserisci immagine" +invalid_error = "ERRORE: Nome utente o password non valido/a" +language = "Lingua di sistema" +link_name = "Nome del collegamento" +link_post = "Articolo con collegamento" +link_post_comment = "Crea un articolo del blog con un collegamento in evidenza" +login = "Connessione" +login_page = "Pagina di login" +logout = "Disconnessione" +menu = "Menu" +menus = "Editor del Menu" +meta_description = "Meta descrizione" +meta_description_character = "Carattere della Metadescrizione" +metatags = "Metatags" +metatags_settings = "Impostazioni dei Metatag" +mine = "I miei contenuti" +more = "Leggi di più" +my_draft = "Le mie bozze" +my_posts = "I miei articoli" +name = "Nome" +newer = "Più recenti" +next = "Successivo" +next_post = "Articolo successivo" +no_available_backup = "Nessun backup disponibile a quest'ora." +no_draft_found = "Nessuna bozza trovata" +no_posts_found = "Nessun articolo trovato" +no_related_post_found = "Nessun articolo correlato" +no_scheduled_posts_found = "Non è stato trovato alcun articolo pianificato!" +no_search_results = "Nessun risultato della ricerca" +nope = "Nessuno" +not = "No" +older = "Più vecchi" +only = "Solo" +operations = "Operazioni" +page = "Pagina" +page_generation_time = "Tempo di generazione della pagina" +pages = "Pagine" +pass_error = "È richiesto il campo Password" +password = "Password" +performance = "Prestazioni" +performance_settings = "Impostazioni delle Prestazioni" +permalink = "Permalink" +popular = "Popolare" +popular_posts = "Articoli popolari" +popular_posts_widget = "Widget articoli popolari" +popular_posts_widget_at_most = "Widget articoli popolari al massimo" +popular_tags = "Etichette popolari" +post_by_author = "Articoli di questo utente" +posted_in = "Pubblicato in" +posted_on = "Pubblicato il" +posts = "Articoli" +posts_by = "Articoli di" +posts_draft = "Elenco delle bozze" +posts_in_archive_page_at_most = "Gli articoli nella pagina archivio al massimo" +posts_in_category_page_at_most = "Gli articoli nella pagina delle categoria al massimo" +posts_in_front_page_show_at_most = "Articoli in prima pagina da visualizzare di più" +posts_in_profile_page_at_most = "Gli articoli nella pagina del profilo al massimo" +posts_in_search_result_at_most = "Gli articoli nei risultati della ricerca al massimo" +posts_in_tag_page_at_most = "Gli articoli nella pagina delle etichette al massimo" +posts_in_type_page_at_most = "Gli articoli della pagina dei tipi al massimo" +posts_index_settings = "Impostazioni indice degli articoli" +posts_list = "Elenco articoli" +posts_tagged = "Articoli etichettati" +posts_with_type = "Articoli con un tipo" +pre_release = "Pre-release" +prev = "Precedenti" +prev_post = "Articolo precedente" +preview = "Anteprima" +profile_for = "Profilo per" +proudly_powered_by = "Questo blog è basato su" +publish = "Pubblica" +publish_draft = "Pubblica la bozza" +published = "Pubblicato" +quote_post = "Articolo con una citazione" +quote_post_comment = "Crea un articolo del blog con una citazione in evidenza" +rss_character = "Carattere RSS" +rss_feeds_show_the_most_recent = "I feed RSS visualizzano i più recenti" +rss_settings = "Impostazioni RSS" +read_more_text = "Leggi più testo" +read_more_text_placeholder = "Leggi di più" +reading = "Lettura" +reading_settings = "Impostazioni di lettura" +recaptcha = "Protezione login" +recent_posts = "Articoli recenti" +recent_posts_widget_at_most = "Widget articoli recenti al massimo" +regular_post = "Articolo semplice" +regular_post_comment = "Crea un articolo semplice per il blog" +related_posts = "Articoli correlati" +related_widget_posts_at_most = "Widget articoli correlati al massimo" +revert_to_draft = "Trasforma in bozza" +save = "Salva" +save_config = "Salva configurazione" +save_edit = "Salva Modifica" +save_menu = "Salva menu" +save_as_draft = "Salva come bozza" +save_category = "Salva categoria" +scheduled = "Pianificazione" +scheduled_posts = "Articoli pianificati" +scheduled_tips = "Pubblicando un articolo con una data o un'ora futura, questo verrà inserito negli articoli pianificati" +search = "Cerca" +search_for = "Cerca per" +search_results_for = "Risultati della ricerca per" +search_results_not_found = "Non è stato trovato nessun risultato della ricerca!" +secret_key = "Chiave segreta" +settings = "Impostazioni" +sign_in_to_start_your_session = "Connettiti per avviare la sessione" +site_key = "Chiave del sito" +sitemap = "Mappa del sito" +slug = "Slug" +social_media = "Social Media" +static_page = "Pagina statica" +static_page_comment = "Creazione di una pagina statica" +static_pages = "Pagine statiche" +summary = "Riassunto" +summary_character = "Caratteri del riassunto" +tag = "Etichetta" +tagcloud_widget_at_most = "TagCloud al massimo" +tagline = "Slogan" +tagline_placeholder = "Piattaforma per blog in PHP senza database" +tagline_description = "In poche parole, spiega di cosa parla questo blog." +tags = "Etichette" +this_is_legacy_code_usually_new_created_analytics_using_gtag_js = "Questo è codice legacy. Di solito le nuove statistiche usano il file gtag.js" +this_page_doesnt_exist = "Questa pagina non esiste !" +time = "Ora" +timezone = "Fuso orario" +title = "Titolo" +to_use_disqus_or_facebook_comment_you_need_to_provide_disqus_shortname_or_facebook_app_id = "Per usare Disqus o i commenti di Facebook hai bisogno di fornire il nomignolo di Disqus o l'ID di Facebook." +token_error = "Il token CSRF non è corretto" +tools = "Strumenti" +twitter_account = "Profilo Twitter" +type_to_search = "Digita per cercare" +uncategorized = "Senza categoria" +uncategorized_comment = "Argomenti che non necessitano di una categoria, o che non si adattano a nessuna categoria esistente" +universal_analytics = "Universal Analytics (gtag.js)" +unknown_feed_format = "Formato del feed sconosciuto" +update = "Aggiorna" +update_available = "Aggiornamento disponibile" +update_draft = "Aggiorna bozza" +update_post = "Aggiorna articolo" +update_to = "Aggiorna a" +upload = "Carica" +user = "Utente" +user_error = "È richiesto il campo nome utente" +valid_values_range_from_0_to_1.0._see = "Il campo dei valori validi va da 0.0 a 1.0. Vedi" +video_post = "Articolo video" +video_post_comment = "Crea un articolo del blog con un video in evidenza" +view = "Visualizza" +view_post = "Visualizza" +views = "Visualizzazioni" +widget = "Widget" +widget_settings = "Impostazioni dei Widget" +would_you_like_to_try_our = "Volete provare la nostra " +yes_im_in = "Si, ci sono" +yes_not_recommended = "Si (non consigliato)" +you_dont_have_permission_to_access_this_page = "Non hai il permesso di accedere a questa pagina" +your_new_config_key = "La tua nuova chiave di configurazione" +your_new_value = "Il tuo nuovo valore" +your_backups = "I tuoi backup" +your_latest_blog_posts = "I tuoi ultimi articoli sul blog" +your_recent_posts = "I tuoi articoli più recenti" +by = "di" +hint_use_ctrlcmdf_to_search_for_your_config_key_or_value = "consiglio: Usa Ctrl/CMD + F per cercare la chiave o il valore di configurazione." +homepage = "homepage" +instead = "invece" +item_class = "Inserisci Classe CSS" +item_slug = "Inserisci URL del Link" +now = "ora" +of = "di" +optional = "facoltativo" +post_your_post_slug = "/articolo/il-tuo-slug-degli-articoli" +pro_tips_you_can_create_custom_config_key_and_print_out_your_config_key_value_anywhere_in_your_template = "consiglio pratico: Puoi creare la tua chiave di configurazione e usare il valore della chiave di configurazione dovunque nel tuo template." +read_more = "leggi di più" +widget_key_placeholder = "12345abcde" +year_month_your_post_slug = "/anno/mese/il-tuo-slug-degli-articoli" +your_key = "la.tua.chiave" +summary_behavior = "Modalità riassunto" +default = "Predefinito" +check_shortcode = "Controlla codice breve" +in_summary_mode_whether_check_the_shortcode_first_or_not_before_trim_the_content_to_x_char = "In modalità riassunto, si può controllare il codice breve o no prima di ridurre il contenuto a x caratteri" +manage_users = "Gestione utenti" +add_user = "Aggiungi utente" +username = "Nome utente" +role = "Ruolo" +change_password = "Modifica password" +config_mfa = "Configura AMF" +mfacode = "Codice AMF" +verify_code = "Verifica il codice AMF" +verify_password = "Verifica la password in uso" +manualsetupkey = "Si può anche aggiungere manualmente la chiave di setup" +mfa_error = "Il codice MFA non è corretto" +disablemfa = "Disabilita AMF" +enable_auto_save = "Abilita il salvataggio automatico nelle Bozze" +explain_autosave = "Una volta abilitato, i nuovi articoli o le nuove pagine verranno atuomaticamente salvate come bozze ogni 60 secondi dopo aver iniziato a scrivere." +login_protect_system = "Sistema di protezione della connessione" +cloudflare_info = "Rivedi la documentazione di Cloudflare Turnstile: " +mfa_config = "Autenticazione Multi Fattore (AMF)" +set_mfa_globally = "Imposta lo stato della AMF" +explain_mfa = "Una volta abilitata, la AMF è facoltativa per tutti gli utenti. Se disattivata, nessun utente può usarla ed il relativo campo nella pagina di connessione viene nascosto." +set_version_publicly = "Visibilità della versione" +explain_version = "Per impostazione predefinita la versione di HTMLy è visibile a tutti nel codice sorgente, alcuni amministratori preferirebbero nasconderla." +focus_mode = "Cambia visuale" +writing = "Scrittura" +writing_settings = "Impostazioni della scrittura" +security = "Sicurezza" +security_settings = "Impostazioni della sicurezza" +msg_error_field_req_username = "È richiesto il campo nome utente." +msg_error_field_req_password = "È richiesto il campo Password." +msg_error_field_req_title = "È richiesto il campo Titolo." +msg_error_field_req_content = "È richiesto il campo Contenuto." +msg_error_field_req_tag = "È richiesto il campo Etichetta." +msg_error_field_req_image = "È richiesto il campo Immagine." +msg_error_field_req_video = "È richiesto il campo Video." +msg_error_field_req_link = "È richiesto il campo Collegamento." +msg_error_field_req_quote = "È richiesto il campo Citazione." +msg_error_field_req_audio = "È richiesto il campo Audio." +msg_error_field_req_feedurl = "Devi specificare l'url del feed." +rss_feeds_description_select = "Descrizione del feed RSS" +rss_description_body = "Corpo dell'articolo" +rss_description_meta = "Meta descrizione dell'articolo" +admin_theme = "Tema Pannello Amministratore" +admin_theme_light = "Chiaro" +admin_theme_dark = "Scuro" diff --git a/lang/ko_KO.ini b/lang/ko_KO.ini new file mode 100644 index 0000000..ad020e0 --- /dev/null +++ b/lang/ko_KO.ini @@ -0,0 +1,326 @@ +about = "이 블로그는..." +add_category = "새 카테고리 만들기" +add_content = "새 글 쓰기" +add_link = "링크 추가" +add_menu = "메뉴 추가" +add_new_page = "새 페이지 만들기" +add_new_post = "새 글 쓰기" +add_source_link_optional = "소스 링크 추가 (선택 사항)" +add_sub = "서브 페이지 추가" +address_url = "주소 (URL)" +admin = "관리자" +admin_panel_style_based_on = "관리자 패널 스타일 기반: " +all_blog_posts = "모든 블로그 글" +all_cache_has_been_deleted = "모든 캐시를 삭제했어요!" +all_posts_tagged = "All posts tagged" +archive_for = "Archive for" +archive_page_for = "Archive page for" +archives = "아카이브" +are_you_sure_you_want_to_delete_ = "정말 삭제할거예요? '%s'" +at_the_moment_you_are_using_auto_generated_menu = "지금은 자동으로 만든 메뉴를 쓰고 있어요." +audio_post = "오디오 첨부" +audio_post_comment = "오디오를 넣은 글을 쓸 수 있어요" +author = "글쓴이" +author_description = "또 다른 HTMLy 사용자" +back_to = "돌아가기" +backup = "백업" +blog_description = "한 단락으로 이 블로그에 대해 더 알려주세요." +blog_theme = "블로그 테마" +blog_title = "블로그 제목" +blog_title_placeholder = "내 HTMLy 블로그" +blog_posts_displayed_as = "글 보기 모드" +breadcrumb_home_text = "사이트 이동 홈 (Breadcrumb)" +by_using_this_importer_you_confirm_that_the_feed_is_yours_or_that_at_least_you_have_the_authority_to_publish_it = "가져오기를 사용하면 피드가 사용자의 것이거나 적어도 게시할 권한이 있다고 동의하는거예요." +css_class_optional = "CSS 클래스 (선택 사항)" +cache_expiration = "캐시 만료 (시간 단위) " +cache_off = "캐시 끄기" +cache_timestamp = "캐시 타임 스탬프" +cancel = "취소" +cannot_read_feed_content = "Cannot read feed content" +captcha_error = "reCaptcha가 틀렸어요" +categories = "카테고리" +category = "카테고리" +check_update = "업데이트 확인" +clear_cache = "캐시 지우기" +comma_separated_values = "쉼표로 분리된 값" +comment_system = "댓글 시스템" +comments = "댓글" +config = "설정" +congrats_you_have_the_latest_version_of_htmly = "축하해요! HTMLy 최신 버전을 쓰고 있어요." +content = "콘텐츠" +contents = "콘텐츠" +copyright_line = "저작권 표시" +copyright_line_placeholder = "(C) 당신의 이름." +create_backup = "백업 만들기" +created = "만듦" +custom = "사용자 지정" +custom_settings = "사용자 지정 설정" +dashboard = "대시보드" +date = "날짜" +date_format = "날짜 형식" +delete = "지우기" +description = "설명" +disable = "사용 안함" +disabled = "사용 안함" +disqus_shortname = "Disqus shortname" +disqus_shortname_placeholder = "htmly" +draft = "초안" +edit = "편집" +edit_category = "카테고리 편집" +edit_post = "편집" +edit_profile = "프로필 편집" +enable = "사용" +enable_blog_url = "'blog' URL 켜기" +enter_image_url = "이미지 URL을 입력하세요" +facebook_app_id = "페이스북 AppID" +facebook_page = "페이스북 페이지" +featured_audio = "오디오 기능" +featured_image = "이미지 기능" +featured_link = "링크 기능" +featured_quote = "인용 기능" +featured_video = "비디오 기능" +feed_url = "URL 피드" +filename = "파일 이름" +follow = "팔로우" +for_google_site_verification_meta = "google-site-verification 메타" +front_page_displays = "첫 페이지 표시" +full_post = "전체 글 보기" +general = "일반" +general_settings = "일반 설정" +get_one_here = "이 곳에서 얻을 수 있어요: " +github_pre_release = "Github 시험판" +google_analytics = "Google Analytics" +google_analytics_legacy = "Google Analytics (legacy)" +google_search_console = "구글 검색 콘솔" +home = "홈" +if_left_empty_we_will_excerpt_it_from_the_content_below = "비워둘 경우 아래 내용에서 발췌해요" +if_the_url_is_left_empty_we_will_use_the_page_title = "URL이 비어 있으면 페이지 제목을 사용해요" +if_the_url_is_left_empty_we_will_use_the_post_title = "URL이 비어 있으면 글 제목을 사용해요" +image_post = "이미지 첨부" +image_post_comment = "이미지를 넣은 글을 쓸 수 있어요" +import = "가져오기" +import_feed = "피드 가져오기 시작" +import_rss = "RSS 가져오기" +import_rss_feed_2.0 = "RSS 2.0 피드 가져오기" +insert_image = "이미지 넣기" +invalid_error = "오류: 사용자나 비밀번호가 틀렸어요" +language = "시스템 언어" +link_name = "링크 이름" +link_post = "링크 첨부" +link_post_comment = "링크가 들어간 글을 쓸 수 있어요" +login = "로그인" +login_page = "로그인 페이지" +logout = "로그아웃" +menu = "메뉴" +menus = "메뉴 편집" +meta_description = "메타 설명" +meta_description_character = "메타 설명 문자" +metatags = "메타 태그" +metatags_settings = "메타 태그 설정" +mine = "내꺼" +more = "더" +my_draft = "내 초안" +my_posts = "내 글" +name = "이름" +newer = "최신" +next = "다음" +next_post = "다음 글" +no_available_backup = "백업이 없어요." +no_draft_found = "초안이 없어요" +no_posts_found = "글이 없어요" +no_related_post_found = "관련된 글이 없어요" +no_scheduled_posts_found = "No scheduled posts found!" +no_search_results = "찾기 결과가 없어요" +nope = "아니오" +not = "아니오" +older = "오래전" +only = "오직(Only)" +operations = "작업" +page = "페이지" +page_generation_time = "페이지 생성 시간" +pages = "페이지" +pass_error = "비밀번호 필드는 필수예요" +password = "비밀번호" +performance = "성능" +performance_settings = "성능 설정" +permalink = "고정링크" +popular = "인기있는" +popular_posts = "인기 게시물" +popular_posts_widget = "인기 글 위젯" +popular_posts_widget_at_most = "최대 인기 글" +popular_tags = "인기 태그" +post_by_author = "이 글쓴이가 썼어요" +posted_in = "카테고리: " +posted_on = "글을 올렸어요: " +posts = "글" +posts_by = "글쓴이: " +posts_draft = "초안 목록" +posts_in_archive_page_at_most = "최대 아카이브 페이지" +posts_in_category_page_at_most = "최대 카테고리 페이지" +posts_in_front_page_show_at_most = "최대 프론트 페이지" +posts_in_profile_page_at_most = "최대 프로필 페이지" +posts_in_search_result_at_most = "최대 검색 결과" +posts_in_tag_page_at_most = "최대 태그 페이지" +posts_in_type_page_at_most = "최대 타입 페이지" +posts_index_settings = "인덱스 설정" +posts_list = "글 목록" +posts_tagged = "Posts tagged" +posts_with_type = "Posts with type" +pre_release = "시험판 써보기" +prev = "이전" +prev_post = "이전 글" +preview = "미리보기" +profile_for = "Profile for" +proudly_powered_by = "Proudly Powered by" +publish = "올리기" +publish_draft = "올리기" +published = "글쓴이" +quote_post = "인용 글" +quote_post_comment = "인용 글을 쓸 수 있어요" +rss_character = "RSS 글자" +rss_feeds_show_the_most_recent = "최대 최근 RSS 피드" +rss_settings = "RSS 설정" +read_more_text = "더 읽기 표시" +read_more_text_placeholder = "더 읽기" +reading = "읽기" +reading_settings = "읽기 설정" +recaptcha = "reCAPTCHA" +recent_posts = "최근 글" +recent_posts_widget_at_most = "최대 최근 글" +regular_post = "글 쓰기" +regular_post_comment = "평범하게 글을 쓸 수 있어요" +related_posts = "관련 글" +related_widget_posts_at_most = "최대 관련 위젯" +revert_to_draft = "초안으로 되돌리기" +save = "저장" +save_config = "설정 저장" +save_edit = "편집 저장" +save_menu = "메뉴 저장" +save_as_draft = "초안 저장하기" +save_category = "카테고리 저장" +scheduled = "Scheduled" +scheduled_posts = "Scheduled posts" +scheduled_tips = "Publishing a post with future date or time, it will go into scheduled posts" +search = "찾기" +search_for = "찾기" +search_results_for = "Search results for" +search_results_not_found = "찾기 결과가 없어요!" +secret_key = "비밀 키" +settings = "설정" +sign_in_to_start_your_session = "시작하려면 로그인 하세요" +site_key = "사이트 키" +sitemap = "사이트맵" +slug = "줄임표시" +social_media = "소셜 미디어" +static_page = "고정 페이지" +static_page_comment = "고정 페이지 만들기" +static_pages = "고정 페이지" +summary = "요약 보기" +summary_character = "요약 글자수" +tag = "태그" +tagcloud_widget_at_most = "최대 TagCloud" +tagline = "태그 라인" +tagline_placeholder = "데이터베이스를 쓰지 않는 PHP 블로그 플랫폼" +tagline_description = "몇 단어로 이 블로그에 대해 설명해주세요." +tags = "태그" +this_is_legacy_code_usually_new_created_analytics_using_gtag_js = "이것은 레거시 코드입니다. 보통 gtag.js를 써서 새 분석을 만들어요." +this_page_doesnt_exist = "페이지가 존재하지 않아요!" +time = "시간" +timezone = "시간대" +title = "제목" +to_use_disqus_or_facebook_comment_you_need_to_provide_disqus_shortname_or_facebook_app_id = "Disqus나 페이스북 댓글을 사용하려면 Disqus의 shortname 또는, 페이스북 AppID가 필요해요." +token_error = "CSRF 토큰이 바르지 않아요" +tools = "도구" +twitter_account = "트위터 계정" +type_to_search = "찾을 내용 입력" +uncategorized = "카테고리 없음" +uncategorized_comment = "카테고리가 필요하지 않거나 다른 카테고리에 넣을 수 없는 주제" +universal_analytics = "Universal Analytics (gtag.js)" +unknown_feed_format = "Unknown feed format" +update = "업데이트" +update_available = "업데이트가 있어요" +update_draft = "초안 업데이트" +update_post = "글 업데이트" +update_to = "업데이트: " +upload = "업로드" +user = "사용자" +user_error = "사용자 필드는 필수예요" +valid_values_range_from_0_to_1.0._see = "유효한 범위는 0.0에서 1.0까지예요. 참조: " +video_post = "비디오 첨부" +video_post_comment = "비디오를 넣은 글을 쓸 수 있어요" +view = "보기" +view_post = "보기" +views = "보기" +widget = "위젯" +widget_settings = "위젯 설정" +would_you_like_to_try_our = "우리 제품을 시험해 보시겠어요? " +yes_im_in = "예, 써볼께요" +yes_not_recommended = "예 (권장하지 않음)" +you_dont_have_permission_to_access_this_page = "이 페이지에 접근할 권한이 없어요" +your_new_config_key = "새 설정 키" +your_new_value = "새 값" +your_backups = "백업" +your_latest_blog_posts = "최신 블로그 글" +your_recent_posts = "최근 글" +by = ": " +hint_use_ctrlcmdf_to_search_for_your_config_key_or_value = "힌트: CTRL/CMD + F 를 눌러 키나 값을 찾을 수 있어요." +homepage = "홈페이지" +instead = "대신(instead)" +item_class = "CSS 클래스 추가" +item_slug = "링크 URL 추가" +now = "지금" +of = "of" +optional = "선택 사항" +post_your_post_slug = "/post/문서-줄임표시" +pro_tips_you_can_create_custom_config_key_and_print_out_your_config_key_value_anywhere_in_your_template = "추가 힌트: 사용자 지정 설정 키를 만들고 템플릿 어디에서나 키 값을 인쇄할 수 있어요." +read_more = "더 읽기" +widget_key_placeholder = "12345abcde" +year_month_your_post_slug = "/년/월/문서-줄임표시" +your_key = "your.key" +summary_behavior = "Summary behavior" +default = "Default" +check_shortcode = "Check shortcode" +in_summary_mode_whether_check_the_shortcode_first_or_not_before_trim_the_content_to_x_char = "In summary mode, whether check the shortcode first or not before trim the content to x char" +manage_users = "Manage users" +add_user = "Add user" +username = "Username" +role = "Role" +change_password = "Change password" +config_mfa = "Configure MFA" +mfacode = "MFA Code" +verify_code = "Verify the MFA code" +verify_password = "Verify current password" +manualsetupkey = "You can also manually add the setup key" +mfa_error = "MFA code is not correct" +disablemfa = "Disable MFA" +enable_auto_save = "Enable Auto Save" +explain_autosave = "When enabled, new content or draft will be automatically saved every 60 seconds." +login_protect_system = "Login protection system" +cloudflare_info = "Review Cloudflare's Turnstile documentation: " +mfa_config = "Multi Factor Authentication (MFA)" +set_mfa_globally = "Set the status of MFA" +explain_mfa = "When enabled, MFA is optional for all users. When disabled, no users can use it and it hides the field on the login page." +set_version_publicly = "Version Visibility" +explain_version = "By default the version of HTMLy is visible publicly in the source code, some admins may prefer to hide this." +focus_mode = "Toggle Focus" +writing = "Writing" +writing_settings = "Writing Settings" +security = "Security" +security_settings = "Security Settings" +msg_error_field_req_username = "Username field is required." +msg_error_field_req_password = "Password field is required." +msg_error_field_req_title = "Title field is required." +msg_error_field_req_content = "Content field is required." +msg_error_field_req_tag = "Tag field is required." +msg_error_field_req_image = "Image field is required." +msg_error_field_req_video = "Video field is required." +msg_error_field_req_link = "Link field is required." +msg_error_field_req_quote = "Quote field is required." +msg_error_field_req_audio = "Audio field is required." +msg_error_field_req_feedurl = "You need to specify the feed url." +rss_feeds_description_select = "RSS Description" +rss_description_body = "Post Body" +rss_description_meta = "Post Meta Description" +admin_theme = "Admin theme" +admin_theme_light = "Light" +admin_theme_dark = "Dark" diff --git a/lang/ms_MY.ini b/lang/ms_MY.ini new file mode 100644 index 0000000..384d92c --- /dev/null +++ b/lang/ms_MY.ini @@ -0,0 +1,326 @@ +about = "Perihal" +add_category = "Kategori Add" +add_content = "Kandungan Add" +add_link = "Pautan Tambah" +add_menu = "Menu Add" +add_new_page = "Tambah halaman baru" +add_new_post = "Tambah jawatan baru" +add_source_link_optional = "Tambah pautan sumber (pilihan)" +add_sub = "Halaman sub Add" +address_url = "Alamat (URL)" +admin = "Admin" +admin_panel_style_based_on = "Gaya panel Admin berdasarkan" +all_blog_posts = "Jawatan blog Semua" +all_cache_has_been_deleted = "Semua cache telah dipadam!" +all_posts_tagged = "All posts tagged" +archive_for = "Archive for" +archive_page_for = "Archive page for" +archives = "Arkib" +are_you_sure_you_want_to_delete_ = "Adakah anda pasti anda mahu memadam % s ?" +at_the_moment_you_are_using_auto_generated_menu = "Pada masa ini anda menggunakan auto menu dihasilkan." +audio_post = "Post Audio" +audio_post_comment = "Mewujudkan post blog dengan audio yang diketengahkan" +author = "Pengarang" +author_description = "Just another HTMLy user" +back_to = "Kembali kepada" +backup = "Backup" +blog_description = "Dalam satu ayat, memberitahu kita lebih lanjut mengenai blog anda." +blog_theme = "Blog Tema" +blog_title = "Tajuk blog" +blog_title_placeholder = "My HTMLy Blog" +blog_posts_displayed_as = "Jawatan Blog dipaparkan sebagai" +breadcrumb_home_text = "Text rumah Breadcrumb" +by_using_this_importer_you_confirm_that_the_feed_is_yours_or_that_at_least_you_have_the_authority_to_publish_it = "Dengan menggunakan pengimport ini anda bersetuju jika suapan itu milik anda atau sekurang-kurangnya anda mempunyai kuasa untuk menerbitkan ia." +css_class_optional = "CSS Kelas (pilihan)" +cache_expiration = "Cache tamat tempoh (dalam jam)" +cache_off = "Cache off" +cache_timestamp = "Cache cap masa" +cancel = "Batal" +cannot_read_feed_content = "Cannot read feed content" +captcha_error = "reCaptcha not correct" +categories = "Kategori" +category = "Kategori" +check_update = "Daftar update" +clear_cache = "Kosongkan cache" +comma_separated_values = "Comma Separated Values" +comment_system = "Sistem Comment" +comments = "Comments" +config = "Config" +congrats_you_have_the_latest_version_of_htmly = "Tahniah! Anda mempunyai versi terbaru HTMLy." +content = "Kandungan" +contents = "Kandungan" +copyright_line = "Garis Copyright" +copyright_line_placeholder = "(c) Nama anda." +create_backup = "Buat sandaran" +created = "Dicipta" +custom = "Custom" +custom_settings = "Tetapan Custom" +dashboard = "Dashboard" +date = "Tarikh" +date_format = "Format tarikh" +delete = "Padam" +description = "Penerangan" +disable = "Disable" +disabled = "Orang Kurang Upaya" +disqus_shortname = "Disqus shortname" +disqus_shortname_placeholder = "Htmly" +draft = "Draf" +edit = "Edit" +edit_category = "Edit kategori" +edit_post = "Edit" +edit_profile = "Sunting profil" +enable = "Enable" +enable_blog_url = "Membolehkan blog URL" +enter_image_url = "Masukkan URL imej" +facebook_app_id = "Facebook App ID" +facebook_page = "Laman Facebook" +featured_audio = "Terutama Audio" +featured_image = "Imej Pilihan" +featured_link = "Kemudahan Link" +featured_quote = "Quote Pilihan" +featured_video = "Terutama Video" +feed_url = "URL Feed" +filename = "Nama fail" +follow = "Ikut" +for_google_site_verification_meta = "Bagi google-site-pengesahan meta" +front_page_displays = "Memaparkan halaman depan" +full_post = "Post Penuh" +general = "Umum" +general_settings = "Tetapan umum" +get_one_here = "Dapatkan satu di sini" +github_pre_release = "Github pra keluaran" +google_analytics = "Google Analytics" +google_analytics_legacy = "Google Analytics (warisan)" +google_search_console = "Google Search Console" +home = "Home" +if_left_empty_we_will_excerpt_it_from_the_content_below = "Jika cuti mengosongkan kami akan petikan dari kandungan di bawah" +if_the_url_is_left_empty_we_will_use_the_page_title = "Jika cuti url kosongkan kami akan menggunakan tajuk halaman" +if_the_url_is_left_empty_we_will_use_the_post_title = "Jika cuti url kosongkan kami akan menggunakan tajuk post" +image_post = "Post Image" +image_post_comment = "Mewujudkan post blog dengan imej yang ditampilkan" +import = "Import" +import_feed = "Mula Import Feed" +import_rss = "Import RSS" +import_rss_feed_2.0 = "Import RSS Feed 2.0" +insert_image = "Insert Image" +invalid_error = "ERROR: Invalid username or password" +language = "Sistem Bahasa" +link_name = "Nama Link" +link_post = "Link post" +link_post_comment = "Mewujudkan post blog dengan link yang diketengahkan" +login = "Log masuk" +login_page = "Halaman Login" +logout = "Log keluar" +menu = "Menu" +menus = "Menu Editor" +meta_description = "Description Meta" +meta_description_character = "Meta description watak" +metatags = "Metatags" +metatags_settings = "Metatags Tetapan" +mine = "Mine" +more = "Lagi" +my_draft = "Draf Saya" +my_posts = "Jawatan saya" +name = "Nama" +newer = "Terbaru" +next = "Next" +next_post = "Post Next" +no_available_backup = "Tiada sandaran yang ada pada masa ini." +no_draft_found = "Tidak draf dijumpai" +no_posts_found = "Tiada ulasan dijumpai" +no_related_post_found = "Tiada suapan berita berkaitan dijumpai" +no_scheduled_posts_found = "No scheduled posts found!" +no_search_results = "No search results" +nope = "Nope" +not = "Tidak" +older = "Lama" +only = "Sahaja" +operations = "Operasi" +page = "Page" +page_generation_time = "Page masa generasi" +pages = "Pages" +pass_error = "Password field is required" +password = "Kata Laluan" +performance = "Prestasi" +performance_settings = "Tetapan Prestasi" +permalink = "Permalink" +popular = "Popular" +popular_posts = "Jawatan Popular" +popular_posts_widget = "Jawatan Popular widget" +popular_posts_widget_at_most = "Jawatan Popular widget paling banyak" +popular_tags = "Tag Popular" +post_by_author = "Posts by this author" +posted_in = "Posted in" +posted_on = "Posted on" +posts = "Siaran" +posts_by = "Posts by" +posts_draft = "Siaran menggubal" +posts_in_archive_page_at_most = "Siaran di halaman arkib paling banyak" +posts_in_category_page_at_most = "Siaran dalam halaman kategori paling banyak" +posts_in_front_page_show_at_most = "Siaran dalam persembahan muka depan paling banyak" +posts_in_profile_page_at_most = "Siaran di halaman profil paling banyak" +posts_in_search_result_at_most = "Siaran dalam hasil carian paling banyak" +posts_in_tag_page_at_most = "Siaran di halaman tag paling banyak" +posts_in_type_page_at_most = "Siaran di halaman jenis paling banyak" +posts_index_settings = "Siaran tetapan index" +posts_list = "Senarai Posts" +posts_tagged = "Posts tagged" +posts_with_type = "Posts with type" +pre_release = "Pra-release" +prev = "Tua" +prev_post = "Sebelum Post" +preview = "Preview" +profile_for = "Profile for" +proudly_powered_by = "Dengan bangganya dikuasakan oleh" +publish = "Menerbitkan" +publish_draft = "Terbitkan draf" +published = "Diterbitkan" +quote_post = "Post Quote" +quote_post_comment = "Mewujudkan blog post with quote diketengahkan" +rss_character = "Watak RSS" +rss_feeds_show_the_most_recent = "RSS suapan menunjukkan yang paling baru-baru ini" +rss_settings = "Tetapan RSS" +read_more_text = "Baca lebih lanjut text" +read_more_text_placeholder = "Baca lebih" +reading = "Membaca" +reading_settings = "Tetapan Reading" +recaptcha = "ReCAPTCHA" +recent_posts = "Jawatan baru-baru" +recent_posts_widget_at_most = "Jawatan terkini widget paling banyak" +regular_post = "Post biasa" +regular_post_comment = "Mewujudkan blog post biasa" +related_posts = "Related posts" +related_widget_posts_at_most = "Berkaitan widget jawatan paling banyak" +revert_to_draft = "Kembali kepada draf" +save = "Save" +save_config = "Simpan config" +save_edit = "Save Edit" +save_menu = "Simpan menu" +save_as_draft = "Menyimpan sebagai draf" +save_category = "Simpan kategori" +scheduled = "Scheduled" +scheduled_posts = "Scheduled posts" +scheduled_tips = "Publishing a post with future date or time, it will go into scheduled posts" +search = "Cari" +search_for = "Carian untuk" +search_results_for = "Search results for" +search_results_not_found = "Search results not found!" +secret_key = "Secret Key" +settings = "Tetapan" +sign_in_to_start_your_session = "Log masuk untuk memulakan sesi anda" +site_key = "Laman Utama" +sitemap = "Sitemap" +slug = "Slug" +social_media = "Media Sosial" +static_page = "Halaman statik" +static_page_comment = "Membuat halaman statik" +static_pages = "Laman statik" +summary = "Ringkasan" +summary_character = "Ringkasan watak" +tag = "Tag" +tagcloud_widget_at_most = "TagCloud at most" +tagline = "Tagline" +tagline_placeholder = "Blogging Platform Databaseless PHP" +tagline_description = "Dalam beberapa perkataan, menjelaskan apa yang blog ini adalah kira-kira." +tags = "Tag" +this_is_legacy_code_usually_new_created_analytics_using_gtag_js = "Ini adalah kod warisan. Selalunya analisis baru dicipta menggunakan gtag.js" +this_page_doesnt_exist = "Laman ini tidak wujud!" +time = "Masa" +timezone = "Zon masa" +title = "Tajuk" +to_use_disqus_or_facebook_comment_you_need_to_provide_disqus_shortname_or_facebook_app_id = "Untuk menggunakan Disqus atau Facebook komen anda perlu memberikan Disqus shortname atau Facebook App ID." +token_error = "CSRF Token not correct" +tools = "Tools" +twitter_account = "Akaun Twitter" +type_to_search = "Taip untuk mencari" +uncategorized = "Uncategorized" +uncategorized_comment = "Topik yang tidak perlu kategori, atau tidak patut ke dalam mana-mana kategori yang sedia ada yang lain" +universal_analytics = "Universal Analytics (gtag.js)" +unknown_feed_format = "Unknown feed format" +update = "Update" +update_available = "Kemaskini ada" +update_draft = "Update draf" +update_post = "Update post" +update_to = "Kemas kini kepada" +upload = "Muat naik" +user = "Pengguna" +user_error = "User field is required" +valid_values_range_from_0_to_1.0._see = "Nilai sah berkisar 0,0-1,0. Lihat" +video_post = "Post Video" +video_post_comment = "Mewujudkan post blog dengan video yang diketengahkan" +view = "View" +view_post = "View" +views = "Paparan" +widget = "Widget" +widget_settings = "Widget Tetapan" +would_you_like_to_try_our = "Adakah anda ingin mencuba kami" +yes_im_in = "Ya saya setuju" +yes_not_recommended = "Ya (tidak digalakkan)" +you_dont_have_permission_to_access_this_page = "Anda tidak mempunyai kebenaran untuk mengakses halaman ini" +your_new_config_key = "Baru Anda Config Key" +your_new_value = "Nilai Baru Anda" +your_backups = "Backup Anda" +your_latest_blog_posts = "Posting blog terkini Anda" +your_recent_posts = "Jawatan baru-baru Anda" +by = "Oleh" +hint_use_ctrlcmdf_to_search_for_your_config_key_or_value = " tanda-tanda: Gunakan Ctrl / CMD + F untuk mencari kekunci config anda atau nilai." +homepage = "Laman utama" +instead = "Dan bukannya" +item_class = "Insert kelas CSS" +item_slug = "Insert Link URL" +now = "Sekarang" +of = "of" +optional = "Pilihan" +post_your_post_slug = "/ Pos /-post-slug anda" +pro_tips_you_can_create_custom_config_key_and_print_out_your_config_key_value_anywhere_in_your_template = " pro tips:. Anda boleh mewujudkan utama config adat dan mencetak nilai mana-mana sahaja kunci config anda dalam template anda" +read_more = "Read more" +widget_key_placeholder = "12345abcde" +year_month_your_post_slug = "/ Tahun / bulan /-post-slug anda" +your_key = "Your.key" +summary_behavior = "Summary behavior" +default = "Default" +check_shortcode = "Check shortcode" +in_summary_mode_whether_check_the_shortcode_first_or_not_before_trim_the_content_to_x_char = "In summary mode, whether check the shortcode first or not before trim the content to x char" +manage_users = "Manage users" +add_user = "Add user" +username = "Username" +role = "Role" +change_password = "Change password" +config_mfa = "Configure MFA" +mfacode = "MFA Code" +verify_code = "Verify the MFA code" +verify_password = "Verify current password" +manualsetupkey = "You can also manually add the setup key" +mfa_error = "MFA code is not correct" +disablemfa = "Disable MFA" +enable_auto_save = "Enable Auto Save" +explain_autosave = "When enabled, new content or draft will be automatically saved every 60 seconds." +login_protect_system = "Login protection system" +cloudflare_info = "Review Cloudflare's Turnstile documentation: " +mfa_config = "Multi Factor Authentication (MFA)" +set_mfa_globally = "Set the status of MFA" +explain_mfa = "When enabled, MFA is optional for all users. When disabled, no users can use it and it hides the field on the login page." +set_version_publicly = "Version Visibility" +explain_version = "By default the version of HTMLy is visible publicly in the source code, some admins may prefer to hide this." +focus_mode = "Toggle Focus" +writing = "Writing" +writing_settings = "Writing Settings" +security = "Security" +security_settings = "Security Settings" +msg_error_field_req_username = "Username field is required." +msg_error_field_req_password = "Password field is required." +msg_error_field_req_title = "Title field is required." +msg_error_field_req_content = "Content field is required." +msg_error_field_req_tag = "Tag field is required." +msg_error_field_req_image = "Image field is required." +msg_error_field_req_video = "Video field is required." +msg_error_field_req_link = "Link field is required." +msg_error_field_req_quote = "Quote field is required." +msg_error_field_req_audio = "Audio field is required." +msg_error_field_req_feedurl = "You need to specify the feed url." +rss_feeds_description_select = "RSS Description" +rss_description_body = "Post Body" +rss_description_meta = "Post Meta Description" +admin_theme = "Admin theme" +admin_theme_light = "Light" +admin_theme_dark = "Dark" diff --git a/lang/nl_NL.ini b/lang/nl_NL.ini new file mode 100644 index 0000000..ff808cf --- /dev/null +++ b/lang/nl_NL.ini @@ -0,0 +1,326 @@ +about = "Over" +add_category = "Categorie toevoegen" +add_content = "Inhoud toevoegen" +add_link = "Voeg link toe" +add_menu = "Menu toevoegen" +add_new_page = "Nieuwe pagina toevoegen" +add_new_post = "Nieuw bericht toevoegen" +add_source_link_optional = "Bronlink toevoegen (optioneel)" +add_sub = "Subpagina toevoegen" +address_url = "Webadres (URL)" +admin = "Admin" +admin_panel_style_based_on = "Stijl Adminpaneel gebaseerd op" +all_blog_posts = "Alle blogberichten" +all_cache_has_been_deleted = "Alle cache werd verwijderd!" +all_posts_tagged = "Alle berichten gelabeld" +archive_for = "Archief voor" +archive_page_for = "Archief pagina voor" +archives = "Archieven" +are_you_sure_you_want_to_delete_ = "Ben je zeker dat je wil verwijderen %s?" +at_the_moment_you_are_using_auto_generated_menu = "Op dit ogenblik gebruikt u een automatisch gegenereerd menu." +audio_post = "Audiobericht" +audio_post_comment = "Blogpost maken met aanbevolen audio" +author = "Auteur" +author_description = "Zomaar een HTMLy gebruiker" +back_to = "Terug naar" +backup = "Backup" +blog_description = "Vertel ons in een alinea wat meer over uw blog." +blog_theme = "Blog thema" +blog_title = "Titel blog" +blog_title_placeholder = "Mijn HTMLy Blog" +blog_posts_displayed_as = "Blogberichten weergegeven als" +breadcrumb_home_text = "Broodkruimel start tekst" +by_using_this_importer_you_confirm_that_the_feed_is_yours_or_that_at_least_you_have_the_authority_to_publish_it = "Door te importeren geef je aan dat je er toestemming voor hebt." +css_class_optional = "CSS Class (optioneel)" +cache_expiration = "Cache vervaltijd (in uren)" +cache_off = "Cache uit" +cache_timestamp = "Tijdstempel cache" +cancel = "Annuleren" +cannot_read_feed_content = "Kan feed inhoud niet lezen" +captcha_error = "reCaptcha niet correct" +categories = "Categorieën" +category = "Categorie" +check_update = "Controleer updates" +clear_cache = "Cache verwijderen" +comma_separated_values = "Waarden gescheiden door komma's (CSV)" +comment_system = "Commentaarsysteem" +comments = "Reacties" +config = "Configuratie" +congrats_you_have_the_latest_version_of_htmly = "Gefeliciteerd! Je hebt de laatste versie van HTMLy." +content = "Inhoud" +contents = "Inhoud" +copyright_line = "Copyrightregel" +copyright_line_placeholder = "(c) Uw Naam." +create_backup = "Maak een backup" +created = "Gemaakt" +custom = "Aangepast" +custom_settings = "Aangepaste instellingen" +dashboard = "Dashboard" +date = "Datum" +date_format = "Datumnotatie" +delete = "Verwijder" +description = "Omschrijving" +disable = "Uitschakelen" +disabled = "Uitgeschakeld" +disqus_shortname = "Disqus gebruikersnaam" +disqus_shortname_placeholder = "htmly" +draft = "Ontwerp" +edit = "Bewerk" +edit_category = "Bewerk categorie" +edit_post = "Bewerk" +edit_profile = "Bewerk profiel" +enable = "Inschakelen" +enable_blog_url = "Activeer blog URL" +enter_image_url = "Voer de URL van de afbeelding in" +facebook_app_id = "Facebook App ID" +facebook_page = "Facebook pagina" +featured_audio = "Uitgelichte Audio" +featured_image = "Uitgelichte Afbeelding" +featured_link = "Uitgelichte Link" +featured_quote = "Uitgelicht Citaat" +featured_video = "Uitgelichte Video" +feed_url = "Feed URL" +filename = "Bestandsnaam" +follow = "Volg" +for_google_site_verification_meta = "Voor google-site-verificatie meta" +front_page_displays = "Voorpagina weergaven" +full_post = "Volledige bericht" +general = "Algemeen" +general_settings = "Algemene Instellingen" +get_one_here = "Krijg er hier een" +github_pre_release = "Github pre-release" +google_analytics = "Google Analytics" +google_analytics_legacy = "Google Analytics (legacy)" +google_search_console = "Google Zoek Console" +home = "Start" +if_left_empty_we_will_excerpt_it_from_the_content_below = "Als u het leeg laat, halen we het uit de onderstaande inhoud" +if_the_url_is_left_empty_we_will_use_the_page_title = "Als de url leeg wordt gelaten, wordt de titel van de pagina gebruikt" +if_the_url_is_left_empty_we_will_use_the_post_title = "Als de url leeg wordt gelaten, wordt de titel van het bericht gebruikt" +image_post = "Bericht met afbeelding" +image_post_comment = "Nieuw bericht met uitgelichte afbeelding" +import = "Importeer" +import_feed = "Importeer feed starten" +import_rss = "Importeer RSS" +import_rss_feed_2.0 = "Importeer RSS Feed 2.0" +insert_image = "Afbeelding invoegen" +invalid_error = "FOUT: Ongeldig gebruikersnaam of wachtwoord" +language = "Systeemtaal" +link_name = "Linknaam" +link_post = "Bericht met link" +link_post_comment = "Nieuw bericht met uitgelichte verwijzing" +login = "aanmelden" +login_page = "Aanmeldpagina" +logout = "Afmelden" +menu = "Menu" +menus = "Menu Bewerken" +meta_description = "Meta omschrijving" +meta_description_character = "Metabeschrijving" +metatags = "Metalabels" +metatags_settings = "Instellingen metalabels" +mine = "Mijn" +more = "Meer" +my_draft = "Mijn concept" +my_posts = "Mijn berichten" +name = "Naam" +newer = "Nieuwere" +next = "Volgende" +next_post = "Volgende bericht" +no_available_backup = "Op dit ogenblik is er geen backup beschikbaar." +no_draft_found = "Geen concept gevonden" +no_posts_found = "Geen berichten gevonden" +no_related_post_found = "Geen gerelateerd bericht gevonden" +no_scheduled_posts_found = "Geen geagendeerd bericht gevonden!" +no_search_results = "Geen zoekresultaat gevonden" +nope = "Nee" +not = "Nee" +older = "Oudere" +only = "Enkel" +operations = "Operaties" +page = "Pagina" +page_generation_time = "Generatietijd pagina" +pages = "Pagina's" +pass_error = "Wachtwoord veld is verplicht" +password = "Wachtwoord" +performance = "Prestaties" +performance_settings = "Prestatie Instellingen" +permalink = "Definitieve link" +popular = "Populair" +popular_posts = "Populaire berichten" +popular_posts_widget = "Populaire berichten widget" +popular_posts_widget_at_most = "Maximum populaire berichten widget" +popular_tags = "Populaire labels" +post_by_author = "Bericht van deze auteur" +posted_in = "Geplaatst in" +posted_on = "Geplaatst op" +posts = "Berichten" +posts_by = "Geplaatst door" +posts_draft = "Berichten ontwerpen" +posts_in_archive_page_at_most = "Maximum berichten op archief pagina" +posts_in_category_page_at_most = "Maximum berichten op pagina categorie" +posts_in_front_page_show_at_most = "Maximum berichten op de voorpagina" +posts_in_profile_page_at_most = "Maximum berichten op profielpagina" +posts_in_search_result_at_most = "Maximum berichten in zoekresultaat" +posts_in_tag_page_at_most = "Maximum berichten op tag pagina" +posts_in_type_page_at_most = "Maximum berichten op type pagina" +posts_index_settings = "Index instellingen berichten" +posts_list = "Lijst berichten" +posts_tagged = "Bericht gelabeld" +posts_with_type = "Bericht van type" +pre_release = "Pre-release" +prev = "Vorige" +prev_post = "Vorige bericht" +preview = "Voorbeeld" +profile_for = "Profiel van" +proudly_powered_by = "Wordt mogelijk gemaakt door" +publish = "Publiceer" +publish_draft = "Publiceer ontwerp" +published = "Gepubliceerd" +quote_post = "Bericht met citaat" +quote_post_comment = "Blogbericht maken met citaat" +rss_character = "RSS tekens" +rss_feeds_show_the_most_recent = "RSS feeds toon de meest recente" +rss_settings = "RSS instellingen" +read_more_text = "Lees meer tekst" +read_more_text_placeholder = "Lees meer tekst placeholder" +reading = "Lezen" +reading_settings = "Instellingen lezen" +recaptcha = "reCAPTCHA" +recent_posts = "Recente berichten" +recent_posts_widget_at_most = "Maximum recente berichten widget" +regular_post = "Reguliere post" +regular_post_comment = "Nieuw bericht maken" +related_posts = "Gerelateerde berichten" +related_widget_posts_at_most = "Maximum Gerelateerde berichten widget" +revert_to_draft = "Terug naar concept" +save = "Opslaan" +save_config = "Bewaar configuratie" +save_edit = "Wijzigingen opslaan" +save_menu = "Menu opslaan" +save_as_draft = "Opslaan als concept" +save_category = "Categorie opslaan" +scheduled = "Geagendeerd (later)" +scheduled_posts = "Geagendeerd bericht" +scheduled_tips = "Geagendeerd bericht met datum in toekomst, wordt later zichtbaar" +search = "Zoeken" +search_for = "Zoeken naar" +search_results_for = "Zoekresultaten voor" +search_results_not_found = "Geen zoekresultaten!" +secret_key = "Geheime sleutel" +settings = "Instellingen" +sign_in_to_start_your_session = "Log in om je sessie te starten" +site_key = "Sitesleutel" +sitemap = "Sitemap" +slug = "Slug" +social_media = "Sociale media" +static_page = "Statische pagina" +static_page_comment = "Statische pagina maken" +static_pages = "Statische pagina's" +summary = "Samenvatting" +summary_character = "Samenvattingsteken" +tag = "Label" +tagcloud_widget_at_most = "LabelWolk met meeste woorden" +tagline = "Labellijn" +tagline_placeholder = "Databaseloos PHP Bloggen Platform" +tagline_description = "In een paar woorden, waar gaat dit blog over." +tags = "Labels" +this_is_legacy_code_usually_new_created_analytics_using_gtag_js = "This is legacy code. Usually new created analytics using gtag.js" +this_page_doesnt_exist = "Deze pagina bestaat niet!" +time = "Tijd" +timezone = "Tijdzone" +title = "Titel" +to_use_disqus_or_facebook_comment_you_need_to_provide_disqus_shortname_or_facebook_app_id = "Om Disqus of Facebook commentaar te gebruiken moet u Disqus shortname of Facebook App ID opgeven." +token_error = "CSRF Token niet correct" +tools = "Gereedschap" +twitter_account = "Twitter (X) account" +type_to_search = "Tik hier uw zoekterm" +uncategorized = "Niet ingedeeld" +uncategorized_comment = "Onderwerpen die geen categorie nodig hebben, of niet passen in een andere bestaande categorie" +universal_analytics = "Universele Analyse (gtag.js)" +unknown_feed_format = "Onbekende berichtenopmaak" +update = "Bijwerken" +update_available = "Update beschikbaar" +update_draft = "Concept bijwerken" +update_post = "Bericht bijwerken " +update_to = "Bijwerken naar" +upload = "Upload" +user = "Gebruiker" +user_error = "Gebruikersveld is verplicht" +valid_values_range_from_0_to_1.0._see = "Geldige waarden wisselen van 0,0 tot 1,0. Zie" +video_post = "Video bericht" +video_post_comment = "Bericht maken met aanbevolen video" +view = "Bekijken" +view_post = "Bekijk bericht" +views = "Aantal keer bekeken" +widget = "Widget" +widget_settings = "Instellingen Widget" +would_you_like_to_try_our = "Probeert u onze" +yes_im_in = "Ja, ik doe mee" +yes_not_recommended = "Ja (niet aanbevolen)" +you_dont_have_permission_to_access_this_page = "U heeft geen toestemming om deze pagina te openen" +your_new_config_key = "Uw nieuwe configuratiesleutel" +your_new_value = "Uw nieuwe waarde" +your_backups = "Uw backups" +your_latest_blog_posts = "Uw laatste blogberichten" +your_recent_posts = "Uw recente berichten" +by = "door" +hint_use_ctrlcmdf_to_search_for_your_config_key_or_value = "hint: Gebruik Ctrl/CMD + F om jouw config key of waarde te vinden." +homepage = "start" +instead = "in plaats van" +item_class = "Invoegen CSS class" +item_slug = "Link URL invoegen" +now = "nu" +of = "of" +optional = "optioneel" +post_your_post_slug = "/bericht/uw-bericht-slug" +pro_tips_you_can_create_custom_config_key_and_print_out_your_config_key_value_anywhere_in_your_template = "pro tips: Je kan zelf een key maken en printen overal in je template." +read_more = "Lees meer" +widget_key_placeholder = "12345abcde" +year_month_your_post_slug = "/jaar/maand/uw-bericht-slug" +your_key = "jouw sleutel" +summary_behavior = "Samenvatting" +default = "Standaard" +check_shortcode = "Controleercode" +in_summary_mode_whether_check_the_shortcode_first_or_not_before_trim_the_content_to_x_char = "Bij een samenvatting, controleer eerst wat er staat of gebruik x tekens" +manage_users = "Beheer gebruikers" +add_user = "Voeg gebruiker toe" +username = "Gebruiker" +role = "Rol" +change_password = "Wijzig wachtwoord" +config_mfa = "Configure MFA" +mfacode = "MFA Code" +verify_code = "Verify the MFA code" +verify_password = "Verify current password" +manualsetupkey = "You can also manually add the setup key" +mfa_error = "MFA code is not correct" +disablemfa = "Disable MFA" +enable_auto_save = "Enable Auto Save" +explain_autosave = "When enabled, new content or draft will be automatically saved every 60 seconds." +login_protect_system = "Login protection system" +cloudflare_info = "Review Cloudflare's Turnstile documentation: " +mfa_config = "Multi Factor Authentication (MFA)" +set_mfa_globally = "Set the status of MFA" +explain_mfa = "When enabled, MFA is optional for all users. When disabled, no users can use it and it hides the field on the login page." +set_version_publicly = "Version Visibility" +explain_version = "By default the version of HTMLy is visible publicly in the source code, some admins may prefer to hide this." +focus_mode = "Toggle Focus" +writing = "Writing" +writing_settings = "Writing Settings" +security = "Security" +security_settings = "Security Settings" +msg_error_field_req_username = "Username field is required." +msg_error_field_req_password = "Password field is required." +msg_error_field_req_title = "Title field is required." +msg_error_field_req_content = "Content field is required." +msg_error_field_req_tag = "Tag field is required." +msg_error_field_req_image = "Image field is required." +msg_error_field_req_video = "Video field is required." +msg_error_field_req_link = "Link field is required." +msg_error_field_req_quote = "Quote field is required." +msg_error_field_req_audio = "Audio field is required." +msg_error_field_req_feedurl = "You need to specify the feed url." +rss_feeds_description_select = "RSS Description" +rss_description_body = "Post Body" +rss_description_meta = "Post Meta Description" +admin_theme = "Admin theme" +admin_theme_light = "Light" +admin_theme_dark = "Dark" diff --git a/lang/pl_PL.ini b/lang/pl_PL.ini new file mode 100644 index 0000000..b022fbd --- /dev/null +++ b/lang/pl_PL.ini @@ -0,0 +1,327 @@ +about = "Informacje" +add_category = "Dodaj kategorię" +add_content = "Dodaj zawartość" +add_link = "Dodaj odnośnik" +add_menu = "Dodaj menu" +add_new_page = "Dodaj nową stronę" +add_new_post = "Dodaj nowy post" +add_source_link_optional = "Dodaj odnośnik do źródła (opcjonalne)" +add_sub = "Dodaj podstronę" +address_url = "Addres (URL)" +admin = "Admin" +admin_panel_style_based_on = "Styl panelu administracyjnego bazuje na" +all_blog_posts = "Wszystkie posty" +all_cache_has_been_deleted = "Pamięć podręczna została wyczyszczona!" +all_posts_tagged = "All posts tagged" +archive_for = "Archive for" +archive_page_for = "Archive page for" +archives = "Archiwa" +are_you_sure_you_want_to_delete_ = "Czy chcesz usunąć %s?" +at_the_moment_you_are_using_auto_generated_menu = "W tym momencie menu jest generowane automatycznie." +audio_post = "Post z audio" +audio_post_comment = "Utwórz dźwiękowy post na blogu" +author = "Autor" +author_description = "Po prostu kolejne konto HTMLy" +back_to = "Wróć do" +backup = "Kopia zapasowa" +blog_description = "W jednym akapicie opisz ten blog." +blog_theme = "Motyw bloga" +blog_title = "Tytuł bloga" +blog_title_placeholder = "Skrót bloga" +blog_posts_displayed_as = "Posty blogowe wyświetlane jako" +breadcrumb_home_text = "Tekst nawigacji domowej" +by_using_this_importer_you_confirm_that_the_feed_is_yours_or_that_at_least_you_have_the_authority_to_publish_it = "Używając tego importera zgadzasz się, że feed jest Twój lub przynajmniej masz uprawnienia do jego publikacji." +css_class_optional = "Klasy CSS (opcjonalne)" +cache_expiration = "Czas trwania pamięci tymczasowej (w godzinach)" +cache_off = "Pamięć tymczasowa wyłączona" +cache_timestamp = "Odcisk czasu pamięci podręcznej" +cancel = "Anuluj" +cannot_read_feed_content = "Cannot read feed content" +captcha_error = "reCaptcha błędna" +categories = "Kategorie" +category = "Kategoria" +check_update = "Sprawdź aktualizacje" +clear_cache = "Wyczyść pamięć podręczną" +comma_separated_values = "Wartości rozdzielane przecinkiem" +comment_system = "System komentarzy" +comments = "Komentarze" +config = "Konfiguracja" +congrats_you_have_the_latest_version_of_htmly = "Gratulacje! Masz aktualną wersję HTMLy." +content = "Zawartość" +contents = "Zawartość" +copyright_line = "Fragment praw autorskich" +copyright_line_placeholder = "(c) Twoje imię." +create_backup = "Stwórz kopie zapasowe" +created = "Utworzono" +custom = "Modyfikacje" +custom_settings = "Ustawienia modyfikacji" +dashboard = "Kokpit" +date = "Data" +date_format = "Format daty" +delete = "Usuń" +description = "Opis" +disable = "Wyłączenie" +disabled = "Nieaktywne" +disqus_shortname = "Disqus skrócona nazwa" +disqus_shortname_placeholder = "htmly" +draft = "Wersja robocza" +edit = "Edytuj" +edit_category = "Edytuj kategorię" +edit_post = "Edycja" +edit_profile = "Edytuj profil" +enable = "Włączenie" +enable_blog_url = "Włączenie URL blog" +enter_image_url = "Wpisz URL obrazka" +facebook_app_id = "Facebook App ID" +facebook_page = "Strona Facebook" +featured_audio = "Prezentowany Dźwięk" +featured_image = "Prezentowany Obraz" +featured_link = "Prezentowany Odnośnik" +featured_quote = "Prezentowany Cytat" +featured_video = "Prezentowane Wideo" +feed_url = "Feed URL" +filename = "Nazwa pliku" +follow = "Śledź" +for_google_site_verification_meta = "Dla google-site-verification meta" +front_page_displays = "Wyświetlenie strony startowej" +full_post = "Pełen post" +general = "Ogólnie" +general_settings = "Ustawienia ogólne" +get_one_here = "Zdobądź jeden teraz" +github_pre_release = "Github pre-release" +google_analytics = "Google Analytics" +google_analytics_legacy = "Google Analytics (legacy)" +google_search_console = "Google Search Console" +home = "Strona domowa" +if_left_empty_we_will_excerpt_it_from_the_content_below = "Jeżeli pozostanie puste, zawartość poniżej zostanie użyta jako zajawka" +if_the_url_is_left_empty_we_will_use_the_page_title = "Jeżeli URL pozostanie puste, tytuł strony zostanie użyty" +if_the_url_is_left_empty_we_will_use_the_post_title = "Jeżeli URL pozostanie puste, tytuł posta zostanie użyty" +image_post = "Post obrazkowy" +image_post_comment = "Tworzy post z wyróżnionym zdjęciem" +import = "Import" +import_feed = "Rozpocznij import Feed'a" +import_rss = "Import RSS" +import_rss_feed_2.0 = "Importuj RSS Feed 2.0" +insert_image = "Wstaw Obraz" +invalid_error = "BŁĄD: Błędna nazwa konta lub hasło" +language = "Język systemu" +link_name = "Nazwa odnośnika" +link_post = "Odnośnik" +link_post_comment = "Tworzy post z wyróżnionym linkiem" +login = "Login" +login_page = "Strona logowania" +logout = "Wyloguj się" +menu = "Menu" +menus = "Edytor Menu" +meta_description = "Meta-informacje" +meta_description_character = "Ilość znaków metaopisu" +metatags = "Metatags" +metatags_settings = "Ustawienia metatagów" +mine = "Moje" +more = "Więcej" +my_draft = "Mój szkic" +my_posts = "Moje posty" +name = "Nazwa" +newer = "Nigdy" +next = "Dalej" +next_post = "Następny post" +no_available_backup = "W tym momencie nie ma dostępnych kopii zapasowych." +no_draft_found = "Nie znaleziono szkicu" +no_newer_posts = "Nie znaleziono najnowszych postów" +no_posts_found = "Nie znaleziono postów" +no_related_post_found = "Nie znaleziono powiązanych postów." +no_scheduled_posts_found = "No scheduled posts found!" +no_search_results = "Nie znaleziono" +nope = "Nie" +not = "Nie" +older = "Starsze" +only = "Tylko" +operations = "Operacje" +page = "Strona" +page_generation_time = "Czas wygenerowania strony" +pages = "Strony" +pass_error = "Wartość z hasłem konta jest wymagana" +password = "Hasło" +performance = "Wydajność" +performance_settings = "Ustawienia wydajności" +permalink = "Stały odnośnik" +popular = "Popularne" +popular_posts = "Popularne posty" +popular_posts_widget = "Sekcja postów popularnych" +popular_posts_widget_at_most = "Maksymalna ilość postów wyświetlana w Sekcji Postów Popularnych" +popular_tags = "Popularne tagi" +post_by_author = "Posty autorstwa" +posted_in = "Napisano w" +posted_on = "Opublikowano " +posts = "Posty" +posts_by = "Posty " +posts_draft = "Szablon posta" +posts_in_archive_page_at_most = "Maksymalna ilość postów w archiwum" +posts_in_category_page_at_most = "Maksymalna ilość postów na stronie kategorii" +posts_in_front_page_show_at_most = "Posty na stronie startowej widzialne od najnowszego" +posts_in_profile_page_at_most = "Maksymalna ilość postów na stronie profilu" +posts_in_search_result_at_most = "Maksymalna ilość postów na stronie wyszukiwania" +posts_in_tag_page_at_most = "Maksymalna ilość postów na stronie tagu" +posts_in_type_page_at_most = "Maksymalna ilość postów na stronie typu" +posts_index_settings = "Ustawienia indeksowania postów" +posts_list = "Lista postów" +posts_tagged = "Posts tagged" +posts_with_type = "Posts with type" +pre_release = "Pre-release" +prev = "Starszy" +prev_post = "Poprzedni post" +preview = "Podgląd" +profile_for = "Profile for" +proudly_powered_by = "Dumnie tworzone przez" +publish = "Opublikuj" +publish_draft = "Opublikuj wersję roboczą" +published = "Opublikowano" +quote_post = "Cytuj post" +quote_post_comment = "Tworzenie postu z cytatem" +rss_character = "Ilość znaków RSS" +rss_feeds_show_the_most_recent = "Maksymalna ilość wpisów Feed'u RSS" +rss_settings = "Ustawienia RSS" +read_more_text = "Czytaj Więcej tekst" +read_more_text_placeholder = "Czytaj więcej" +reading = "Czytanie" +reading_settings = "Ustawienia czytania" +recaptcha = "reCAPTCHA" +recent_posts = "Ostatnie posty" +recent_posts_widget_at_most = "Maksymalna ilość postów wyświetlana w Sekcji Ostatnich Postów" +regular_post = "Standardowy post" +regular_post_comment = "Tworzenie zwykłego postu" +related_posts = "Powiązane posty" +related_widget_posts_at_most = "Maksymalna ilość postów wyświetlana w Sekcji Postów Powiązanych" +revert_to_draft = "Cofnij do wersji roboczej" +save = "Zapisz" +save_config = "Zapisz konfigurację" +save_edit = "Zapisz edycję" +save_menu = "Zapisz menu" +save_as_draft = "Zapisz jako szkic" +save_category = "Zapisz kategorię" +scheduled = "Scheduled" +scheduled_posts = "Scheduled posts" +scheduled_tips = "Publishing a post with future date or time, it will go into scheduled posts" +search = "Szukaj" +search_for = "Szukaj" +search_results_for = "Search results for" +search_results_not_found = "Brak wyników wyszukiwania!" +secret_key = "Klucz sekretny" +settings = "Ustawienia" +sign_in_to_start_your_session = "Zaloguj się by rozpocząć sesję" +site_key = "Klucz strony" +sitemap = "Mapa strony" +slug = "Uproszczenie" +social_media = "Platforma społecznościowa" +static_page = "Statyczna strona" +static_page_comment = "Tworzy statyczną stronę" +static_pages = "Strony statyczne" +summary = "Podsumowanie" +summary_character = "Ilość znaków podsumowania" +tag = "Tag" +tagcloud_widget_at_most = "Maksymalna ilość tagów w Chmurze Tagów" +tagline = "Krótki opis" +tagline_placeholder = "Bezbazodanowa platforma PHP do blogowania" +tagline_description = "W kilku słowach opsiz o czym ten blog jest." +tags = "Tagi" +this_is_legacy_code_usually_new_created_analytics_using_gtag_js = "To jest przestarzały kod. Zazwyzcaj nowo utworzone analizy używają gtag.js" +this_page_doesnt_exist = "Ta strona nie istnieje!" +time = "Czas" +timezone = "Strefa czasowa" +title = "Tytuł" +to_use_disqus_or_facebook_comment_you_need_to_provide_disqus_shortname_or_facebook_app_id = "Do używania Disqus lub Komentarzy Facebook potrzeba wpisać ich App ID." +token_error = "Token CSRF jest niepoprawny" +tools = "Narzędzia" +twitter_account = "Konto Twitter" +type_to_search = "Wpisz wyszkukiwaną frazę" +uncategorized = "Bez kategorii" +uncategorized_comment = "Wpisy, któe nie potrzebują kategorii, lub niepasujące do żadnej kategorii." +universal_analytics = "Universal Analytics (gtag.js)" +unknown_feed_format = "Unknown feed format" +update = "Aktualizacja" +update_available = "Aktualizacje są dostępne" +update_draft = "Aktualizuj szkic" +update_post = "Aktualizuj post" +update_to = "Aktualizuj do" +upload = "Wgraj" +user = "Konto" +user_error = "Wartość pola z nazwą konta jest wymagane" +valid_values_range_from_0_to_1.0._see = "Poprawne wartości są w zakresie 0.0 do 1.0. Zobacz" +video_post = "Film" +video_post_comment = "Tworzy post z wyróżnionym filmem." +view = "Zobacz" +view_post = "Podgląd" +views = "Wyświetleń" +widget = "Widgety" +widget_settings = "Ustawienia widgetów" +would_you_like_to_try_our = "Czy przetestujesz " +yes_im_in = "Tak, wchodzę w to" +yes_not_recommended = "Tak (niezalecane)" +you_dont_have_permission_to_access_this_page = "Nie masz uprawnień do tej strony" +your_new_config_key = "Twój nowy klucz konfiguracji" +your_new_value = "Wartość twojego nowego klucza konfiguracji" +your_backups = "Twoje kopie zapasowe" +your_latest_blog_posts = "Twoje ostatnie wpisy" +your_recent_posts = "Twoje ostatnie posty" +by = "przez" +hint_use_ctrlcmdf_to_search_for_your_config_key_or_value = "wskazówka: Użyj Ctrl/CMD + F by wyszukać wartość klucza konfiguracji." +homepage = "strona_domowa" +instead = "zamiast" +item_class = "Wstaw klasy CSS" +item_slug = "Wstaw URL odnośnika" +now = "teraz" +of = " " +optional = "opcjonalne" +post_your_post_slug = "/post/uproszczona-nazwa-postu" +pro_tips_you_can_create_custom_config_key_and_print_out_your_config_key_value_anywhere_in_your_template = "super wskazówka: Możesz tworzyć własne klucze konfiguracji i wyświetlać je gdziekolwiek w szablonie." +read_more = "Czytaj więcej" +widget_key_placeholder = "12345abcde" +year_month_your_post_slug = "/rok/miesiąc/uproszczona-nazwa-postu" +your_key = "ten.klucz" +summary_behavior = "Summary behavior" +default = "Default" +check_shortcode = "Check shortcode" +in_summary_mode_whether_check_the_shortcode_first_or_not_before_trim_the_content_to_x_char = "In summary mode, whether check the shortcode first or not before trim the content to x char" +manage_users = "Manage users" +add_user = "Add user" +username = "Username" +role = "Role" +change_password = "Change password" +config_mfa = "Configure MFA" +mfacode = "MFA Code" +verify_code = "Verify the MFA code" +verify_password = "Verify current password" +manualsetupkey = "You can also manually add the setup key" +mfa_error = "MFA code is not correct" +disablemfa = "Disable MFA" +enable_auto_save = "Enable Auto Save" +explain_autosave = "When enabled, new content or draft will be automatically saved every 60 seconds." +login_protect_system = "Login protection system" +cloudflare_info = "Review Cloudflare's Turnstile documentation: " +mfa_config = "Multi Factor Authentication (MFA)" +set_mfa_globally = "Set the status of MFA" +explain_mfa = "When enabled, MFA is optional for all users. When disabled, no users can use it and it hides the field on the login page." +set_version_publicly = "Version Visibility" +explain_version = "By default the version of HTMLy is visible publicly in the source code, some admins may prefer to hide this." +focus_mode = "Toggle Focus" +writing = "Writing" +writing_settings = "Writing Settings" +security = "Security" +security_settings = "Security Settings" +msg_error_field_req_username = "Username field is required." +msg_error_field_req_password = "Password field is required." +msg_error_field_req_title = "Title field is required." +msg_error_field_req_content = "Content field is required." +msg_error_field_req_tag = "Tag field is required." +msg_error_field_req_image = "Image field is required." +msg_error_field_req_video = "Video field is required." +msg_error_field_req_link = "Link field is required." +msg_error_field_req_quote = "Quote field is required." +msg_error_field_req_audio = "Audio field is required." +msg_error_field_req_feedurl = "You need to specify the feed url." +rss_feeds_description_select = "RSS Description" +rss_description_body = "Post Body" +rss_description_meta = "Post Meta Description" +admin_theme = "Admin theme" +admin_theme_light = "Light" +admin_theme_dark = "Dark" diff --git a/lang/pt_BR.ini b/lang/pt_BR.ini new file mode 100644 index 0000000..297ad49 --- /dev/null +++ b/lang/pt_BR.ini @@ -0,0 +1,326 @@ +about = "Sobre" +add_category = "Adicionar categoria" +add_content = "Adicionar conteúdo" +add_link = "Adicionar link" +add_menu = "Adicionar menu" +add_new_page = "Adicionar nova página" +add_new_post = "Adicionar nova postagem" +add_source_link_optional = "Adicione o link da fonte (opcional)" +add_sub = "Adicionar sub página" +address_url = "Endereço (URL)" +admin = "Admin" +admin_panel_style_based_on = "Painel de administração baseado no" +all_blog_posts = "Todas as postagens do blog" +all_cache_has_been_deleted = "Todo cache foi excluído !" +all_posts_tagged = "All posts tagged" +archive_for = "Archive for" +archive_page_for = "Archive page for" +archives = "Arquivos" +are_you_sure_you_want_to_delete_ = "Tem certeza de que deseja excluir %s?" +at_the_moment_you_are_using_auto_generated_menu = "No momento você está usando a geração automática de menus." +audio_post = "Postagem com áudio" +audio_post_comment = "Criação de postagem com áudio em destaque" +author = "Autor" +author_description = "Just another HTMLy user" +back_to = "Voltar para" +backup = "Backup" +blog_description = "Em um parágrafo, descreva sobre seu site/blog." +blog_theme = "Tema do site/blog" +blog_title = "Título (site/blog)" +blog_title_placeholder = "Meu site / blog" +blog_posts_displayed_as = "Exibir postagens como" +breadcrumb_home_text = "Breadcrumb: texto da página inicial" +by_using_this_importer_you_confirm_that_the_feed_is_yours_or_that_at_least_you_have_the_authority_to_publish_it = "Utilizando este importador você está de acordo que o feed é seu ou pelo menos tenha a autorização para publicar." +css_class_optional = "Classe CSS (opcional)" +cache_expiration = "Expiração do cache (em horas)" +cache_off = "Desativar Cache" +cache_timestamp = "Timestamp do cache" +cancel = "Cancelar" +cannot_read_feed_content = "Cannot read feed content" +captcha_error = "reCaptcha not correct" +categories = "Categorias" +category = "Categoria" +check_update = "Verificar atualização" +clear_cache = "Limpar cache" +comma_separated_values = "Os valores devem ser separados por virgula" +comment_system = "Sistema de comentário" +comments = "Comentários" +config = "Configurar" +congrats_you_have_the_latest_version_of_htmly = "Parabêns ! Você tem a última versão do HTMLy." +content = "Conteúdo" +contents = "Conteúdo" +copyright_line = "Direitos reservados" +copyright_line_placeholder = "(c) Seu nome." +create_backup = "Gerar backup" +created = "Criado" +custom = "Customizar" +custom_settings = "Configurações customizadas" +dashboard = "Painel de Controle" +date = "Data" +date_format = "Formato de data" +delete = "Excluir" +description = "Descrição" +disable = "Desabilitar" +disabled = "Desabilitado" +disqus_shortname = "Usuário Disqus" +disqus_shortname_placeholder = "htmly" +draft = "Rascunho" +edit = "Editar" +edit_category = "Editar categoria" +edit_post = "Edit" +edit_profile = "Editar perfil" +enable = "Habilitar" +enable_blog_url = "Habilitar a URL blog" +enter_image_url = "Insira a URL da imagem" +facebook_app_id = "Facebook App ID" +facebook_page = "Página do Facebook" +featured_audio = "Audio em destaque" +featured_image = "Imagem em destaque" +featured_link = "Link em destaque" +featured_quote = "Citação em destaque" +featured_video = "Video em destaque" +feed_url = "URL do Feed" +filename = "Nome do arquivo" +follow = "Seguir" +for_google_site_verification_meta = "Para o meta google-site-verification" +front_page_displays = "Mostrar na primeira página" +full_post = "Postagem completa" +general = "Geral" +general_settings = "Configurações Gerais" +get_one_here = "Efetue as configuração no link" +github_pre_release = "Pré-lançamento do Github" +google_analytics = "Google Analytics" +google_analytics_legacy = "Google Analytics (legado)" +google_search_console = "Google Search Console" +home = "Inicial" +if_left_empty_we_will_excerpt_it_from_the_content_below = "Se deixar em branco, iremos extraí-lo do conteúdo abaixo" +if_the_url_is_left_empty_we_will_use_the_page_title = "Se a url estiver vazia, usaremos o título da página" +if_the_url_is_left_empty_we_will_use_the_post_title = "Se a url estiver vazia, usaremos o título da postagem" +image_post = "Postagem com imagem" +image_post_comment = "Criação de postagem com imagem em destaque" +import = "Importar" +import_feed = "Iniciar importação do feed" +import_rss = "Importar RSS" +import_rss_feed_2.0 = "Importar o Feed RSS 2.0" +insert_image = "Inserir Imagem" +invalid_error = "ERROR: Invalid username or password" +language = "Idioma do sistema" +link_name = "Nome do link" +link_post = "Postagem de link" +link_post_comment = "Criação de postagem com link em destaque" +login = "Logar" +login_page = "Página de login" +logout = "Sair" +menu = "Menu" +menus = "Editor de menus" +meta_description = "Meta Descrição" +meta_description_character = "Caracteres da 'Meta description'" +metatags = "Metatags" +metatags_settings = "Configurações de Metatags" +mine = "Meu" +more = "Mais" +my_draft = "Meu rascunho" +my_posts = "Minhas postagens" +name = "Nome" +newer = "Mais recente" +next = "Próximo" +next_post = "Próxima postagem" +no_available_backup = "Não há nenhum backup no momento." +no_draft_found = "Nenhum rascunho encontrado" +no_posts_found = "nenhuma postagem encontrada" +no_related_post_found = "Nenhuma postagem relacionada encontrada" +no_scheduled_posts_found = "No scheduled posts found!" +no_search_results = "No search results" +nope = "Não" +not = "Não" +older = "Antigo" +only = "Somente" +operations = "Operações" +page = "Page" +page_generation_time = "Tempo de geração da página" +pages = "Pages" +pass_error = "Password field is required" +password = "Senha" +performance = "Performance" +performance_settings = "Configurações de Performance" +permalink = "Link permanente" +popular = "Popular" +popular_posts = "Postagens populares" +popular_posts_widget = "Posts populares" +popular_posts_widget_at_most = "Limite de post populares" +popular_tags = "Tags populares" +post_by_author = "Posts by this author" +posted_in = "Postado em" +posted_on = "Posted em" +posts = "Postagens" +posts_by = "Posts by" +posts_draft = "Rascunhos" +posts_in_archive_page_at_most = "Limite na página de arquivados" +posts_in_category_page_at_most = "Limite na página de categoria" +posts_in_front_page_show_at_most = "Limitar posts na primeira página" +posts_in_profile_page_at_most = "Limite na página de perfil" +posts_in_search_result_at_most = "Limite em resultados de pesquisa" +posts_in_tag_page_at_most = "Limite na página de tags" +posts_in_type_page_at_most = "Limite na página por tipo (type)" +posts_index_settings = "Configurações de índice das postagens" +posts_list = "Postagens" +posts_tagged = "Posts tagged" +posts_with_type = "Posts with type" +pre_release = "Pré-lançamento" +prev = "Antigo" +prev_post = "Postagem anterior" +preview = "Pré visualização" +profile_for = "Profile for" +proudly_powered_by = "Orgulhosamente desenvolvido por" +publish = "Publicar" +publish_draft = "Publicar rascunho" +published = "Publicados" +quote_post = "Postagem com citação" +quote_post_comment = "Criação de postagem de blog com citação em destaque" +rss_character = "Limite de caracteres do RSS" +rss_feeds_show_the_most_recent = "Limite de postagens recentes" +rss_settings = "Configurações RSS" +read_more_text = "Texto para continuar a leitura" +read_more_text_placeholder = "Leia mais" +reading = "Leitura" +reading_settings = "Configurações de Leitura" +recaptcha = "reCAPTCHA" +recent_posts = "Postagens recentes" +recent_posts_widget_at_most = "Limite de posts recentes" +regular_post = "Postagem padrão" +regular_post_comment = "Criação de postagem padrão no blog" +related_posts = "Postagens relacionadas" +related_widget_posts_at_most = "Limite de posts relacionados" +revert_to_draft = "Reverter para rascunho" +save = "Salvar" +save_config = "Salvar configurações" +save_edit = "Salvar edição" +save_menu = "Salvar menu" +save_as_draft = "Salvar como rascunho" +save_category = "Salvar categoria" +scheduled = "Scheduled" +scheduled_posts = "Scheduled posts" +scheduled_tips = "Publishing a post with future date or time, it will go into scheduled posts" +search = "Buscar" +search_for = "Buscar por" +search_results_for = "Search results for" +search_results_not_found = "Search results not found!" +secret_key = "Chave secreta" +settings = "Configurações" +sign_in_to_start_your_session = "Faça login para iniciar a sessão" +site_key = "Chave do site" +sitemap = "Sitemap" +slug = "Slug" +social_media = "Mídia Social" +static_page = "Página estática" +static_page_comment = "Criação de página estática" +static_pages = "Páginas estáticas" +summary = "Postagem Resumida" +summary_character = "Limite de caracteres do resumo" +tag = "Tag" +tagcloud_widget_at_most = "TagCloud at most" +tagline = "Slogan" +tagline_placeholder = "Descreva um slogan" +tagline_description = "Em poucas palavras defina o site/blog de forma objetiva." +tags = "Tags" +this_is_legacy_code_usually_new_created_analytics_using_gtag_js = "Este é um código legado. Normalmente o novo Analytics usa o gtag.js" +this_page_doesnt_exist = "A página requisitada não existe !" +time = "Hora" +timezone = "Fuso horário" +title = "Título" +to_use_disqus_or_facebook_comment_you_need_to_provide_disqus_shortname_or_facebook_app_id = "Para usar o Disqus ou comentário do Facebook, você precisa fornecer o nome abreviado do Disqus ou o ID do aplicativo do Facebook." +token_error = "CSRF Token not correct" +tools = "Ferramentas" +twitter_account = "Conta do Twitter" +type_to_search = "Digite para buscar" +uncategorized = "Sem categoria" +uncategorized_comment = "Tópicos que não precisam de uma categoria ou não se encaixam em nenhuma outra categoria existente" +universal_analytics = "Universal Analytics (gtag.js)" +unknown_feed_format = "Unknown feed format" +update = "Atualizar" +update_available = "Atualização disponível" +update_draft = "Atualizar rascunho" +update_post = "Atualizar postagem" +update_to = "Atualizar para" +upload = "Carregar" +user = "Usuário" +user_error = "User field is required" +valid_values_range_from_0_to_1.0._see = "Valores válidos são entre 0.0 e 1.0. Veja mais em" +video_post = "Postagem de video" +video_post_comment = "Criação de postagem com vídeo em destaque" +view = "Visualizar" +view_post = "View" +views = "Visualizações" +widget = "Widget" +widget_settings = "Configurações dos Widgets" +would_you_like_to_try_our = "Poderia tentar a nossa " +yes_im_in = "Sim, estou dentro" +yes_not_recommended = "Sim (não recomendado)" +you_dont_have_permission_to_access_this_page = "Você não tem permissão para acessar esta página" +your_new_config_key = "Sua nova chave configurada" +your_new_value = "Seu novo valor" +your_backups = "Seus backups" +your_latest_blog_posts = "Suas postagens de blog" +your_recent_posts = "Suas postagens recentes" +by = "por" +hint_use_ctrlcmdf_to_search_for_your_config_key_or_value = "Dica: Utilize Ctrl/CMD + F para buscar pela chave ou valor." +homepage = "página inicial" +instead = "no lugar" +item_class = "Insira a classe CSS do link" +item_slug = "Insira a URL do link" +now = "agora" +of = "of" +optional = "opcional" +post_your_post_slug = "/post/url-da-postagem" +pro_tips_you_can_create_custom_config_key_and_print_out_your_config_key_value_anywhere_in_your_template = "Dica profissional: Você pode criar chaves customizadas e imprimir seus valores em qualquer local de seu tema." +read_more = "leia mais" +widget_key_placeholder = "Seu código" +year_month_your_post_slug = "/ano/mes/url-da-postagem" +your_key = "sua.chave" +summary_behavior = "Summary behavior" +default = "Default" +check_shortcode = "Check shortcode" +in_summary_mode_whether_check_the_shortcode_first_or_not_before_trim_the_content_to_x_char = "In summary mode, whether check the shortcode first or not before trim the content to x char" +manage_users = "Manage users" +add_user = "Add user" +username = "Username" +role = "Role" +change_password = "Change password" +config_mfa = "Configure MFA" +mfacode = "MFA Code" +verify_code = "Verify the MFA code" +verify_password = "Verify current password" +manualsetupkey = "You can also manually add the setup key" +mfa_error = "MFA code is not correct" +disablemfa = "Disable MFA" +enable_auto_save = "Enable Auto Save" +explain_autosave = "When enabled, new content or draft will be automatically saved every 60 seconds." +login_protect_system = "Login protection system" +cloudflare_info = "Review Cloudflare's Turnstile documentation: " +mfa_config = "Multi Factor Authentication (MFA)" +set_mfa_globally = "Set the status of MFA" +explain_mfa = "When enabled, MFA is optional for all users. When disabled, no users can use it and it hides the field on the login page." +set_version_publicly = "Version Visibility" +explain_version = "By default the version of HTMLy is visible publicly in the source code, some admins may prefer to hide this." +focus_mode = "Toggle Focus" +writing = "Writing" +writing_settings = "Writing Settings" +security = "Security" +security_settings = "Security Settings" +msg_error_field_req_username = "Username field is required." +msg_error_field_req_password = "Password field is required." +msg_error_field_req_title = "Title field is required." +msg_error_field_req_content = "Content field is required." +msg_error_field_req_tag = "Tag field is required." +msg_error_field_req_image = "Image field is required." +msg_error_field_req_video = "Video field is required." +msg_error_field_req_link = "Link field is required." +msg_error_field_req_quote = "Quote field is required." +msg_error_field_req_audio = "Audio field is required." +msg_error_field_req_feedurl = "You need to specify the feed url." +rss_feeds_description_select = "RSS Description" +rss_description_body = "Post Body" +rss_description_meta = "Post Meta Description" +admin_theme = "Admin theme" +admin_theme_light = "Light" +admin_theme_dark = "Dark" diff --git a/lang/ru_RU.ini b/lang/ru_RU.ini new file mode 100644 index 0000000..5bd8cc5 --- /dev/null +++ b/lang/ru_RU.ini @@ -0,0 +1,327 @@ +about = "О сайте" +add_category = "Добавить категорию" +add_content = "Добавить статью" +add_link = "Добавить ссылку" +add_menu = "Добавить меню" +add_new_page = "Добавить новую страницу" +add_new_post = "Добавить новую статью" +add_source_link_optional = "Добавить ссылку на источник (не обязательно)" +add_sub = "Добавить подстраницу" +address_url = "Адрес (URL)" +admin = "Админ" +admin_panel_style_based_on = "Стиль админ панели основан на" +all_blog_posts = "Все статьи" +all_cache_has_been_deleted = "Все кеши были очищены!" +all_posts_tagged = "All posts tagged" +archive_for = "Archive for" +archive_page_for = "Archive page for" +archives = "Архивы" +are_you_sure_you_want_to_delete_ = "Вы уверены, что хотите удалить %s?" +at_the_moment_you_are_using_auto_generated_menu = "Сейчас вы используете автоматически созданное меню" +audio_post = "Статья с аудио" +audio_post_comment = "Создать статью с аудио" +author = "Автор" +author_description = "Еще один пользователь HTMLy" +back_to = "Вернуться на" +backup = "Бэкап" +blog_description = "Расскажите больше о своем блоге (один абзац)" +blog_theme = "Тема блога" +blog_title = "Заголовок блога" +blog_title_placeholder = "Мой блог на HTMLy" +blog_posts_displayed_as = "Записи в блоге отображаются в виде" +breadcrumb_home_text = "Текст для главной страницы в хлебных крошках" +by_using_this_importer_you_confirm_that_the_feed_is_yours_or_that_at_least_you_have_the_authority_to_publish_it = "Используя данный импортер, вы подтверждаете, что лента принадлежит вам, или у вас есть полномочия на ее публикацию" +css_class_optional = "CSS класс (не обязательно)" +cache_expiration = "Срок действия кеша (в часах)" +cache_off = "Кеш выключен" +cache_timestamp = "Отметка времени кеша" +cancel = "Отменить" +cannot_read_feed_content = "Cannot read feed content" +captcha_error = "reCaptcha не верна" +categories = "Категории" +category = "Категория" +check_update = "Проверить обновления" +clear_cache = "Очистить кеш" +comma_separated_values = "Разделенные запятыми значения" +comment_system = "Выберите систему" +comments = "Комментарии" +config = "Конфигурация" +congrats_you_have_the_latest_version_of_htmly = "Поздравляем! У вас установлена последняя версия HTMLy" +content = "Содержимое" +contents = "Содержание" +copyright_line = "Авторские права" +copyright_line_placeholder = "(c) Ваше имя" +create_backup = "Создать резервную копию" +created = "Создано" +custom = "Пользовательские" +custom_settings = "Пользовательские настройки" +dashboard = "Панель" +date = "Дата" +date_format = "Формат даты" +delete = "Удалить" +description = "Описание" +disable = "Выключить" +disabled = "Отключено" +disqus_shortname = "Имя Disqus" +disqus_shortname_placeholder = "htmly" +draft = "Черновик" +edit = "Редактировать" +edit_category = "Редактировать категорию" +edit_post = "Редактировать" +edit_profile = "Редактировать профиль" +enable = "Включить" +enable_blog_url = "Включить ссылку blog" +enter_image_url = "Введите URL изображения" +facebook_app_id = "Facebook App ID" +facebook_page = "Страница Facebook" +featured_audio = "Аудио" +featured_image = "Изображение" +featured_link = "Ссылка" +featured_quote = "Цитата" +featured_video = "Видео" +feed_url = "Адрес рассылки" +filename = "Имя файла" +follow = "Следовать" +for_google_site_verification_meta = "Для google-site-verification (мета тег)" +front_page_displays = "Показывать на главной странице" +full_post = "Статья полностью" +general = "Общие" +general_settings = "Общие настройки" +get_one_here = "Получить" +github_pre_release = "Предварительный выпуск на Github" +google_analytics = "Аналитика Google" +google_analytics_legacy = "Аналитика Google (legacy)" +google_search_console = "Поисковая консоль Google" +home = "Главная" +if_left_empty_we_will_excerpt_it_from_the_content_below = "Если оставить пустым, данные будут внесены из основного содержимого" +if_the_url_is_left_empty_we_will_use_the_page_title = "Если адрес оставить пустым, будет использован заголовок страницы" +if_the_url_is_left_empty_we_will_use_the_post_title = "Если адрес оставить пустым, будет использован заголовок статьи" +image_post = "Статья с изображением" +image_post_comment = "Создать статью с изображением" +import = "Импорт" +import_feed = "Запустить импорт ленты" +import_rss = "Импорт RSS" +import_rss_feed_2.0 = "Импорт RSS Feed 2.0" +insert_image = "Вставить изображение" +invalid_error = "ОШИБКА: Неверные имя пользователя или Пароль" +language = "Язык системы" +link_name = "Название ссылки" +link_post = "Статья со ссылкой" +link_post_comment = "Создать статью со ссылкой" +login = "Вход" +login_page = "Страница входа" +logout = "Выйти" +menu = "Меню" +menus = "Редактор меню" +meta_description = "Мета-описание" +meta_description_character = "Количество символов в мета-описании" +metatags = "Мета теги" +metatags_settings = "Настройки мета тегов" +mine = "Моё" +more = "Подробнее" +my_draft = "Мой черновик" +my_posts = "Мои статьи" +name = "Имя" +newer = "Новое" +next = "Вперед" +next_post = "Следующая статья" +no_available_backup = "Резервные копии отсутствуют" +no_draft_found = "Черновики не найдены" +no_newer_posts = "Нет новых статей" +no_posts_found = "Статьи не найдены" +no_related_post_found = "Нет похожих статей." +no_scheduled_posts_found = "No scheduled posts found!" +no_search_results = "Безрезультатно" +nope = "Нет" +not = "Нет" +older = "Старое" +only = "Только" +operations = "Операции" +page = "Страница" +page_generation_time = "Время создания страницы" +pages = "Страницы" +pass_error = "Введите пароль" +password = "Пароль" +performance = "Производительность" +performance_settings = "Настройки производительности" +permalink = "Постоянная ссылка" +popular = "Популярный" +popular_posts = "Популярные статьи" +popular_posts_widget = "Популярные статьи" +popular_posts_widget_at_most = "Количество популярных статей, не более" +popular_tags = "Популярные теги" +post_by_author = "Авторские статьи" +posted_in = "Опубликовано в" +posted_on = "Опубликовано " +posts = "Статьи" +posts_by = "Статьи автора" +posts_draft = "Черновики" +posts_in_archive_page_at_most = "Количество статей на архивных страницах, не более" +posts_in_category_page_at_most = "Количество статей на странице категорий, не более" +posts_in_front_page_show_at_most = "Количество статей на главной, не более" +posts_in_profile_page_at_most = "Количество статей на страницах профиля пользователя, не более" +posts_in_search_result_at_most = "Количество статей в результатах поиска, не более" +posts_in_tag_page_at_most = "Количество статей на страницах для каждой метки, не более" +posts_in_type_page_at_most = "Количество статей на страницах для каждого типа записей, не более" +posts_index_settings = "Настройки количества статей" +posts_list = "Список статей" +posts_tagged = "Posts tagged" +posts_with_type = "Posts with type" +pre_release = "предварительный выпуск" +prev = "Назад" +prev_post = "Предыдущая статья" +preview = "Просмотр" +profile_for = "Profile for" +proudly_powered_by = "Разработано" +publish = "Опубликовать" +publish_draft = "Опубликовать черновик" +published = "Опубликовано" +quote_post = "Статья с цитатой" +quote_post_comment = "Создать статью с цитатой" +rss_character = "Количество символов в RSS" +rss_feeds_show_the_most_recent = "Количество последних новостей в RSS каналах" +rss_settings = "Настройки RSS" +read_more_text = "Текст Читать далее" +read_more_text_placeholder = "Подробнее" +reading = "Чтение" +reading_settings = "Настройки чтения" +recaptcha = "reCAPTCHA" +recent_posts = "Новые статьи" +recent_posts_widget_at_most = "Количество новых статей, не более" +regular_post = "Стандартная статья" +regular_post_comment = "Создать стандартную статью" +related_posts = "Похожие статьи" +related_widget_posts_at_most = "Количество похожих статей, не более" +revert_to_draft = "Переключить на черновик" +save = "Сохранить" +save_config = "Сохранить настройки" +save_edit = "Сохранить" +save_menu = "Сохранить меню" +save_as_draft = "Сохранить как черновик" +save_category = "Сохранить категорию" +scheduled = "Scheduled" +scheduled_posts = "Scheduled posts" +scheduled_tips = "Publishing a post with future date or time, it will go into scheduled posts" +search = "Поиск" +search_for = "Искать" +search_results_for = "Search results for" +search_results_not_found = "По вашему запросу ничего не найдено!" +secret_key = "Секретный ключ" +settings = "Настройки" +sign_in_to_start_your_session = "Авторизация пользователя" +site_key = "Ключ сайта" +sitemap = "Карта сайта" +slug = "ЧПУ" +social_media = "Социальные медиа" +static_page = "Статичная страница" +static_page_comment = "Создать статичную страницу" +static_pages = "Статичные страницы" +summary = "Отрывок" +summary_character = "Количество символов в отрывке" +tag = "Метка" +tagcloud_widget_at_most = "TagCloud at most" +tagline = "Подзаголовок" +tagline_placeholder = "Платформа для ведения блогов на PHP без базы данных" +tagline_description = "В нескольких словах расскажите, о чем этот блог" +tags = "Метки" +this_is_legacy_code_usually_new_created_analytics_using_gtag_js = "Это устаревший код. Обычно новая аналитика создается с использованием gtag.js" +this_page_doesnt_exist = "Такая станица не существует!" +time = "Время" +timezone = "Часовой пояс" +title = "Заголовок" +to_use_disqus_or_facebook_comment_you_need_to_provide_disqus_shortname_or_facebook_app_id = "Для использования комментариев Disqus или Facebook вам необходимо указать короткое имя Disqus или Facebook App ID." +token_error = "Неправильный токен" +tools = "Инструменты" +twitter_account = "Аккаунт Twitter" +type_to_search = "Введите для поиска" +uncategorized = "Без категории" +uncategorized_comment = "Статьи, которым не нужна категория или которые не подходят ни к одной существующей категории." +universal_analytics = "Универсальная (gtag.js)" +unknown_feed_format = "Unknown feed format" +update = "Обновить" +update_available = "Доступно обновление" +update_draft = "Обновить черновик" +update_post = "Обновить статью" +update_to = "Обновить до" +upload = "Загрузить" +user = "Пользователь" +user_error = "Заполните имя пользователя" +valid_values_range_from_0_to_1.0._see = "Допустимые значения от 0.0 до 1.0. Подробнее: " +video_post = "Статья с видео" +video_post_comment = "Создать статью с видео" +view = "Просмотр" +view_post = "Просмотр" +views = "Просмотры" +widget = "Виджет" +widget_settings = "Управление виджетами" +would_you_like_to_try_our = "Хотели бы вы попробовать " +yes_im_in = "Да" +yes_not_recommended = "Да (не рекомендуется)" +you_dont_have_permission_to_access_this_page = "У вас нет разрешений для доступа к этой странице" +your_new_config_key = "Ваш новый ключ конфигурации" +your_new_value = "Значение ключа" +your_backups = "Резервные копии" +your_latest_blog_posts = "Ваши последние статьи" +your_recent_posts = "Ваши недавние статьи" +by = "" +hint_use_ctrlcmdf_to_search_for_your_config_key_or_value = "совет: Для поиска ключа конфигурации и его значения используйте комбинацию клавиш Ctrl/CMD + F" +homepage = "главная" +instead = "вместо" +item_class = "Добавьте класс CSS" +item_slug = "Вставьте ЧП ссылку" +now = "сейчас" +of = "of" +optional = "необязательный" +post_your_post_slug = "/post/постоянная-ссылка-на-статью" +pro_tips_you_can_create_custom_config_key_and_print_out_your_config_key_value_anywhere_in_your_template = "совет: Вы можете создать собственный ключ конфигурации и выводить значение этого ключа в любом месте вашего шаблона" +read_more = "Читать далее" +widget_key_placeholder = "12345abcde" +year_month_your_post_slug = "/год/месяц/постоянная-ссылка-на-статью" +your_key = "your.key" +summary_behavior = "Summary behavior" +default = "Default" +check_shortcode = "Check shortcode" +in_summary_mode_whether_check_the_shortcode_first_or_not_before_trim_the_content_to_x_char = "In summary mode, whether check the shortcode first or not before trim the content to x char" +manage_users = "Manage users" +add_user = "Add user" +username = "Username" +role = "Role" +change_password = "Change password" +config_mfa = "Configure MFA" +mfacode = "MFA Code" +verify_code = "Verify the MFA code" +verify_password = "Verify current password" +manualsetupkey = "You can also manually add the setup key" +mfa_error = "MFA code is not correct" +disablemfa = "Disable MFA" +enable_auto_save = "Enable Auto Save" +explain_autosave = "When enabled, new content or draft will be automatically saved every 60 seconds." +login_protect_system = "Login protection system" +cloudflare_info = "Review Cloudflare's Turnstile documentation: " +mfa_config = "Multi Factor Authentication (MFA)" +set_mfa_globally = "Set the status of MFA" +explain_mfa = "When enabled, MFA is optional for all users. When disabled, no users can use it and it hides the field on the login page." +set_version_publicly = "Version Visibility" +explain_version = "By default the version of HTMLy is visible publicly in the source code, some admins may prefer to hide this." +focus_mode = "Toggle Focus" +writing = "Writing" +writing_settings = "Writing Settings" +security = "Security" +security_settings = "Security Settings" +msg_error_field_req_username = "Username field is required." +msg_error_field_req_password = "Password field is required." +msg_error_field_req_title = "Title field is required." +msg_error_field_req_content = "Content field is required." +msg_error_field_req_tag = "Tag field is required." +msg_error_field_req_image = "Image field is required." +msg_error_field_req_video = "Video field is required." +msg_error_field_req_link = "Link field is required." +msg_error_field_req_quote = "Quote field is required." +msg_error_field_req_audio = "Audio field is required." +msg_error_field_req_feedurl = "You need to specify the feed url." +rss_feeds_description_select = "RSS Description" +rss_description_body = "Post Body" +rss_description_meta = "Post Meta Description" +admin_theme = "Admin theme" +admin_theme_light = "Light" +admin_theme_dark = "Dark" diff --git a/lang/sv_SE.ini b/lang/sv_SE.ini new file mode 100644 index 0000000..2395ac4 --- /dev/null +++ b/lang/sv_SE.ini @@ -0,0 +1,338 @@ +about = "Om" +add_category = "Ny kategori" +add_content = "Nytt" +add_link = "Add link" +add_menu = "Add menu" +add_new_page = "Add new page" +add_new_post = "Add new post" +add_source_link_optional = "Add source link (optional)" +add_sub = "Ny undersida" +address_url = "Address (URL)" +admin = "Admin" +admin_panel_style_based_on = "Admin panel style based on" +all_blog_posts = "Alla blogginlägg" +all_cache_has_been_deleted = "All cache has been deleted !" +all_posts_tagged = "All posts tagged" +archive = "Arkiv" +archive_for = "Archive for" +archive_page_for = "Archive page for" +archives = "Arkiv" +are_you_sure_you_want_to_delete_ = "Är du säker på att du vill radera %s?" +at_the_moment_you_are_using_auto_generated_menu = "At the moment you are using auto generated menu." +audio_post = "Audioinlägg" +audio_post_comment = "Skapa inlägg med ljudklipp" +author = "Författare" +author_description = "Just another HTMLy user" +back_to = "Back to" +backup = "Säkerhetskopiera" +blog_description = "In one paragraph, tell us more about your blog." +blog_theme = "Blog Theme" +blog_title = "Blog title" +blog_title_placeholder = "My HTMLy Blog" +blog_posts_displayed_as = "Blog posts displayed as" +breadcrumb_home_text = "Breadcrumb home text" +by = "av" +by_using_this_importer_you_confirm_that_the_feed_is_yours_or_that_at_least_you_have_the_authority_to_publish_it = "By using this importer you are agree if the feed is yours or at least you have the authority to publish it." +css_class_optional = "CSS Class (optional)" +cache_expiration = "Cache expiration (in hours)" +cache_off = "Cache off" +cache_timestamp = "Cache timestamp" +cancel = "Avbryt" +cannot_read_feed_content = "Cannot read feed content" +captcha_error = "reCaptcha not correct" +categories = "Kategorier" +category = "Kategori" +check_update = "Check update" +clear_cache = "Rensa cache" +comma_separated_values = "Comma separated values" +comment_system = "Comment system" +comments = "kommentarer" +config = "Konfiguration" +congrats_you_have_the_latest_version_of_htmly = "Congrats! You have the latest version of HTMLy." +content = "Content" +contents = "Innehåll" +continue_reading = "Läs vidare" +copyright_line = "Copyright line" +copyright_line_placeholder = "(c) Your name." +create_backup = "Create backup" +created = "Skapad" +custom = "Custom" +custom_settings = "Custom Settings" +dashboard = "Dashboard" +date = "Date" +date_format = "Date Format" +delete = "Radera" +description = "Beskrivning" +design_by = "Designad av" +disable = "Disable" +disabled = "Disabled" +disqus_shortname = "Disqus shortname" +disqus_shortname_placeholder = "htmly" +draft = "Utkast" +edit = "Redigera" +edit_category = "Edit category" +edit_post = "Edit" +edit_profile = "Redigera profil" +enable = "Enable" +enable_blog_url = "Enable blog URL" +enter_image_url = "Enter image URL" +facebook_app_id = "Facebook App ID" +facebook_page = "Facebook page" +featured_audio = "Featured Audio" +featured_image = "Featured Image" +featured_link = "Featured Link" +featured_quote = "Featured Quote" +featured_video = "Featured Video" +feed_url = "Feed URL" +filename = "Filnamn" +follow = "Följ" +for_google_site_verification_meta = "For google-site-verification meta" +front_page_displays = "Front page displays" +full_post = "Full post" +general = "General" +general_settings = "General Settings" +get_one_here = "Get one here" +github_pre_release = "Github pre-release" +google_analytics = "Google Analytics" +google_analytics_legacy = "Google Analytics (legacy)" +google_search_console = "Google Search Console" +home = "Home" +if_left_empty_we_will_excerpt_it_from_the_content_below = "If leave empty we will excerpt it from the content below" +if_the_url_is_left_empty_we_will_use_the_page_title = "If the url leave empty we will use the page title" +if_the_url_is_left_empty_we_will_use_the_post_title = "If the url leave empty we will use the post title" +image_post = "Bildinlägg" +image_post_comment = "Skapa inlägg med bild" +import = "Importera" +import_feed = "Start Import Feed" +import_rss = "Import RSS" +import_rss_feed_2.0 = "Import RSS Feed 2.0" +insert_image = "Insert Image" +invalid_error = "ERROR: Invalid username or password" +language = "System Language" +link_name = "Link name" +link_post = "Länkinlägg" +link_post_comment = "Skapa inlägg med länk" +login = "Login" +login_page = "Inloggningssida" +logout = "Logga ut" +menu = "Menu" +menus = "Menu Editor" +meta_description = "Meta-beskrivning" +meta_description_character = "Meta description character" +metatags = "Metatags" +metatags_settings = "Metatags Settings" +mine = "Mina" +more = "Mer" +my_draft = "Mina utkast" +my_posts = "Mina inlägg" +name = "Name" +newer = "Nyare" +newer_posts = "Nyare inlägg" +next = "Nästa" +next_post = "Nästa inlägg" +no_available_backup = "No available backup at this time." +no_draft_found = "Inga utkast funna" +no_newer_posts = "Inga nyare inlägg" +no_older_posts = "Inga äldre inlägg" +no_posts_found = "Inga inlägg funna" +no_related_post_found = "Inga relaterade inlägg funna" +no_scheduled_posts_found = "No scheduled posts found!" +no_search_results = "No search results" +nope = "Nope" +not = "No" +older = "Äldre" +older_posts = "Äldre inlägg" +only = "Only" +operations = "Åtgärder" +page = "Page" +page_generation_time = "Page generation time" +pages = "Pages" +pass_error = "Password field is required" +password = "Password" +performance = "Performance" +performance_settings = "Performance Settings" +permalink = "Permalink" +popular = "Popular" +popular_posts = "Populära inlägg" +popular_posts_widget = "Popular posts widget" +popular_posts_widget_at_most = "Popular posts widget at most" +popular_tags = "Populära etiketter" +post_by_author = "Posts by this author" +posted_in = "Upplagd i" +posted_on = "Upplagd på" +posts = "Inlägg" +posts_by = "Posts by" +posts_draft = "Posts draft" +posts_in_archive_page_at_most = "Posts in archive page at most" +posts_in_category_page_at_most = "Posts in category page at most" +posts_in_front_page_show_at_most = "Posts in front page show at most" +posts_in_profile_page_at_most = "Posts in profile page at most" +posts_in_search_result_at_most = "Posts in search result at most" +posts_in_tag_page_at_most = "Posts in tag page at most" +posts_in_type_page_at_most = "Posts in type page at most" +posts_index_settings = "Posts index settings" +posts_list = "Posts list" +posts_tagged = "Posts tagged" +posts_with_type = "Posts with type" +pre_release = "Pre-release" +prev = "Föregående" +prev_post = "Föregående inlägg" +preview = "Preview" +previous = "Föregående" +profile_for = "Profile for" +proudly_powered_by = "Proudly powered by" +publish = "Publicera" +publish_draft = "Publicera utkast" +published = "Publicerad" +published_by = "Publicerad av" +quote_post = "Citatinlägg" +quote_post_comment = "Skapa inlägg med citat" +rss_character = "RSS character" +rss_feeds_show_the_most_recent = "RSS feeds show the most recent" +rss_settings = "RSS settings" +read_more = "läs mer" +read_more_text = "Read more text" +read_more_text_placeholder = "Read more" +reading = "Reading" +reading_settings = "Reading Settings" +recaptcha = "reCAPTCHA" +recent_comments = "Senaste kommentarer" +recent_posts = "Senaste inlägg" +recent_posts_widget_at_most = "Recent posts widget at most" +regular_post = "Vanligt inlägg" +regular_post_comment = "Skapa vanligt inlägg" +related_posts = "Relaterade inlägg" +related_widget_posts_at_most = "Related widget posts at most" +return_to_home = "Tillbaka till startsidan" +revert_to_draft = "Återgå till utkast" +save = "Spara" +save_config = "Save config" +save_edit = "Save Edit" +save_menu = "Save menu" +save_as_draft = "Spara som utkast" +save_category = "Save category" +scheduled = "Scheduled" +scheduled_posts = "Scheduled posts" +scheduled_tips = "Publishing a post with future date or time, it will go into scheduled posts" +search = "Sök" +search_for = "Sök efter" +search_results_for = "Search results for" +search_results_not_found = "Search results not found!" +secret_key = "Secret Key" +settings = "Settings" +share_this_post = "Dela inlägg" +sign_in_to_start_your_session = "Sign in to start your session" +site_key = "Site Key" +sitemap = "Sitemap" +slug = "Slug" +social_media = "Social Media" +static_page = "Statisk sida" +static_page_comment = "Skapa statisk sida" +static_pages = "Statiska sidor" +summary = "Summary" +summary_character = "Summary character" +tag = "Etikett" +tagcloud_widget_at_most = "TagCloud at most" +tagline = "Tagline" +tagline_placeholder = "Databaseless PHP Blogging Platform" +tagline_description = "In a few words, explain what this blog is about." +tags = "Etiketter" +this_is_legacy_code_usually_new_created_analytics_using_gtag_js = "This is legacy code. Usually new created analytics using gtag.js" +this_page_doesnt_exist = "This page doesn't exist !" +time = "Time" +timezone = "Timezone" +title = "Titel" +to_use_disqus_or_facebook_comment_you_need_to_provide_disqus_shortname_or_facebook_app_id = "To using Disqus or Facebook comment you need to provide Disqus shortname or Facebook App ID." +token_error = "CSRF Token not correct" +tools = "Tools" +twitter_account = "Twitter account" +type_to_search = "Type to search" +uncategorized = "Ingen kategori" +uncategorized_comment = "Inlägg som inte behöver någon kategori eller inte passar i någon av övriga kategorier." +universal_analytics = "Universal Analytics (gtag.js)" +unknown_feed_format = "Unknown feed format" +update = "Uppdatera" +update_available = "Update Available" +update_draft = "Uppdatera utkast" +update_post = "Uppdatera inlägg" +update_to = "Update to" +upload = "Upload" +user = "User" +user_error = "User field is required" +valid_values_range_from_0_to_1.0._see = "Valid values range from 0.0 to 1.0. See" +video_post = "Videoinlägg" +video_post_comment = "Skapa inlägg med video" +view = "Visa" +view_post = "View" +views = "Visningar" +widget = "Widget" +widget_settings = "Widget Settings" +would_you_like_to_try_our = "Would you like to try our " +yes_im_in = "Yes I'm in" +yes_not_recommended = "Yes (not recommended)" +you_dont_have_permission_to_access_this_page = "You don't have permission to access this page" +your_new_config_key = "Your New Config Key" +your_new_value = "Your New Value" +your_backups = "Your backups" +your_latest_blog_posts = "Your latest blog posts" +your_recent_posts = "Dina senaste inlägg" +hint_use_ctrlcmdf_to_search_for_your_config_key_or_value = "hint: Use Ctrl/CMD + F to search for your config key or value." +homepage = "homepage" +instead = "instead" +item_class = "Insert CSS class" +item_slug = "Insert Link URL" +now = "now" +of = "of" +optional = "optional" +post_your_post_slug = "/post/your-post-slug" +pro_tips_you_can_create_custom_config_key_and_print_out_your_config_key_value_anywhere_in_your_template = "pro tips: You can creating custom config key and print out your config key value anywhere in your template." +widget_key_placeholder = "12345abcde" +year_month_your_post_slug = "/year/month/your-post-slug" +your_key = "your.key" +summary_behavior = "Summary behavior" +default = "Default" +check_shortcode = "Check shortcode" +in_summary_mode_whether_check_the_shortcode_first_or_not_before_trim_the_content_to_x_char = "In summary mode, whether check the shortcode first or not before trim the content to x char" +manage_users = "Manage users" +add_user = "Add user" +username = "Username" +role = "Role" +change_password = "Change password" +config_mfa = "Configure MFA" +mfacode = "MFA Code" +verify_code = "Verify the MFA code" +verify_password = "Verify current password" +manualsetupkey = "You can also manually add the setup key" +mfa_error = "MFA code is not correct" +disablemfa = "Disable MFA" +enable_auto_save = "Enable Auto Save" +explain_autosave = "When enabled, new content or draft will be automatically saved every 60 seconds." +login_protect_system = "Login protection system" +cloudflare_info = "Review Cloudflare's Turnstile documentation: " +mfa_config = "Multi Factor Authentication (MFA)" +set_mfa_globally = "Set the status of MFA" +explain_mfa = "When enabled, MFA is optional for all users. When disabled, no users can use it and it hides the field on the login page." +set_version_publicly = "Version Visibility" +explain_version = "By default the version of HTMLy is visible publicly in the source code, some admins may prefer to hide this." +focus_mode = "Toggle Focus" +writing = "Writing" +writing_settings = "Writing Settings" +security = "Security" +security_settings = "Security Settings" +msg_error_field_req_username = "Username field is required." +msg_error_field_req_password = "Password field is required." +msg_error_field_req_title = "Title field is required." +msg_error_field_req_content = "Content field is required." +msg_error_field_req_tag = "Tag field is required." +msg_error_field_req_image = "Image field is required." +msg_error_field_req_video = "Video field is required." +msg_error_field_req_link = "Link field is required." +msg_error_field_req_quote = "Quote field is required." +msg_error_field_req_audio = "Audio field is required." +msg_error_field_req_feedurl = "You need to specify the feed url." +rss_feeds_description_select = "RSS Description" +rss_description_body = "Post Body" +rss_description_meta = "Post Meta Description" +admin_theme = "Admin theme" +admin_theme_light = "Light" +admin_theme_dark = "Dark" diff --git a/lang/tr_TR.ini b/lang/tr_TR.ini new file mode 100644 index 0000000..e937e3f --- /dev/null +++ b/lang/tr_TR.ini @@ -0,0 +1,326 @@ +about = "Hakkında" +add_category = "Kategori ekle" +add_content = "İçerik ekle" +add_link = "Bağlantı ekle" +add_menu = "Menü ekle" +add_new_page = "Yeni sayfa ekle" +add_new_post = "Yeni gönderi ekle" +add_source_link_optional = "Kaynak bağlantısı ekle (isteğe bağlı)" +add_sub = "Alt ekle" +address_url = "Adres (URL)" +admin = "Yönetici" +admin_panel_style_based_on = "Yönetici paneli stili temel alıyor" +all_blog_posts = "Tüm blog yazıları" +all_cache_has_been_deleted = "Tüm önbellek silindi!" +all_posts_tagged = "Tüm etiketlenmiş gönderiler" +archive_for = "Arşiv" +archive_page_for = "Arşiv sayfası" +archives = "Arşivler" +are_you_sure_you_want_to_delete_ = "%s silmek istediğinize emin misiniz?" +at_the_moment_you_are_using_auto_generated_menu = "Şu anda otomatik oluşturulmuş menü kullanıyorsunuz." +audio_post = "Sesli gönderi" +audio_post_comment = "Ses içeren bir blog gönderisi oluşturuluyor" +author = "Yazar" +author_description = "Bir başka HTMLy kullanıcısı" +back_to = "Geri dön" +backup = "Yedekleme" +blog_description = "Blogunuzu daha iyi anlatan bir paragraf." +blog_theme = "Blog Teması" +blog_title = "Blog Başlığı" +blog_title_placeholder = "HTMLy Blogum" +blog_posts_displayed_as = "Blog gönderileri şu şekilde görüntülenir" +breadcrumb_home_text = "Anasayfa kırıntı metni" +by_using_this_importer_you_confirm_that_the_feed_is_yours_or_that_at_least_you_have_the_authority_to_publish_it = "Bu içe aktarımı kullanarak beslemenin size ait olduğunu veya en azından yayınlama yetkinizin olduğunu onaylıyorsunuz." +css_class_optional = "CSS Sınıfı (isteğe bağlı)" +cache_expiration = "Önbellek süresi (saat cinsinden)" +cache_off = "Önbellek kapalı" +cache_timestamp = "Önbellek zaman damgası" +cancel = "İptal" +cannot_read_feed_content = "Besleme içeriği okunamıyor" +captcha_error = "reCAPTCHA doğru değil" +categories = "Kategoriler" +category = "Kategori" +check_update = "Güncellemeyi kontrol et" +clear_cache = "Önbelleği temizle" +comma_separated_values = "Virgülle ayrılmış değerler" +comment_system = "Yorum sistemi" +comments = "Yorumlar" +config = "Ayarlar" +congrats_you_have_the_latest_version_of_htmly = "Tebrikler! HTMLy'nin en son sürümüne sahipsiniz." +content = "İçerik" +contents = "İçerikler" +copyright_line = "Telif Hakkı Satırı" +copyright_line_placeholder = "(c) Adınız." +create_backup = "Yedek oluştur" +created = "Oluşturuldu" +custom = "Özel" +custom_settings = "Özel Ayarlar" +dashboard = "Panel" +date = "Tarih" +date_format = "Tarih Formatı" +delete = "Sil" +description = "Açıklama" +disable = "Devre dışı bırak" +disabled = "Devre dışı" +disqus_shortname = "Disqus kısa adı" +disqus_shortname_placeholder = "htmly" +draft = "Taslak" +edit = "Düzenle" +edit_category = "Kategoriyi düzenle" +edit_post = "Düzenle" +edit_profile = "Profili düzenle" +enable = "Etkinleştir" +enable_blog_url = "Blog URL'sini etkinleştir" +enter_image_url = "Görsel URL'sini girin" +facebook_app_id = "Facebook Uygulama ID'si" +facebook_page = "Facebook sayfası" +featured_audio = "Öne çıkan ses" +featured_image = "Öne çıkan görsel" +featured_link = "Öne çıkan bağlantı" +featured_quote = "Öne çıkan alıntı" +featured_video = "Öne çıkan video" +feed_url = "Besleme URL'si" +filename = "Dosya Adı" +follow = "Takip et" +for_google_site_verification_meta = "Google site doğrulaması için meta" +front_page_displays = "Anasayfa gösterimi" +full_post = "Tam gönderi" +general = "Genel" +general_settings = "Genel Ayarlar" +get_one_here = "Buradan bir tane alın" +github_pre_release = "Github ön sürüm" +google_analytics = "Google Analytics" +google_analytics_legacy = "Google Analytics (eski)" +google_search_console = "Google Search Console" +home = "Anasayfa" +if_left_empty_we_will_excerpt_it_from_the_content_below = "Boş bırakılırsa, aşağıdaki içerikten özet çıkarılacaktır." +if_the_url_is_left_empty_we_will_use_the_page_title = "URL boş bırakılırsa sayfa başlığı kullanılacaktır." +if_the_url_is_left_empty_we_will_use_the_post_title = "URL boş bırakılırsa gönderi başlığı kullanılacaktır." +image_post = "Görsel gönderi" +image_post_comment = "Öne çıkan görsel içeren bir blog gönderisi oluşturuluyor" +import = "İçe aktar" +import_feed = "Besleme içe aktarmayı başlat" +import_rss = "RSS'yi içe aktar" +import_rss_feed_2.0 = "RSS Feed 2.0 içe aktar" +insert_image = "Görsel ekle" +invalid_error = "HATA: Geçersiz kullanıcı adı veya şifre" +language = "Sistem Dili" +link_name = "Bağlantı adı" +link_post = "Bağlantı gönderisi" +link_post_comment = "Link içerikli bir blog gönderisi oluşturuluyor." +login = "Giriş yap" +login_page = "Giriş sayfası" +logout = "Çıkış yap" +menu = "Menü" +menus = "Menü Editörü" +meta_description = "Meta Açıklaması" +meta_description_character = "Meta açıklama karakteri" +metatags = "Meta etiketler" +metatags_settings = "Meta etiket ayarları" +mine = "Benim" +more = "Daha fazla" +my_draft = "Taslaklarım" +my_posts = "Gönderilerim" +name = "Ad" +newer = "Daha Yeni" +next = "Sonraki" +next_post = "Sonraki gönderi" +no_available_backup = "Bu anda kullanılabilir yedek yok." +no_draft_found = "Taslak bulunamadı" +no_posts_found = "Gönderi bulunamadı" +no_related_post_found = "Benzer gönderi bulunamadı" +no_scheduled_posts_found = "Planlanmış gönderi bulunamadı!" +no_search_results = "Arama sonuçları yok" +nope = "Hayır" +not = "Değil" +older = "Daha Eski" +only = "Sadece" +operations = "Operasyonlar" +page = "Sayfa" +page_generation_time = "Sayfa oluşturma süresi" +pages = "Sayfalar" +pass_error = "Şifre alanı zorunludur" +password = "Şifre" +performance = "Performans" +performance_settings = "Performans Ayarları" +permalink = "Kalıcı Bağlantı" +popular = "Popüler" +popular_posts = "Popüler gönderiler" +popular_posts_widget = "Popüler gönderiler widget'ı" +popular_posts_widget_at_most = "Popüler gönderiler widget'ı en fazla" +popular_tags = "Popüler etiketler" +post_by_author = "Bu yazarın gönderileri" +posted_in = "Gönderildi" +posted_on = "Gönderildi" +posts = "Gönderiler" +posts_by = "Yazarı" +posts_draft = "Taslak gönderiler" +posts_in_archive_page_at_most = "Arşiv sayfasındaki en fazla gönderi" +posts_in_category_page_at_most = "Kategori sayfasındaki en fazla gönderi" +posts_in_front_page_show_at_most = "Anasayfada en fazla gösterilecek gönderi" +posts_in_profile_page_at_most = "Profil sayfasındaki en fazla gönderi" +posts_in_search_result_at_most = "Arama sonuçlarındaki en fazla gönderi" +posts_in_tag_page_at_most = "Etiket sayfasındaki en fazla gönderi" +posts_in_type_page_at_most = "Tür sayfasındaki en fazla gönderi" +posts_index_settings = "Gönderi dizini ayarları" +posts_list = "Gönderi listesi" +posts_tagged = "Etiketlenmiş gönderiler" +posts_with_type = "Türü olan gönderiler" +pre_release = "Ön sürüm" +prev = "Önceki" +prev_post = "Önceki gönderi" +preview = "Önizleme" +profile_for = "Profil" +proudly_powered_by = "Gururla desteklenir" +publish = "Yayınla" +publish_draft = "Taslağı yayınla" +published = "Yayınlandı" +quote_post = "Alıntı gönderi" +quote_post_comment = "Alıntı içeren blog gönderisi oluşturuluyor" +rss_character = "RSS karakteri" +rss_feeds_show_the_most_recent = "RSS beslemeleri en yeni gönderileri gösterir" +rss_settings = "RSS ayarları" +read_more_text = "Devamını oku metni" +read_more_text_placeholder = "Devamını oku" +reading = "Okuma" +reading_settings = "Okuma Ayarları" +recaptcha = "reCAPTCHA" +recent_posts = "Son gönderiler" +recent_posts_widget_at_most = "Son gönderiler widget'ı en fazla" +regular_post = "Düzenli gönderi" +regular_post_comment = "Düzenli gönderi oluşturuluyor" +related_posts = "İlgili gönderiler" +related_widget_posts_at_most = "İlgili gönderiler widget'ı en fazla" +revert_to_draft = "Taslağa dönüştür" +save = "Kaydet" +save_config = "Yapılandırmayı kaydet" +save_edit = "Düzenlemeyi kaydet" +save_menu = "Menüyü kaydet" +save_as_draft = "Taslak olarak kaydet" +save_category = "Kategoriyi kaydet" +scheduled = "Planlandı" +scheduled_posts = "Planlanan gönderiler" +scheduled_tips = "Gelecek tarih veya saatte bir gönderi yayınlandığında, planlanan gönderiler kısmına gider" +search = "Ara" +search_for = "Arama:" +search_results_for = "Arama sonuçları:" +search_results_not_found = "Arama sonuçları bulunamadı!" +secret_key = "Gizli Anahtar" +settings = "Ayarlar" +sign_in_to_start_your_session = "Oturumunuzu başlatmak için giriş yapın" +site_key = "Site Anahtarı" +sitemap = "Site haritası" +slug = "URL" +social_media = "Sosyal Medya" +static_page = "Statik sayfa" +static_page_comment = "Statik sayfa oluşturuluyor" +static_pages = "Statik sayfalar" +summary = "Özet" +summary_character = "Özet karakteri" +tag = "Etiket" +tagcloud_widget_at_most = "Etiket Bulutu en fazla" +tagline = "Slogan" +tagline_placeholder = "Veritabanı olmayan PHP Blog Platformu" +tagline_description = "Bu blogun ne hakkında olduğunu birkaç kelime ile açıklayın." +tags = "Etiketler" +this_is_legacy_code_usually_new_created_analytics_using_gtag_js = "Bu eski bir koddur. Genellikle yeni oluşturulan analizler gtag.js kullanır." +this_page_doesnt_exist = "Bu sayfa mevcut değil!" +time = "Zaman" +timezone = "Zaman dilimi" +title = "Başlık" +to_use_disqus_or_facebook_comment_you_need_to_provide_disqus_shortname_or_facebook_app_id = "Disqus veya Facebook yorumlarını kullanmak için Disqus kısa adı veya Facebook Uygulama ID'si sağlamanız gerekir." +token_error = "CSRF Tokeni doğru değil" +tools = "Araçlar" +twitter_account = "Twitter hesabı" +type_to_search = "Aramak için yazın" +uncategorized = "Kategorilenmemiş" +uncategorized_comment = "Bir kategoriye ihtiyaç duymayan veya mevcut herhangi bir kategoriye uymayan konular" +universal_analytics = "Evrensel Analiz (gtag.js)" +unknown_feed_format = "Bilinmeyen besleme formatı" +update = "Güncelle" +update_available = "Güncelleme mevcut" +update_draft = "Taslağı güncelle" +update_post = "Gönderiyi güncelle" +update_to = "Güncelle" +upload = "Yükle" +user = "Kullanıcı" +user_error = "Kullanıcı alanı zorunludur" +valid_values_range_from_0_to_1.0._see = "Geçerli değerler 0.0 ile 1.0 arasında olmalıdır. Bakınız" +video_post = "Video gönderisi" +video_post_comment = "Video içeren blog gönderisi oluşturuluyor" +view = "Görüntüleme" +view_post = "Gönderiyi görüntüle" +views = "Görüntülemeler" +widget = "Widget" +widget_settings = "Widget Ayarları" +would_you_like_to_try_our = "Bizimle denemek ister misiniz" +yes_im_in = "Evet, varım" +yes_not_recommended = "Evet (önerilmez)" +you_dont_have_permission_to_access_this_page = "Bu sayfaya erişim izniniz yok" +your_new_config_key = "Yeni Yapılandırma Anahtarınız" +your_new_value = "Yeni Değeriniz" +your_backups = "Yedekleriniz" +your_latest_blog_posts = "Son blog gönderileriniz" +your_recent_posts = "Son gönderileriniz" +by = "tarafından" +hint_use_ctrlcmdf_to_search_for_your_config_key_or_value = "İpucu: Yapılandırma anahtarınızı veya değerini aramak için Ctrl/CMD + F kullanın." +homepage = "ana sayfa" +instead = "yerine" +item_class = "CSS sınıfı ekle" +item_slug = "Bağlantı URL'sini ekle" +now = "şimdi" +of = "nin" +optional = "isteğe bağlı" +post_your_post_slug = "/post/your-post-slug" +pro_tips_you_can_create_custom_config_key_and_print_out_your_config_key_value_anywhere_in_your_template = "Pro ipucu: Özel yapılandırma anahtarı oluşturabilir ve şablonunuzun herhangi bir yerinde bu anahtarın değerini yazdırabilirsiniz." +read_more = "daha fazla oku" +widget_key_placeholder = "12345abcde" +year_month_your_post_slug = "/year/month/your-post-slug" +your_key = "sizin.anahtarınız" +summary_behavior = "Özet davranışı" +default = "Varsayılan" +check_shortcode = "Kısa kodu kontrol et" +in_summary_mode_whether_check_the_shortcode_first_or_not_before_trim_the_content_to_x_char = "Özet modunda, içeriği x karaktere kadar kırpmadan önce kısa kodu kontrol edip etmeyeceğini belirleyin." +manage_users = "Kullanıcıları yönet" +add_user = "Kullanıcı ekle" +username = "Kullanıcı adı" +role = "Rol" +change_password = "Şifre değiştir" +config_mfa = "MFA'yı yapılandır" +mfacode = "MFA Kodu" +verify_code = "MFA kodunu doğrula" +verify_password = "Mevcut şifreyi doğrula" +manualsetupkey = "Kurulum anahtarını manuel olarak da ekleyebilirsiniz" +mfa_error = "MFA kodu doğru değil" +disablemfa = "MFA'yı devre dışı bırak" +enable_auto_save = "Otomatik Kaydet'i Etkinleştir" +explain_autosave = "Etkinleştirildiğinde, yeni içerik veya taslak her 60 saniyede bir otomatik olarak kaydedilir." +login_protect_system = "Giriş koruma sistemi" +cloudflare_info = "Cloudflare'nin Turnstile belgelerini inceleyin:" +mfa_config = "Çok Faktörlü Kimlik Doğrulama (MFA)" +set_mfa_globally = "MFA durumunu genel olarak ayarla" +explain_mfa = "Etkinleştirildiğinde, MFA tüm kullanıcılar için isteğe bağlıdır. Devre dışı bırakıldığında, hiçbir kullanıcı kullanamaz ve giriş sayfasındaki alan gizlenir." +set_version_publicly = "Sürüm Görünürlüğü" +explain_version = "Varsayılan olarak, HTMLy'nin sürümü kaynak kodunda açıkça görülür. Bazı yöneticiler bu bilgiyi gizlemeyi tercih edebilir." +focus_mode = "Odak Modu Değiştir" +writing = "Yazma" +writing_settings = "Yazma Ayarları" +security = "Güvenlik" +security_settings = "Güvenlik Ayarları" +msg_error_field_req_username = "Kullanıcı adı alanı zorunludur." +msg_error_field_req_password = "Şifre alanı zorunludur." +msg_error_field_req_title = "Başlık alanı zorunludur." +msg_error_field_req_content = "İçerik alanı zorunludur." +msg_error_field_req_tag = "Etiket alanı zorunludur." +msg_error_field_req_image = "Görsel alanı zorunludur." +msg_error_field_req_video = "Video alanı zorunludur." +msg_error_field_req_link = "Bağlantı alanı zorunludur." +msg_error_field_req_quote = "Alıntı alanı zorunludur." +msg_error_field_req_audio = "Ses alanı zorunludur." +msg_error_field_req_feedurl = "Besleme URL'sini belirtmeniz gerekiyor." +rss_feeds_description_select = "RSS Açıklaması" +rss_description_body = "Gönderi Metni" +rss_description_meta = "Gönderi Meta Açıklaması" +admin_theme = "Admin theme" +admin_theme_light = "Light" +admin_theme_dark = "Dark" diff --git a/lang/uk_UA.ini b/lang/uk_UA.ini new file mode 100644 index 0000000..62ec836 --- /dev/null +++ b/lang/uk_UA.ini @@ -0,0 +1,326 @@ +about = "Про нас" +add_category = "Додати категорію" +add_content = "Додати контент" +add_link = "Додати посилання" +add_menu = "Додати меню" +add_new_page = "Додати нову сторінку" +add_new_post = "Додати новий запис" +add_source_link_optional = "Додати джерело (необов'язково)" +add_sub = "Додати підсторінку" +address_url = "Адреса (URL)" +admin = "Адмін" +admin_panel_style_based_on = "Стиль адмін-панелі на основі" +all_blog_posts = "Всі записи блогу" +all_cache_has_been_deleted = "Весь кеш було видалено!" +all_posts_tagged = "Всі записи з тегом" +archive_for = "Архів для" +archive_page_for = "Сторінка архіву для" +archives = "Архіви" +are_you_sure_you_want_to_delete_ = "Ви впевнені, що хочете видалити %s?" +at_the_moment_you_are_using_auto_generated_menu = "Зараз ви використовуєте автоматично згенероване меню." +audio_post = "Аудіо запис" +audio_post_comment = "Створення блогу з аудіо" +author = "Автор" +author_description = "Ще один користувач HTMLy" +back_to = "Назад до" +backup = "Резервне копіювання" +blog_description = "В одному абзаці розкажіть більше про ваш блог." +blog_theme = "Тема блогу" +blog_title = "Назва блогу" +blog_title_placeholder = "Мій HTMLy блог" +blog_posts_displayed_as = "Відображення записів блогу як" +breadcrumb_home_text = "Текст головної крихти" +by_using_this_importer_you_are_agree_if_the_feed_is_yours_or_at_least_you_have_the_authority_to_publish_it = "Використовуючи цей імпортер, ви погоджуєтесь, що фід ваш або ви маєте право його публікувати." +css_class_optional = "CSS клас (необов'язково)" +cache_expiration = "Час життя кешу (в годинах)" +cache_off = "Кеш вимкнено" +cache_timestamp = "Часова мітка кешу" +cancel = "Скасувати" +cannot_read_feed_content = "Неможливо прочитати вміст фіду" +captcha_error = "Помилка reCAPTCHA" +categories = "Категорії" +category = "Категорія" +check_update = "Перевірити оновлення" +clear_cache = "Очистити кеш" +comma_separated_values = "Значення через кому" +comment_system = "Система коментування" +comments = "Коментарі" +config = "Конфігурація" +congrats_you_have_the_latest_version_of_htmly = "Вітаємо! У вас остання версія HTMLy." +content = "Контент" +contents = "Контенти" +copyright_line = "Рядок копірайту" +copyright_line_placeholder = "(c) Ваше ім'я." +create_backup = "Створити резервну копію" +created = "Створено" +custom = "Користувацький" +custom_settings = "Користувацькі налаштування" +dashboard = "Панель управління" +date = "Дата" +date_format = "Формат дати" +delete = "Видалити" +description = "Опис" +disable = "Вимкнути" +disabled = "Вимкнено" +disqus_shortname = "Коротка назва Disqus" +disqus_shortname_placeholder = "htmly" +draft = "Чернетка" +edit = "Редагувати" +edit_category = "Редагувати категорію" +edit_post = "Редагувати" +edit_profile = "Редагувати профіль" +enable = "Увімкнути" +enable_blog_url = "Увімкнути /blog URL" +enter_image_url = "Введіть URL зображення" +facebook_app_id = "ID додатка Facebook" +facebook_page = "Сторінка Facebook" +featured_audio = "Рекомендоване аудіо" +featured_image = "Рекомендоване зображення" +featured_link = "Рекомендоване посилання" +featured_quote = "Рекомендована цитата" +featured_video = "Рекомендоване відео" +feed_url = "URL фіду" +filename = "Назва файлу" +follow = "Слідкувати" +for_google_site_verification_meta = "Для google-site-verification мета" +front_page_displays = "Головна сторінка відображає" +full_post = "Повний запис" +general = "Загальні" +general_settings = "Загальні налаштування" +get_one_here = "Отримайте один тут" +github_pre_release = "Попередня версія Github" +google_analytics = "Google Analytics" +google_analytics_legacy = "Google Analytics (спадщина)" +google_search_console = "Google Search Console" +home = "Головна" +if_leave_empty_we_will_excerpt_it_from_the_content_below = "Якщо залишити порожнім, ми витягнемо це з контенту нижче" +if_the_url_leave_empty_we_will_use_the_page_title = "Якщо URL залишити порожнім, ми використаємо заголовок сторінки" +if_the_url_leave_empty_we_will_use_the_post_title = "Якщо URL залишити порожнім, ми використаємо заголовок запису" +image_post = "Зображення запису" +image_post_comment = "Створення блогу з зображенням" +import = "Імпорт" +import_feed = "Почати імпорт фіду" +import_rss = "Імпорт RSS" +import_rss_feed_2.0 = "Імпорт RSS фіду 2.0" +insert_image = "Вставити зображення" +invalid_error = "ПОМИЛКА: Невірне ім'я користувача або пароль" +language = "Мова системи" +link_name = "Назва посилання" +link_post = "Посилання на запис" +link_post_comment = "Створення блогу з посиланням" +login = "Увійти" +login_page = "Сторінка входу" +logout = "Вийти" +menu = "Меню" +menus = "Редактор меню" +meta_description = "Мета опис" +meta_description_character = "Символи мета опису" +metatags = "Мета-теги" +metatags_settings = "Налаштування мета-тегів" +mine = "Мої" +more = "Більше" +my_draft = "Моя чернетка" +my_posts = "Мої записи" +name = "Ім'я" +newer = "Новіші" +next = "Наступні" +next_post = "Наступний запис" +no_available_backup = "Немає доступної резервної копії на цей час." +no_draft_found = "Чернеток не знайдено" +no_posts_found = "Записів не знайдено" +no_related_post_found = "Пов'язаних записів не знайдено" +no_scheduled_posts_found = "Запланованих записів не знайдено!" +no_search_results = "Результатів пошуку не знайдено" +nope = "Ні" +not = "Ні" +older = "Старіші" +only = "Тільки" +operations = "Операції" +page = "Сторінка" +page_generation_time = "Час генерації сторінки" +pages = "Сторінки" +pass_error = "Поле пароля є обов'язковим" +password = "Пароль" +performance = "Продуктивність" +performance_settings = "Налаштування продуктивності" +permalink = "Постійне посилання" +popular = "Популярні" +popular_posts = "Популярні записи" +popular_posts_widget = "Віджет популярних записів" +popular_posts_widget_at_most = "Віджет популярних записів, не більше ніж" +popular_tags = "Популярні теги" +post_by_author = "Записи цього автора" +posted_in = "Опубліковано в" +posted_on = "Опубліковано" +posts = "Записи" +posts_by = "Запис від" +posts_draft = "Чернетки записів" +posts_in_archive_page_at_most = "Записів на сторінці архіву, не більше ніж" +posts_in_category_page_at_most = "Записів на сторінці категорії, не більше ніж" +posts_in_front_page_show_at_most = "Записів на головній сторінці, не більше ніж" +posts_in_profile_page_at_most = "Записів на сторінці профілю, не більше ніж" +posts_in_search_result_at_most = "Записів у результатах пошуку, не більше ніж" +posts_in_tag_page_at_most = "Записів на сторінці тегу, не більше ніж" +posts_in_type_page_at_most = "Записів на сторінці типу, не більше ніж" +posts_index_settings = "Налаштування індексації записів" +posts_list = "Список записів" +posts_tagged = "Записи з тегом" +posts_with_type = "Записи з типом" +pre_release = "Попередній випуск" +prev = "Попередні" +prev_post = "Попередній запис" +preview = "Попередній перегляд" +profile_for = "Профіль для" +proudly_powered_by = "Працює на" +publish = "Опублікувати" +publish_draft = "Опублікувати чернетку" +published = "Опубліковано" +quote_post = "Цитата запису" +quote_post_comment = "Створення блогу з цитатою" +rss_character = "Символи RSS" +rss_feeds_show_the_most_recent = "RSS фіди показують найновіше" +rss_settings = "Налаштування RSS" +read_more_text = "Текст 'Читати більше'" +read_more_text_placeholder = "Читати більше" +reading = "Читання" +reading_settings = "Налаштування читання" +recaptcha = "reCAPTCHA" +recent_posts = "Останні записи" +recent_posts_widget_at_most = "Віджет останніх записів, не більше ніж" +regular_post = "Звичайний запис" +regular_post_comment = "Створення звичайного запису блогу" +related_posts = "Пов'язані записи" +related_widget_posts_at_most = "Віджет пов'язаних записів, не більше ніж" +revert_to_draft = "Повернути до чернетки" +save = "Зберегти" +save_config = "Зберегти конфігурацію" +save_edit = "Зберегти редагування" +save_menu = "Зберегти меню" +save_as_draft = "Зберегти як чернетку" +save_category = "Зберегти категорію" +scheduled = "Заплановано" +scheduled_posts = "Заплановані записи" +scheduled_tips = "Публікація запису з майбутньою датою або часом, він буде відправлений до запланованих записів" +search = "Пошук" +search_for = "Шукати" +search_results_for = "Результати пошуку для" +search_results_not_found = "Результатів пошуку не знайдено!" +secret_key = "Секретний ключ" +settings = "Налаштування" +sign_in_to_start_your_session = "Увійдіть, щоб розпочати сеанс" +site_key = "Ключ сайту" +sitemap = "Карта сайту" +slug = "Slug" +social_media = "Соціальні мережі" +static_page = "Статична сторінка" +static_page_comment = "Створення статичної сторінки" +static_pages = "Статичні сторінки" +summary = "Резюме" +summary_character = "Символи резюме" +tag = "Тег" +tagcloud_widget_at_most = "Хмара тегів, не більше ніж" +tagline = "Слоган" +tagline_placeholder = "Без бази даних PHP платформа для блогів" +tagline_description = "У кількох словах поясніть, про що цей блог." +tags = "Теги" +this_is_legacy_code_usually_new_created_analytics_using_gtag_js = "Це спадковий код. Зазвичай нові аналітики створюються за допомогою gtag.js" +this_page_doesnt_exist = "Ця сторінка не існує!" +time = "Час" +timezone = "Часовий пояс" +title = "Заголовок" +to_using_disqus_or_facebook_comment_you_need_to_provide_disqus_shortname_or_facebook_app_id = "Для використання коментарів Disqus або Facebook ви повинні надати коротке ім'я Disqus або ID додатка Facebook." +token_error = "Невірний CSRF токен" +tools = "Інструменти" +twitter_account = "Акаунт у Twitter" +type_to_search = "Введіть для пошуку" +uncategorized = "Без категорії" +uncategorized_comment = "Тематики, які не потребують категорії або не підходять до жодної з існуючих категорій" +universal_analytics = "Універсальна аналітика (gtag.js)" +unknown_feed_format = "Невідомий формат фіду" +update = "Оновити" +update_available = "Доступне оновлення" +update_draft = "Оновити чернетку" +update_post = "Оновити запис" +update_to = "Оновити до" +upload = "Завантажити" +user = "Користувач" +user_error = "Поле користувача є обов'язковим" +valid_values_range_from_0_to_1.0._see = "Дійсні значення в діапазоні від 0.0 до 1.0. Див." +video_post = "Відео запис" +video_post_comment = "Створення блогу з відео" +view = "Перегляд" +view_post = "Перегляд" +views = "Перегляди" +widget = "Віджет" +widget_settings = "Налаштування віджетів" +would_you_like_to_try_our = "Бажаєте спробувати наш " +yes_im_in = "Так, я згоден" +yes_not_recommended = "Так (не рекомендується)" +you_dont_have_permission_to_access_this_page = "У вас немає дозволу на доступ до цієї сторінки" +your_new_config_key = "Ваш новий конфігураційний ключ" +your_new_value = "Ваше нове значення" +your_backups = "Ваші резервні копії" +your_latest_blog_posts = "Ваші останні записи блогу" +your_recent_posts = "Ваші останні записи" +by = "від" +hint_use_ctrlcmdf_to_search_for_your_config_key_or_value = "підказка: Використовуйте Ctrl/CMD + F для пошуку вашого конфігураційного ключа або значення." +homepage = "Головна сторінка" +instead = "замість" +item_class = "Вставити CSS клас" +item_slug = "Вставити URL посилання" +now = "зараз" +of = "з" +optional = "необов'язково" +post_your_post_slug = "/post/your-post-slug" +pro_tips_you_can_creating_custom_config_key_and_print_out_your_config_key_value_anywhere_in_your_template = "професійна підказка: Ви можете створити власні конфігураційні ключі та виводити їх значення будь-де у вашому шаблоні." +read_more = "читати далі" +widget_key_placeholder = "12345abcde" +year_month_your_post_slug = "/year/month/your-post-slug" +your_key = "ваш ключ" +summary_behavior = "Поведінка резюме" +default = "За замовчуванням" +check_shortcode = "Перевірити шорткод" +in_summary_mode_whether_check_the_shortcode_first_or_not_before_trim_the_content_to_x_char = "У режимі резюме, чи перевіряти спочатку шорткод перед обрізанням контенту до x символів" +manage_users = "Керування користувачами" +add_user = "Додати користувача" +username = "Ім'я користувача" +role = "Роль" +change_password = "Змінити пароль" +config_mfa = "Configure MFA" +mfacode = "MFA Code" +verify_code = "Verify the MFA code" +verify_password = "Verify current password" +manualsetupkey = "You can also manually add the setup key" +mfa_error = "MFA code is not correct" +disablemfa = "Disable MFA" +enable_auto_save = "Enable Auto Save" +explain_autosave = "When enabled, new content or draft will be automatically saved every 60 seconds." +login_protect_system = "Login protection system" +cloudflare_info = "Review Cloudflare's Turnstile documentation: " +mfa_config = "Multi Factor Authentication (MFA)" +set_mfa_globally = "Set the status of MFA" +explain_mfa = "When enabled, MFA is optional for all users. When disabled, no users can use it and it hides the field on the login page." +set_version_publicly = "Version Visibility" +explain_version = "By default the version of HTMLy is visible publicly in the source code, some admins may prefer to hide this." +focus_mode = "Toggle Focus" +writing = "Writing" +writing_settings = "Writing Settings" +security = "Security" +security_settings = "Security Settings" +msg_error_field_req_username = "Username field is required." +msg_error_field_req_password = "Password field is required." +msg_error_field_req_title = "Title field is required." +msg_error_field_req_content = "Content field is required." +msg_error_field_req_tag = "Tag field is required." +msg_error_field_req_image = "Image field is required." +msg_error_field_req_video = "Video field is required." +msg_error_field_req_link = "Link field is required." +msg_error_field_req_quote = "Quote field is required." +msg_error_field_req_audio = "Audio field is required." +msg_error_field_req_feedurl = "You need to specify the feed url." +rss_feeds_description_select = "RSS Description" +rss_description_body = "Post Body" +rss_description_meta = "Post Meta Description" +admin_theme = "Admin theme" +admin_theme_light = "Light" +admin_theme_dark = "Dark" diff --git a/lang/zh_CN.ini b/lang/zh_CN.ini new file mode 100644 index 0000000..9045b97 --- /dev/null +++ b/lang/zh_CN.ini @@ -0,0 +1,326 @@ +about = "关于" +add_category = "添加分类" +add_content = "添加内容" +add_link = "添加链接" +add_menu = "添加菜单" +add_new_page = "添加新页面" +add_new_post = "添加新文章" +add_source_link_optional = "添加源链接(可选)" +add_sub = "添加子页面" +address_url = "地址(URL)" +admin = "管理员" +admin_panel_style_based_on = "管理面板风格基于" +all_blog_posts = "所有博客文章" +all_cache_has_been_deleted = "所有缓存已删除!" +all_posts_tagged = "所有带指定标签的文章:" +archive_for = "归档:" +archive_page_for = "归档:" +archives = "存档" +are_you_sure_you_want_to_delete_ = "你确定要删除%s?" +at_the_moment_you_are_using_auto_generated_menu = "你正在使用自动创建的菜单" +audio_post = "音频文章" +audio_post_comment = "创建有特色音频的文章" +author = "作者" +author_description = "Just another HTMLy user" +back_to = "回到" +backup = "备份" +blog_description = "用一篇文章告诉我们更多关于你博客的信息" +blog_theme = "博客主题" +blog_title = "博客标题" +blog_title_placeholder = "My HTMLy Blog" +blog_posts_displayed_as = "文章显示为" +breadcrumb_home_text = "“主页”链接文本" +by_using_this_importer_you_confirm_that_the_feed_is_yours_or_that_at_least_you_have_the_authority_to_publish_it = "使用这个导入器即代表你同意要导入的Feed是你的,或者至少你有权力发布它" +css_class_optional = "CSS类(可选)" +cache_expiration = "缓存过期时间(小时)" +cache_off = "关闭缓存" +cache_timestamp = "缓存时间戳" +cancel = "取消" +cannot_read_feed_content = "Cannot read feed content" +captcha_error = "reCaptcha不正确" +categories = "分类" +category = "分类" +check_update = "检查更新" +clear_cache = "清除缓存" +comma_separated_values = "用逗号分隔值" +comment_system = "评论系统" +comments = "评论" +config = "配置" +congrats_you_have_the_latest_version_of_htmly = "恭喜!你正在使用最新版HTMLy" +content = "内容" +contents = "内容" +copyright_line = "版权信息" +copyright_line_placeholder = "(c) Your name." +create_backup = "创建备份" +created = "已创建" +custom = "自定义" +custom_settings = "自定义设置" +dashboard = "仪表板" +date = "日期" +date_format = "日期格式" +delete = "删除" +description = "描述" +disable = "禁用" +disabled = "已禁用" +disqus_shortname = "Disqus shortname" +disqus_shortname_placeholder = "htmly" +draft = "草稿" +edit = "编辑" +edit_category = "编辑分类" +edit_post = "编辑" +edit_profile = "编辑个人信息" +enable = "启用" +enable_blog_url = "启用 blog URL" +enter_image_url = "输入图片URL" +facebook_app_id = "Facebook App ID" +facebook_page = "Facebook页面" +featured_audio = "特色音频" +featured_image = "特色图片" +featured_link = "特色链接" +featured_quote = "特色引用" +featured_video = "特色视频" +feed_url = "Feed URL" +filename = "文件名" +follow = "跟随" +for_google_site_verification_meta = "For google-site-verification meta" +front_page_displays = "主页显示" +full_post = "全文" +general = "通用" +general_settings = "通用设置" +get_one_here = "获取自" +github_pre_release = "Github预发布版本" +google_analytics = "Google Analytics" +google_analytics_legacy = "Google Analytics (传统)" +google_search_console = "Google Search Console" +home = "主页" +if_left_empty_we_will_excerpt_it_from_the_content_below = "如果留空,从下面的文章内容中摘录" +if_the_url_is_left_empty_we_will_use_the_page_title = "如果留空,使用页面标题作为URL" +if_the_url_is_left_empty_we_will_use_the_post_title = "如果留空,使用文章标题作为URL" +image_post = "图片文章" +image_post_comment = "创建有特色图片的文章" +import = "导入" +import_feed = "开始导入Feed" +import_rss = "导入RSS" +import_rss_feed_2.0 = "导入RSS Feed 2.0" +insert_image = "插入图片" +invalid_error = "用户名或密码错误" +language = "系统语言" +link_name = "链接名称" +link_post = "链接文章" +link_post_comment = "创建有特色链接的文章" +login = "登录" +login_page = "登录页面" +logout = "登出" +menu = "菜单" +menus = "菜单编辑器" +meta_description = "元数据描述" +meta_description_character = "元描述字数" +metatags = "Metatags" +metatags_settings = "Metatag设置" +mine = "我的" +more = "更多" +my_draft = "我的草稿" +my_posts = "我的文章" +name = "名称" +newer = "较新" +next = "下一个" +next_post = "下一个文章" +no_available_backup = "现在没有可用备份" +no_draft_found = "没有找到草稿" +no_posts_found = "没有找到文章" +no_related_post_found = "没有找到相关文章" +no_scheduled_posts_found = "没有计划发布的文章!" +no_search_results = "没有搜索结果" +nope = "否" +not = "否" +older = "较旧" +only = "只有" +operations = "操作" +page = "页面" +page_generation_time = "页面创建时间" +pages = "页面" +pass_error = "密码输入框没有内容" +password = "密码" +performance = "性能" +performance_settings = "性能设置" +permalink = "外链位置" +popular = "热门" +popular_posts = "热门文章" +popular_posts_widget = "热门文章组件" +popular_posts_widget_at_most = "“热门”组件最多文章数" +popular_tags = "热门标签" +post_by_author = "这个作者的文章" +posted_in = "发布于" +posted_on = "发布于" +posts = "文章" +posts_by = "文章来自" +posts_draft = "文章草稿" +posts_in_archive_page_at_most = "归档页最多文章数" +posts_in_category_page_at_most = "分类页最多文章数" +posts_in_front_page_show_at_most = "主页最多文章数" +posts_in_profile_page_at_most = "个人资料页最多文章数" +posts_in_search_result_at_most = "搜索结果页最多文章数" +posts_in_tag_page_at_most = "标签页最多文章数" +posts_in_type_page_at_most = "类型页最多文章数" +posts_index_settings = "文章索引设置" +posts_list = "文章列表" +posts_tagged = "带指定标签的文章:" +posts_with_type = "指定类型的文章:" +pre_release = "接收预发布版本" +prev = "旧" +prev_post = "上一个文章" +preview = "预览" +profile_for = "个人资料:" +proudly_powered_by = "Proudly powered by" +publish = "发布" +publish_draft = "发布草稿" +published = "发布" +quote_post = "引用文章" +quote_post_comment = "创建有特色引用的文章" +rss_character = "RSS字数" +rss_feeds_show_the_most_recent = "RSS feed显示最近文章数" +rss_settings = "RSS设置" +read_more_text = "“查看全文”文本" +read_more_text_placeholder = "阅读全文" +reading = "阅读" +reading_settings = "阅读设置" +recaptcha = "reCAPTCHA" +recent_posts = "最近文章" +recent_posts_widget_at_most = "“最近”组件最多文章数" +regular_post = "普通文章" +regular_post_comment = "创建普通文章" +related_posts = "相关文章" +related_widget_posts_at_most = "“相关”组件最多文章数" +revert_to_draft = "转换成草稿" +save = "保存" +save_config = "保存配置" +save_edit = "保存编辑" +save_menu = "保存菜单" +save_as_draft = "作为草稿保存" +save_category = "保存分类" +scheduled = "计划发布" +scheduled_posts = "计划发布的文章" +scheduled_tips = "设定一个未来的时间和日期以启动计划发布" +search = "搜索" +search_for = "搜索" +search_results_for = "搜索结果:" +search_results_not_found = "没有找到搜索结果" +secret_key = "Secret Key" +settings = "设置" +sign_in_to_start_your_session = "登录以开始你的会话" +site_key = "Site Key" +sitemap = "站点地图" +slug = "外链" +social_media = "社交媒体" +static_page = "静态页面" +static_page_comment = "创建静态页面" +static_pages = "静态页面" +summary = "摘要" +summary_character = "摘要字数" +tag = "标签" +tagcloud_widget_at_most = "TagCloud最多标签数" +tagline = "标语" +tagline_placeholder = "Databaseless PHP Blogging Platform" +tagline_description = "用几个字简述这个博客是关于什么的" +tags = "标签" +this_is_legacy_code_usually_new_created_analytics_using_gtag_js = "通常情况下新创建的统计使用gtag.js" +this_page_doesnt_exist = "这个页面不存在!" +time = "时间" +timezone = "时区" +title = "标题" +to_use_disqus_or_facebook_comment_you_need_to_provide_disqus_shortname_or_facebook_app_id = "要使用Disqus或Facebook评论,你需要提供你的Disqus shortname或你的Facebook App ID" +token_error = "CSRF Token不正确" +tools = "工具" +twitter_account = "Twitter账号" +type_to_search = "输入搜索内容" +uncategorized = "未分类" +uncategorized_comment = "不需要分类的或者不适合任何分类的文章" +universal_analytics = "Universal Analytics (gtag.js)" +unknown_feed_format = "Unknown feed format" +update = "更新" +update_available = "更新可用" +update_draft = "更新草稿" +update_post = "更新文章" +update_to = "更新到" +upload = "上传" +user = "用户" +user_error = "用户输入框没有内容" +valid_values_range_from_0_to_1.0._see = "有效范围从0.0到1.0。参考" +video_post = "视频文章" +video_post_comment = "创建有特色视频的文章" +view = "查看" +view_post = "查看" +views = "查看" +widget = "组件" +widget_settings = "组件设置" +would_you_like_to_try_our = "你想不想试试我们的" +yes_im_in = "是" +yes_not_recommended = "是(不推荐)" +you_dont_have_permission_to_access_this_page = "你没有访问此页面的权限" +your_new_config_key = "新配置项" +your_new_value = "值" +your_backups = "你的备份" +your_latest_blog_posts = "最新的文章" +your_recent_posts = "你的最近文章" +by = "来自" +hint_use_ctrlcmdf_to_search_for_your_config_key_or_value = "提示:Ctrl/CMD + F搜索配置项或者值" +homepage = "主页" +instead = "instead" +item_class = "CSS类" +item_slug = "链接URL" +now = "现在" +of = "于" +optional = "选填" +post_your_post_slug = "/post/文章外链" +pro_tips_you_can_create_custom_config_key_and_print_out_your_config_key_value_anywhere_in_your_template = "专业提示:你可以在模板的任何地方创建自定义的配置项并打印出对应的值" +read_more = "阅读全文" +widget_key_placeholder = "12345abcde" +year_month_your_post_slug = "/年/月/文章外链" +your_key = "your.key" +summary_behavior = "Summary behavior" +default = "Default" +check_shortcode = "Check shortcode" +in_summary_mode_whether_check_the_shortcode_first_or_not_before_trim_the_content_to_x_char = "In summary mode, whether check the shortcode first or not before trim the content to x char" +manage_users = "Manage users" +add_user = "Add user" +username = "Username" +role = "Role" +change_password = "Change password" +config_mfa = "Configure MFA" +mfacode = "MFA Code" +verify_code = "Verify the MFA code" +verify_password = "Verify current password" +manualsetupkey = "You can also manually add the setup key" +mfa_error = "MFA code is not correct" +disablemfa = "Disable MFA" +enable_auto_save = "Enable Auto Save" +explain_autosave = "When enabled, new content or draft will be automatically saved every 60 seconds." +login_protect_system = "Login protection system" +cloudflare_info = "Review Cloudflare's Turnstile documentation: " +mfa_config = "Multi Factor Authentication (MFA)" +set_mfa_globally = "Set the status of MFA" +explain_mfa = "When enabled, MFA is optional for all users. When disabled, no users can use it and it hides the field on the login page." +set_version_publicly = "Version Visibility" +explain_version = "By default the version of HTMLy is visible publicly in the source code, some admins may prefer to hide this." +focus_mode = "Toggle Focus" +writing = "Writing" +writing_settings = "Writing Settings" +security = "Security" +security_settings = "Security Settings" +msg_error_field_req_username = "Username field is required." +msg_error_field_req_password = "Password field is required." +msg_error_field_req_title = "Title field is required." +msg_error_field_req_content = "Content field is required." +msg_error_field_req_tag = "Tag field is required." +msg_error_field_req_image = "Image field is required." +msg_error_field_req_video = "Video field is required." +msg_error_field_req_link = "Link field is required." +msg_error_field_req_quote = "Quote field is required." +msg_error_field_req_audio = "Audio field is required." +msg_error_field_req_feedurl = "You need to specify the feed url." +rss_feeds_description_select = "RSS Description" +rss_description_body = "Post Body" +rss_description_meta = "Post Meta Description" +admin_theme = "Admin theme" +admin_theme_light = "Light" +admin_theme_dark = "Dark" diff --git a/lang/zh_TW.ini b/lang/zh_TW.ini new file mode 100644 index 0000000..cae1399 --- /dev/null +++ b/lang/zh_TW.ini @@ -0,0 +1,326 @@ +about = "關於" +add_category = "新增分類" +add_content = "新增內容" +add_link = "新增連結" +add_menu = "新增選單" +add_new_page = "新增一頁新網頁" +add_new_post = "新增一篇新文章" +add_source_link_optional = "加入來源連結 (非必填)" +add_sub = "新增子項" +address_url = "位址 (URL)" +admin = "管理" +admin_panel_style_based_on = "管理面板風格基於" +all_blog_posts = "所有部落格文章" +all_cache_has_been_deleted = "所有暫存頁面資料已經清除 !" +all_posts_tagged = "所有已標記的文章" +archive_for = "文章庫的" +archive_page_for = "文章庫頁面" +archives = "文章庫" +are_you_sure_you_want_to_delete_ = "你確定你想要刪除 %s 嗎?" +at_the_moment_you_are_using_auto_generated_menu = "目前您正在使用自動產生的選單." +audio_post = "音樂文章" +audio_post_comment = "建立以音樂為主的文章" +author = "作者" +author_description = "其他文章作者" +back_to = "返回" +backup = "備份資料" +blog_description = "請用短短幾句話,簡單介紹更多關於您部落格的主題內容" +blog_theme = "部落格樣式" +blog_title = "部落格標題" +blog_title_placeholder = "我的部落格" +blog_posts_displayed_as = "文章用何種方式顯示" +breadcrumb_home_text = "導覽列的首頁顯示文字" +by_using_this_importer_you_confirm_that_the_feed_is_yours_or_that_at_least_you_have_the_authority_to_publish_it = "By using this importer you are agree if the feed is yours or at least you have the authority to publish it." +css_class_optional = "CSS Class (非必填)" +cache_expiration = "快取暫存失效時間 (小時)" +cache_off = "關閉快取暫存" +cache_timestamp = "快取暫存時間戳" +cancel = "取消" +cannot_read_feed_content = "無法讀取提供的內容" +captcha_error = "reCaptcha 不正確" +categories = "文章分類" +category = "文章分類" +check_update = "檢查更新" +clear_cache = "清除快取" +comma_separated_values = "以逗號來分隔不同標籤值" +comment_system = "留言系統" +comments = "留言" +config = "系統設定" +congrats_you_have_the_latest_version_of_htmly = "恭喜! 您擁有最新版本的 HTMLy." +content = "內容" +contents = "內容" +copyright_line = "著作權宣導" +copyright_line_placeholder = "©你的名字." +create_backup = "建立備份" +created = "已建立" +custom = "自訂" +custom_settings = "自訂設定" +dashboard = "儀表板" +date = "日期" +date_format = "日期格式" +delete = "刪除" +description = "簡介" +disable = "停用" +disabled = "已停用" +disqus_shortname = "Disqus shortname" +disqus_shortname_placeholder = "htmly" +draft = "草稿" +edit = "編輯" +edit_category = "修改分類" +edit_post = "修改" +edit_profile = "編輯個人資料" +enable = "啟用" +enable_blog_url = "啟用 blog 的前置網址" +enter_image_url = "輸入圖片URL位址" +facebook_app_id = "Facebook App ID" +facebook_page = "Facebook page" +featured_audio = "Featured Audio" +featured_image = "Featured Image" +featured_link = "Featured Link" +featured_quote = "Featured Quote" +featured_video = "Featured Video" +feed_url = "Feed URL" +filename = "檔名" +follow = "追蹤" +for_google_site_verification_meta = "For google-site-verification meta" +front_page_displays = "前端頁面的顯示" +full_post = "全文" +general = "基本" +general_settings = "基本設定" +get_one_here = "Get one here" +github_pre_release = "Github pre-release" +google_analytics = "Google Analytics" +google_analytics_legacy = "Google Analytics (legacy)" +google_search_console = "Google Search Console" +home = "首頁" +if_left_empty_we_will_excerpt_it_from_the_content_below = "如果留空我們將從下面的內容中摘錄簡介" +if_the_url_is_left_empty_we_will_use_the_page_title = "如果 url 留空,我們將使用頁面標題" +if_the_url_is_left_empty_we_will_use_the_post_title = "如果 url 留空,我們將使用文章標題" +image_post = "影像文章" +image_post_comment = "建立以圖片為主的文章" +import = "匯入" +import_feed = "開始匯入 Feed" +import_rss = "匯入 RSS" +import_rss_feed_2.0 = "匯入 RSS Feed 2.0" +insert_image = "插入圖片" +invalid_error = "錯誤: 不正確的帳號或密碼" +language = "系統語言" +link_name = "連結名稱" +link_post = "連結文章" +link_post_comment = "建立以連結為主的文章" +login = "登入" +login_page = "登入頁面" +logout = "登出" +menu = "選單" +menus = "編輯選單" +meta_description = "Meta 備註" +meta_description_character = "文章簡介字數" +metatags = "標籤" +metatags_settings = "標籤設定" +mine = "Mine" +more = "更多" +my_draft = "我的草稿" +my_posts = "我的文章" +name = "名稱" +newer = "較新的" +next = "下一個" +next_post = "下一篇文章" +no_available_backup = "目前沒有可用的備份." +no_draft_found = "找不到草稿" +no_posts_found = "找不到文章" +no_related_post_found = "找不到相關文章" +no_scheduled_posts_found = "找不到預約排定的文章!" +no_search_results = "沒有搜尋到結果" +nope = "沒有" +not = "否" +older = "較舊的" +only = "只有" +operations = "操作" +page = "頁" +page_generation_time = "頁面產生時間" +pages = "靜態網頁" +pass_error = "密碼欄位為必填" +password = "密碼" +performance = "效能" +performance_settings = "效能設定" +permalink = "文章網址格式" +popular = "熱門" +popular_posts = "熱門文章" +popular_posts_widget = "熱門文章工具" +popular_posts_widget_at_most = "熱門文章工具篇數" +popular_tags = "熱門標籤" +post_by_author = "發表自" +posted_in = "發文在" +posted_on = "發文於" +posts = "文章" +posts_by = "發表自 " +posts_draft = "文章草稿" +posts_in_archive_page_at_most = "更多封存頁中的文章" +posts_in_category_page_at_most = "更多分類頁中的文章" +posts_in_front_page_show_at_most = "更多前端顯示頁中的文章" +posts_in_profile_page_at_most = "更多個人頁中的文章" +posts_in_search_result_at_most = "更多搜尋結果頁中的文章" +posts_in_tag_page_at_most = "更多標籤頁中的文章" +posts_in_type_page_at_most = "更多類別頁中的文章" +posts_index_settings = "文章首頁設定" +posts_list = "文章列表" +posts_tagged = "Posts tagged" +posts_with_type = "Posts with type" +pre_release = "Pre-release" +prev = "舊" +prev_post = "前一篇文章" +preview = "預覽" +profile_for = "Profile for" +proudly_powered_by = "Proudly powered by" +publish = "發布" +publish_draft = "發布草稿" +published = "已發表" +quote_post = "語錄文章" +quote_post_comment = "建立以語錄為主的文章" +rss_character = "RSS character" +rss_feeds_show_the_most_recent = "RSS feeds show the most recent" +rss_settings = "RSS 設定" +read_more_text = "閱讀更多文字" +read_more_text_placeholder = "閱讀更多" +reading = "顯示" +reading_settings = "顯示設定" +recaptcha = "reCAPTCHA" +recent_posts = "最新文章" +recent_posts_widget_at_most = "更多小工具中的文章" +regular_post = "一般文章" +regular_post_comment = "建立一般部落格文章" +related_posts = "相關文章" +related_widget_posts_at_most = "更多相關工具中的文章" +revert_to_draft = "轉換為草稿" +save = "儲存" +save_config = "儲存設定" +save_edit = "儲存編輯" +save_menu = "儲存選單" +save_as_draft = "儲存為草稿" +save_category = "儲存分類" +scheduled = "預約排定" +scheduled_posts = "預約排定的文章" +scheduled_tips = "發表帶有未來日期或時間的文章,將可提前預約排定文章的發表" +search = "搜尋" +search_for = "搜尋" +search_results_for = "搜尋一下" +search_results_not_found = "搜尋不到任何結果" +secret_key = "Secret Key" +settings = "系統設定" +sign_in_to_start_your_session = "Sign in to start your session" +site_key = "Site Key" +sitemap = "Sitemap" +slug = "Slug" +social_media = "Social Media" +static_page = "靜態網頁" +static_page_comment = "建立靜態網頁" +static_pages = "靜態網頁" +summary = "摘要" +summary_character = "摘要字數" +tag = "標籤" +tagcloud_widget_at_most = "標籤雲數量" +tagline = "副標" +tagline_placeholder = "這裡都是我的祕密" +tagline_description = "請用一句話快速表達這個部落格的主題" +tags = "標籤" +this_is_legacy_code_usually_new_created_analytics_using_gtag_js = "This is legacy code. Usually new created analytics using gtag.js" +this_page_doesnt_exist = "該頁面不存在 !" +time = "時間" +timezone = "時區" +title = "標題" +to_use_disqus_or_facebook_comment_you_need_to_provide_disqus_shortname_or_facebook_app_id = "To using Disqus or Facebook comment you need to provide Disqus shortname or Facebook App ID." +token_error = "CSRF Token not correct" +tools = "工具" +twitter_account = "Twitter(X.com)帳號" +type_to_search = "輸入欲搜尋的文字" +uncategorized = "無分類" +uncategorized_comment = "不需要分類或不適合目前所有分類的文章主題" +universal_analytics = "Universal Analytics (gtag.js)" +unknown_feed_format = "未知的格式" +update = "更新" +update_available = "可用的更新" +update_draft = "更新草稿" +update_post = "更新文章" +update_to = "更新到" +upload = "上傳" +user = "使用者" +user_error = "使用者欄位為必填" +valid_values_range_from_0_to_1.0._see = "驗證數值範圍自 0.0 到 1.0" +video_post = "影片文章" +video_post_comment = "建立以影片為主的文章" +view = "檢視" +view_post = "觀看" +views = "看過" +widget = "工具" +widget_settings = "工具設定" +would_you_like_to_try_our = "您想嘗試我們的 " +yes_im_in = "是的 我有" +yes_not_recommended = "是 (不建議)" +you_dont_have_permission_to_access_this_page = "您無權限存取此頁面" +your_new_config_key = "Your New Config Key" +your_new_value = "Your New Value" +your_backups = "你的備份" +your_latest_blog_posts = "您最新的部落格文章" +your_recent_posts = "您最近的文章" +by = "由" +hint_use_ctrlcmdf_to_search_for_your_config_key_or_value = "提示: 使用 Ctrl/CMD + F 可以快速搜尋你設定的按鍵值。" +homepage = "首頁" +instead = "取代" +item_class = "插入CSS class" +item_slug = "插入URL連結" +now = "現在" +of = "of" +optional = "選填" +post_your_post_slug = "/post/your-post-slug" +pro_tips_you_can_create_custom_config_key_and_print_out_your_config_key_value_anywhere_in_your_template = "專業提示: 您可以建立自訂按鍵並在樣版中的任何位置,顯示您設定的按鍵鍵值。" +read_more = "讀取更多" +widget_key_placeholder = "12345abcde" +year_month_your_post_slug = "/year/month/your-post-slug" +your_key = "your.key" +summary_behavior = "摘要特性" +default = "預設" +check_shortcode = "檢查 shortcode" +in_summary_mode_whether_check_the_shortcode_first_or_not_before_trim_the_content_to_x_char = "在摘要模式下,將內容縮減字元數之前,是不要先檢查 shortcode" +manage_users = "管理使用者" +add_user = "新增使用者" +username = "使用者名稱" +role = "規則" +change_password = "更改密碼" +config_mfa = "設定 MFA" +mfacode = "MFA Code" +verify_code = "驗證 MFA code" +verify_password = "驗證目前密碼" +manualsetupkey = "您也可以手動新增設定密鑰" +mfa_error = "MFA code 不正確" +disablemfa = "停用 MFA" +enable_auto_save = "啟用自動儲存" +explain_autosave = "當啟用時,新的內容或刪減將會自動在每60秒進行背景儲存。" +login_protect_system = "登入保護系統" +cloudflare_info = "查看 Cloudflare's Turnstile 文件: " +mfa_config = "多重身份驗證 (MFA)" +set_mfa_globally = "設定 MFA 狀態" +explain_mfa = "當啟用時,MFA 會開放給所有使用者自行選用。當停用後,所有使用者都不能使用此功能,並且會在登入頁面隱藏相關訊息。" +set_version_publicly = "可見版本" +explain_version = "預設情況下,HTMLy 的版本在原始碼中公開可見,但有些管理員可能會希望隱藏起來。" +focus_mode = "切換焦點" +writing = "寫入" +writing_settings = "寫入設定" +security = "安全" +security_settings = "安全設定" +msg_error_field_req_username = "名稱欄位為必填." +msg_error_field_req_password = "密碼欄位為必填." +msg_error_field_req_title = "標題欄位為必填." +msg_error_field_req_content = "內容欄位為必填." +msg_error_field_req_tag = "標籤欄位為必填." +msg_error_field_req_image = "圖片欄位為必填." +msg_error_field_req_video = "影片欄位為必填." +msg_error_field_req_link = "連結欄位為必填." +msg_error_field_req_quote = "語錄欄位為必填." +msg_error_field_req_audio = "音訊欄位為必填." +msg_error_field_req_feedurl = "您需指定 Feed 網址." +rss_feeds_description_select = "RSS 描述" +rss_description_body = "Post 內容" +rss_description_meta = "Post Meta 描述" +admin_theme = "後台界面風格" +admin_theme_light = "明亮" +admin_theme_dark = "暗沉" diff --git a/old/README.md b/old/README.md new file mode 100755 index 0000000..cc8afc8 --- /dev/null +++ b/old/README.md @@ -0,0 +1 @@ +# kyledot.net diff --git a/blog/2024-06-07_MFA-i.html b/old/blog/2024-06-07_MFA-i.html similarity index 100% rename from blog/2024-06-07_MFA-i.html rename to old/blog/2024-06-07_MFA-i.html diff --git a/blog/2024-07-01_Plates.html b/old/blog/2024-07-01_Plates.html similarity index 100% rename from blog/2024-07-01_Plates.html rename to old/blog/2024-07-01_Plates.html diff --git a/blog/2024-07-01_Plates_list.html b/old/blog/2024-07-01_Plates_list.html similarity index 100% rename from blog/2024-07-01_Plates_list.html rename to old/blog/2024-07-01_Plates_list.html diff --git a/blog/2024-08-04_Vexillology-i.html b/old/blog/2024-08-04_Vexillology-i.html similarity index 100% rename from blog/2024-08-04_Vexillology-i.html rename to old/blog/2024-08-04_Vexillology-i.html diff --git a/blog/home.html b/old/blog/home.html similarity index 100% rename from blog/home.html rename to old/blog/home.html diff --git a/blog/media/MFA-i.png b/old/blog/media/MFA-i.png similarity index 100% rename from blog/media/MFA-i.png rename to old/blog/media/MFA-i.png diff --git a/blog/style.css b/old/blog/style.css similarity index 100% rename from blog/style.css rename to old/blog/style.css diff --git a/blog/template.html b/old/blog/template.html similarity index 100% rename from blog/template.html rename to old/blog/template.html diff --git a/index.html b/old/index.html similarity index 100% rename from index.html rename to old/index.html diff --git a/projects.html b/old/projects.html similarity index 100% rename from projects.html rename to old/projects.html diff --git a/resume.html b/old/resume.html similarity index 100% rename from resume.html rename to old/resume.html diff --git a/style.css b/old/style.css similarity index 100% rename from style.css rename to old/style.css diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..f3f9b23 --- /dev/null +++ b/robots.txt @@ -0,0 +1,36 @@ +# +# robots.txt +# +# This file is to prevent the crawling and indexing of certain parts +# of your site by web crawlers and spiders run by sites like Yahoo! +# and Google. By telling these "robots" where not to go on your site, +# you save bandwidth and server resources. +# +# This file will be ignored unless it is at the root of your host: +# Used: http://example.com/robots.txt +# Ignored: http://example.com/site/robots.txt +# +# For more information about the robots.txt standard, see: +# http://www.robotstxt.org/wc/robots.html +# +# For syntax checking, see: +# http://www.sxw.org.uk/computing/robots/check.html + +User-agent: * + +# Allow directories +Allow: /system/resources/ + +# Disallow directories +Disallow: /config/ +Disallow: /system/ +Disallow: /cache/ +Disallow: /lang/ + +# Disallow files +Disallow: /composer.json +Disallow: /composer.lock +Disallow: /composer.phar + +# Disallow paths +Disallow: /admin/ diff --git a/system/admin/admin.php b/system/admin/admin.php new file mode 100644 index 0000000..3452179 --- /dev/null +++ b/system/admin/admin.php @@ -0,0 +1,1833 @@ +
  • ' . i18n('Invalid_Error') . '
'; + } + + $user_enc = user('encryption', $user); + $user_pass = user('password', $user); + $user_role = user('role', $user); + $mfa = user('mfa_secret', $user); + + if(is_null($user_enc) || is_null($user_pass) || is_null($user_role)) { + return $str = '
  • ' . i18n('Invalid_Error') . '
'; + } + + if ($user_enc == "password_hash") { + if (password_verify($pass, $user_pass)) { + if (session_status() == PHP_SESSION_NONE) session_start(); + if (password_needs_rehash($user_pass, PASSWORD_DEFAULT)) { + update_user($user, $pass, $user_role, $mfa); + } + $_SESSION[site_url()]['user'] = $user; + header('location: admin'); + } else { + return $str = '
  • ' . i18n('Invalid_Error') . '
'; + } + } else if (old_password_verify($pass, $user_enc, $user_pass)) { + if (session_status() == PHP_SESSION_NONE) session_start(); + update_user($user, $pass, $user_role, $mfa); + $_SESSION[site_url()]['user'] = $user; + header('location: admin'); + } else { + return $str = '
  • ' . i18n('Invalid_Error') . '
'; + } +} + +function old_password_verify($pass, $user_enc, $user_pass) +{ + $password = (strlen($user_enc) > 0 && $user_enc !== 'clear' && $user_enc !== 'none') ? hash($user_enc, $pass) : $pass; + return ($password === $user_pass); +} + +// Generate csrf token +function generate_csrf_token() +{ + $_SESSION[site_url()]['csrf_token'] = sha1(microtime(true) . mt_rand(10000, 90000)); +} + +// Get csrf token +function get_csrf() +{ + if (!isset($_SESSION[site_url()]['csrf_token']) || empty($_SESSION[site_url()]['csrf_token'])) { + generate_csrf_token(); + } + return $_SESSION[site_url()]['csrf_token']; +} + +// Check the csrf token +function is_csrf_proper($csrf_token) +{ + if ($csrf_token == get_csrf()) { + return true; + } + return false; +} + +// Clean URLs +function remove_accent($str) +{ + return URLify::downcode($str); +} + +// Add content +function add_content($title, $tag, $url, $content, $user, $draft, $category, $type, $description = null, $media = null, $dateTime = null, $autoSave = null, $oldfile = null) +{ + if (!is_null($autoSave)) { + $draft = 'draft'; + } + $tag = explode(',', preg_replace("/\s*,\s*/", ",", rtrim($tag, ','))); + $tag = array_filter(array_unique($tag)); + $tagslang = "content/data/tags.lang"; + if (file_exists($tagslang)) { + $taglang = array_flip(unserialize(file_get_contents($tagslang))); + $tflip = array_intersect_key($taglang, array_flip($tag)); + $post_tag = array(); + $post_tagmd = array(); + foreach ($tag as $t) { + if (array_key_exists($t, $tflip)) { + foreach ($tflip as $tfp => $tf){ + if($t == $tfp) { + $post_tag[] = $tf; + $post_tagmd[] = $tfp; + } + } + } else { + $post_tag[] = $t; + $post_tagmd[] = $t; + } + } + + $post_tag = safe_tag(implode(',', $post_tag)); + $post_tagmd = safe_html(implode(',', $post_tagmd)); + + } else { + $post_tag = safe_tag(implode(',', $tag)); + $post_tagmd = safe_html(implode(',', $tag)); + } + + $post_date = date('Y-m-d-H-i-s', strtotime($dateTime)); + $post_title = safe_html($title); + $post_tag = strtolower(preg_replace(array('/[^a-zA-Z0-9,. \-\p{L}]/u', '/[ -]+/', '/^-|-$/'), array('', '-', ''), remove_accent($post_tag))); + $post_url = strtolower(preg_replace(array('/[^a-zA-Z0-9 \-\p{L}]/u', '/[ -]+/', '/^-|-$/'), array('', '-', ''), remove_accent($url))); + $category = strtolower(preg_replace(array('/[^a-zA-Z0-9 \-\p{L}]/u', '/[ -]+/', '/^-|-$/'), array('', '-', ''), remove_accent($category))); + $description = safe_html($description); + + $post_t = explode(',', $post_tag); + $pret_t = explode(',', $post_tagmd); + $tags = tag_cloud(true); + $timestamp = date('YmdHis'); + + $combine = array_combine($pret_t, $post_t); + $inter = array_intersect_key($tags, array_flip($post_t)); + $newtag = array(); + + foreach ($combine as $tag => $v) { + if (array_key_exists($v, $tags)) { + foreach ($inter as $in => $i){ + if($v == $in) { + if (strtolower($tag) == strtolower(tag_i18n($in))) { + $newtag[$v]= $tag; + } else { + $newtag[$v.'-'. $timestamp]= $tag; + } + } + } + } else { + $newtag[$v] = $tag; + } + } + + $post_tag = implode(',', array_keys($newtag)); + + $posts = get_blog_posts(); + foreach ($posts as $index => $v) { + $arr = explode('_', $v['basename']); + if (strtolower($arr[2]) === strtolower($post_url . '.md')) { + $post_url = $post_url .'-'. $timestamp; + } else { + $post_url = $post_url; + } + } + + if ($description !== null) { + if (!empty($description)) { + $post_description = "\n"; + } else { + $post_description = "\n"; + } + } else { + $post_description = ""; + } + if ($tag !== null) { + $tagmd = "\n"; + } else { + $tagmd = ""; + } + if ($media!== null) { + $post_media = "\n"; + } else { + $post_media = ""; + } + $post_content = "" . $post_description . $tagmd . $post_media . "\n\n" . $content; + + if (!empty($post_title) && !empty($post_tag) && !empty($post_url) && !empty($post_content)) { + + $filename = $post_date . '_' . $post_tag . '_' . $post_url . '.md'; + + if (empty($draft)) { + if (date('Y-m-d-H-i-s') >= $post_date) { + $dir = 'content/' . $user . '/blog/' . $category. '/'.$type. '/'; + } else { + $dir = 'content/' . $user . '/blog/' . $category. '/'.$type. '/scheduled/'; + } + } else { + $dir = 'content/' . $user . '/blog/' . $category. '/draft/'; + } + + if (!is_dir($dir)) { + mkdir($dir, 0775, true); + + } + + $oldfile = $oldfile; + $newfile = $dir . $filename; + if ($oldfile !== $newfile && !is_null($autoSave)) { + if (file_exists($oldfile)) { + rename($oldfile, $newfile); + } + } + + file_put_contents($newfile, print_r($post_content, true), LOCK_EX); + + if (empty($draft)) { + $draftFile = 'content/' . $user . '/blog/' . $category. '/draft/' . $filename; + if (file_exists($draftFile)) { + unlink($draftFile); + } + } + + save_tag_i18n($post_tag, $post_tagmd); + + rebuilt_cache('all'); + + clear_post_cache($post_date, $post_tag, $post_url, $dir . $filename, $category, $type); + + if (!is_null($autoSave)) { + return json_encode(array('message' => 'Auto Saved', 'file' => $newfile)); + } + + if (empty($draft)) { + if (date('Y-m-d-H-i-s') >= $post_date) { + $redirect = site_url() . 'admin/mine'; + } else { + $redirect = site_url() . 'admin/scheduled'; + } + } else { + $redirect = site_url() . 'admin/draft'; + } + + header("Location: $redirect"); + } +} + +// Edit content +function edit_content($title, $tag, $url, $content, $oldfile, $revertPost, $publishDraft, $category, $type, $destination = null, $description = null, $date = null, $media = null, $autoSave = null) +{ + $tag = explode(',', preg_replace("/\s*,\s*/", ",", rtrim($tag, ','))); + $tag = array_filter(array_unique($tag)); + $tagslang = "content/data/tags.lang"; + $newfile = ''; + $views = array(); + $viewsFile = "content/data/views.json"; + if (file_exists($tagslang)) { + $taglang = array_flip(unserialize(file_get_contents($tagslang))); + $tflip = array_intersect_key($taglang, array_flip($tag)); + $post_tag = array(); + $post_tagmd = array(); + foreach ($tag as $t) { + if (array_key_exists($t, $tflip)) { + foreach ($tflip as $tfp => $tf){ + if($t == $tfp) { + $post_tag[] = $tf; + $post_tagmd[] = $tfp; + } + } + } else { + $post_tag[] = $t; + $post_tagmd[] = $t; + } + } + + $post_tag = safe_tag(implode(',', $post_tag)); + $post_tagmd = safe_html(implode(',', $post_tagmd)); + } else { + $post_tag = safe_tag(implode(',', $tag)); + $post_tagmd = safe_html(implode(',', $tag)); + } + + $dir = explode('/', pathinfo($oldfile, PATHINFO_DIRNAME)); + $olddate = date('Y-m-d-H-i-s', strtotime($date)); + + $post_title = safe_html($title); + $post_tag = strtolower(preg_replace(array('/[^a-zA-Z0-9,. \-\p{L}]/u', '/[ -]+/', '/^-|-$/'), array('', '-', ''), remove_accent($post_tag))); + $post_url = strtolower(preg_replace(array('/[^a-zA-Z0-9 \-\p{L}]/u', '/[ -]+/', '/^-|-$/'), array('', '-', ''), remove_accent($url))); + $category = strtolower(preg_replace(array('/[^a-zA-Z0-9 \-\p{L}]/u', '/[ -]+/', '/^-|-$/'), array('', '-', ''), remove_accent($category))); + $description = safe_html($description); + + + $post_t = explode(',', $post_tag); + $pret_t = explode(',', $post_tagmd); + $tags = tag_cloud(true); + $timestamp = date('YmdHis'); + + $combine = array_combine($pret_t, $post_t); + $inter = array_intersect_key($tags, array_flip($post_t)); + $newtag = array(); + + foreach ($combine as $tag => $v) { + if (array_key_exists($v, $tags)) { + foreach ($inter as $in => $i){ + if($v == $in) { + if (strtolower($tag) == strtolower(tag_i18n($in))) { + $newtag[$v]= $tag; + } else { + $newtag[$v.'-'. $timestamp]= $tag; + } + } + } + } else { + $newtag[$v] = $tag; + } + } + + $post_tag = implode(',', array_keys($newtag)); + + if ($description !== null) { + if (!empty($description)) { + $post_description = "\n"; + } else { + $post_description = "\n"; + } + } else { + $post_description = ""; + } + if ($tag !== null) { + $tagmd = "\n"; + } else { + $tagmd = ""; + } + if ($media !== null) { + $post_media = "\n"; + } else { + $post_media = ""; + } + $post_content = "" . $post_description . $tagmd . $post_media . "\n\n" . $content; + + $dirBlog = $dir[0] . '/' . $dir[1] . '/' . $dir[2] . '/' . $category . '/' . $type . '/'; + $dirDraft = $dir[0] . '/' . $dir[1] . '/' . $dir[2] . '/' . $category . '/draft/'; + $dirScheduled = $dir[0] . '/' . $dir[1] . '/' . $dir[2] . '/' . $category . '/' . $type . '/scheduled/'; + + if (!is_dir($dirBlog)) { + mkdir($dirBlog, 0775, true); + } + + if (!is_dir($dirDraft)) { + mkdir($dirDraft, 0775, true); + } + + if (!is_dir($dirScheduled)) { + mkdir($dirScheduled, 0775, true); + } + + if (!empty($post_title) && !empty($post_tag) && !empty($post_url) && !empty($post_content)) { + + if(!empty($revertPost) || !empty($publishDraft)) { + + if($dir[4] == 'draft') { + if (date('Y-m-d-H-i-s') >= $olddate) { + $newfile = $dirBlog . $olddate . '_' . $post_tag . '_' . $post_url . '.md'; + } else { + $newfile = $dirScheduled . $olddate . '_' . $post_tag . '_' . $post_url . '.md'; + } + } else { + $newfile = $dirDraft . $olddate . '_' . $post_tag . '_' . $post_url . '.md'; + } + + file_put_contents($newfile, print_r($post_content, true), LOCK_EX); + unlink($oldfile); + + } else { + + if ($dir[3] === $category) { + + if($dir[4] == 'draft') { + $newfile = $dirDraft . $olddate . '_' . $post_tag . '_' . $post_url . '.md'; + } else { + if (date('Y-m-d-H-i-s') >= $olddate) { + $newfile = $dirBlog . $olddate . '_' . $post_tag . '_' . $post_url . '.md'; + } else { + $newfile = $dirScheduled . $olddate . '_' . $post_tag . '_' . $post_url . '.md'; + } + } + + if ($oldfile === $newfile) { + file_put_contents($oldfile, print_r($post_content, true), LOCK_EX); + } else { + rename($oldfile, $newfile); + file_put_contents($newfile, print_r($post_content, true), LOCK_EX); + } + } else { + + if($dir[4] == 'draft') { + $newfile = $dirDraft . $olddate . '_' . $post_tag . '_' . $post_url . '.md'; + } else { + if (date('Y-m-d-H-i-s') >= $olddate) { + $newfile = $dirBlog . $olddate . '_' . $post_tag . '_' . $post_url . '.md'; + } else { + $newfile = $dirScheduled . $olddate . '_' . $post_tag . '_' . $post_url . '.md'; + } + } + + file_put_contents($newfile, print_r($post_content, true), LOCK_EX); + unlink($oldfile); + + } + + } + + if(!empty($publishDraft)) { + $dt = $olddate; + $t = str_replace('-', '', $dt); + $time = new DateTime($t); + $timestamp = $time->format("Y-m-d"); + } else { + $fn = explode('_', pathinfo($oldfile, PATHINFO_FILENAME)); + $dt = $fn[0]; + $t = str_replace('-', '', $dt); + $time = new DateTime($t); + $timestamp = $time->format("Y-m-d"); + } + + // The post date + $postdate = strtotime($timestamp); + + // The post URL + if (permalink_type() == 'default') { + $posturl = site_url() . date('Y/m', $postdate) . '/' . $post_url; + } else { + $posturl = site_url() . permalink_type() . '/' . $post_url; + } + + save_tag_i18n($post_tag, $post_tagmd); + + rebuilt_cache('all'); + clear_post_cache($dt, $post_tag, $post_url, $oldfile, $category, $type); + + $old_filename = pathinfo($oldfile, PATHINFO_FILENAME); + $old_ex = explode('_', $old_filename); + $old_url = $old_ex[2]; + + if ($old_url != $post_url) { + if (file_exists($viewsFile)) { + $views = json_decode(file_get_data($viewsFile), true); + $oKey = 'post_' . $old_url; + $nKey = 'post_' . $post_url; + if (isset($views[$oKey])) { + $arr = replace_key($views, $oKey, $nKey); + save_json_pretty($viewsFile, $arr); + } + } + } + + if (!is_null($autoSave)) { + return json_encode(array('message' => 'Auto Saved', 'file' => $newfile)); + } + + if ($destination == 'post') { + if(!empty($revertPost)) { + $drafturl = site_url() . 'admin/draft'; + header("Location: $drafturl"); + } else { + if (date('Y-m-d-H-i-s') >= $olddate) { + header("Location: $posturl"); + } else { + $schurl = site_url() . 'admin/scheduled'; + header("Location: $schurl"); + } + } + } else { + if(!empty($publishDraft)) { + if (date('Y-m-d-H-i-s') >= $olddate) { + header("Location: $posturl"); + } else { + $schurl = site_url() . 'admin/scheduled'; + header("Location: $schurl"); + } + } elseif (!empty($revertPost)) { + $drafturl = site_url() . 'admin/draft'; + header("Location: $drafturl"); + } else { + $redirect = site_url() . $destination; + header("Location: $redirect"); + } + } + } +} + +// Add static page +function add_page($title, $url, $content, $draft, $description = null, $autoSave = null, $oldfile = null) +{ + if (!is_null($autoSave)) { + $draft = 'draft'; + } + $post_title = safe_html($title); + $newfile = ''; + $post_url = strtolower(preg_replace(array('/[^a-zA-Z0-9 \-\p{L}]/u', '/[ -]+/', '/^-|-$/'), array('', '-', ''), remove_accent($url))); + $description = safe_html($description); + if ($description !== null) { + if (!empty($description)) { + $post_description = "\n"; + } else { + $post_description = "\n"; + } + } else { + $post_description = ""; + } + + $posts = get_static_pages(); + $timestamp = date('YmdHis'); + foreach ($posts as $index => $v) { + $m_url = explode('.', $v['filename']); + if (isset($m_url[1])) { + $b_url = $m_url[1] . '.md'; + } else { + $b_url = $v['basename']; + } + if (strtolower($b_url) === strtolower($post_url . '.md')) { + $post_url = $post_url .'-'. $timestamp; + } else { + $post_url = $post_url; + } + } + + $post_content = '' . $post_description . "\n\n" . $content; + + if (!empty($post_title) && !empty($post_url) && !empty($post_content)) { + + $filename = $post_url . '.md'; + $dir = 'content/static/'; + $dirDraft = 'content/static/draft/'; + + if (empty($draft)) { + if (!is_dir($dir)) { + mkdir($dir, 0775, true); + } + file_put_contents($dir . $filename, print_r($post_content, true), LOCK_EX); + $draftFile = $dirDraft . $filename; + if (file_exists($draftFile)) { + unlink($draftFile); + } + } else { + if (!is_dir($dirDraft)) { + mkdir($dirDraft, 0775, true); + } + + $oldfile = $oldfile; + $newfile = $dirDraft . $filename; + if ($oldfile !== $newfile && !is_null($autoSave)) { + if (file_exists($oldfile)) { + rename($oldfile, $newfile); + } + } + file_put_contents($newfile, print_r($post_content, true), LOCK_EX); + } + + rebuilt_cache('all'); + clear_page_cache($post_url); + + if (!is_null($autoSave)) { + return json_encode(array('message' => 'Auto Saved', 'file' => $newfile)); + } + + if (empty($draft)) { + $redirect = site_url() . 'admin/pages'; + header("Location: $redirect"); + } else { + $redirect = site_url() . 'admin/draft'; + header("Location: $redirect"); + } + } +} + +// Add static sub page +function add_sub_page($title, $url, $content, $static, $draft, $description = null, $autoSave = null, $oldfile = null) +{ + if (!is_null($autoSave)) { + $draft = 'draft'; + } + $post = find_page($static); + $newfile = ''; + $static = pathinfo($post['current']->md, PATHINFO_FILENAME); + $post_title = safe_html($title); + $post_url = strtolower(preg_replace(array('/[^a-zA-Z0-9 \-\p{L}]/u', '/[ -]+/', '/^-|-$/'), array('', '-', ''), remove_accent($url))); + $description = safe_html($description); + if ($description !== null) { + if (!empty($description)) { + $post_description = "\n"; + } else { + $post_description = "\n"; + } + } else { + $post_description = ""; + } + + $posts = get_static_subpages($post['current']->slug); + $timestamp = date('YmdHis'); + foreach ($posts as $index => $v) { + $m_url = explode('.', $v['filename']); + if (isset($m_url[1])) { + $b_url = $m_url[1] . '.md'; + } else { + $b_url = $v['basename']; + } + if (strtolower($b_url) === strtolower($post_url . '.md')) { + $post_url = $post_url .'-'. $timestamp; + } else { + $post_url = $post_url; + } + } + + $post_content = '' . $post_description . "\n\n" . $content; + + if (!empty($post_title) && !empty($post_url) && !empty($post_content)) { + + $filename = $post_url . '.md'; + $dir = 'content/static/' . $static . '/'; + $dirDraft = 'content/static/' . $static . '/draft/'; + + if (empty($draft)) { + if (!is_dir($dir)) { + mkdir($dir, 0775, true); + } + file_put_contents($dir . $filename, print_r($post_content, true), LOCK_EX); + $draftFile = $dirDraft . $filename; + if (file_exists($draftFile)) { + unlink($draftFile); + } + } else { + if (!is_dir($dirDraft)) { + mkdir($dirDraft, 0775, true); + } + + $oldfile = $oldfile; + $newfile = $dirDraft . $filename; + if ($oldfile !== $newfile && !is_null($autoSave)) { + if (file_exists($oldfile)) { + rename($oldfile, $newfile); + } + } + file_put_contents($newfile, print_r($post_content, true), LOCK_EX); + } + + if (!is_null($autoSave)) { + return json_encode(array('message' => 'Auto Saved', 'file' => $newfile)); + } + + rebuilt_cache('all'); + clear_page_cache($post_url); + $redirect = site_url() . 'admin/pages'; + header("Location: $redirect"); + } +} + +// Edit static page and sub page +function edit_page($title, $url, $content, $oldfile, $revertPage, $publishDraft, $destination = null, $description = null, $static = null, $autoSave = null) +{ + $dir = pathinfo($oldfile, PATHINFO_DIRNAME); + $fn = explode('.', pathinfo($oldfile, PATHINFO_FILENAME)); + if (isset($fn[1])) { + $num = $fn[0] . '.'; + } else { + $num = null; + } + $newfile = ''; + $views = array(); + $viewsFile = "content/data/views.json"; + $post_title = safe_html($title); + $pUrl = strtolower(preg_replace(array('/[^a-zA-Z0-9 \-\p{L}]/u', '/[ -]+/', '/^-|-$/'), array('', '-', ''), remove_accent($url))); + $post_url = $num . $pUrl; + $description = safe_html($description); + if ($description !== null) { + if (!empty($description)) { + $post_description = "\n"; + } else { + $post_description = "\n"; + } + } else { + $post_description = ""; + } + + $post_content = '' . $post_description . "\n\n" . $content; + + if (!empty($post_title) && !empty($post_url) && !empty($post_content)) { + + if(!empty($revertPage)) { + $dirDraft = $dir . '/draft'; + if (!is_dir($dirDraft)) { + mkdir($dirDraft, 0775, true); + } + $newfile = $dirDraft . '/' . $post_url . '.md'; + file_put_contents($newfile, print_r($post_content, true), LOCK_EX); + if (empty($static)) { + $old = pathinfo($oldfile, PATHINFO_FILENAME); + if(is_dir($dir . '/' . $old)) { + rename($dir . '/' . $old, $dir . '/' . $post_url); + } + } + unlink($oldfile); + } elseif (!empty($publishDraft)) { + $newfile = dirname($dir) . '/' . $post_url . '.md'; + file_put_contents($newfile, print_r($post_content, true), LOCK_EX); + if (empty($static)) { + $old = pathinfo($oldfile, PATHINFO_FILENAME); + if(is_dir(dirname($dir) . '/' . $old)) { + rename(dirname($dir) . '/' . $old, dirname($dir) . '/' . $post_url); + } + } + unlink($oldfile); + } else { + $newfile = $dir . '/' . $post_url . '.md'; + if ($oldfile === $newfile) { + file_put_contents($oldfile, print_r($post_content, true), LOCK_EX); + } else { + rename($oldfile, $newfile); + file_put_contents($newfile, print_r($post_content, true), LOCK_EX); + if (empty($static)) { + $old = pathinfo($oldfile, PATHINFO_FILENAME); + if(is_dir($dir . '/' . $old)) { + rename($dir . '/' . $old, $dir . '/' . $post_url); + } + } + } + } + + $cl = explode('.', $post_url); + if (isset($cl[1])) { + $pu = $cl[1]; + } else { + $pu = $post_url; + } + + $old_filename = pathinfo($oldfile, PATHINFO_FILENAME); + $old_ex = explode('.', $old_filename); + if (isset($old_ex[1])) { + $old_url = $old_ex[1]; + } else { + $old_url = $old_filename; + } + + rebuilt_cache('all'); + clear_page_cache($post_url); + + if (!empty($static)) { + $posturl = site_url() . $static .'/'. $pu; + + if ($old_url != $pu) { + if (file_exists($viewsFile)) { + $views = json_decode(file_get_data($viewsFile), true); + $oKey = 'subpage_' . $static . '.' . $old_url; + $nKey = 'subpage_' . $static . '.' . $pu; + if (isset($views[$oKey])) { + $arr = replace_key($views, $oKey, $nKey); + save_json_pretty($viewsFile, $arr); + } + } + } + + } else { + $posturl = site_url() . $pu; + + if ($old_url != $pu) { + if (file_exists($viewsFile)) { + $views = json_decode(file_get_data($viewsFile), true); + $oKey = 'page_' . $old_url; + $nKey = 'page_' . $pu; + if (isset($views[$oKey])) { + $arr = replace_key($views, $oKey, $nKey); + save_json_pretty($viewsFile, $arr); + } + } + + $sPage = find_subpage($pu); + if (!empty($sPage)) { + foreach ($sPage as $sp) { + if (file_exists($viewsFile)) { + $views = json_decode(file_get_data($viewsFile), true); + $oKey = 'subpage_' . $old_url . '.' . $sp->slug; + $nKey = 'subpage_' . $pu . '.' . $sp->slug; + if (isset($views[$oKey])) { + $arr = replace_key($views, $oKey, $nKey); + save_json_pretty($viewsFile, $arr); + } + } + } + } + } + + } + + if (!is_null($autoSave)) { + return json_encode(array('message' => 'Auto Saved', 'file' => $newfile)); + } + + if ($destination == 'post') { + if(!empty($revertPage)) { + $drafturl = site_url() . 'admin/draft'; + header("Location: $drafturl"); + } else { + header("Location: $posturl"); + } + } else { + $redirect = site_url() . $destination; + header("Location: $redirect"); + } + } +} + +// Add category +function add_category($title, $url, $content, $description = null) +{ + $post_title = safe_html($title); + $post_url = strtolower(preg_replace(array('/[^a-zA-Z0-9 \-\p{L}]/u', '/[ -]+/', '/^-|-$/'), array('', '-', ''), remove_accent($url))); + $description = safe_html($description); + if ($description !== null) { + if (!empty($description)) { + $post_description = "\n"; + } else { + $post_description = "\n"; + } + } else { + $post_description = ""; + } + $post_content = '' . $post_description . "\n\n" . $content; + + if (!empty($post_title) && !empty($post_url) && !empty($post_content)) { + + $filename = $post_url . '.md'; + $dir = 'content/data/category/'; + if (is_dir($dir)) { + file_put_contents($dir . $filename, print_r($post_content, true), LOCK_EX); + } else { + mkdir($dir, 0775, true); + file_put_contents($dir . $filename, print_r($post_content, true), LOCK_EX); + } + + rebuilt_cache('all'); + clear_page_cache($post_url); + $redirect = site_url() . 'admin/categories'; + header("Location: $redirect"); + } +} + +// Edit category +function edit_category($title, $url, $content, $oldfile, $destination = null, $description = null) +{ + $dir = pathinfo($oldfile, PATHINFO_DIRNAME); + + $post_title = safe_html($title); + $post_url = strtolower(preg_replace(array('/[^a-zA-Z0-9 \-\p{L}]/u', '/[ -]+/', '/^-|-$/'), array('', '-', ''), remove_accent($url))); + $description = safe_html($description); + if ($description !== null) { + if (!empty($description)) { + $post_description = "\n"; + } else { + $post_description = "\n"; + } + } else { + $post_description = ""; + } + $post_content = '' . $post_description . "\n\n" . $content; + if (!empty($post_title) && !empty($post_url) && !empty($post_content)) { + + $newfile = $dir . '/' . $post_url . '.md'; + if (!is_dir($dir)) { + mkdir($dir, 0775, true); + } + if ($oldfile === $newfile) { + file_put_contents($oldfile, print_r($post_content, true), LOCK_EX); + } else { + if (file_exists($oldfile)) { + rename($oldfile, $newfile); + file_put_contents($newfile, print_r($post_content, true), LOCK_EX); + } else { + file_put_contents($newfile, print_r($post_content, true), LOCK_EX); + } + } + + rename_category_folder($post_url, $oldfile); + + rebuilt_cache('all'); + if ($destination == 'post') { + header("Location: $posturl"); + } else { + $redirect = site_url() . $destination; + header("Location: $redirect"); + } + } +} + +// Edit user profile +function edit_profile($title, $content, $user, $description = null, $image = null) +{ + $description = safe_html($description); + if ($description !== null) { + if (!empty($description)) { + $profile_description = "\n"; + } else { + $profile_description = "\n"; + } + } else { + $profile_description = ""; + } + if ($image !== null) { + $avatar = "\n"; + } else { + $avatar = ""; + } + $user_title = safe_html($title); + $user_content = '' . $profile_description . $avatar . "\n\n" . $content; + + if (!empty($user_title) && !empty($user_content)) { + + $dir = 'content/' . $user . '/'; + $filename = 'content/' . $user . '/author.md'; + if (is_dir($dir)) { + file_put_contents($filename, print_r($user_content, true), LOCK_EX); + } else { + mkdir($dir, 0775, true); + file_put_contents($filename, print_r($user_content, true), LOCK_EX); + } + rebuilt_cache('all'); + $redirect = site_url() . 'author/' . $user; + header("Location: $redirect"); + } +} + +// Edit homepage +function edit_frontpage($title, $content) +{ + $front_title = safe_html($title); + $front_content = '' . "\n\n" . $content; + + if (!empty($front_title) && !empty($front_content)) { + + $dir = 'content/data/frontpage'; + $filename = 'content/data/frontpage/frontpage.md'; + if (is_dir($dir)) { + file_put_contents($filename, print_r($front_content, true), LOCK_EX); + } else { + mkdir($dir, 0775, true); + file_put_contents($filename, print_r($front_content, true), LOCK_EX); + } + rebuilt_cache('all'); + $redirect = site_url(); + header("Location: $redirect"); + } +} + +// Delete blog post +function delete_post($file, $destination) +{ + if (!login()) + return null; + $deleted_content = $file; + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + $arr = explode('/', $file); + + // realpath resolves all traversal operations like ../ + $realFilePath = realpath($file); + + // realpath returns an empty string if the file does not exist + if ($realFilePath == '') { + return; + } + + // get the current project working directory + $cwd = getcwd(); + + // content directory relative to the current project working directory + $contentDir = $cwd . DIRECTORY_SEPARATOR . 'content'; + + // if the file path does not start with $contentDir, it means its accessing + // files in folders other than content + if (strpos($realFilePath, $contentDir) !== 0) { + return; + } + + // Get cache file + $info = pathinfo($file); + $fn = explode('_', $info['basename']); + $dr = explode('/', $info['dirname']); + clear_post_cache($fn[0], $fn[1], str_replace('.md', '', $fn[2]), $file, $dr[3], $dr[4]); + + if (!empty($deleted_content)) { + if ($user === $arr[1] || $role === 'editor' || $role === 'admin') { + unlink($deleted_content); + rebuilt_cache('all'); + if ($destination == 'post') { + $redirect = site_url(); + header("Location: $redirect"); + } else { + $redirect = site_url() . $destination; + header("Location: $redirect"); + } + } + } +} + +// Delete static page +function delete_page($file, $destination) +{ + if (!login()) + return null; + $deleted_content = $file; + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + + // realpath resolves all traversal operations like ../ + $realFilePath = realpath($file); + + // realpath returns an empty string if the file does not exist + if ($realFilePath == '') { + return; + } + + // get the current project working directory + $cwd = getcwd(); + + // content directory relative to the current project working directory + $contentDir = $cwd . DIRECTORY_SEPARATOR . 'content'; + + // if the file path does not start with $contentDir, it means its accessing + // files in folders other than content + if (strpos($realFilePath, $contentDir) !== 0) { + return; + } + + if (!empty($menu)) { + foreach (glob('cache/page/*.cache', GLOB_NOSORT) as $file) { + unlink($file); + } + } else { + clear_page_cache(pathinfo($file, PATHINFO_BASENAME)); + } + + if (!empty($deleted_content)) { + if ($role === 'editor' || $role === 'admin') { + unlink($deleted_content); + rebuilt_cache('all'); + if ($destination == 'post') { + $redirect = site_url(); + header("Location: $redirect"); + } else { + $redirect = site_url() . $destination; + header("Location: $redirect"); + } + } + } +} + +// Find draft. +function find_draft($year, $month, $name) +{ + $posts = get_draft_posts(); + + foreach ($posts as $index => $v) { + $arr = explode('_', $v['basename']); + if (strpos($arr[0], "$year-$month") !== false && strtolower($arr[2]) === strtolower($name . '.md') || strtolower($arr[2]) === strtolower($name . '.md')) { + + // Use the get_posts method to return + // a properly parsed object + + $ar = get_posts($posts, $index + 1, 1); + $nx = get_posts($posts, $index, 1); + $pr = get_posts($posts, $index + 2, 1); + + if ($index == 0) { + if (isset($pr[0])) { + return array( + 'current' => $ar[0], + 'prev' => $pr[0] + ); + } else { + return array( + 'current' => $ar[0], + 'prev' => null + ); + } + } elseif (count($posts) == $index + 1) { + return array( + 'current' => $ar[0], + 'next' => $nx[0] + ); + } else { + return array( + 'current' => $ar[0], + 'next' => $nx[0], + 'prev' => $pr[0] + ); + } + } + } +} + +// Return draft list +function get_draft($profile, $page, $perpage) +{ + + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + $posts = get_draft_posts(); + + $tmp = array(); + + foreach ($posts as $index => $v) { + $str = explode('/', $v['dirname']); + if (strtolower($profile) === strtolower($str[1]) || $role === 'admin') { + $tmp[] = $v; + } + } + + if (empty($tmp)) { + return false; + } + + return $tmp = get_posts($tmp, $page, $perpage); +} + +// Return draft static page. +function find_draft_page($static = null) +{ + $posts = get_draft_pages(); + + $tmp = array(); + + $counter = config('views.counter'); + + if ($counter == 'true') { + $viewsFile = "content/data/views.json"; + if (file_exists($viewsFile)) { + $views = json_decode(file_get_contents($viewsFile), true); + } + } + + if (!empty($posts)) { + + foreach ($posts as $index => $v) { + if (stripos($v['basename'], $static . '.md') !== false) { + + $post = new stdClass; + + // The static page URL + $fn = explode('.', $v['filename']); + + if (isset($fn[1])) { + $url = $fn[1]; + } else { + $url= $v['filename']; + } + + $post->url = site_url() . $url; + + $post->file = $v['dirname'] . '/' . $v['basename']; + $post->lastMod = strtotime(date('Y-m-d H:i:s', filemtime($post->file))); + + $post->md = $v['basename']; + $post->slug = $url; + $post->parent = null; + $post->parentSlug = null; + + // Get the contents and convert it to HTML + $content = file_get_contents($post->file); + + // Extract the title and body + $post->title = get_content_tag('t', $content, 'Untitled static page: ' . format_date($post->lastMod, 'l, j F Y, H:i')); + + // Get the contents and convert it to HTML + $post->body = MarkdownExtra::defaultTransform(remove_html_comments($content)); + + if ($counter == 'true') { + $post->views = get_views('page_' . $post->slug, $post->file, $views); + } else { + $post->views = null; + } + + $post->description = get_content_tag("d", $content, get_description($post->body)); + + $word_count = str_word_count(strip_tags($post->body)); + $post->readTime = ceil($word_count / 200); + + $tmp[] = $post; + } + } + } + + return $tmp; +} + +// Return draft static subpage. +function find_draft_subpage($static = null, $sub_static = null) +{ + $posts = get_draft_subpages($static); + + $tmp = array(); + + $counter = config('views.counter'); + + if ($counter == 'true') { + $viewsFile = "content/data/views.json"; + if (file_exists($viewsFile)) { + $views = json_decode(file_get_contents($viewsFile), true); + } + } + + if (!empty($posts)) { + + foreach ($posts as $index => $v) { + if (stripos($v['basename'], $sub_static . '.md') !== false) { + + $post = new stdClass; + + $fd = str_replace('content/static/', '', dirname($v['dirname'])); + + $pr = explode('.', $fd); + if (isset($pr[1])) { + $ps = $pr[1]; + } else { + $ps = $fd; + } + + // The static page URL + $fn = explode('.', $v['filename']); + + if (isset($fn[1])) { + $url = $fn[1]; + } else { + $url = $v['filename']; + } + + $post->parent = $fd; + $post->parentSlug = $ps; + $post->url = site_url() . $ps . "/" . $url; + + $post->file = $v['dirname'] . '/' . $v['basename']; + $post->lastMod = strtotime(date('Y-m-d H:i:s', filemtime($post->file))); + + $post->md = $v['basename']; + $post->slug = $url; + + // Get the contents and convert it to HTML + $content = file_get_contents($post->file); + + // Extract the title and body + $post->title = get_content_tag('t', $content, 'Untitled static subpage: ' . format_date($post->lastMod, 'l, j F Y, H:i')); + + // Get the contents and convert it to HTML + $post->body = MarkdownExtra::defaultTransform(remove_html_comments($content)); + + if ($counter == 'true') { + $post->views = get_views('subpage_' . $post->parentSlug .'.'. $post->slug, $post->file, $views); + } else { + $post->views = null; + } + + $post->description = get_content_tag("d", $content, get_description($post->body)); + + $word_count = str_word_count(strip_tags($post->body)); + $post->readTime = ceil($word_count / 200); + + $tmp[] = $post; + } + } + } + + return $tmp; +} + +// Find scheduled post. +function find_scheduled($year, $month, $name) +{ + $posts = get_scheduled_posts(); + + foreach ($posts as $index => $v) { + $arr = explode('_', $v['basename']); + if (strpos($arr[0], "$year-$month") !== false && strtolower($arr[2]) === strtolower($name . '.md') || strtolower($arr[2]) === strtolower($name . '.md')) { + + // Use the get_posts method to return + // a properly parsed object + + $ar = get_posts($posts, $index + 1, 1); + $nx = get_posts($posts, $index, 1); + $pr = get_posts($posts, $index + 2, 1); + + if ($index == 0) { + if (isset($pr[0])) { + return array( + 'current' => $ar[0], + 'prev' => $pr[0] + ); + } else { + return array( + 'current' => $ar[0], + 'prev' => null + ); + } + } elseif (count($posts) == $index + 1) { + return array( + 'current' => $ar[0], + 'next' => $nx[0] + ); + } else { + return array( + 'current' => $ar[0], + 'next' => $nx[0], + 'prev' => $pr[0] + ); + } + } + } +} + +// Return scheduled list +function get_scheduled($profile, $page, $perpage) +{ + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + $posts = get_scheduled_posts(); + + $tmp = array(); + + foreach ($posts as $index => $v) { + $str = explode('/', $v['dirname']); + if (strtolower($profile) === strtolower($str[1]) || $role === 'admin') { + $tmp[] = $v; + } + } + + if (empty($tmp)) { + return false; + } + + return $tmp = get_posts($tmp, $page, $perpage); +} + +// Import RSS feed +function migrate($title, $time, $tags, $content, $url, $user, $source) +{ + $post_date = date('Y-m-d-H-i-s', $time); + $post_title = safe_html($title); + $pt = safe_tag($tags); + $post_tag = strtolower(preg_replace(array('/[^a-zA-Z0-9,. \-\p{L}]/u', '/[ -]+/', '/^-|-$/'), array('', '-', ''), remove_accent($pt))); + $post_tagmd = preg_replace(array('/[^a-zA-Z0-9,. \-\p{L}]/u', '/[ -]+/', '/^-|-$/'), array('', ' ', ''), $pt); + $post_tag = rtrim($post_tag, ','); + $post_tagmd = rtrim($post_tagmd, ','); + $post_url = strtolower(preg_replace(array('/[^a-zA-Z0-9 \-\p{L}]/u', '/[ -]+/', '/^-|-$/'), array('', '-', ''), remove_accent($url))); + if (!empty($source)) { + $post_content = '' . "\n" . '' . "\n\n" . $content . "\n\n" . 'Source: ' . $title . ''; + } else { + $post_content = '' . "\n" . '' . "\n\n" . $content; + } + if (!empty($post_title) && !empty($post_tag) && !empty($post_url) && !empty($post_content)) { + + $filename = $post_date . '_' . $post_tag . '_' . $post_url . '.md'; + $dir = 'content/' . $user . '/blog/uncategorized/post/'; + if (is_dir($dir)) { + file_put_contents($dir . $filename, print_r($post_content, true), LOCK_EX); + } else { + mkdir($dir, 0775, true); + file_put_contents($dir . $filename, print_r($post_content, true), LOCK_EX); + } + save_tag_i18n($post_tag, $post_tagmd); + $redirect = site_url() . 'admin/clear-cache'; + header("Location: $redirect"); + } +} + +// Fetch RSS feed +function get_feed($feed_url, $credit) +{ + $source = file_get_contents($feed_url); + $feed = new SimpleXmlElement($source); + if (!empty($feed->channel->item)) { + foreach ($feed->channel->item as $entry) { + $descriptionA = $entry->children('content', true); + $descriptionB = $entry->description; + if (!empty($descriptionA)) { + $content = $descriptionA; + } elseif (!empty($descriptionB)) { + $content = preg_replace('##i', "\n", $descriptionB); + } else { + return $str = '
  • ' . i18n('Cannot_read_feed_content') . '
  • '; + } + $time = new DateTime($entry->pubDate); + $timestamp = $time->format("Y-m-d H:i:s"); + $time = strtotime($timestamp); + $tags = $entry->category; + $title = rtrim($entry->title, ' \,\.\-'); + $title = ltrim($title, ' \,\.\-'); + $user = $_SESSION[site_url()]['user']; + $url = strtolower(preg_replace(array('/[^a-zA-Z0-9 \-\p{L}]/u', '/[ -]+/', '/^-|-$/'), array('', '-', ''), remove_accent($title))); + if ($credit == 'yes') { + $source = $entry->link; + } else { + $source = null; + } + migrate($title, $time, $tags, $content, $url, $user, $source); + } + } else { + return $str = '
  • ' . i18n('Unknown_feed_format') . '
  • '; + } +} + +// return tag safe string +function safe_tag($string) +{ + $tags = array(); + $string = preg_replace('/[\s-]+/', ' ', $string); + $string = explode(',', $string); + $string = array_map('trim', $string); + foreach ($string as $str) { + $tags[] = $str; + } + $string = implode(',', $tags); + $string = preg_replace('/[\s_]/', '-', $string); + return $string; + +} + +// Create Zip files +function Zip($source, $destination, $include_dir = false) +{ + if (!extension_loaded('zip') || !file_exists($source)) { + return false; + } + + if (file_exists($destination)) { + unlink($destination); + } + + $zip = new ZipArchive(); + + if (!$zip->open($destination, ZIPARCHIVE::CREATE)) { + return false; + } + + if (is_dir($source) === true) { + + $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($source), RecursiveIteratorIterator::SELF_FIRST); + + foreach ($files as $file) { + $file = str_replace('\\', '/', $file); + + // Ignore "." and ".." folders + if (in_array(substr($file, strrpos($file, '/') + 1), array('.', '..'))) + continue; + + if (is_dir($file) === true) { + $zip->addEmptyDir(str_replace($source . '/', '', $file . '/')); + } elseif (is_file($file) === true) { + $zip->addFromString(str_replace($source . '/', '', $file), file_get_contents($file)); + } + } + } elseif (is_file($source) === true) { + $zip->addFromString(basename($source), file_get_contents($source)); + } + + return $zip->close(); +} + +// Return toolbar +function toolbar() +{ + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + $base = site_url(); + $toolbar = ''; + + $toolbar .= << +EOF; + $toolbar .= '
    '; + echo $toolbar; +} + +// save the i18n tag +function save_tag_i18n($tag,$tagDisplay) +{ + + $dir = 'content/data/'; + if (!is_dir($dir)) { + mkdir($dir, 0775, true); + } + $filename = "content/data/tags.lang"; + $tags = array(); + $tmp = array(); + $views = array(); + + $tt = explode(',', rtrim($tag, ',')); + $tl = explode(',', rtrim($tagDisplay, ',')); + $tags = array_combine($tt,$tl); + + if (file_exists($filename)) { + $views = unserialize(file_get_contents($filename)); + foreach ($tags as $key => $val) { + if (isset($views[$key])) { + $views[$key] = $val; + } else { + $views[$key] = $val; + } + } + } else { + $views = $tags; + } + + $tmp = serialize($views); + file_put_contents($filename, print_r($tmp, true), LOCK_EX); + +} + +function clear_post_cache($post_date, $post_tag, $post_url, $filename, $category, $type) +{ + $b = str_replace('/', '#', site_path() . '/'); + $c = explode(',', $post_tag); + $t = explode('-', $post_date); + + // Delete post default permalink + $p = 'cache/page/' . $b . $t[0] . '#' . $t[1] . '#' . $post_url . '.cache'; + if (file_exists($p)) { + unlink($p); + } + + // Delete post permalink + $pp = 'cache/page/' . $b . 'post#' . $post_url . '.cache'; + if (file_exists($pp)) { + unlink($pp); + } + + // Delete homepage + $yd = 'cache/page/' . $b . '.cache'; + if (file_exists($yd)) { + unlink($yd); + } + foreach (glob('cache/page/' . $b . '~*.cache', GLOB_NOSORT) as $file) { + unlink($file); + } + + // Delete year + $yd = 'cache/page/' . $b . 'archive#' . $t[0] . '.cache'; + if (file_exists($yd)) { + unlink($yd); + } + foreach (glob('cache/page/' . $b . 'archive#' . $t[0] . '~*.cache', GLOB_NOSORT) as $file) { + unlink($file); + } + + // Delete year-month + $yd = 'cache/page/' . $b . 'archive#' . $t[0] . '-' . $t[1] . '.cache'; + if (file_exists($yd)) { + unlink($yd); + } + foreach (glob('cache/page/' . $b . 'archive#' . $t[0] . '-' . $t[1] . '~*.cache', GLOB_NOSORT) as $file) { + unlink($file); + } + + // Delete year-month-day + $yd = 'cache/page/' . $b . 'archive#' . $t[0] . '-' . $t[1] . '-' . $t[2] . '.cache'; + if (file_exists($yd)) { + unlink($yd); + } + foreach (glob('cache/page/' . $b . 'archive#' . $t[0] . '-' . $t[1] . '-' . $t[2] . '~*.cache', GLOB_NOSORT) as $file) { + unlink($file); + } + + // Delete tag + foreach ($c as $tag) { + $yd = 'cache/page/' . $b . 'tag#' . $tag . '.cache'; + if (file_exists($yd)) { + unlink($yd); + } + foreach (glob('cache/page/' . $b . 'tag#' . $tag . '~*.cache', GLOB_NOSORT) as $file) { + unlink($file); + } + } + + // Delete search + foreach (glob('cache/page/' . $b . 'search#*.cache', GLOB_NOSORT) as $file) { + unlink($file); + } + + // Delete category + $cc = 'cache/page/' . $b . 'category#' . $category . '.cache'; + if (file_exists($cc)) { + unlink($cc); + } + foreach (glob('cache/page/' . $b . 'category#' . $category . '~*.cache', GLOB_NOSORT) as $file) { + unlink($file); + } + + // Delete type + $tp = 'cache/page/' . $b . 'type#' . $type . '.cache'; + if (file_exists($tp)) { + unlink($tp); + } + foreach (glob('cache/page/' . $b . 'type#' . $type . '~*.cache', GLOB_NOSORT) as $file) { + unlink($file); + } + + // Get cache post author + $arr = pathinfo($filename, PATHINFO_DIRNAME); + $x = explode('/', $arr); + // Delete author post list cache + $a = 'cache/page/' . $b . 'author#' . $x[1] . '.cache'; + if (file_exists($a)) { + unlink($a); + } + foreach (glob('cache/page/' . $b . 'author#' . $x[1] . '~*.cache', GLOB_NOSORT) as $file) { + unlink($file); + } +} + +function clear_page_cache($url) +{ + $b = str_replace('/', '#', site_path() . '/'); + $p = 'cache/page/' . $b . $url . '.cache'; + if (file_exists($p)) { + unlink($p); + } +} + +function clear_cache() +{ + foreach (glob('cache/page/*.cache', GLOB_NOSORT) as $file) { + unlink($file); + } +} + +function valueMaker($value) +{ + if (is_string($value)) + return htmlspecialchars($value); + + if ($value === true) + return "true"; + if ($value === false) + return "false"; + + if ($value == false) + return "0"; + return (string)$value; +} + +function replace_key($arr, $oldkey, $newkey) +{ + if(array_key_exists($oldkey, $arr)) { + $keys = array_keys($arr); + $keys[array_search($oldkey, $keys)] = $newkey; + return array_combine($keys, $arr); + } + return $arr; +} + +// rename category folder +function rename_category_folder($new_name, $old_file) +{ + $old_name = str_replace('.md', '', basename($old_file)); + $dir = get_category_folder(); + foreach ($dir as $index => $v) { + if (stripos($v, '/' . $old_name . '/') !== false) { + $str = explode('/', $v); + $old_folder = $str[0] . '/' . $str[1] . '/' . $str[2] . '/' . $old_name . '/'; + $new_folder = $str[0] . '/' . $str[1] . '/' . $str[2] . '/' . $new_name . '/'; + rename($old_folder, $new_folder); + } + } +} + +// reorder the static page +function reorder_pages($pages = null) +{ + $i = 1; + $arr = array(); + $dir = 'content/static/'; + foreach ($pages as $p) { + $fn = pathinfo($p, PATHINFO_FILENAME); + $num = str_pad($i, 2, 0, STR_PAD_LEFT); + $arr = explode('.' , $fn); + if (isset($arr[1])) { + rename ($dir . $p, $dir . $num . '.' . $arr[1] . '.md'); + if (is_dir($dir . $fn)) { + rename($dir . $fn, $dir . $num . '.' . $arr[1]); + } + } else { + rename($dir . $p, $dir . $num . '.' . $fn . '.md'); + if (is_dir($dir . $fn)) { + rename($dir . $fn, $dir . $num . '.' . $fn); + } + } + $i++; + } + + rebuilt_cache(); +} + +// reorder the subpage +function reorder_subpages($subpages = null) +{ + $i = 1; + $arr = array(); + $dir = 'content/static/'; + foreach ($subpages as $sp) { + $dn = $dir . pathinfo($sp, PATHINFO_DIRNAME) . '/'; + $fn = pathinfo($sp, PATHINFO_FILENAME); + $num = str_pad($i, 2, 0, STR_PAD_LEFT); + $arr = explode('.' , $fn); + if (isset($arr[1])) { + rename ($dir . $sp, $dn . $num . '.' . $arr[1] . '.md'); + } else { + rename($dir . $sp, $dn . $num . '.' . $fn . '.md'); + } + + $i++; + + } + + rebuilt_cache(); +} + +// Return image gallery in pager. +function image_gallery($images, $page = 1, $perpage = 0) +{ + if (empty($images)) { + $images = scan_images(); + } + $tmp = ''; + $pagination = has_pagination(count($images), $perpage, $page); + $images = array_slice($images, ($page - 1) * $perpage, $perpage); + $tmp .= '
    '; + foreach ($images as $index => $v) { + $tmp .= '
    '; + } + $tmp .= '

    '; + if (!empty($pagination['prev'])) { + $prev = $page - 1; + $tmp .= '← '. i18n('Prev') .''; + } + if (!empty($pagination['next'])) { + $next = $page + 1; + $tmp .= ''. i18n('Next') .' →'; + } + $tmp .= '
    '; + return $tmp; +} + +function authorized ($data = null) +{ + if (login()) { + if (is_null($data)) { + return false; + } + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if (isset($data->author)) { + if ($user === $data->author || $role === 'editor' || $role === 'admin') { + return true; + } else { + return false; + } + } else { + if ($role === 'editor' || $role === 'admin') { + return true; + } else { + return false; + } + } + } +} diff --git a/system/admin/editor/LICENSE.txt b/system/admin/editor/LICENSE.txt new file mode 100644 index 0000000..d4c1099 --- /dev/null +++ b/system/admin/editor/LICENSE.txt @@ -0,0 +1,32 @@ +A javascript port of Markdown, as used on Stack Overflow +and the rest of Stack Exchange network. + +Largely based on showdown.js by John Fraser (Attacklab). + +Original Markdown Copyright (c) 2004-2005 John Gruber + + + +Original Showdown code copyright (c) 2007 John Fraser + +Modifications and bugfixes (c) 2009 Dana Robinson +Modifications and bugfixes (c) 2009-2013 Stack Exchange Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/system/admin/editor/css/editor.css b/system/admin/editor/css/editor.css new file mode 100644 index 0000000..580172f --- /dev/null +++ b/system/admin/editor/css/editor.css @@ -0,0 +1,184 @@ +body { + font-family: Georgia, sans-serif; +} + +blockquote { + border-left: 2px dotted #888; + padding-left: 5px; + background: #F6F7F9; +} + +.wmd-panel { + float: left; +} + +.wmd-button-bar { + background-color: #F6F7F9; + padding: 5px 0; + margin-bottom: 10px; + width: 100%; + border: 1px solid #CFDAE5; + border-radius:5px; + display: block; + float: left; +} +.dark-mode .wmd-button-bar { + background-color: #292d32; + border-color: #292d32 !important; +} +.wmd-button-bar:hover { + border: 1px solid #CCCCCC; +} + +.wmd-input { + min-height: 300px; +} + +.wmd-preview { + background-color: #E4EBF1; + float: left; + padding: 2%; +} + +.wmd-preview table { + margin: 20px 0; +} + +.wmd-preview td, .wmd-preview th { + border-right: 1px solid #ccc; + padding: 8px 12px; +} + +.wmd-preview td:last-child, .wmd-preview th:last-child { + border-right: none; +} + +.wmd-preview td { + border-top: 1px solid #ccc; +} + +.wmd-button-row { + position: relative; + margin: 0px; + padding: 0px; +} + +.wmd-spacer { + width: 1px; + height: 20px; + background-color: Silver; + list-style: none; + float: left; + margin: 5px; +} + +.wmd-button { + list-style: none; + cursor: pointer; + float: left; +} + +.wmd-button > span { + background-repeat: no-repeat; + background-position: 0px 0px; + display: inline-block; +} + +.dark-mode .wmd-button > span.btn-light { + color: #fff; + background-color: #292d32; + border-color: #292d32; + box-shadow: none; +} +.dark-mode .wmd-button > span.btn-light:not(.disabled):hover { + background-color: #171a1d; + border-color: #343a40; +} +.wmd-spacer1 { + left: 50px; +} + +.wmd-spacer2 { + left: 175px; +} + +.wmd-spacer3 { + left: 300px; +} + +.wmd-prompt-background { + background-color: Black; +} + +.wmd-prompt-dialog { + border: 1px solid #999999; + background-color: #F5F5F5; +} + +.wmd-prompt-dialog > div { + font-size: 0.8em; + font-family: arial, helvetica, sans-serif; +} + +.wmd-prompt-dialog > form > input[type="text"] { + border: 1px solid #999999; + color: black; +} + +.wmd-prompt-dialog > form > input[type="button"] { + border: 1px solid #888888; + font-family: trebuchet MS, helvetica, sans-serif; + font-size: 0.8em; + font-weight: bold; +} + +pre { + margin: 1em 0; + overflow: auto; + background: #F1F1FF; +} + +pre code { + color: #333333; + display: block; + font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif; + font-size: 14px; + padding: 5px 10px; +} + +@media all and (max-width: 980px) { + + .nav { + width: 100%; + padding: 2%; + } + + .wmd-panel, .wmd-preview { + width: 96%; + float: left; + padding: 2%; + } + + pre { + white-space: pre-wrap; + word-wrap: break-word; + } + +} + +.notice { + position: fixed; + bottom: 20px; + right: 20px; + padding: 10px 20px; + background-color: #f0f9ff; + border: 1px solid #e0e0e0; + border-radius: 5px; + box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.1); + font-size: 14px; + color: #333; + z-index: 999; + display: flex; + align-items: center; + display: none; +} \ No newline at end of file diff --git a/system/admin/editor/js/Markdown.Converter.js b/system/admin/editor/js/Markdown.Converter.js new file mode 100644 index 0000000..60e0bb5 --- /dev/null +++ b/system/admin/editor/js/Markdown.Converter.js @@ -0,0 +1,1428 @@ +var Markdown; + +if (typeof exports === "object" && typeof require === "function") // we're in a CommonJS (e.g. Node.js) module + Markdown = exports; +else + Markdown = {}; + +// The following text is included for historical reasons, but should +// be taken with a pinch of salt; it's not all true anymore. + +// +// Wherever possible, Showdown is a straight, line-by-line port +// of the Perl version of Markdown. +// +// This is not a normal parser design; it's basically just a +// series of string substitutions. It's hard to read and +// maintain this way, but keeping Showdown close to the original +// design makes it easier to port new features. +// +// More importantly, Showdown behaves like markdown.pl in most +// edge cases. So web applications can do client-side preview +// in Javascript, and then build identical HTML on the server. +// +// This port needs the new RegExp functionality of ECMA 262, +// 3rd Edition (i.e. Javascript 1.5). Most modern web browsers +// should do fine. Even with the new regular expression features, +// We do a lot of work to emulate Perl's regex functionality. +// The tricky changes in this file mostly have the "attacklab:" +// label. Major or self-explanatory changes don't. +// +// Smart diff tools like Araxis Merge will be able to match up +// this file with markdown.pl in a useful way. A little tweaking +// helps: in a copy of markdown.pl, replace "#" with "//" and +// replace "$text" with "text". Be sure to ignore whitespace +// and line endings. +// + + +// +// Usage: +// +// var text = "Markdown *rocks*."; +// +// var converter = new Markdown.Converter(); +// var html = converter.makeHtml(text); +// +// alert(html); +// +// Note: move the sample code to the bottom of this +// file before uncommenting it. +// + +(function () { + + function identity(x) { + return x; + } + + function returnFalse(x) { + return false; + } + + function HookCollection() { + } + + HookCollection.prototype = { + + chain: function (hookname, func) { + var original = this[hookname]; + if (!original) + throw new Error("unknown hook " + hookname); + + if (original === identity) + this[hookname] = func; + else + this[hookname] = function (text) { + var args = Array.prototype.slice.call(arguments, 0); + args[0] = original.apply(null, args); + return func.apply(null, args); + }; + }, + set: function (hookname, func) { + if (!this[hookname]) + throw new Error("unknown hook " + hookname); + this[hookname] = func; + }, + addNoop: function (hookname) { + this[hookname] = identity; + }, + addFalse: function (hookname) { + this[hookname] = returnFalse; + } + }; + + Markdown.HookCollection = HookCollection; + + // g_urls and g_titles allow arbitrary user-entered strings as keys. This + // caused an exception (and hence stopped the rendering) when the user entered + // e.g. [push] or [__proto__]. Adding a prefix to the actual key prevents this + // (since no builtin property starts with "s_"). See + // http://meta.stackoverflow.com/questions/64655/strange-wmd-bug + // (granted, switching from Array() to Object() alone would have left only __proto__ + // to be a problem) + function SaveHash() { + } + + SaveHash.prototype = { + set: function (key, value) { + this["s_" + key] = value; + }, + get: function (key) { + return this["s_" + key]; + } + }; + + Markdown.Converter = function () { + var pluginHooks = this.hooks = new HookCollection(); + + // given a URL that was encountered by itself (without markup), should return the link text that's to be given to this link + pluginHooks.addNoop("plainLinkText"); + + // called with the orignal text as given to makeHtml. The result of this plugin hook is the actual markdown source that will be cooked + pluginHooks.addNoop("preConversion"); + + // called with the text once all normalizations have been completed (tabs to spaces, line endings, etc.), but before any conversions have + pluginHooks.addNoop("postNormalization"); + + // Called with the text before / after creating block elements like code blocks and lists. Note that this is called recursively + // with inner content, e.g. it's called with the full text, and then only with the content of a blockquote. The inner + // call will receive outdented text. + pluginHooks.addNoop("preBlockGamut"); + pluginHooks.addNoop("postBlockGamut"); + + // called with the text of a single block element before / after the span-level conversions (bold, code spans, etc.) have been made + pluginHooks.addNoop("preSpanGamut"); + pluginHooks.addNoop("postSpanGamut"); + + // called with the final cooked HTML code. The result of this plugin hook is the actual output of makeHtml + pluginHooks.addNoop("postConversion"); + + // + // Private state of the converter instance: + // + + // Global hashes, used by various utility routines + var g_urls; + var g_titles; + var g_html_blocks; + + // Used to track when we're inside an ordered or unordered list + // (see _ProcessListItems() for details): + var g_list_level; + + this.makeHtml = function (text) { + + // + // Main function. The order in which other subs are called here is + // essential. Link and image substitutions need to happen before + // _EscapeSpecialCharsWithinTagAttributes(), so that any *'s or _'s in the + // and tags get encoded. + // + + // This will only happen if makeHtml on the same converter instance is called from a plugin hook. + // Don't do that. + if (g_urls) + throw new Error("Recursive call to converter.makeHtml"); + + // Create the private state objects. + g_urls = new SaveHash(); + g_titles = new SaveHash(); + g_html_blocks = []; + g_list_level = 0; + + text = pluginHooks.preConversion(text); + + // attacklab: Replace ~ with ~T + // This lets us use tilde as an escape char to avoid md5 hashes + // The choice of character is arbitray; anything that isn't + // magic in Markdown will work. + text = text.replace(/~/g, "~T"); + + // attacklab: Replace $ with ~D + // RegExp interprets $ as a special character + // when it's in a replacement string + text = text.replace(/\$/g, "~D"); + + // Standardize line endings + text = text.replace(/\r\n/g, "\n"); // DOS to Unix + text = text.replace(/\r/g, "\n"); // Mac to Unix + + // Make sure text begins and ends with a couple of newlines: + text = "\n\n" + text + "\n\n"; + + // Convert all tabs to spaces. + text = _Detab(text); + + // Strip any lines consisting only of spaces and tabs. + // This makes subsequent regexen easier to write, because we can + // match consecutive blank lines with /\n+/ instead of something + // contorted like /[ \t]*\n+/ . + text = text.replace(/^[ \t]+$/mg, ""); + + text = pluginHooks.postNormalization(text); + + // Turn block-level HTML blocks into hash entries + text = _HashHTMLBlocks(text); + + // Strip link definitions, store in hashes. + text = _StripLinkDefinitions(text); + + text = _RunBlockGamut(text); + + text = _UnescapeSpecialChars(text); + + // attacklab: Restore dollar signs + text = text.replace(/~D/g, "$$"); + + // attacklab: Restore tildes + text = text.replace(/~T/g, "~"); + + text = pluginHooks.postConversion(text); + + g_html_blocks = g_titles = g_urls = null; + + return text; + }; + + function _StripLinkDefinitions(text) { + // + // Strips link definitions from text, stores the URLs and titles in + // hash references. + // + + // Link defs are in the form: ^[id]: url "optional title" + + /* + text = text.replace(/ + ^[ ]{0,3}\[(.+)\]: // id = $1 attacklab: g_tab_width - 1 + [ \t]* + \n? // maybe *one* newline + [ \t]* + ? // url = $2 + (?=\s|$) // lookahead for whitespace instead of the lookbehind removed below + [ \t]* + \n? // maybe one newline + [ \t]* + ( // (potential) title = $3 + (\n*) // any lines skipped = $4 attacklab: lookbehind removed + [ \t]+ + ["(] + (.+?) // title = $5 + [")] + [ \t]* + )? // title is optional + (?:\n+|$) + /gm, function(){...}); + */ + + text = text.replace(/^[ ]{0,3}\[(.+)\]:[ \t]*\n?[ \t]*?(?=\s|$)[ \t]*\n?[ \t]*((\n*)["(](.+?)[")][ \t]*)?(?:\n+)/gm, + function (wholeMatch, m1, m2, m3, m4, m5) { + m1 = m1.toLowerCase(); + g_urls.set(m1, _EncodeAmpsAndAngles(m2)); // Link IDs are case-insensitive + if (m4) { + // Oops, found blank lines, so it's not a title. + // Put back the parenthetical statement we stole. + return m3; + } else if (m5) { + g_titles.set(m1, m5.replace(/"/g, """)); + } + + // Completely remove the definition from the text + return ""; + } + ); + + return text; + } + + function _HashHTMLBlocks(text) { + + // Hashify HTML blocks: + // We only want to do this for block-level HTML tags, such as headers, + // lists, and tables. That's because we still want to wrap

    s around + // "paragraphs" that are wrapped in non-block-level tags, such as anchors, + // phrase emphasis, and spans. The list of tags we're looking for is + // hard-coded: + var block_tags_a = "p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del" + var block_tags_b = "p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math" + + // First, look for nested blocks, e.g.: + //

    + //
    + // tags for inner block must be indented. + //
    + //
    + // + // The outermost tags must start at the left margin for this to match, and + // the inner nested divs must be indented. + // We need to do this before the next, more liberal match, because the next + // match will start at the first `
    ` and stop at the first `
    `. + + // attacklab: This regex can be expensive when it fails. + + /* + text = text.replace(/ + ( // save in $1 + ^ // start of line (with /m) + <($block_tags_a) // start tag = $2 + \b // word break + // attacklab: hack around khtml/pcre bug... + [^\r]*?\n // any number of lines, minimally matching + // the matching end tag + [ \t]* // trailing spaces/tabs + (?=\n+) // followed by a newline + ) // attacklab: there are sentinel newlines at end of document + /gm,function(){...}}; + */ + text = text.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\b[^\r]*?\n<\/\2>[ \t]*(?=\n+))/gm, hashElement); + + // + // Now match more liberally, simply from `\n` to `\n` + // + + /* + text = text.replace(/ + ( // save in $1 + ^ // start of line (with /m) + <($block_tags_b) // start tag = $2 + \b // word break + // attacklab: hack around khtml/pcre bug... + [^\r]*? // any number of lines, minimally matching + .* // the matching end tag + [ \t]* // trailing spaces/tabs + (?=\n+) // followed by a newline + ) // attacklab: there are sentinel newlines at end of document + /gm,function(){...}}; + */ + text = text.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math)\b[^\r]*?.*<\/\2>[ \t]*(?=\n+)\n)/gm, hashElement); + + // Special case just for
    . It was easier to make a special case than + // to make the other regex more complicated. + + /* + text = text.replace(/ + \n // Starting after a blank line + [ ]{0,3} + ( // save in $1 + (<(hr) // start tag = $2 + \b // word break + ([^<>])*? + \/?>) // the matching end tag + [ \t]* + (?=\n{2,}) // followed by a blank line + ) + /g,hashElement); + */ + text = text.replace(/\n[ ]{0,3}((<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g, hashElement); + + // Special case for standalone HTML comments: + + /* + text = text.replace(/ + \n\n // Starting after a blank line + [ ]{0,3} // attacklab: g_tab_width - 1 + ( // save in $1 + -]|-[^>])(?:[^-]|-[^-])*)--) // see http://www.w3.org/TR/html-markup/syntax.html#comments and http://meta.stackoverflow.com/q/95256 + > + [ \t]* + (?=\n{2,}) // followed by a blank line + ) + /g,hashElement); + */ + text = text.replace(/\n\n[ ]{0,3}(-]|-[^>])(?:[^-]|-[^-])*)--)>[ \t]*(?=\n{2,}))/g, hashElement); + + // PHP and ASP-style processor instructions ( and <%...%>) + + /* + text = text.replace(/ + (?: + \n\n // Starting after a blank line + ) + ( // save in $1 + [ ]{0,3} // attacklab: g_tab_width - 1 + (?: + <([?%]) // $2 + [^\r]*? + \2> + ) + [ \t]* + (?=\n{2,}) // followed by a blank line + ) + /g,hashElement); + */ + text = text.replace(/(?:\n\n)([ ]{0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g, hashElement); + + return text; + } + + function hashElement(wholeMatch, m1) { + var blockText = m1; + + // Undo double lines + blockText = blockText.replace(/^\n+/, ""); + + // strip trailing blank lines + blockText = blockText.replace(/\n+$/g, ""); + + // Replace the element text with a marker ("~KxK" where x is its key) + blockText = "\n\n~K" + (g_html_blocks.push(blockText) - 1) + "K\n\n"; + + return blockText; + } + + var blockGamutHookCallback = function (t) { + return _RunBlockGamut(t); + } + + function _RunBlockGamut(text, doNotUnhash) { + // + // These are all the transformations that form block-level + // tags like paragraphs, headers, and list items. + // + + text = pluginHooks.preBlockGamut(text, blockGamutHookCallback); + + text = _DoHeaders(text); + + // Do Horizontal Rules: + var replacement = "
    \n"; + text = text.replace(/^[ ]{0,2}([ ]?\*[ ]?){3,}[ \t]*$/gm, replacement); + text = text.replace(/^[ ]{0,2}([ ]?-[ ]?){3,}[ \t]*$/gm, replacement); + text = text.replace(/^[ ]{0,2}([ ]?_[ ]?){3,}[ \t]*$/gm, replacement); + + text = _DoLists(text); + text = _DoCodeBlocks(text); + text = _DoBlockQuotes(text); + + text = pluginHooks.postBlockGamut(text, blockGamutHookCallback); + + // We already ran _HashHTMLBlocks() before, in Markdown(), but that + // was to escape raw HTML in the original Markdown source. This time, + // we're escaping the markup we've just created, so that we don't wrap + //

    tags around block-level tags. + text = _HashHTMLBlocks(text); + text = _FormParagraphs(text, doNotUnhash); + + return text; + } + + function _RunSpanGamut(text) { + // + // These are all the transformations that occur *within* block-level + // tags like paragraphs, headers, and list items. + // + + text = pluginHooks.preSpanGamut(text); + + text = _DoCodeSpans(text); + text = _EscapeSpecialCharsWithinTagAttributes(text); + text = _EncodeBackslashEscapes(text); + + // Process anchor and image tags. Images must come first, + // because ![foo][f] looks like an anchor. + text = _DoImages(text); + text = _DoAnchors(text); + + // Make links out of things like `` + // Must come after _DoAnchors(), because you can use < and > + // delimiters in inline links like [this](). + text = _DoAutoLinks(text); + + text = text.replace(/~P/g, "://"); // put in place to prevent autolinking; reset now + + text = _EncodeAmpsAndAngles(text); + text = _DoItalicsAndBold(text); + + // Do hard breaks: + text = text.replace(/ +\n/g, "
    \n"); + + text = pluginHooks.postSpanGamut(text); + + return text; + } + + function _EscapeSpecialCharsWithinTagAttributes(text) { + // + // Within tags -- meaning between < and > -- encode [\ ` * _] so they + // don't conflict with their use in Markdown for code, italics and strong. + // + + // Build a regex to find HTML tags and comments. See Friedl's + // "Mastering Regular Expressions", 2nd Ed., pp. 200-201. + + // SE: changed the comment part of the regex + + var regex = /(<[a-z\/!$]("[^"]*"|'[^']*'|[^'">])*>|-]|-[^>])(?:[^-]|-[^-])*)--)>)/gi; + + text = text.replace(regex, function (wholeMatch) { + var tag = wholeMatch.replace(/(.)<\/?code>(?=.)/g, "$1`"); + tag = escapeCharacters(tag, wholeMatch.charAt(1) == "!" ? "\\`*_/" : "\\`*_"); // also escape slashes in comments to prevent autolinking there -- http://meta.stackoverflow.com/questions/95987 + return tag; + }); + + return text; + } + + function _DoAnchors(text) { + // + // Turn Markdown link shortcuts into XHTML
    tags. + // + // + // First, handle reference-style links: [link text] [id] + // + + /* + text = text.replace(/ + ( // wrap whole match in $1 + \[ + ( + (?: + \[[^\]]*\] // allow brackets nested one level + | + [^\[] // or anything else + )* + ) + \] + + [ ]? // one optional space + (?:\n[ ]*)? // one optional newline followed by spaces + + \[ + (.*?) // id = $3 + \] + ) + ()()()() // pad remaining backreferences + /g, writeAnchorTag); + */ + text = text.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g, writeAnchorTag); + + // + // Next, inline-style links: [link text](url "optional title") + // + + /* + text = text.replace(/ + ( // wrap whole match in $1 + \[ + ( + (?: + \[[^\]]*\] // allow brackets nested one level + | + [^\[\]] // or anything else + )* + ) + \] + \( // literal paren + [ \t]* + () // no id, so leave $3 empty + ? + [ \t]* + ( // $5 + (['"]) // quote char = $6 + (.*?) // Title = $7 + \6 // matching quote + [ \t]* // ignore any spaces/tabs between closing quote and ) + )? // title is optional + \) + ) + /g, writeAnchorTag); + */ + + text = text.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\]\([ \t]*()?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g, writeAnchorTag); + + // + // Last, handle reference-style shortcuts: [link text] + // These must come last in case you've also got [link test][1] + // or [link test](/foo) + // + + /* + text = text.replace(/ + ( // wrap whole match in $1 + \[ + ([^\[\]]+) // link text = $2; can't contain '[' or ']' + \] + ) + ()()()()() // pad rest of backreferences + /g, writeAnchorTag); + */ + text = text.replace(/(\[([^\[\]]+)\])()()()()()/g, writeAnchorTag); + + return text; + } + + function writeAnchorTag(wholeMatch, m1, m2, m3, m4, m5, m6, m7) { + if (m7 == undefined) m7 = ""; + var whole_match = m1; + var link_text = m2.replace(/:\/\//g, "~P"); // to prevent auto-linking withing the link. will be converted back after the auto-linker runs + var link_id = m3.toLowerCase(); + var url = m4; + var title = m7; + + if (url == "") { + if (link_id == "") { + // lower-case and turn embedded newlines into spaces + link_id = link_text.toLowerCase().replace(/ ?\n/g, " "); + } + url = "#" + link_id; + + if (g_urls.get(link_id) != undefined) { + url = g_urls.get(link_id); + if (g_titles.get(link_id) != undefined) { + title = g_titles.get(link_id); + } + } + else { + if (whole_match.search(/\(\s*\)$/m) > -1) { + // Special case for explicit empty url + url = ""; + } else { + return whole_match; + } + } + } + url = encodeProblemUrlChars(url); + url = escapeCharacters(url, "*_"); + var result = ""; + + return result; + } + + function _DoImages(text) { + // + // Turn Markdown image shortcuts into tags. + // + + // + // First, handle reference-style labeled images: ![alt text][id] + // + + /* + text = text.replace(/ + ( // wrap whole match in $1 + !\[ + (.*?) // alt text = $2 + \] + + [ ]? // one optional space + (?:\n[ ]*)? // one optional newline followed by spaces + + \[ + (.*?) // id = $3 + \] + ) + ()()()() // pad rest of backreferences + /g, writeImageTag); + */ + text = text.replace(/(!\[(.*?)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g, writeImageTag); + + // + // Next, handle inline images: ![alt text](url "optional title") + // Don't forget: encode * and _ + + /* + text = text.replace(/ + ( // wrap whole match in $1 + !\[ + (.*?) // alt text = $2 + \] + \s? // One optional whitespace character + \( // literal paren + [ \t]* + () // no id, so leave $3 empty + ? // src url = $4 + [ \t]* + ( // $5 + (['"]) // quote char = $6 + (.*?) // title = $7 + \6 // matching quote + [ \t]* + )? // title is optional + \) + ) + /g, writeImageTag); + */ + text = text.replace(/(!\[(.*?)\]\s?\([ \t]*()?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g, writeImageTag); + + return text; + } + + function attributeEncode(text) { + // unconditionally replace angle brackets here -- what ends up in an attribute (e.g. alt or title) + // never makes sense to have verbatim HTML in it (and the sanitizer would totally break it) + return text.replace(/>/g, ">").replace(/" + _RunSpanGamut(m1) + "\n\n"; + } + ); + + text = text.replace(/^(.+)[ \t]*\n-+[ \t]*\n+/gm, + function (matchFound, m1) { + return "

    " + _RunSpanGamut(m1) + "

    \n\n"; + } + ); + + // atx-style headers: + // # Header 1 + // ## Header 2 + // ## Header 2 with closing hashes ## + // ... + // ###### Header 6 + // + + /* + text = text.replace(/ + ^(\#{1,6}) // $1 = string of #'s + [ \t]* + (.+?) // $2 = Header text + [ \t]* + \#* // optional closing #'s (not counted) + \n+ + /gm, function() {...}); + */ + + text = text.replace(/^(\#{1,6})[ \t]*(.+?)[ \t]*\#*\n+/gm, + function (wholeMatch, m1, m2) { + var h_level = m1.length; + return "" + _RunSpanGamut(m2) + "\n\n"; + } + ); + + return text; + } + + function _DoLists(text, isInsideParagraphlessListItem) { + // + // Form HTML ordered (numbered) and unordered (bulleted) lists. + // + + // attacklab: add sentinel to hack around khtml/safari bug: + // http://bugs.webkit.org/show_bug.cgi?id=11231 + text += "~0"; + + // Re-usable pattern to match any entirel ul or ol list: + + /* + var whole_list = / + ( // $1 = whole list + ( // $2 + [ ]{0,3} // attacklab: g_tab_width - 1 + ([*+-]|\d+[.]) // $3 = first list item marker + [ \t]+ + ) + [^\r]+? + ( // $4 + ~0 // sentinel for workaround; should be $ + | + \n{2,} + (?=\S) + (?! // Negative lookahead for another list item marker + [ \t]* + (?:[*+-]|\d+[.])[ \t]+ + ) + ) + ) + /g + */ + var whole_list = /^(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm; + + if (g_list_level) { + text = text.replace(whole_list, function (wholeMatch, m1, m2) { + var list = m1; + var list_type = (m2.search(/[*+-]/g) > -1) ? "ul" : "ol"; + + var result = _ProcessListItems(list, list_type, isInsideParagraphlessListItem); + + // Trim any trailing whitespace, to put the closing `` + // up on the preceding line, to get it past the current stupid + // HTML block parser. This is a hack to work around the terrible + // hack that is the HTML block parser. + result = result.replace(/\s+$/, ""); + result = "<" + list_type + ">" + result + "\n"; + return result; + }); + } else { + whole_list = /(\n\n|^\n?)(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/g; + text = text.replace(whole_list, function (wholeMatch, m1, m2, m3) { + var runup = m1; + var list = m2; + + var list_type = (m3.search(/[*+-]/g) > -1) ? "ul" : "ol"; + var result = _ProcessListItems(list, list_type); + result = runup + "<" + list_type + ">\n" + result + "\n"; + return result; + }); + } + + // attacklab: strip sentinel + text = text.replace(/~0/, ""); + + return text; + } + + var _listItemMarkers = {ol: "\\d+[.]", ul: "[*+-]"}; + + function _ProcessListItems(list_str, list_type, isInsideParagraphlessListItem) { + // + // Process the contents of a single ordered or unordered list, splitting it + // into individual list items. + // + // list_type is either "ul" or "ol". + + // The $g_list_level global keeps track of when we're inside a list. + // Each time we enter a list, we increment it; when we leave a list, + // we decrement. If it's zero, we're not in a list anymore. + // + // We do this because when we're not inside a list, we want to treat + // something like this: + // + // I recommend upgrading to version + // 8. Oops, now this line is treated + // as a sub-list. + // + // As a single paragraph, despite the fact that the second line starts + // with a digit-period-space sequence. + // + // Whereas when we're inside a list (or sub-list), that line will be + // treated as the start of a sub-list. What a kludge, huh? This is + // an aspect of Markdown's syntax that's hard to parse perfectly + // without resorting to mind-reading. Perhaps the solution is to + // change the syntax rules such that sub-lists must start with a + // starting cardinal number; e.g. "1." or "a.". + + g_list_level++; + + // trim trailing blank lines: + list_str = list_str.replace(/\n{2,}$/, "\n"); + + // attacklab: add sentinel to emulate \z + list_str += "~0"; + + // In the original attacklab showdown, list_type was not given to this function, and anything + // that matched /[*+-]|\d+[.]/ would just create the next
  • , causing this mismatch: + // + // Markdown rendered by WMD rendered by MarkdownSharp + // ------------------------------------------------------------------ + // 1. first 1. first 1. first + // 2. second 2. second 2. second + // - third 3. third * third + // + // We changed this to behave identical to MarkdownSharp. This is the constructed RegEx, + // with {MARKER} being one of \d+[.] or [*+-], depending on list_type: + + /* + list_str = list_str.replace(/ + (^[ \t]*) // leading whitespace = $1 + ({MARKER}) [ \t]+ // list marker = $2 + ([^\r]+? // list item text = $3 + (\n+) + ) + (?= + (~0 | \2 ({MARKER}) [ \t]+) + ) + /gm, function(){...}); + */ + + var marker = _listItemMarkers[list_type]; + var re = new RegExp("(^[ \\t]*)(" + marker + ")[ \\t]+([^\\r]+?(\\n+))(?=(~0|\\1(" + marker + ")[ \\t]+))", "gm"); + var last_item_had_a_double_newline = false; + list_str = list_str.replace(re, + function (wholeMatch, m1, m2, m3) { + var item = m3; + var leading_space = m1; + var ends_with_double_newline = /\n\n$/.test(item); + var contains_double_newline = ends_with_double_newline || item.search(/\n{2,}/) > -1; + + if (contains_double_newline || last_item_had_a_double_newline) { + item = _RunBlockGamut(_Outdent(item), /* doNotUnhash = */true); + } + else { + // Recursion for sub-lists: + item = _DoLists(_Outdent(item), /* isInsideParagraphlessListItem= */ true); + item = item.replace(/\n$/, ""); // chomp(item) + if (!isInsideParagraphlessListItem) // only the outer-most item should run this, otherwise it's run multiple times for the inner ones + item = _RunSpanGamut(item); + } + last_item_had_a_double_newline = ends_with_double_newline; + return "
  • " + item + "
  • \n"; + } + ); + + // attacklab: strip sentinel + list_str = list_str.replace(/~0/g, ""); + + g_list_level--; + return list_str; + } + + function _DoCodeBlocks(text) { + // + // Process Markdown `
    ` blocks.
    +            //  
    +
    +            /*
    +             text = text.replace(/
    +             (?:\n\n|^)
    +             (                               // $1 = the code block -- one or more lines, starting with a space/tab
    +             (?:
    +             (?:[ ]{4}|\t)           // Lines must start with a tab or a tab-width of spaces - attacklab: g_tab_width
    +             .*\n+
    +             )+
    +             )
    +             (\n*[ ]{0,3}[^ \t\n]|(?=~0))    // attacklab: g_tab_width
    +             /g ,function(){...});
    +             */
    +
    +            // attacklab: sentinel workarounds for lack of \A and \Z, safari\khtml bug
    +            text += "~0";
    +
    +            text = text.replace(/(?:\n\n|^\n?)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=~0))/g,
    +                function (wholeMatch, m1, m2) {
    +                    var codeblock = m1;
    +                    var nextChar = m2;
    +
    +                    codeblock = _EncodeCode(_Outdent(codeblock));
    +                    codeblock = _Detab(codeblock);
    +                    codeblock = codeblock.replace(/^\n+/g, ""); // trim leading newlines
    +                    codeblock = codeblock.replace(/\n+$/g, ""); // trim trailing whitespace
    +
    +                    codeblock = "
    " + codeblock + "\n
    "; + + return "\n\n" + codeblock + "\n\n" + nextChar; + } + ); + + // attacklab: strip sentinel + text = text.replace(/~0/, ""); + + return text; + } + + function hashBlock(text) { + text = text.replace(/(^\n+|\n+$)/g, ""); + return "\n\n~K" + (g_html_blocks.push(text) - 1) + "K\n\n"; + } + + function _DoCodeSpans(text) { + // + // * Backtick quotes are used for spans. + // + // * You can use multiple backticks as the delimiters if you want to + // include literal backticks in the code span. So, this input: + // + // Just type ``foo `bar` baz`` at the prompt. + // + // Will translate to: + // + //

    Just type foo `bar` baz at the prompt.

    + // + // There's no arbitrary limit to the number of backticks you + // can use as delimters. If you need three consecutive backticks + // in your code, use four for delimiters, etc. + // + // * You can use spaces to get literal backticks at the edges: + // + // ... type `` `bar` `` ... + // + // Turns to: + // + // ... type `bar` ... + // + + /* + text = text.replace(/ + (^|[^\\]) // Character before opening ` can't be a backslash + (`+) // $2 = Opening run of ` + ( // $3 = The code block + [^\r]*? + [^`] // attacklab: work around lack of lookbehind + ) + \2 // Matching closer + (?!`) + /gm, function(){...}); + */ + + text = text.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm, + function (wholeMatch, m1, m2, m3, m4) { + var c = m3; + c = c.replace(/^([ \t]*)/g, ""); // leading whitespace + c = c.replace(/[ \t]*$/g, ""); // trailing whitespace + c = _EncodeCode(c); + c = c.replace(/:\/\//g, "~P"); // to prevent auto-linking. Not necessary in code *blocks*, but in code spans. Will be converted back after the auto-linker runs. + return m1 + "" + c + ""; + } + ); + + return text; + } + + function _EncodeCode(text) { + // + // Encode/escape certain characters inside Markdown code runs. + // The point is that in code, these characters are literals, + // and lose their special Markdown meanings. + // + // Encode all ampersands; HTML entities are not + // entities within a Markdown code span. + text = text.replace(/&/g, "&"); + + // Do the angle bracket song and dance: + text = text.replace(//g, ">"); + + // Now, escape characters that are magic in Markdown: + text = escapeCharacters(text, "\*_{}[]\\", false); + + // jj the line above breaks this: + //--- + + //* Item + + // 1. Subitem + + // special char: * + //--- + + return text; + } + + function _DoItalicsAndBold(text) { + + // must go first: + text = text.replace(/([\W_]|^)(\*\*|__)(?=\S)([^\r]*?\S[\*_]*)\2([\W_]|$)/g, + "$1$3$4"); + + text = text.replace(/([\W_]|^)(\*|_)(?=\S)([^\r\*_]*?\S)\2([\W_]|$)/g, + "$1$3$4"); + + return text; + } + + function _DoBlockQuotes(text) { + + /* + text = text.replace(/ + ( // Wrap whole match in $1 + ( + ^[ \t]*>[ \t]? // '>' at the start of a line + .+\n // rest of the first line + (.+\n)* // subsequent consecutive lines + \n* // blanks + )+ + ) + /gm, function(){...}); + */ + + text = text.replace(/((^[ \t]*>[ \t]?.+\n(.+\n)*\n*)+)/gm, + function (wholeMatch, m1) { + var bq = m1; + + // attacklab: hack around Konqueror 3.5.4 bug: + // "----------bug".replace(/^-/g,"") == "bug" + + bq = bq.replace(/^[ \t]*>[ \t]?/gm, "~0"); // trim one level of quoting + + // attacklab: clean up hack + bq = bq.replace(/~0/g, ""); + + bq = bq.replace(/^[ \t]+$/gm, ""); // trim whitespace-only lines + bq = _RunBlockGamut(bq); // recurse + + bq = bq.replace(/(^|\n)/g, "$1 "); + // These leading spaces screw with
     content, so we need to fix that:
    +                    bq = bq.replace(
    +                        /(\s*
    [^\r]+?<\/pre>)/gm,
    +                        function (wholeMatch, m1) {
    +                            var pre = m1;
    +                            // attacklab: hack around Konqueror 3.5.4 bug:
    +                            pre = pre.replace(/^  /mg, "~0");
    +                            pre = pre.replace(/~0/g, "");
    +                            return pre;
    +                        });
    +
    +                    return hashBlock("
    \n" + bq + "\n
    "); + } + ); + return text; + } + + function _FormParagraphs(text, doNotUnhash) { + // + // Params: + // $text - string to process with html

    tags + // + + // Strip leading and trailing lines: + text = text.replace(/^\n+/g, ""); + text = text.replace(/\n+$/g, ""); + + var grafs = text.split(/\n{2,}/g); + var grafsOut = []; + + var markerRe = /~K(\d+)K/; + + // + // Wrap

    tags. + // + var end = grafs.length; + for (var i = 0; i < end; i++) { + var str = grafs[i]; + + // if this is an HTML marker, copy it + if (markerRe.test(str)) { + grafsOut.push(str); + } + else if (/\S/.test(str)) { + str = _RunSpanGamut(str); + str = str.replace(/^([ \t]*)/g, "

    "); + str += "

    " + grafsOut.push(str); + } + + } + // + // Unhashify HTML blocks + // + if (!doNotUnhash) { + end = grafsOut.length; + for (var i = 0; i < end; i++) { + var foundAny = true; + while (foundAny) { // we may need several runs, since the data may be nested + foundAny = false; + grafsOut[i] = grafsOut[i].replace(/~K(\d+)K/g, function (wholeMatch, id) { + foundAny = true; + return g_html_blocks[id]; + }); + } + } + } + return grafsOut.join("\n\n"); + } + + function _EncodeAmpsAndAngles(text) { + // Smart processing for ampersands and angle brackets that need to be encoded. + + // Ampersand-encoding based entirely on Nat Irons's Amputator MT plugin: + // http://bumppo.net/projects/amputator/ + text = text.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g, "&"); + + // Encode naked <'s + text = text.replace(/<(?![a-z\/?!]|~D)/gi, "<"); + + return text; + } + + function _EncodeBackslashEscapes(text) { + // + // Parameter: String. + // Returns: The string, with after processing the following backslash + // escape sequences. + // + + // attacklab: The polite way to do this is with the new + // escapeCharacters() function: + // + // text = escapeCharacters(text,"\\",true); + // text = escapeCharacters(text,"`*_{}[]()>#+-.!",true); + // + // ...but we're sidestepping its use of the (slow) RegExp constructor + // as an optimization for Firefox. This function gets called a LOT. + + text = text.replace(/\\(\\)/g, escapeCharacters_callback); + text = text.replace(/\\([`*_{}\[\]()>#+-.!])/g, escapeCharacters_callback); + return text; + } + + var charInsideUrl = "[-A-Z0-9+&@#/%?=~_|[\\]()!:,.;]", + charEndingUrl = "[-A-Z0-9+&@#/%=~_|[\\])]", + autoLinkRegex = new RegExp("(=\"|<)?\\b(https?|ftp)(://" + charInsideUrl + "*" + charEndingUrl + ")(?=$|\\W)", "gi"), + endCharRegex = new RegExp(charEndingUrl, "i"); + + function handleTrailingParens(wholeMatch, lookbehind, protocol, link) { + if (lookbehind) + return wholeMatch; + if (link.charAt(link.length - 1) !== ")") + return "<" + protocol + link + ">"; + var parens = link.match(/[()]/g); + var level = 0; + for (var i = 0; i < parens.length; i++) { + if (parens[i] === "(") { + if (level <= 0) + level = 1; + else + level++; + } + else { + level--; + } + } + var tail = ""; + if (level < 0) { + var re = new RegExp("\\){1," + (-level) + "}$"); + link = link.replace(re, function (trailingParens) { + tail = trailingParens; + return ""; + }); + } + if (tail) { + var lastChar = link.charAt(link.length - 1); + if (!endCharRegex.test(lastChar)) { + tail = lastChar + tail; + link = link.substr(0, link.length - 1); + } + } + return "<" + protocol + link + ">" + tail; + } + + function _DoAutoLinks(text) { + + // note that at this point, all other URL in the text are already hyperlinked as
    + // *except* for the case + + // automatically add < and > around unadorned raw hyperlinks + // must be preceded by a non-word character (and not by =" or <) and followed by non-word/EOF character + // simulating the lookbehind in a consuming way is okay here, since a URL can neither and with a " nor + // with a <, so there is no risk of overlapping matches. + text = text.replace(autoLinkRegex, handleTrailingParens); + + // autolink anything like + + var replacer = function (wholematch, m1) { + return "" + pluginHooks.plainLinkText(m1) + ""; + } + text = text.replace(/<((https?|ftp):[^'">\s]+)>/gi, replacer); + + // Email addresses: + /* + text = text.replace(/ + < + (?:mailto:)? + ( + [-.\w]+ + \@ + [-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+ + ) + > + /gi, _DoAutoLinks_callback()); + */ + + /* disabling email autolinking, since we don't do that on the server, either + text = text.replace(/<(?:mailto:)?([-.\w]+\@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi, + function(wholeMatch,m1) { + return _EncodeEmailAddress( _UnescapeSpecialChars(m1) ); + } + ); + */ + return text; + } + + function _UnescapeSpecialChars(text) { + // + // Swap back in all the special characters we've hidden. + // + text = text.replace(/~E(\d+)E/g, + function (wholeMatch, m1) { + var charCodeToReplace = parseInt(m1); + return String.fromCharCode(charCodeToReplace); + } + ); + return text; + } + + function _Outdent(text) { + // + // Remove one level of line-leading tabs or spaces + // + + // attacklab: hack around Konqueror 3.5.4 bug: + // "----------bug".replace(/^-/g,"") == "bug" + + text = text.replace(/^(\t|[ ]{1,4})/gm, "~0"); // attacklab: g_tab_width + + // attacklab: clean up hack + text = text.replace(/~0/g, "") + + return text; + } + + function _Detab(text) { + if (!/\t/.test(text)) + return text; + + var spaces = [" ", " ", " ", " "], + skew = 0, + v; + + return text.replace(/[\n\t]/g, function (match, offset) { + if (match === "\n") { + skew = offset + 1; + return match; + } + v = (offset - skew) % 4; + skew = offset + 1; + return spaces[v]; + }); + } + + // + // attacklab: Utility functions + // + + var _problemUrlChars = /(?:["'*()[\]:]|~D)/g; + + // hex-encodes some unusual "problem" chars in URLs to avoid URL detection problems + function encodeProblemUrlChars(url) { + if (!url) + return ""; + + var len = url.length; + + return url.replace(_problemUrlChars, function (match, offset) { + if (match == "~D") // escape for dollar + return "%24"; + if (match == ":") { + if (offset == len - 1 || /[0-9\/]/.test(url.charAt(offset + 1))) + return ":" + } + return "%" + match.charCodeAt(0).toString(16); + }); + } + + + function escapeCharacters(text, charsToEscape, afterBackslash) { + // First we have to escape the escape characters so that + // we can build a character class out of them + var regexString = "([" + charsToEscape.replace(/([\[\]\\])/g, "\\$1") + "])"; + + if (afterBackslash) { + regexString = "\\\\" + regexString; + } + + var regex = new RegExp(regexString, "g"); + text = text.replace(regex, escapeCharacters_callback); + + return text; + } + + + function escapeCharacters_callback(wholeMatch, m1) { + var charCodeToEscape = m1.charCodeAt(0); + return "~E" + charCodeToEscape + "E"; + } + + }; // end of the Markdown.Converter constructor + +})(); diff --git a/system/admin/editor/js/Markdown.Editor.js b/system/admin/editor/js/Markdown.Editor.js new file mode 100644 index 0000000..bec160b --- /dev/null +++ b/system/admin/editor/js/Markdown.Editor.js @@ -0,0 +1,2489 @@ +// needs Markdown.Converter.js at the moment + +(function () { + + var util = {}, + position = {}, + ui = {}, + doc = window.document, + re = window.RegExp, + nav = window.navigator, + SETTINGS = {lineLength: 72}, + + // Used to work around some browser bugs where we can't use feature testing. + uaSniffed = { + isIE: /msie/.test(nav.userAgent.toLowerCase()), + isIE_5or6: /msie 6/.test(nav.userAgent.toLowerCase()) || /msie 5/.test(nav.userAgent.toLowerCase()), + isOpera: /opera/.test(nav.userAgent.toLowerCase()) + }; + + var defaultsStrings = { + bold: "Strong Ctrl+B", + boldexample: "strong text", + + italic: "Emphasis Ctrl+I", + italicexample: "emphasized text", + + strikethrough: "Strikethrough Ctrl+X", + strikethroughexample: "strikethrough text", + + link: "Hyperlink Ctrl+L", + linkdescription: "enter link description here", + linkdialog: "

    Insert Hyperlink

    https://example.com/ \"optional title\"

    ", + + quote: "Blockquote
    Ctrl+Q", + quoteexample: "Blockquote", + + code: "Code
     Ctrl+K",
    +        codeexample: "enter code here",
    +
    +        image: "Image  Ctrl+G",
    +        imagedescription: "enter image description here",
    +        imagedialog: "

    Insert Image

    https://example.com/images/diagram.jpg \"optional title\"

    Need
    free image hosting?

    ", + + olist: "Numbered List
      Ctrl+O", + ulist: "Bulleted List
        Ctrl+U", + litem: "List item", + + heading: "Heading Ctrl+H", + headingexample: "Heading", + + hr: "Horizontal Rule
        Ctrl+R", + + readmore: "Read More Ctrl+M", + + toc: "TOC ", + + table: "Table - Ctrl+J", + + undo: "Undo - Ctrl+Z", + redo: "Redo - Ctrl+Y", + redomac: "Redo - Ctrl+Shift+Z", + + help: "Markdown Editing Help" + }; + + + // ------------------------------------------------------------------- + // YOUR CHANGES GO HERE + // + // I've tried to localize the things you are likely to change to + // this area. + // ------------------------------------------------------------------- + + // The default text that appears in the dialog input box when entering + // links. + var imageDefaultText = "https://"; + var linkDefaultText = "https://"; + + //Polyfill for node.remove() from MDN + // from:https://github.com/jserz/js_piece/blob/master/DOM/ChildNode/remove()/remove().md + (function (arr) { + arr.forEach(function (item) { + if (item.hasOwnProperty('remove')) { + return; + } + Object.defineProperty(item, 'remove', { + configurable: true, + enumerable: true, + writable: true, + value: function remove() { + this.parentNode.removeChild(this); + } + }); + }); + })([Element.prototype, CharacterData.prototype, DocumentType.prototype]); + // ------------------------------------------------------------------- + // END OF YOUR CHANGES + // ------------------------------------------------------------------- + + // options, if given, can have the following properties: + // options.helpButton = { handler: yourEventHandler } + // options.strings = { italicexample: "slanted text" } + // `yourEventHandler` is the click handler for the help button. + // If `options.helpButton` isn't given, not help button is created. + // `options.strings` can have any or all of the same properties as + // `defaultStrings` above, so you can just override some string displayed + // to the user on a case-by-case basis, or translate all strings to + // a different language. + // + // For backwards compatibility reasons, the `options` argument can also + // be just the `helpButton` object, and `strings.help` can also be set via + // `helpButton.title`. This should be considered legacy. + // + // The constructed editor object has the methods: + // - getConverter() returns the markdown converter object that was passed to the constructor + // - run() actually starts the editor; should be called after all necessary plugins are registered. Calling this more than once is a no-op. + // - refreshPreview() forces the preview to be updated. This method is only available after run() was called. + Markdown.Editor = function (markdownConverter, idPostfix, options) { + + options = options || {}; + + if (typeof options.handler === "function") { //backwards compatible behavior + options = {helpButton: options}; + } + options.strings = options.strings || {}; + if (options.helpButton) { + options.strings.help = options.strings.help || options.helpButton.title; + } + var getString = function (identifier) { + return options.strings[identifier] || defaultsStrings[identifier]; + } + + idPostfix = idPostfix || ""; + + var hooks = this.hooks = new Markdown.HookCollection(); + hooks.addNoop("onPreviewRefresh"); // called with no arguments after the preview has been refreshed + hooks.addNoop("postBlockquoteCreation"); // called with the user's selection *after* the blockquote was created; should return the actual to-be-inserted text + hooks.addFalse("insertImageDialog"); + /* called with one parameter: a callback to be called with the URL of the image. If the application creates + * its own image insertion dialog, this hook should return true, and the callback should be called with the chosen + * image url (or null if the user cancelled). If this hook returns false, the default dialog will be used. + */ + + this.getConverter = function () { + return markdownConverter; + } + + var that = this, + panels; + + this.run = function () { + if (panels) + return; // already initialized + + panels = new PanelCollection(idPostfix); + var commandManager = new CommandManager(hooks, getString); + var previewManager = new PreviewManager(markdownConverter, panels, function () { + hooks.onPreviewRefresh(); + }); + var undoManager, uiManager; + + if (!/\?noundo/.test(doc.location.href)) { + undoManager = new UndoManager(function () { + previewManager.refresh(); + if (uiManager) // not available on the first call + uiManager.setUndoRedoButtonStates(); + }, panels); + this.textOperation = function (f) { + undoManager.setCommandMode(); + f(); + that.refreshPreview(); + } + } + + uiManager = new UIManager(idPostfix, panels, undoManager, previewManager, commandManager, options.helpButton, getString); + uiManager.setUndoRedoButtonStates(); + + var forceRefresh = that.refreshPreview = function () { + previewManager.refresh(true); + }; + + forceRefresh(); + }; + + } + + // before: contains all the text in the input box BEFORE the selection. + // after: contains all the text in the input box AFTER the selection. + function Chunks() { + } + + // startRegex: a regular expression to find the start tag + // endRegex: a regular expresssion to find the end tag + Chunks.prototype.findTags = function (startRegex, endRegex) { + + var chunkObj = this; + var regex; + + if (startRegex) { + + regex = util.extendRegExp(startRegex, "", "$"); + + this.before = this.before.replace(regex, + function (match) { + chunkObj.startTag = chunkObj.startTag + match; + return ""; + }); + + regex = util.extendRegExp(startRegex, "^", ""); + + this.selection = this.selection.replace(regex, + function (match) { + chunkObj.startTag = chunkObj.startTag + match; + return ""; + }); + } + + if (endRegex) { + + regex = util.extendRegExp(endRegex, "", "$"); + + this.selection = this.selection.replace(regex, + function (match) { + chunkObj.endTag = match + chunkObj.endTag; + return ""; + }); + + regex = util.extendRegExp(endRegex, "^", ""); + + this.after = this.after.replace(regex, + function (match) { + chunkObj.endTag = match + chunkObj.endTag; + return ""; + }); + } + }; + + // If remove is false, the whitespace is transferred + // to the before/after regions. + // + // If remove is true, the whitespace disappears. + Chunks.prototype.trimWhitespace = function (remove) { + var beforeReplacer, afterReplacer, that = this; + if (remove) { + beforeReplacer = afterReplacer = ""; + } else { + beforeReplacer = function (s) { + that.before += s; + return ""; + } + afterReplacer = function (s) { + that.after = s + that.after; + return ""; + } + } + + this.selection = this.selection.replace(/^(\s*)/, beforeReplacer).replace(/(\s*)$/, afterReplacer); + }; + + + Chunks.prototype.skipLines = function (nLinesBefore, nLinesAfter, findExtraNewlines) { + + if (nLinesBefore === undefined) { + nLinesBefore = 1; + } + + if (nLinesAfter === undefined) { + nLinesAfter = 1; + } + + nLinesBefore++; + nLinesAfter++; + + var regexText; + var replacementText; + + // chrome bug ... documented at: http://meta.stackoverflow.com/questions/63307/blockquote-glitch-in-editor-in-chrome-6-and-7/65985#65985 + if (navigator.userAgent.match(/Chrome/)) { + "X".match(/()./); + } + + this.selection = this.selection.replace(/(^\n*)/, ""); + + this.startTag = this.startTag + re.$1; + + this.selection = this.selection.replace(/(\n*$)/, ""); + this.endTag = this.endTag + re.$1; + this.startTag = this.startTag.replace(/(^\n*)/, ""); + this.before = this.before + re.$1; + this.endTag = this.endTag.replace(/(\n*$)/, ""); + this.after = this.after + re.$1; + + if (this.before) { + + regexText = replacementText = ""; + + while (nLinesBefore--) { + regexText += "\\n?"; + replacementText += "\n"; + } + + if (findExtraNewlines) { + regexText = "\\n*"; + } + this.before = this.before.replace(new re(regexText + "$", ""), replacementText); + } + + if (this.after) { + + regexText = replacementText = ""; + + while (nLinesAfter--) { + regexText += "\\n?"; + replacementText += "\n"; + } + if (findExtraNewlines) { + regexText = "\\n*"; + } + + this.after = this.after.replace(new re(regexText, ""), replacementText); + } + }; + + // end of Chunks + + // A collection of the important regions on the page. + // Cached so we don't have to keep traversing the DOM. + // Also holds ieCachedRange and ieCachedScrollTop, where necessary; working around + // this issue: + // Internet explorer has problems with CSS sprite buttons that use HTML + // lists. When you click on the background image "button", IE will + // select the non-existent link text and discard the selection in the + // textarea. The solution to this is to cache the textarea selection + // on the button's mousedown event and set a flag. In the part of the + // code where we need to grab the selection, we check for the flag + // and, if it's set, use the cached area instead of querying the + // textarea. + // + // This ONLY affects Internet Explorer (tested on versions 6, 7 + // and 8) and ONLY on button clicks. Keyboard shortcuts work + // normally since the focus never leaves the textarea. + function PanelCollection(postfix) { + this.buttonBar = doc.getElementById("wmd-button-bar" + postfix); + this.preview = doc.getElementById("wmd-preview" + postfix); + this.input = doc.getElementById("wmd-input" + postfix); + }; + + // Returns true if the DOM element is visible, false if it's hidden. + // Checks if display is anything other than none. + util.isVisible = function (elem) { + + if (window.getComputedStyle) { + // Most browsers + return window.getComputedStyle(elem, null).getPropertyValue("display") !== "none"; + } + else if (elem.currentStyle) { + // IE + return elem.currentStyle["display"] !== "none"; + } + }; + + + // Adds a listener callback to a DOM element which is fired on a specified + // event. + util.addEvent = function (elem, event, listener) { + if (elem.attachEvent) { + // IE only. The "on" is mandatory. + elem.attachEvent("on" + event, listener); + } + else { + // Other browsers. + elem.addEventListener(event, listener, false); + } + }; + + + // Removes a listener callback from a DOM element which is fired on a specified + // event. + util.removeEvent = function (elem, event, listener) { + if (elem.detachEvent) { + // IE only. The "on" is mandatory. + elem.detachEvent("on" + event, listener); + } + else { + // Other browsers. + elem.removeEventListener(event, listener, false); + } + }; + + // Converts \r\n and \r to \n. + util.fixEolChars = function (text) { + text = text.replace(/\r\n/g, "\n"); + text = text.replace(/\r/g, "\n"); + return text; + }; + + // Extends a regular expression. Returns a new RegExp + // using pre + regex + post as the expression. + // Used in a few functions where we have a base + // expression and we want to pre- or append some + // conditions to it (e.g. adding "$" to the end). + // The flags are unchanged. + // + // regex is a RegExp, pre and post are strings. + util.extendRegExp = function (regex, pre, post) { + + if (pre === null || pre === undefined) { + pre = ""; + } + if (post === null || post === undefined) { + post = ""; + } + + var pattern = regex.toString(); + var flags; + + // Replace the flags with empty space and store them. + pattern = pattern.replace(/\/([gim]*)$/, function (wholeMatch, flagsPart) { + flags = flagsPart; + return ""; + }); + + // Remove the slash delimiters on the regular expression. + pattern = pattern.replace(/(^\/|\/$)/g, ""); + pattern = pre + pattern + post; + + return new re(pattern, flags); + } + + // UNFINISHED + // The assignment in the while loop makes jslint cranky. + // I'll change it to a better loop later. + position.getTop = function (elem, isInner) { + var result = elem.offsetTop; + if (!isInner) { + while (elem = elem.offsetParent) { + result += elem.offsetTop; + } + } + return result; + }; + + position.getHeight = function (elem) { + return elem.offsetHeight || elem.scrollHeight; + }; + + position.getWidth = function (elem) { + return elem.offsetWidth || elem.scrollWidth; + }; + + position.getPageSize = function () { + + var scrollWidth, scrollHeight; + var innerWidth, innerHeight; + + // It's not very clear which blocks work with which browsers. + if (self.innerHeight && self.scrollMaxY) { + scrollWidth = doc.body.scrollWidth; + scrollHeight = self.innerHeight + self.scrollMaxY; + } + else if (doc.body.scrollHeight > doc.body.offsetHeight) { + scrollWidth = doc.body.scrollWidth; + scrollHeight = doc.body.scrollHeight; + } + else { + scrollWidth = doc.body.offsetWidth; + scrollHeight = doc.body.offsetHeight; + } + + if (self.innerHeight) { + // Non-IE browser + innerWidth = self.innerWidth; + innerHeight = self.innerHeight; + } + else if (doc.documentElement && doc.documentElement.clientHeight) { + // Some versions of IE (IE 6 w/ a DOCTYPE declaration) + innerWidth = doc.documentElement.clientWidth; + innerHeight = doc.documentElement.clientHeight; + } + else if (doc.body) { + // Other versions of IE + innerWidth = doc.body.clientWidth; + innerHeight = doc.body.clientHeight; + } + + var maxWidth = Math.max(scrollWidth, innerWidth); + var maxHeight = Math.max(scrollHeight, innerHeight); + return [maxWidth, maxHeight, innerWidth, innerHeight]; + }; + + // Handles pushing and popping TextareaStates for undo/redo commands. + // I should rename the stack variables to list. + function UndoManager(callback, panels) { + + var undoObj = this; + var undoStack = []; // A stack of undo states + var stackPtr = 0; // The index of the current state + var mode = "none"; + var lastState; // The last state + var timer; // The setTimeout handle for cancelling the timer + var inputStateObj; + + // Set the mode for later logic steps. + var setMode = function (newMode, noSave) { + if (mode != newMode) { + mode = newMode; + if (!noSave) { + saveState(); + } + } + + if (!uaSniffed.isIE || mode != "moving") { + timer = setTimeout(refreshState, 1); + } + else { + inputStateObj = null; + } + }; + + var refreshState = function (isInitialState) { + inputStateObj = new TextareaState(panels, isInitialState); + timer = undefined; + }; + + this.setCommandMode = function () { + mode = "command"; + saveState(); + timer = setTimeout(refreshState, 0); + }; + + this.canUndo = function () { + return stackPtr > 1; + }; + + this.canRedo = function () { + if (undoStack[stackPtr + 1]) { + return true; + } + return false; + }; + + // Removes the last state and restores it. + this.undo = function () { + + if (undoObj.canUndo()) { + if (lastState) { + // What about setting state -1 to null or checking for undefined? + lastState.restore(); + lastState = null; + } + else { + undoStack[stackPtr] = new TextareaState(panels); + undoStack[--stackPtr].restore(); + + if (callback) { + callback(); + } + } + } + + mode = "none"; + panels.input.focus(); + refreshState(); + }; + + // Redo an action. + this.redo = function () { + + if (undoObj.canRedo()) { + + undoStack[++stackPtr].restore(); + + if (callback) { + callback(); + } + } + + mode = "none"; + panels.input.focus(); + refreshState(); + }; + + // Push the input area state to the stack. + var saveState = function () { + var currState = inputStateObj || new TextareaState(panels); + + if (!currState) { + return false; + } + if (mode == "moving") { + if (!lastState) { + lastState = currState; + } + return; + } + if (lastState) { + if (undoStack[stackPtr - 1].text != lastState.text) { + undoStack[stackPtr++] = lastState; + } + lastState = null; + } + undoStack[stackPtr++] = currState; + undoStack[stackPtr + 1] = null; + if (callback) { + callback(); + } + }; + + var handleCtrlYZ = function (event) { + + var handled = false; + + if ((event.ctrlKey || event.metaKey) && !event.altKey) { + + // IE and Opera do not support charCode. + var keyCode = event.charCode || event.keyCode; + var keyCodeChar = String.fromCharCode(keyCode); + + switch (keyCodeChar.toLowerCase()) { + + case "y": + undoObj.redo(); + handled = true; + break; + + case "z": + if (!event.shiftKey) { + undoObj.undo(); + } + else { + undoObj.redo(); + } + handled = true; + break; + } + } + + if (handled) { + if (event.preventDefault) { + event.preventDefault(); + } + if (window.event) { + window.event.returnValue = false; + } + return; + } + }; + + // Set the mode depending on what is going on in the input area. + var handleModeChange = function (event) { + + if (!event.ctrlKey && !event.metaKey) { + + var keyCode = event.keyCode; + + if ((keyCode >= 33 && keyCode <= 40) || (keyCode >= 63232 && keyCode <= 63235)) { + // 33 - 40: page up/dn and arrow keys + // 63232 - 63235: page up/dn and arrow keys on safari + setMode("moving"); + } + else if (keyCode == 8 || keyCode == 46 || keyCode == 127) { + // 8: backspace + // 46: delete + // 127: delete + setMode("deleting"); + } + else if (keyCode == 13) { + // 13: Enter + setMode("newlines"); + } + else if (keyCode == 27) { + // 27: escape + setMode("escape"); + } + else if ((keyCode < 16 || keyCode > 20) && keyCode != 91) { + // 16-20 are shift, etc. + // 91: left window key + // I think this might be a little messed up since there are + // a lot of nonprinting keys above 20. + setMode("typing"); + } + } + }; + + var setEventHandlers = function () { + util.addEvent(panels.input, "keypress", function (event) { + // keyCode 89: y + // keyCode 90: z + if ((event.ctrlKey || event.metaKey) && !event.altKey && (event.keyCode == 89 || event.keyCode == 90)) { + event.preventDefault(); + } + }); + + var handlePaste = function () { + if (uaSniffed.isIE || (inputStateObj && inputStateObj.text != panels.input.value)) { + if (timer == undefined) { + mode = "paste"; + saveState(); + refreshState(); + } + } + }; + + util.addEvent(panels.input, "keydown", handleCtrlYZ); + util.addEvent(panels.input, "keydown", handleModeChange); + util.addEvent(panels.input, "mousedown", function () { + setMode("moving"); + }); + + panels.input.onpaste = handlePaste; + panels.input.ondrop = handlePaste; + }; + + var init = function () { + setEventHandlers(); + refreshState(true); + saveState(); + }; + + init(); + } + + // end of UndoManager + + // The input textarea state/contents. + // This is used to implement undo/redo by the undo manager. + function TextareaState(panels, isInitialState) { + + // Aliases + var stateObj = this; + var inputArea = panels.input; + this.init = function () { + if (!util.isVisible(inputArea)) { + return; + } + if (!isInitialState && doc.activeElement && doc.activeElement !== inputArea) { // this happens when tabbing out of the input box + return; + } + + this.setInputAreaSelectionStartEnd(); + this.scrollTop = inputArea.scrollTop; + if (!this.text && inputArea.selectionStart || inputArea.selectionStart === 0) { + this.text = inputArea.value; + } + + } + + // Sets the selected text in the input box after we've performed an + // operation. + this.setInputAreaSelection = function () { + + if (!util.isVisible(inputArea)) { + return; + } + + if (inputArea.selectionStart !== undefined && !uaSniffed.isOpera) { + + inputArea.focus(); + inputArea.selectionStart = stateObj.start; + inputArea.selectionEnd = stateObj.end; + inputArea.scrollTop = stateObj.scrollTop; + } + else if (doc.selection) { + + if (doc.activeElement && doc.activeElement !== inputArea) { + return; + } + + inputArea.focus(); + var range = inputArea.createTextRange(); + range.moveStart("character", -inputArea.value.length); + range.moveEnd("character", -inputArea.value.length); + range.moveEnd("character", stateObj.end); + range.moveStart("character", stateObj.start); + range.select(); + } + }; + + this.setInputAreaSelectionStartEnd = function () { + + if (!panels.ieCachedRange && (inputArea.selectionStart || inputArea.selectionStart === 0)) { + + stateObj.start = inputArea.selectionStart; + stateObj.end = inputArea.selectionEnd; + } + else if (doc.selection) { + + stateObj.text = util.fixEolChars(inputArea.value); + + // IE loses the selection in the textarea when buttons are + // clicked. On IE we cache the selection. Here, if something is cached, + // we take it. + var range = panels.ieCachedRange || doc.selection.createRange(); + + var fixedRange = util.fixEolChars(range.text); + var marker = "\x07"; + var markedRange = marker + fixedRange + marker; + range.text = markedRange; + var inputText = util.fixEolChars(inputArea.value); + + range.moveStart("character", -markedRange.length); + range.text = fixedRange; + + stateObj.start = inputText.indexOf(marker); + stateObj.end = inputText.lastIndexOf(marker) - marker.length; + + var len = stateObj.text.length - util.fixEolChars(inputArea.value).length; + + if (len) { + range.moveStart("character", -fixedRange.length); + while (len--) { + fixedRange += "\n"; + stateObj.end += 1; + } + range.text = fixedRange; + } + + if (panels.ieCachedRange) + stateObj.scrollTop = panels.ieCachedScrollTop; // this is set alongside with ieCachedRange + + panels.ieCachedRange = null; + + this.setInputAreaSelection(); + } + }; + + // Restore this state into the input area. + this.restore = function () { + + if (stateObj.text != undefined && stateObj.text != inputArea.value) { + inputArea.value = stateObj.text; + } + this.setInputAreaSelection(); + inputArea.scrollTop = stateObj.scrollTop; + }; + + // Gets a collection of HTML chunks from the inptut textarea. + this.getChunks = function () { + + var chunk = new Chunks(); + chunk.before = util.fixEolChars(stateObj.text.substring(0, stateObj.start)); + chunk.startTag = ""; + chunk.selection = util.fixEolChars(stateObj.text.substring(stateObj.start, stateObj.end)); + chunk.endTag = ""; + chunk.after = util.fixEolChars(stateObj.text.substring(stateObj.end)); + chunk.scrollTop = stateObj.scrollTop; + + return chunk; + }; + + // Sets the TextareaState properties given a chunk of markdown. + this.setChunks = function (chunk) { + + chunk.before = chunk.before + chunk.startTag; + chunk.after = chunk.endTag + chunk.after; + + this.start = chunk.before.length; + this.end = chunk.before.length + chunk.selection.length; + this.text = chunk.before + chunk.selection + chunk.after; + this.scrollTop = chunk.scrollTop; + }; + this.init(); + }; + + function PreviewManager(converter, panels, previewRefreshCallback) { + + var managerObj = this; + var timeout; + var elapsedTime; + var oldInputText; + var maxDelay = 3000; + var startType = "delayed"; // The other legal value is "manual" + + // Adds event listeners to elements + var setupEvents = function (inputElem, listener) { + + util.addEvent(inputElem, "input", listener); + inputElem.onpaste = listener; + inputElem.ondrop = listener; + + util.addEvent(inputElem, "keypress", listener); + util.addEvent(inputElem, "keydown", listener); + }; + + var getDocScrollTop = function () { + + var result = 0; + + if (window.innerHeight) { + result = window.pageYOffset; + } + else if (doc.documentElement && doc.documentElement.scrollTop) { + result = doc.documentElement.scrollTop; + } + else if (doc.body) { + result = doc.body.scrollTop; + } + + return result; + }; + + var makePreviewHtml = function () { + + // If there is no registered preview panel + // there is nothing to do. + if (!panels.preview) + return; + + + var text = panels.input.value; + if (text && text == oldInputText) { + return; // Input text hasn't changed. + } + else { + oldInputText = text; + } + + var prevTime = new Date().getTime(); + + text = converter.makeHtml(text); + + // Calculate the processing time of the HTML creation. + // It's used as the delay time in the event listener. + var currTime = new Date().getTime(); + elapsedTime = currTime - prevTime; + + pushPreviewHtml(text); + }; + + // setTimeout is already used. Used as an event listener. + var applyTimeout = function () { + + if (timeout) { + clearTimeout(timeout); + timeout = undefined; + } + + if (startType !== "manual") { + + var delay = 0; + + if (startType === "delayed") { + delay = elapsedTime; + } + + if (delay > maxDelay) { + delay = maxDelay; + } + timeout = setTimeout(makePreviewHtml, delay); + } + }; + + var getScaleFactor = function (panel) { + if (panel.scrollHeight <= panel.clientHeight) { + return 1; + } + return panel.scrollTop / (panel.scrollHeight - panel.clientHeight); + }; + + var setPanelScrollTops = function () { + if (panels.preview) { + panels.preview.scrollTop = (panels.preview.scrollHeight - panels.preview.clientHeight) * getScaleFactor(panels.preview); + } + }; + + this.refresh = function (requiresRefresh) { + + if (requiresRefresh) { + oldInputText = ""; + makePreviewHtml(); + } + else { + applyTimeout(); + } + }; + + this.processingTime = function () { + return elapsedTime; + }; + + var isFirstTimeFilled = true; + + // IE doesn't let you use innerHTML if the element is contained somewhere in a table + // (which is the case for inline editing) -- in that case, detach the element, set the + // value, and reattach. Yes, that *is* ridiculous. + var ieSafePreviewSet = function (text) { + var preview = panels.preview; + var parent = preview.parentNode; + var sibling = preview.nextSibling; + parent.removeChild(preview); + preview.innerHTML = text; + if (!sibling) + parent.appendChild(preview); + else + parent.insertBefore(preview, sibling); + } + + var nonSuckyBrowserPreviewSet = function (text) { + panels.preview.innerHTML = text; + } + + var previewSetter; + + var previewSet = function (text) { + if (previewSetter) + return previewSetter(text); + + try { + nonSuckyBrowserPreviewSet(text); + previewSetter = nonSuckyBrowserPreviewSet; + } catch (e) { + previewSetter = ieSafePreviewSet; + previewSetter(text); + } + }; + + var pushPreviewHtml = function (text) { + + var emptyTop = position.getTop(panels.input) - getDocScrollTop(); + + if (panels.preview) { + previewSet(text); + previewRefreshCallback(); + } + + setPanelScrollTops(); + + if (isFirstTimeFilled) { + isFirstTimeFilled = false; + return; + } + + var fullTop = position.getTop(panels.input) - getDocScrollTop(); + + if (uaSniffed.isIE) { + setTimeout(function () { + window.scrollBy(0, fullTop - emptyTop); + }, 0); + } + else { + window.scrollBy(0, fullTop - emptyTop); + } + }; + + var init = function () { + + setupEvents(panels.input, applyTimeout); + makePreviewHtml(); + + if (panels.preview) { + panels.preview.scrollTop = 0; + } + }; + + init(); + }; + + // Creates the background behind the hyperlink text entry box. + // And download dialog + // Most of this has been moved to CSS but the div creation and + // browser-specific hacks remain here. + ui.createBackground = function () { + + var background = doc.createElement("div"), + style = background.style; + + background.className = "wmd-prompt-background"; + + style.position = "absolute"; + style.top = "0"; + + style.zIndex = "1000"; + + if (uaSniffed.isIE) { + style.filter = "alpha(opacity=50)"; + } + else { + style.opacity = "0.5"; + } + + var pageSize = position.getPageSize(); + style.height = pageSize[1] + "px"; + + if (uaSniffed.isIE) { + style.left = doc.documentElement.scrollLeft; + style.width = doc.documentElement.clientWidth; + } + else { + style.left = "0"; + style.width = "100%"; + } + + doc.body.appendChild(background); + return background; + }; + + // This simulates a modal dialog box and asks for the URL when you + // click the hyperlink or image buttons. + // + // text: The html for the input box. + // defaultInputText: The default value that appears in the input box. + // callback: The function which is executed when the prompt is dismissed, either via OK or Cancel. + // It receives a single argument; either the entered text (if OK was chosen) or null (if Cancel + // was chosen). + ui.prompt = function (text, defaultInputText, callback) { + + // These variables need to be declared at this level since they are used + // in multiple functions. + var dialog; // The dialog box. + var input; // The text box where you enter the hyperlink. + + + if (defaultInputText === undefined) { + defaultInputText = ""; + } + + // Used as a keydown event handler. Esc dismisses the prompt. + // Key code 27 is ESC. + var checkEscape = function (key) { + var code = (key.charCode || key.keyCode); + if (code === 27) { + close(true); + } + }; + + // Dismisses the hyperlink input box. + // isCancel is true if we don't care about the input text. + // isCancel is false if we are going to keep the text. + var close = function (isCancel) { + util.removeEvent(doc.body, "keydown", checkEscape); + var text = input.value; + + if (isCancel) { + text = null; + } + else { + // Fixes common pasting errors. + text = text.replace(/^http:\/\/(https?|ftp):\/\//, '$1://'); + if (!/^(?:https?|ftp):\/\//.test(text)) + text = 'https://' + text; + } + + dialog.parentNode.removeChild(dialog); + + callback(text); + return false; + }; + + + // Create the text input box form/window. + var createDialog = function () { + + // The main dialog box. + dialog = doc.createElement("div"); + dialog.className = "wmd-prompt-dialog"; + dialog.style.padding = "10px;"; + dialog.style.position = "fixed"; + dialog.style.width = "400px"; + dialog.style.zIndex = "1001"; + + // The dialog text. + var question = doc.createElement("div"); + question.innerHTML = text; + question.style.padding = "5px"; + dialog.appendChild(question); + + // The web form container for the text box and buttons. + var form = doc.createElement("form"), + style = form.style; + form.onsubmit = function () { + return close(false); + }; + style.padding = "0"; + style.margin = "0"; + style.cssFloat = "left"; + style.width = "100%"; + style.textAlign = "center"; + style.position = "relative"; + dialog.appendChild(form); + + // The input text box + input = doc.createElement("input"); + input.type = "text"; + input.value = defaultInputText; + style = input.style; + style.display = "block"; + style.width = "80%"; + style.marginLeft = style.marginRight = "auto"; + form.appendChild(input); + + // The ok button + var okButton = doc.createElement("input"); + okButton.type = "button"; + okButton.onclick = function () { + return close(false); + }; + okButton.value = "OK"; + style = okButton.style; + style.margin = "10px"; + style.display = "inline"; + style.width = "7em"; + + + // The cancel button + var cancelButton = doc.createElement("input"); + cancelButton.type = "button"; + cancelButton.onclick = function () { + return close(true); + }; + cancelButton.value = "Cancel"; + style = cancelButton.style; + style.margin = "10px"; + style.display = "inline"; + style.width = "7em"; + + form.appendChild(okButton); + form.appendChild(cancelButton); + + util.addEvent(doc.body, "keydown", checkEscape); + dialog.style.top = "50%"; + dialog.style.left = "50%"; + dialog.style.display = "block"; + if (uaSniffed.isIE_5or6) { + dialog.style.position = "absolute"; + dialog.style.top = doc.documentElement.scrollTop + 200 + "px"; + dialog.style.left = "50%"; + } + doc.body.appendChild(dialog); + + // This has to be done AFTER adding the dialog to the form if you + // want it to be centered. + dialog.style.marginTop = -(position.getHeight(dialog) / 2) + "px"; + dialog.style.marginLeft = -(position.getWidth(dialog) / 2) + "px"; + + }; + + // Why is this in a zero-length timeout? + // Is it working around a browser bug? + setTimeout(function () { + + createDialog(); + + var defTextLen = defaultInputText.length; + if (input.selectionStart !== undefined) { + input.selectionStart = 0; + input.selectionEnd = defTextLen; + } + else if (input.createTextRange) { + var range = input.createTextRange(); + range.collapse(false); + range.moveStart("character", -defTextLen); + range.moveEnd("character", defTextLen); + range.select(); + } + + input.focus(); + }, 0); + }; + + function UIManager(postfix, panels, undoManager, previewManager, commandManager, helpOptions, getString) { + + var inputBox = panels.input, + buttons = {}; // buttons.undo, buttons.link, etc. The actual DOM elements. + + makeSpritedButtonRow(); + + var keyEvent = "keydown"; + if (uaSniffed.isOpera) { + keyEvent = "keypress"; + } + + util.addEvent(inputBox, keyEvent, function (key) { + + // Check to see if we have a button key and, if so execute the callback. + if ((key.ctrlKey || key.metaKey) && !key.altKey && !key.shiftKey) { + + var keyCode = key.charCode || key.keyCode; + var keyCodeStr = String.fromCharCode(keyCode).toLowerCase(); + + switch (keyCodeStr) { + case "b": + doClick(buttons.bold); + break; + case "i": + doClick(buttons.italic); + break; + case "l": + doClick(buttons.link); + break; + case "q": + doClick(buttons.quote); + break; + case "k": + doClick(buttons.code); + break; + case "g": + doClick(buttons.image); + break; + case "o": + doClick(buttons.olist); + break; + case "u": + doClick(buttons.ulist); + break; + case "h": + doClick(buttons.heading); + break; + case "r": + doClick(buttons.hr); + break; + case "m": + doClick(buttons.readmore); + break; + // case "x": + // doClick(buttons.strikethrough); + // break; + case "j": + doClick(buttons.table); + break; + // case "y": + // doClick(buttons.redo); + // break; + // case "z": + // if (key.shiftKey) { + // doClick(buttons.redo); + // } + // else { + // doClick(buttons.undo); + // } + // break; + default: + return; + } + + + if (key.preventDefault) { + key.preventDefault(); + } + + if (window.event) { + window.event.returnValue = false; + } + } + }); + + // Auto-indent on shift-enter + util.addEvent(inputBox, "keyup", function (key) { + if (key.shiftKey && !key.ctrlKey && !key.metaKey) { + var keyCode = key.charCode || key.keyCode; + // Character 13 is Enter + if (keyCode === 13) { + var fakeButton = {}; + fakeButton.textOp = bindCommand("doAutoindent"); + doClick(fakeButton); + } + } + }); + + // special handler because IE clears the context of the textbox on ESC + if (uaSniffed.isIE) { + util.addEvent(inputBox, "keydown", function (key) { + var code = key.keyCode; + if (code === 27) { + return false; + } + }); + } + + + // Perform the button's action. + function doClick(button) { + + inputBox.focus(); + + if (button.textOp) { + + if (undoManager) { + undoManager.setCommandMode(); + } + + var state = new TextareaState(panels); + + if (!state) { + return; + } + + var chunks = state.getChunks(); + + // Some commands launch a "modal" prompt dialog. Javascript + // can't really make a modal dialog box and the WMD code + // will continue to execute while the dialog is displayed. + // This prevents the dialog pattern I'm used to and means + // I can't do something like this: + // + // var link = CreateLinkDialog(); + // makeMarkdownLink(link); + // + // Instead of this straightforward method of handling a + // dialog I have to pass any code which would execute + // after the dialog is dismissed (e.g. link creation) + // in a function parameter. + // + // Yes this is awkward and I think it sucks, but there's + // no real workaround. Only the image and link code + // create dialogs and require the function pointers. + var fixupInputArea = function () { + + inputBox.focus(); + + if (chunks) { + state.setChunks(chunks); + } + + state.restore(); + previewManager.refresh(); + }; + + var noCleanup = button.textOp(chunks, fixupInputArea); + + if (!noCleanup) { + fixupInputArea(); + } + + } + + if (button.execute) { + button.execute(undoManager); + } + }; + + function setupButton(button, isEnabled) { + + var normalYShift = "note-btn btn btn-light btn-sm"; + var disabledYShift = "note-btn btn btn-light btn-sm disabled"; + var highlightYShift = ""; + var image = button.getElementsByTagName("span")[0]; + if (isEnabled) { + image.className = normalYShift; + if (!button.isHelp) { + button.onclick = function () { + if (this.onmouseout) { + this.onmouseout(); + } + doClick(this); + return false; + } + } + } + else { + image.className = disabledYShift; + button.onmouseover = button.onmouseout = button.onclick = function () { + }; + } + } + + function bindCommand(method) { + if (typeof method === "string") + method = commandManager[method]; + return function () { + method.apply(commandManager, arguments); + } + } + + function makeSpritedButtonRow() { + + var buttonBar = panels.buttonBar; + + var normalYShift = "note-btn btn btn-light btn-sm"; + var disabledYShift = "note-btn btn btn-light btn-sm disabled"; + var highlightYShift = ""; + + var buttonRow = document.createElement("ul"); + buttonRow.style.padding = "0px 10px"; + buttonRow.id = "wmd-button-row" + postfix; + buttonRow.className = 'wmd-button-row'; + buttonRow = buttonBar.appendChild(buttonRow); + var xPosition = 0; + var makeButton = function (id, title, XClass, textOp) { + var button = document.createElement("li"); + button.className = "wmd-button"; + var buttonImage = document.createElement("span"); + var buttonIcon = document.createElement("i"); + buttonImage.className = "note-btn btn btn-light btn-sm"; + buttonIcon.className = XClass; + buttonImage.appendChild(buttonIcon); + button.id = id + postfix; + button.appendChild(buttonImage); + button.title = title; + if (textOp) + button.textOp = textOp; + setupButton(button, true); + buttonRow.appendChild(button); + return button; + }; + var makeSpacer = function (num) { + var spacer = document.createElement("li"); + spacer.className = "wmd-spacer wmd-spacer" + num; + spacer.id = "wmd-spacer" + num + postfix; + buttonRow.appendChild(spacer); + } + + buttons.bold = makeButton("wmd-bold-button", getString("bold"), "fa fa-bold", bindCommand("doBold")); + buttons.italic = makeButton("wmd-italic-button", getString("italic"), "fa fa-italic", bindCommand("doItalic")); + buttons.heading = makeButton("wmd-heading-button", getString("heading"), "fa fa-header", bindCommand("doHeading")); + buttons.strikethrough = makeButton("wmd-strikethrough-button", getString("strikethrough"), "fa fa-strikethrough", bindCommand("doStrikethrough")); + //makeSpacer(1); + buttons.olist = makeButton("wmd-olist-button", getString("olist"), "fa fa-list-ol", bindCommand(function (chunk, postProcessing) { + this.doList(chunk, postProcessing, true); + })); + buttons.ulist = makeButton("wmd-ulist-button", getString("ulist"), "fa fa-list-ul", bindCommand(function (chunk, postProcessing) { + this.doList(chunk, postProcessing, false); + })); + buttons.quote = makeButton("wmd-quote-button", getString("quote"), "fa fa-quote-right", bindCommand("doBlockquote")); + buttons.code = makeButton("wmd-code-button", getString("code"), "fa fa-code", bindCommand("doCode")); + buttons.table = makeButton("wmd-table-button", getString("table"), "fa fa-table", bindCommand("doTable")); + //makeSpacer(2); + buttons.link = makeButton("wmd-link-button", getString("link"), "fa fa-link", bindCommand(function (chunk, postProcessing) { + return this.doLinkOrImage(chunk, postProcessing, false); + })); + buttons.image = makeButton("wmd-image-button", getString("image"), "fa fa-image", bindCommand(function (chunk, postProcessing) { + return this.doLinkOrImage(chunk, postProcessing, true); + })); + buttons.hr = makeButton("wmd-hr-button", getString("hr"), "fa fa-ellipsis-h", bindCommand("doHorizontalRule")); + buttons.readmore = makeButton("wmd-readmore-button", getString("readmore"), "fa fa-arrow-right", bindCommand("doReadMore")); + buttons.toc = makeButton("wmd-toc-button", getString("toc"), "fa fa-list-alt", bindCommand("doTOC")); + //makeSpacer(3); + buttons.undo = makeButton("wmd-undo-button", getString("undo"), "fa-solid fa-rotate-left", null); + buttons.undo.execute = function (manager) { + if (manager) manager.undo(); + }; + + var redoTitle = /win/.test(nav.platform.toLowerCase()) ? + getString("redo") : + getString("redomac"); // mac and other non-Windows platforms + + buttons.redo = makeButton("wmd-redo-button", redoTitle, "fa-solid fa-rotate-right", null); + buttons.redo.execute = function (manager) { + if (manager) manager.redo(); + }; + + if (helpOptions) { + var helpButton = document.createElement("li"); + var helpButtonImage = document.createElement("span"); + helpButton.appendChild(helpButtonImage); + helpButton.className = "wmd-button wmd-help-button"; + helpButton.id = "wmd-help-button" + postfix; + helpButton.XClass = "note-btn btn btn-light btn-sm"; + helpButton.isHelp = true; + helpButton.style.right = "0px"; + helpButton.title = getString("help"); + helpButton.onclick = helpOptions.handler; + + setupButton(helpButton, true); + buttonRow.appendChild(helpButton); + buttons.help = helpButton; + } + + setUndoRedoButtonStates(); + } + + function setUndoRedoButtonStates() { + if (undoManager) { + setupButton(buttons.undo, undoManager.canUndo()); + setupButton(buttons.redo, undoManager.canRedo()); + } + }; + + this.setUndoRedoButtonStates = setUndoRedoButtonStates; + + } + + function CommandManager(pluginHooks, getString) { + this.hooks = pluginHooks; + this.getString = getString; + } + + var commandProto = CommandManager.prototype; + + // The markdown symbols - 4 spaces = code, > = blockquote, etc. + commandProto.prefixes = "(?:\\s{4,}|\\s*>|\\s*-\\s+|\\s*\\d+\\.|=|\\+|-|_|\\*|#|\\s*\\[[^\n]]+\\]:)"; + + // Remove markdown symbols from the chunk selection. + commandProto.unwrap = function (chunk) { + var txt = new re("([^\\n])\\n(?!(\\n|" + this.prefixes + "))", "g"); + chunk.selection = chunk.selection.replace(txt, "$1 $2"); + }; + + commandProto.wrap = function (chunk, len) { + this.unwrap(chunk); + var regex = new re("(.{1," + len + "})( +|$\\n?)", "gm"), + that = this; + + chunk.selection = chunk.selection.replace(regex, function (line, marked) { + if (new re("^" + that.prefixes, "").test(line)) { + return line; + } + return marked + "\n"; + }); + + chunk.selection = chunk.selection.replace(/\s+$/, ""); + }; + + commandProto.doBold = function (chunk, postProcessing) { + return this.doBorI(chunk, postProcessing, 2, this.getString("boldexample")); + }; + + commandProto.doItalic = function (chunk, postProcessing) { + return this.doBorI(chunk, postProcessing, 1, this.getString("italicexample")); + }; + + // chunk: The selected region that will be enclosed with */** + // nStars: 1 for italics, 2 for bold + // insertText: If you just click the button without highlighting text, this gets inserted + commandProto.doBorI = function (chunk, postProcessing, nStars, insertText) { + + // Get rid of whitespace and fixup newlines. + chunk.trimWhitespace(); + chunk.selection = chunk.selection.replace(/\n{2,}/g, "\n"); + + // Look for stars before and after. Is the chunk already marked up? + // note that these regex matches cannot fail + var starsBefore = /(\**$)/.exec(chunk.before)[0]; + var starsAfter = /(^\**)/.exec(chunk.after)[0]; + + var prevStars = Math.min(starsBefore.length, starsAfter.length); + + // Remove stars if we have to since the button acts as a toggle. + if ((prevStars >= nStars) && (prevStars != 2 || nStars != 1)) { + chunk.before = chunk.before.replace(re("[*]{" + nStars + "}$", ""), ""); + chunk.after = chunk.after.replace(re("^[*]{" + nStars + "}", ""), ""); + } + else if (!chunk.selection && starsAfter) { + // It's not really clear why this code is necessary. It just moves + // some arbitrary stuff around. + chunk.after = chunk.after.replace(/^([*_]*)/, ""); + chunk.before = chunk.before.replace(/(\s?)$/, ""); + var whitespace = re.$1; + chunk.before = chunk.before + starsAfter + whitespace; + } + else { + + // In most cases, if you don't have any selected text and click the button + // you'll get a selected, marked up region with the default text inserted. + if (!chunk.selection && !starsAfter) { + chunk.selection = insertText; + } + + // Add the true markup. + var markup = nStars <= 1 ? "*" : "**"; // shouldn't the test be = ? + chunk.before = chunk.before + markup; + chunk.after = markup + chunk.after; + } + + return; + }; + + commandProto.stripLinkDefs = function (text, defsToAdd) { + + text = text.replace(/^[ ]{0,3}\[(\d+)\]:[ \t]*\n?[ \t]*?[ \t]*\n?[ \t]*(?:(\n*)["(](.+?)[")][ \t]*)?(?:\n+|$)/gm, + function (totalMatch, id, link, newlines, title) { + defsToAdd[id] = totalMatch.replace(/\s*$/, ""); + if (newlines) { + // Strip the title and return that separately. + defsToAdd[id] = totalMatch.replace(/["(](.+?)[")]$/, ""); + return newlines + title; + } + return ""; + }); + + return text; + }; + + commandProto.addLinkDef = function (chunk, linkDef) { + + var refNumber = 0; // The current reference number + var defsToAdd = {}; // + // Start with a clean slate by removing all previous link definitions. + chunk.before = this.stripLinkDefs(chunk.before, defsToAdd); + chunk.selection = this.stripLinkDefs(chunk.selection, defsToAdd); + chunk.after = this.stripLinkDefs(chunk.after, defsToAdd); + + var defs = ""; + var regex = /(\[)((?:\[[^\]]*\]|[^\[\]])*)(\][ ]?(?:\n[ ]*)?\[)(\d+)(\])/g; + + var addDefNumber = function (def) { + refNumber++; + def = def.replace(/^[ ]{0,3}\[(\d+)\]:/, " [" + refNumber + "]:"); + defs += "\n" + def; + }; + + // note that + // a) the recursive call to getLink cannot go infinite, because by definition + // of regex, inner is always a proper substring of wholeMatch, and + // b) more than one level of nesting is neither supported by the regex + // nor making a lot of sense (the only use case for nesting is a linked image) + var getLink = function (wholeMatch, before, inner, afterInner, id, end) { + inner = inner.replace(regex, getLink); + if (defsToAdd[id]) { + addDefNumber(defsToAdd[id]); + return before + inner + afterInner + refNumber + end; + } + return wholeMatch; + }; + + chunk.before = chunk.before.replace(regex, getLink); + + if (linkDef) { + addDefNumber(linkDef); + } + else { + chunk.selection = chunk.selection.replace(regex, getLink); + } + + var refOut = refNumber; + + chunk.after = chunk.after.replace(regex, getLink); + + if (chunk.after) { + chunk.after = chunk.after.replace(/\n*$/, ""); + } + if (!chunk.after) { + chunk.selection = chunk.selection.replace(/\n*$/, ""); + } + + chunk.after += "\n\n" + defs; + + return refOut; + }; + + // takes the line as entered into the add link/as image dialog and makes + // sure the URL and the optinal title are "nice". + function properlyEncoded(linkdef) { + return linkdef.replace(/^\s*(.*?)(?:\s+"(.+)")?\s*$/, function (wholematch, link, title) { + link = link.replace(/\?.*$/, function (querypart) { + return querypart.replace(/\+/g, " "); // in the query string, a plus and a space are identical + }); + link = decodeURIComponent(link); // unencode first, to prevent double encoding + link = encodeURI(link).replace(/'/g, '%27').replace(/\(/g, '%28').replace(/\)/g, '%29'); + link = link.replace(/\?.*$/, function (querypart) { + return querypart.replace(/\+/g, "%2b"); // since we replaced plus with spaces in the query part, all pluses that now appear where originally encoded + }); + if (title) { + title = title.trim ? title.trim() : title.replace(/^\s*/, "").replace(/\s*$/, ""); + title = title.replace(/"/g, "quot;").replace(/\(/g, "(").replace(/\)/g, ")").replace(//g, ">"); + } + return title ? link + ' "' + title + '"' : link; + }); + } + + commandProto.doLinkOrImage = function (chunk, postProcessing, isImage) { + + chunk.trimWhitespace(); + chunk.findTags(/\s*!?\[/, /\][ ]?(?:\n[ ]*)?(\[.*?\])?/); + var background; + + if (chunk.endTag.length > 1 && chunk.startTag.length > 0) { + + chunk.startTag = chunk.startTag.replace(/!?\[/, ""); + chunk.endTag = ""; + this.addLinkDef(chunk, null); + + } + else { + + // We're moving start and end tag back into the selection, since (as we're in the else block) we're not + // *removing* a link, but *adding* one, so whatever findTags() found is now back to being part of the + // link text. linkEnteredCallback takes care of escaping any brackets. + chunk.selection = chunk.startTag + chunk.selection + chunk.endTag; + chunk.startTag = chunk.endTag = ""; + + if (/\n\n/.test(chunk.selection)) { + this.addLinkDef(chunk, null); + return; + } + var that = this; + // The function to be executed when you enter a link and press OK or Cancel. + // Marks up the link and adds the ref. + var linkEnteredCallback = function (link) { + + background.remove(); + + if (link !== null) { + // ( $1 + // [^\\] anything that's not a backslash + // (?:\\\\)* an even number (this includes zero) of backslashes + // ) + // (?= followed by + // [[\]] an opening or closing bracket + // ) + // + // In other words, a non-escaped bracket. These have to be escaped now to make sure they + // don't count as the end of the link or similar. + // Note that the actual bracket has to be a lookahead, because (in case of to subsequent brackets), + // the bracket in one match may be the "not a backslash" character in the next match, so it + // should not be consumed by the first match. + // The "prepend a space and finally remove it" steps makes sure there is a "not a backslash" at the + // start of the string, so this also works if the selection begins with a bracket. We cannot solve + // this by anchoring with ^, because in the case that the selection starts with two brackets, this + // would mean a zero-width match at the start. Since zero-width matches advance the string position, + // the first bracket could then not act as the "not a backslash" for the second. + chunk.selection = (" " + chunk.selection).replace(/([^\\](?:\\\\)*)(?=[[\]])/g, "$1\\").substr(1); + + // var linkDef = " [999]: " + properlyEncoded(link); + + // var num = that.addLinkDef(chunk, linkDef); + chunk.startTag = isImage ? "![" : "["; + // chunk.endTag = "][" + num + "]"; + chunk.endTag = "](" + properlyEncoded(link) + ")"; + + if (!chunk.selection) { + if (isImage) { + chunk.selection = that.getString("imagedescription"); + } + else { + chunk.selection = that.getString("linkdescription"); + } + } + } + postProcessing(); + }; + + background = ui.createBackground(); + + if (isImage) { + if (!this.hooks.insertImageDialog(linkEnteredCallback)) + ui.prompt(this.getString("imagedialog"), imageDefaultText, linkEnteredCallback); + } + else { + ui.prompt(this.getString("linkdialog"), linkDefaultText, linkEnteredCallback); + } + return true; + } + }; + + // When making a list, hitting shift-enter will put your cursor on the next line + // at the current indent level. + commandProto.doAutoindent = function (chunk, postProcessing) { + + var commandMgr = this, + fakeSelection = false; + + chunk.before = chunk.before.replace(/(\n|^)[ ]{0,3}([*+-]|\d+[.])[ \t]*\n$/, "\n\n"); + chunk.before = chunk.before.replace(/(\n|^)[ ]{0,3}>[ \t]*\n$/, "\n\n"); + chunk.before = chunk.before.replace(/(\n|^)[ \t]+\n$/, "\n\n"); + + // There's no selection, end the cursor wasn't at the end of the line: + // The user wants to split the current list item / code line / blockquote line + // (for the latter it doesn't really matter) in two. Temporarily select the + // (rest of the) line to achieve this. + if (!chunk.selection && !/^[ \t]*(?:\n|$)/.test(chunk.after)) { + chunk.after = chunk.after.replace(/^[^\n]*/, function (wholeMatch) { + chunk.selection = wholeMatch; + return ""; + }); + fakeSelection = true; + } + + if (/(\n|^)[ ]{0,3}([*+-]|\d+[.])[ \t]+.*\n$/.test(chunk.before)) { + if (commandMgr.doList) { + commandMgr.doList(chunk); + } + } + if (/(\n|^)[ ]{0,3}>[ \t]+.*\n$/.test(chunk.before)) { + if (commandMgr.doBlockquote) { + commandMgr.doBlockquote(chunk); + } + } + if (/(\n|^)(\t|[ ]{4,}).*\n$/.test(chunk.before)) { + if (commandMgr.doCode) { + commandMgr.doCode(chunk); + } + } + + if (fakeSelection) { + chunk.after = chunk.selection + chunk.after; + chunk.selection = ""; + } + }; + + commandProto.doBlockquote = function (chunk, postProcessing) { + + chunk.selection = chunk.selection.replace(/^(\n*)([^\r]+?)(\n*)$/, + function (totalMatch, newlinesBefore, text, newlinesAfter) { + chunk.before += newlinesBefore; + chunk.after = newlinesAfter + chunk.after; + return text; + }); + + chunk.before = chunk.before.replace(/(>[ \t]*)$/, + function (totalMatch, blankLine) { + chunk.selection = blankLine + chunk.selection; + return ""; + }); + + chunk.selection = chunk.selection.replace(/^(\s|>)+$/, ""); + chunk.selection = chunk.selection || this.getString("quoteexample"); + + // The original code uses a regular expression to find out how much of the + // text *directly before* the selection already was a blockquote: + + /* + if (chunk.before) { + chunk.before = chunk.before.replace(/\n?$/, "\n"); + } + chunk.before = chunk.before.replace(/(((\n|^)(\n[ \t]*)*>(.+\n)*.*)+(\n[ \t]*)*$)/, + function (totalMatch) { + chunk.startTag = totalMatch; + return ""; + }); + */ + + // This comes down to: + // Go backwards as many lines a possible, such that each line + // a) starts with ">", or + // b) is almost empty, except for whitespace, or + // c) is preceeded by an unbroken chain of non-empty lines + // leading up to a line that starts with ">" and at least one more character + // and in addition + // d) at least one line fulfills a) + // + // Since this is essentially a backwards-moving regex, it's susceptible to + // catstrophic backtracking and can cause the browser to hang; + // see e.g. http://meta.stackoverflow.com/questions/9807. + // + // Hence we replaced this by a simple state machine that just goes through the + // lines and checks for a), b), and c). + + var match = "", + leftOver = "", + line; + if (chunk.before) { + var lines = chunk.before.replace(/\n$/, "").split("\n"); + var inChain = false; + for (var i = 0; i < lines.length; i++) { + var good = false; + line = lines[i]; + inChain = inChain && line.length > 0; // c) any non-empty line continues the chain + if (/^>/.test(line)) { // a) + good = true; + if (!inChain && line.length > 1) // c) any line that starts with ">" and has at least one more character starts the chain + inChain = true; + } else if (/^[ \t]*$/.test(line)) { // b) + good = true; + } else { + good = inChain; // c) the line is not empty and does not start with ">", so it matches if and only if we're in the chain + } + if (good) { + match += line + "\n"; + } else { + leftOver += match + line; + match = "\n"; + } + } + if (!/(^|\n)>/.test(match)) { // d) + leftOver += match; + match = ""; + } + } + + chunk.startTag = match; + chunk.before = leftOver; + + // end of change + + if (chunk.after) { + chunk.after = chunk.after.replace(/^\n?/, "\n"); + } + + chunk.after = chunk.after.replace(/^(((\n|^)(\n[ \t]*)*>(.+\n)*.*)+(\n[ \t]*)*)/, + function (totalMatch) { + chunk.endTag = totalMatch; + return ""; + } + ); + + var replaceBlanksInTags = function (useBracket) { + + var replacement = useBracket ? "> " : ""; + + if (chunk.startTag) { + chunk.startTag = chunk.startTag.replace(/\n((>|\s)*)\n$/, + function (totalMatch, markdown) { + return "\n" + markdown.replace(/^[ ]{0,3}>?[ \t]*$/gm, replacement) + "\n"; + }); + } + if (chunk.endTag) { + chunk.endTag = chunk.endTag.replace(/^\n((>|\s)*)\n/, + function (totalMatch, markdown) { + return "\n" + markdown.replace(/^[ ]{0,3}>?[ \t]*$/gm, replacement) + "\n"; + }); + } + }; + + if (/^(?![ ]{0,3}>)/m.test(chunk.selection)) { + this.wrap(chunk, SETTINGS.lineLength - 2); + chunk.selection = chunk.selection.replace(/^/gm, "> "); + replaceBlanksInTags(true); + chunk.skipLines(); + } else { + chunk.selection = chunk.selection.replace(/^[ ]{0,3}> ?/gm, ""); + this.unwrap(chunk); + replaceBlanksInTags(false); + + if (!/^(\n|^)[ ]{0,3}>/.test(chunk.selection) && chunk.startTag) { + chunk.startTag = chunk.startTag.replace(/\n{0,2}$/, "\n\n"); + } + + if (!/(\n|^)[ ]{0,3}>.*$/.test(chunk.selection) && chunk.endTag) { + chunk.endTag = chunk.endTag.replace(/^\n{0,2}/, "\n\n"); + } + } + + chunk.selection = this.hooks.postBlockquoteCreation(chunk.selection); + + if (!/\n/.test(chunk.selection)) { + chunk.selection = chunk.selection.replace(/^(> *)/, + function (wholeMatch, blanks) { + chunk.startTag += blanks; + return ""; + }); + } + }; + + commandProto.doCode = function (chunk, postProcessing) { + + var hasTextBefore = /\S[ ]*$/.test(chunk.before); + var hasTextAfter = /^[ ]*\S/.test(chunk.after); + + // Use 'four space' markdown if the selection is on its own + // line or is multiline. + if ((!hasTextAfter && !hasTextBefore) || /\n/.test(chunk.selection)) { + + chunk.before = chunk.before.replace(/[ ]{4}$/, + function (totalMatch) { + chunk.selection = totalMatch + chunk.selection; + return ""; + }); + + var nLinesBack = 1; + var nLinesForward = 1; + + if (/(\n|^)(\t|[ ]{4,}).*\n$/.test(chunk.before)) { + nLinesBack = 0; + } + if (/^\n(\t|[ ]{4,})/.test(chunk.after)) { + nLinesForward = 0; + } + + chunk.skipLines(nLinesBack, nLinesForward); + + if (!chunk.selection) { + chunk.startTag = " "; + chunk.selection = this.getString("codeexample"); + } + else { + if (/^[ ]{0,3}\S/m.test(chunk.selection)) { + if (/\n/.test(chunk.selection)) + chunk.selection = chunk.selection.replace(/^/gm, " "); + else // if it's not multiline, do not select the four added spaces; this is more consistent with the doList behavior + chunk.before += " "; + } + else { + chunk.selection = chunk.selection.replace(/^(?:[ ]{4}|[ ]{0,3}\t)/gm, ""); + } + } + } + else { + // Use backticks (`) to delimit the code block. + + chunk.trimWhitespace(); + chunk.findTags(/`/, /`/); + + if (!chunk.startTag && !chunk.endTag) { + chunk.startTag = chunk.endTag = "`"; + if (!chunk.selection) { + chunk.selection = this.getString("codeexample"); + } + } + else if (chunk.endTag && !chunk.startTag) { + chunk.before += chunk.endTag; + chunk.endTag = ""; + } + else { + chunk.startTag = chunk.endTag = ""; + } + } + }; + + commandProto.doList = function (chunk, postProcessing, isNumberedList) { + + // These are identical except at the very beginning and end. + // Should probably use the regex extension function to make this clearer. + var previousItemsRegex = /(\n|^)(([ ]{0,3}([*+-]|\d+[.])[ \t]+.*)(\n.+|\n{2,}([*+-].*|\d+[.])[ \t]+.*|\n{2,}[ \t]+\S.*)*)\n*$/; + var nextItemsRegex = /^\n*(([ ]{0,3}([*+-]|\d+[.])[ \t]+.*)(\n.+|\n{2,}([*+-].*|\d+[.])[ \t]+.*|\n{2,}[ \t]+\S.*)*)\n*/; + + // The default bullet is a dash but others are possible. + // This has nothing to do with the particular HTML bullet, + // it's just a markdown bullet. + var bullet = "-"; + + // The number in a numbered list. + var num = 1; + + // Get the item prefix - e.g. " 1. " for a numbered list, " - " for a bulleted list. + var getItemPrefix = function () { + var prefix; + if (isNumberedList) { + prefix = " " + num + ". "; + num++; + } + else { + prefix = " " + bullet + " "; + } + return prefix; + }; + + // Fixes the prefixes of the other list items. + var getPrefixedItem = function (itemText) { + + // The numbering flag is unset when called by autoindent. + if (isNumberedList === undefined) { + isNumberedList = /^\s*\d/.test(itemText); + } + + // Renumber/bullet the list element. + itemText = itemText.replace(/^[ ]{0,3}([*+-]|\d+[.])\s/gm, + function (_) { + return getItemPrefix(); + }); + + return itemText; + }; + + chunk.findTags(/(\n|^)*[ ]{0,3}([*+-]|\d+[.])\s+/, null); + + if (chunk.before && !/\n$/.test(chunk.before) && !/^\n/.test(chunk.startTag)) { + chunk.before += chunk.startTag; + chunk.startTag = ""; + } + + if (chunk.startTag) { + + var hasDigits = /\d+[.]/.test(chunk.startTag); + chunk.startTag = ""; + chunk.selection = chunk.selection.replace(/\n[ ]{4}/g, "\n"); + this.unwrap(chunk); + chunk.skipLines(); + + if (hasDigits) { + // Have to renumber the bullet points if this is a numbered list. + chunk.after = chunk.after.replace(nextItemsRegex, getPrefixedItem); + } + if (isNumberedList == hasDigits) { + return; + } + } + + var nLinesUp = 1; + + chunk.before = chunk.before.replace(previousItemsRegex, + function (itemText) { + if (/^\s*([*+-])/.test(itemText)) { + bullet = re.$1; + } + nLinesUp = /[^\n]\n\n[^\n]/.test(itemText) ? 1 : 0; + return getPrefixedItem(itemText); + }); + + if (!chunk.selection) { + chunk.selection = this.getString("litem"); + } + + var prefix = getItemPrefix(); + + var nLinesDown = 1; + + chunk.after = chunk.after.replace(nextItemsRegex, + function (itemText) { + nLinesDown = /[^\n]\n\n[^\n]/.test(itemText) ? 1 : 0; + return getPrefixedItem(itemText); + }); + + chunk.trimWhitespace(true); + chunk.skipLines(nLinesUp, nLinesDown, true); + chunk.startTag = prefix; + var spaces = prefix.replace(/./g, " "); + this.wrap(chunk, SETTINGS.lineLength - spaces.length); + chunk.selection = chunk.selection.replace(/\n/g, "\n" + spaces); + + }; + + commandProto.doHeading = function (chunk, postProcessing) { + + // Remove leading/trailing whitespace and reduce internal spaces to single spaces. + chunk.selection = chunk.selection.replace(/\s+/g, " "); + chunk.selection = chunk.selection.replace(/(^\s+|\s+$)/g, ""); + + // If we clicked the button with no selected text, we just + // make a level 2 hash header around some default text. + if (!chunk.selection) { + chunk.startTag = "## "; + chunk.selection = this.getString("headingexample"); + chunk.endTag = " \n"; + return; + } + + var headerLevel = 0; // The existing header level of the selected text. + + // Remove any existing hash heading markdown and save the header level. + chunk.findTags(/#+[ ]*/, /[ ]*#+/); + if (/#+/.test(chunk.startTag)) { + headerLevel = re.lastMatch.length; + } + chunk.startTag = chunk.endTag = ""; + + // Try to get the current header level by looking for - and = in the line + // below the selection. + chunk.findTags(null, /\s?(-+|=+)/); + if (/=+/.test(chunk.endTag)) { + headerLevel = 1; + } + if (/-+/.test(chunk.endTag)) { + headerLevel = 2; + } + + // Skip to the next line so we can create the header markdown. + chunk.startTag = chunk.endTag = ""; + chunk.skipLines(1, 1); + + // We make a level 4 header if there is no current header. + // If there is a header level, we substract one from the header level. + // If it's already a level 1 header, it's removed. + var headerLevelToCreate = headerLevel == 0 ? 4 : headerLevel - 1; + + /* + if (headerLevelToCreate > 0) { + + // The button only creates level 1 and 2 underline headers. + // Why not have it iterate over hash header levels? Wouldn't that be easier and cleaner? + var headerChar = headerLevelToCreate >= 2 ? "-" : "="; + var len = chunk.selection.length; + if (len > SETTINGS.lineLength) { + len = SETTINGS.lineLength; + } + chunk.endTag = "\n"; + while (len--) { + chunk.endTag += headerChar; + } + } + */ + + if (headerLevelToCreate > 0) { + var hashesToCreate = headerLevelToCreate; + while (hashesToCreate--) { + chunk.startTag += "#"; + } + chunk.startTag += " "; //So we have #### Header instead of ####Header (optional) + } + + }; + + commandProto.doHorizontalRule = function (chunk, postProcessing) { + chunk.startTag = "----------\n"; + chunk.selection = ""; + chunk.skipLines(1, 1, true); + } + + commandProto.doReadMore = function (chunk, postProcessing) { + chunk.startTag = ""; + chunk.selection = ""; + chunk.skipLines(1, 1, true); + } + + commandProto.doTOC = function (chunk, postProcessing) { + chunk.startTag = ""; + chunk.selection = ""; + chunk.skipLines(1, 1, true); + } + + commandProto.doStrikethrough = function (chunk, postProcessing) { + + // Get rid of whitespace and fixup newlines. + chunk.trimWhitespace(); + chunk.selection = chunk.selection.replace(/\n{2,}/g, "\n"); + + // Look for stars before and after. Is the chunk already marked up? + // note that these regex matches cannot fail + var starsBefore = /(~*$)/.exec(chunk.before)[0]; + var starsAfter = /(^~*)/.exec(chunk.after)[0]; + + var prevStars = Math.min(starsBefore.length, starsAfter.length); + + var nStars = 2; + + // Remove stars if we have to since the button acts as a toggle. + if ((prevStars >= nStars) && (prevStars != 2 || nStars != 1)) { + chunk.before = chunk.before.replace(re("[~]{" + nStars + "}$", ""), ""); + chunk.after = chunk.after.replace(re("^[~]{" + nStars + "}", ""), ""); + } else if (!chunk.selection && starsAfter) { + // It's not really clear why this code is necessary. It just moves + // some arbitrary stuff around. + chunk.after = chunk.after.replace(/^(~*)/, ""); + chunk.before = chunk.before.replace(/(\s?)$/, ""); + var whitespace = re.$1; + chunk.before = chunk.before + starsAfter + whitespace; + } else { + + // In most cases, if you don't have any selected text and click the button + // you'll get a selected, marked up region with the default text inserted. + if (!chunk.selection && !starsAfter) { + chunk.selection = this.getString("strikethroughexample"); + } + + // Add the true markup. + var markup = "~~"; // shouldn't the test be = ? + chunk.before = chunk.before + markup; + chunk.after = markup + chunk.after; + } + + return; + }; + + commandProto.doTable = function (chunk) { + // Credit: https://github.com/fcrespo82/atom-markdown-table-formatter + + var keepFirstAndLastPipes = true, + /* + ( # header capture + (?: + (?:[^\n]*?\|[^\n]*) # line w/ at least one pipe + \ * # maybe trailing whitespace + )? # maybe header + (?:\n|^) # newline + ) + ( # format capture + (?: + \|\ *:?-+:?\ * # format starting w/pipe + |\|?(?:\ *:?-+:?\ *\|)+ # or separated by pipe + ) + (?:\ *:?-+:?\ *)? # maybe w/o trailing pipe + \ * # maybe trailing whitespace + \n # newline + ) + ( # body capture + (?: + (?:[^\n]*?\|[^\n]*) # line w/ at least one pipe + \ * # maybe trailing whitespace + (?:\n|$) # newline + )+ # at least one + ) + */ + regex = /((?:(?:[^\n]*?\|[^\n]*) *)?(?:\r?\n|^))((?:\| *:?-+:? *|\|?(?: *:?-+:? *\|)+)(?: *:?-+:? *)? *\r?\n)((?:(?:[^\n]*?\|[^\n]*) *(?:\r?\n|$))+)/; + + + function padding(len, str) { + var result = ''; + str = str || ' '; + len = Math.floor(len); + for (var i = 0; i < len; i++) { + result += str; + } + return result; + } + + function stripTailPipes(str) { + return str.trim().replace(/(^\||\|$)/g, ""); + } + + function splitCells(str) { + return str.split('|'); + } + + function addTailPipes(str) { + if (keepFirstAndLastPipes) { + return "|" + str + "|"; + } else { + return str; + } + } + + function joinCells(arr) { + return arr.join('|'); + } + + function formatTable(text, appendNewline) { + var i, j, len1, ref1, ref2, ref3, k, len2, results, formatline, headerline, just, formatrow, data, line, lines, justify, cell, cells, first, last, ends, columns, content, widths, formatted, front, back; + formatline = text[2].trim(); + headerline = text[1].trim(); + ref1 = headerline.length === 0 ? [0, text[3]] : [1, text[1] + text[3]], formatrow = ref1[0], data = ref1[1]; + lines = data.trim().split('\n'); + justify = []; + ref2 = splitCells(stripTailPipes(formatline)); + for (j = 0, len1 = ref2.length; j < len1; j++) { + cell = ref2[j]; + ref3 = cell.trim(), first = ref3[0], last = ref3[ref3.length - 1]; + switch ((ends = (first ? first : ':') + (last ? last : ''))) { + case '::': + case '-:': + case ':-': + justify.push(ends); + break; + default: + justify.push('--'); + } + } + columns = justify.length; + content = []; + for (j = 0, len1 = lines.length; j < len1; j++) { + line = lines[j]; + cells = splitCells(stripTailPipes(line)); + cells[columns - 1] = joinCells(cells.slice(columns - 1)); + results = []; + for (k = 0, len2 = cells.length; k < len2; k++) { + cell = cells[k]; + results.push(padding(' ') + ((ref2 = cell ? typeof cell.trim === "function" ? cell.trim() : void 0 : void 0) ? ref2 : '') + padding(' ')); + } + content.push(results); + } + widths = []; + for (i = j = 0, ref2 = columns - 1; 0 <= ref2 ? j <= ref2 : j >= ref2; i = 0 <= ref2 ? ++j : --j) { + results = []; + for (k = 0, len1 = content.length; k < len1; k++) { + cells = content[k]; + results.push(cells[i].length); + } + widths.push(Math.max.apply(Math, [2].concat(results))); + } + just = function (string, col) { + var back, front, length; + length = widths[col] - string.length; + switch (justify[col]) { + case '::': + front = padding[0], back = padding[1]; + return padding(length / 2) + string + padding((length + 1) / 2); + case '-:': + return padding(length) + string; + default: + return string + padding(length); + } + }; + formatted = []; + for (j = 0, len1 = content.length; j < len1; j++) { + cells = content[j]; + results = []; + for (i = k = 0, ref2 = columns - 1; 0 <= ref2 ? k <= ref2 : k >= ref2; i = 0 <= ref2 ? ++k : --k) { + results.push(just(cells[i], i)); + } + formatted.push(addTailPipes(joinCells(results))); + } + formatline = addTailPipes(joinCells((function () { + var j, ref2, ref3, results; + results = []; + for (i = j = 0, ref2 = columns - 1; 0 <= ref2 ? j <= ref2 : j >= ref2; i = 0 <= ref2 ? ++j : --j) { + ref3 = justify[i], front = ref3[0], back = ref3[1]; + results.push(front + padding(widths[i] - 2, '-') + back); + } + return results; + })())); + formatted.splice(formatrow, 0, formatline); + var result = (headerline.length === 0 && text[1] !== '' ? '\n' : '') + formatted.join('\n'); + if (appendNewline !== false) { + result += '\n' + } + return result; + } + + if (chunk.before.slice(-1) !== '\n') { + chunk.before += '\n'; + } + var match = chunk.selection.match(regex); + if (match) { + chunk.selection = formatTable(match, chunk.selection.slice(-1) === '\n'); + } else { + var table = chunk.selection + '|\n-|-\n|'; + match = table.match(regex); + if (!match || match[0].slice(0, table.length) !== table) { + return; + } + table = formatTable(match); + var selectionOffset = keepFirstAndLastPipes ? 1 : 0; + var pipePos = table.indexOf('|', selectionOffset); + chunk.before += table.slice(0, selectionOffset); + chunk.selection = table.slice(selectionOffset, pipePos); + chunk.after = table.slice(pipePos) + chunk.after; + } + }; + + +})(); \ No newline at end of file diff --git a/system/admin/editor/js/Markdown.Extra.js b/system/admin/editor/js/Markdown.Extra.js new file mode 100644 index 0000000..d3b859a --- /dev/null +++ b/system/admin/editor/js/Markdown.Extra.js @@ -0,0 +1,874 @@ +(function () { + // A quick way to make sure we're only keeping span-level tags when we need to. + // This isn't supposed to be foolproof. It's just a quick way to make sure we + // keep all span-level tags returned by a pagedown converter. It should allow + // all span-level tags through, with or without attributes. + var inlineTags = new RegExp(['^(<\\/?(a|abbr|acronym|applet|area|b|basefont|', + 'bdo|big|button|cite|code|del|dfn|em|figcaption|', + 'font|i|iframe|img|input|ins|kbd|label|map|', + 'mark|meter|object|param|progress|q|ruby|rp|rt|s|', + 'samp|script|select|small|span|strike|strong|', + 'sub|sup|textarea|time|tt|u|var|wbr)[^>]*>|', + '<(br)\\s?\\/?>)$'].join(''), 'i'); + + /****************************************************************** + * Utility Functions * + *****************************************************************/ + + // patch for ie7 + if (!Array.indexOf) { + Array.prototype.indexOf = function(obj) { + for (var i = 0; i < this.length; i++) { + if (this[i] == obj) { + return i; + } + } + return -1; + }; + } + + function trim(str) { + return str.replace(/^\s+|\s+$/g, ''); + } + + function rtrim(str) { + return str.replace(/\s+$/g, ''); + } + + // Remove one level of indentation from text. Indent is 4 spaces. + function outdent(text) { + return text.replace(new RegExp('^(\\t|[ ]{1,4})', 'gm'), ''); + } + + function contains(str, substr) { + return str.indexOf(substr) != -1; + } + + // Sanitize html, removing tags that aren't in the whitelist + function sanitizeHtml(html, whitelist) { + return html.replace(/<[^>]*>?/gi, function(tag) { + return tag.match(whitelist) ? tag : ''; + }); + } + + // Merge two arrays, keeping only unique elements. + function union(x, y) { + var obj = {}; + for (var i = 0; i < x.length; i++) + obj[x[i]] = x[i]; + for (i = 0; i < y.length; i++) + obj[y[i]] = y[i]; + var res = []; + for (var k in obj) { + if (obj.hasOwnProperty(k)) + res.push(obj[k]); + } + return res; + } + + // JS regexes don't support \A or \Z, so we add sentinels, as Pagedown + // does. In this case, we add the ascii codes for start of text (STX) and + // end of text (ETX), an idea borrowed from: + // https://github.com/tanakahisateru/js-markdown-extra + function addAnchors(text) { + if(text.charAt(0) != '\x02') + text = '\x02' + text; + if(text.charAt(text.length - 1) != '\x03') + text = text + '\x03'; + return text; + } + + // Remove STX and ETX sentinels. + function removeAnchors(text) { + if(text.charAt(0) == '\x02') + text = text.substr(1); + if(text.charAt(text.length - 1) == '\x03') + text = text.substr(0, text.length - 1); + return text; + } + + // Convert markdown within an element, retaining only span-level tags + function convertSpans(text, extra) { + return sanitizeHtml(convertAll(text, extra), inlineTags); + } + + // Convert internal markdown using the stock pagedown converter + function convertAll(text, extra) { + var result = extra.blockGamutHookCallback(text); + // We need to perform these operations since we skip the steps in the converter + result = unescapeSpecialChars(result); + result = result.replace(/~D/g, "$$").replace(/~T/g, "~"); + result = extra.previousPostConversion(result); + return result; + } + + // Convert escaped special characters + function processEscapesStep1(text) { + // Markdown extra adds two escapable characters, `:` and `|` + return text.replace(/\\\|/g, '~I').replace(/\\:/g, '~i'); + } + function processEscapesStep2(text) { + return text.replace(/~I/g, '|').replace(/~i/g, ':'); + } + + // Duplicated from PageDown converter + function unescapeSpecialChars(text) { + // Swap back in all the special characters we've hidden. + text = text.replace(/~E(\d+)E/g, function(wholeMatch, m1) { + var charCodeToReplace = parseInt(m1); + return String.fromCharCode(charCodeToReplace); + }); + return text; + } + + function slugify(text) { + return text.toLowerCase() + .replace(/\s+/g, '-') // Replace spaces with - + .replace(/[^\w\-]+/g, '') // Remove all non-word chars + .replace(/\-\-+/g, '-') // Replace multiple - with single - + .replace(/^-+/, '') // Trim - from start of text + .replace(/-+$/, ''); // Trim - from end of text + } + + /***************************************************************************** + * Markdown.Extra * + ****************************************************************************/ + + Markdown.Extra = function() { + // For converting internal markdown (in tables for instance). + // This is necessary since these methods are meant to be called as + // preConversion hooks, and the Markdown converter passed to init() + // won't convert any markdown contained in the html tags we return. + this.converter = null; + + // Stores html blocks we generate in hooks so that + // they're not destroyed if the user is using a sanitizing converter + this.hashBlocks = []; + + // Stores footnotes + this.footnotes = {}; + this.usedFootnotes = []; + + // Special attribute blocks for fenced code blocks and headers enabled. + this.attributeBlocks = false; + + // Fenced code block options + this.googleCodePrettify = false; + this.highlightJs = false; + + // Table options + this.tableClass = ''; + + this.tabWidth = 4; + }; + + Markdown.Extra.init = function(converter, options) { + // Each call to init creates a new instance of Markdown.Extra so it's + // safe to have multiple converters, with different options, on a single page + var extra = new Markdown.Extra(); + var postNormalizationTransformations = []; + var preBlockGamutTransformations = []; + var postSpanGamutTransformations = []; + var postConversionTransformations = ["unHashExtraBlocks"]; + + options = options || {}; + options.extensions = options.extensions || ["all"]; + if (contains(options.extensions, "all")) { + options.extensions = ["tables", "fenced_code_gfm", "def_list", "attr_list", "footnotes", "smartypants", "strikethrough", "newlines"]; + } + preBlockGamutTransformations.push("wrapHeaders"); + if (contains(options.extensions, "attr_list")) { + postNormalizationTransformations.push("hashFcbAttributeBlocks"); + preBlockGamutTransformations.push("hashHeaderAttributeBlocks"); + postConversionTransformations.push("applyAttributeBlocks"); + extra.attributeBlocks = true; + } + if (contains(options.extensions, "fenced_code_gfm")) { + // This step will convert fcb inside list items and blockquotes + preBlockGamutTransformations.push("fencedCodeBlocks"); + // This extra step is to prevent html blocks hashing and link definition/footnotes stripping inside fcb + postNormalizationTransformations.push("fencedCodeBlocks"); + } + if (contains(options.extensions, "tables")) { + preBlockGamutTransformations.push("tables"); + } + if (contains(options.extensions, "def_list")) { + preBlockGamutTransformations.push("definitionLists"); + } + if (contains(options.extensions, "footnotes")) { + postNormalizationTransformations.push("stripFootnoteDefinitions"); + preBlockGamutTransformations.push("doFootnotes"); + postConversionTransformations.push("printFootnotes"); + } + if (contains(options.extensions, "smartypants")) { + postConversionTransformations.push("runSmartyPants"); + } + if (contains(options.extensions, "strikethrough")) { + postSpanGamutTransformations.push("strikethrough"); + } + if (contains(options.extensions, "newlines")) { + postSpanGamutTransformations.push("newlines"); + } + + converter.hooks.chain("postNormalization", function(text) { + return extra.doTransform(postNormalizationTransformations, text) + '\n'; + }); + + converter.hooks.chain("preBlockGamut", function(text, blockGamutHookCallback) { + // Keep a reference to the block gamut callback to run recursively + extra.blockGamutHookCallback = blockGamutHookCallback; + text = processEscapesStep1(text); + text = extra.doTransform(preBlockGamutTransformations, text) + '\n'; + text = processEscapesStep2(text); + return text; + }); + + converter.hooks.chain("postSpanGamut", function(text) { + return extra.doTransform(postSpanGamutTransformations, text); + }); + + // Keep a reference to the hook chain running before doPostConversion to apply on hashed extra blocks + extra.previousPostConversion = converter.hooks.postConversion; + converter.hooks.chain("postConversion", function(text) { + text = extra.doTransform(postConversionTransformations, text); + // Clear state vars that may use unnecessary memory + extra.hashBlocks = []; + extra.footnotes = {}; + extra.usedFootnotes = []; + return text; + }); + + if ("highlighter" in options) { + extra.googleCodePrettify = options.highlighter === 'prettify'; + extra.highlightJs = options.highlighter === 'highlight'; + } + + if ("table_class" in options) { + extra.tableClass = options.table_class; + } + + extra.converter = converter; + + // Caller usually won't need this, but it's handy for testing. + return extra; + }; + + // Do transformations + Markdown.Extra.prototype.doTransform = function(transformations, text) { + for(var i = 0; i < transformations.length; i++) + text = this[transformations[i]](text); + return text; + }; + + // Return a placeholder containing a key, which is the block's index in the + // hashBlocks array. We wrap our output in a

        tag here so Pagedown won't. + Markdown.Extra.prototype.hashExtraBlock = function(block) { + return '\n

        ~X' + (this.hashBlocks.push(block) - 1) + 'X

        \n'; + }; + Markdown.Extra.prototype.hashExtraInline = function(block) { + return '~X' + (this.hashBlocks.push(block) - 1) + 'X'; + }; + + // Replace placeholder blocks in `text` with their corresponding + // html blocks in the hashBlocks array. + Markdown.Extra.prototype.unHashExtraBlocks = function(text) { + var self = this; + function recursiveUnHash() { + var hasHash = false; + text = text.replace(/(?:

        )?~X(\d+)X(?:<\/p>)?/g, function(wholeMatch, m1) { + hasHash = true; + var key = parseInt(m1, 10); + return self.hashBlocks[key]; + }); + if(hasHash === true) { + recursiveUnHash(); + } + } + recursiveUnHash(); + return text; + }; + + // Wrap headers to make sure they won't be in def lists + Markdown.Extra.prototype.wrapHeaders = function(text) { + function wrap(text) { + return '\n' + text + '\n'; + } + text = text.replace(/^.+[ \t]*\n=+[ \t]*\n+/gm, wrap); + text = text.replace(/^.+[ \t]*\n-+[ \t]*\n+/gm, wrap); + text = text.replace(/^\#{1,6}[ \t]*.+?[ \t]*\#*\n+/gm, wrap); + return text; + }; + + + /****************************************************************** + * Attribute Blocks * + *****************************************************************/ + + // TODO: use sentinels. Should we just add/remove them in doConversion? + // TODO: better matches for id / class attributes + var attrBlock = "\\{[ \\t]*((?:[#.][-_:a-zA-Z0-9]+[ \\t]*)+)\\}"; + var hdrAttributesA = new RegExp("^(#{1,6}.*#{0,6})[ \\t]+" + attrBlock + "[ \\t]*(?:\\n|0x03)", "gm"); + var hdrAttributesB = new RegExp("^(.*)[ \\t]+" + attrBlock + "[ \\t]*\\n" + + "(?=[\\-|=]+\\s*(?:\\n|0x03))", "gm"); // underline lookahead + var fcbAttributes = new RegExp("^(```[^`\\n]*)[ \\t]+" + attrBlock + "[ \\t]*\\n" + + "(?=([\\s\\S]*?)\\n```[ \\t]*(\\n|0x03))", "gm"); + + // Extract headers attribute blocks, move them above the element they will be + // applied to, and hash them for later. + Markdown.Extra.prototype.hashHeaderAttributeBlocks = function(text) { + + var self = this; + function attributeCallback(wholeMatch, pre, attr) { + return '

        ~XX' + (self.hashBlocks.push(attr) - 1) + 'XX

        \n' + pre + "\n"; + } + + text = text.replace(hdrAttributesA, attributeCallback); // ## headers + text = text.replace(hdrAttributesB, attributeCallback); // underline headers + return text; + }; + + // Extract FCB attribute blocks, move them above the element they will be + // applied to, and hash them for later. + Markdown.Extra.prototype.hashFcbAttributeBlocks = function(text) { + // TODO: use sentinels. Should we just add/remove them in doConversion? + // TODO: better matches for id / class attributes + + var self = this; + function attributeCallback(wholeMatch, pre, attr) { + return '

        ~XX' + (self.hashBlocks.push(attr) - 1) + 'XX

        \n' + pre + "\n"; + } + + return text.replace(fcbAttributes, attributeCallback); + }; + + Markdown.Extra.prototype.applyAttributeBlocks = function(text) { + var self = this; + var blockRe = new RegExp('

        ~XX(\\d+)XX

        [\\s]*' + + '(?:<(h[1-6]|pre)(?: +class="(\\S+)")?(>[\\s\\S]*?))', "gm"); + text = text.replace(blockRe, function(wholeMatch, k, tag, cls, rest) { + if (!tag) // no following header or fenced code block. + return ''; + + // get attributes list from hash + var key = parseInt(k, 10); + var attributes = self.hashBlocks[key]; + + // get id + var id = attributes.match(/#[^\s#.]+/g) || []; + var idStr = id[0] ? ' id="' + id[0].substr(1, id[0].length - 1) + '"' : ''; + + // get classes and merge with existing classes + var classes = attributes.match(/\.[^\s#.]+/g) || []; + for (var i = 0; i < classes.length; i++) // Remove leading dot + classes[i] = classes[i].substr(1, classes[i].length - 1); + + var classStr = ''; + if (cls) + classes = union(classes, [cls]); + + if (classes.length > 0) + classStr = ' class="' + classes.join(' ') + '"'; + + return "<" + tag + idStr + classStr + rest; + }); + + return text; + }; + + /****************************************************************** + * Tables * + *****************************************************************/ + + // Find and convert Markdown Extra tables into html. + Markdown.Extra.prototype.tables = function(text) { + var self = this; + + var leadingPipe = new RegExp( + ['^' , + '[ ]{0,3}' , // Allowed whitespace + '[|]' , // Initial pipe + '(.+)\\n' , // $1: Header Row + + '[ ]{0,3}' , // Allowed whitespace + '[|]([ ]*[-:]+[-| :]*)\\n' , // $2: Separator + + '(' , // $3: Table Body + '(?:[ ]*[|].*\\n?)*' , // Table rows + ')', + '(?:\\n|$)' // Stop at final newline + ].join(''), + 'gm' + ); + + var noLeadingPipe = new RegExp( + ['^' , + '[ ]{0,3}' , // Allowed whitespace + '(\\S.*[|].*)\\n' , // $1: Header Row + + '[ ]{0,3}' , // Allowed whitespace + '([-:]+[ ]*[|][-| :]*)\\n' , // $2: Separator + + '(' , // $3: Table Body + '(?:.*[|].*\\n?)*' , // Table rows + ')' , + '(?:\\n|$)' // Stop at final newline + ].join(''), + 'gm' + ); + + text = text.replace(leadingPipe, doTable); + text = text.replace(noLeadingPipe, doTable); + + // $1 = header, $2 = separator, $3 = body + function doTable(match, header, separator, body, offset, string) { + // remove any leading pipes and whitespace + header = header.replace(/^ *[|]/m, ''); + separator = separator.replace(/^ *[|]/m, ''); + body = body.replace(/^ *[|]/gm, ''); + + // remove trailing pipes and whitespace + header = header.replace(/[|] *$/m, ''); + separator = separator.replace(/[|] *$/m, ''); + body = body.replace(/[|] *$/gm, ''); + + // determine column alignments + var alignspecs = separator.split(/ *[|] */); + var align = []; + for (var i = 0; i < alignspecs.length; i++) { + var spec = alignspecs[i]; + if (spec.match(/^ *-+: *$/m)) + align[i] = ' align="right"'; + else if (spec.match(/^ *:-+: *$/m)) + align[i] = ' align="center"'; + else if (spec.match(/^ *:-+ *$/m)) + align[i] = ' align="left"'; + else align[i] = ''; + } + + // TODO: parse spans in header and rows before splitting, so that pipes + // inside of tags are not interpreted as separators + var headers = header.split(/ *[|] */); + var colCount = headers.length; + + // build html + var cls = self.tableClass ? ' class="' + self.tableClass + '"' : ''; + var html = ['\n', '\n', '\n'].join(''); + + // build column headers. + for (i = 0; i < colCount; i++) { + var headerHtml = convertSpans(trim(headers[i]), self); + html += [" ", headerHtml, "\n"].join(''); + } + html += "\n\n"; + + // build rows + var rows = body.split('\n'); + for (i = 0; i < rows.length; i++) { + if (rows[i].match(/^\s*$/)) // can apply to final row + continue; + + // ensure number of rowCells matches colCount + var rowCells = rows[i].split(/ *[|] */); + var lenDiff = colCount - rowCells.length; + for (var j = 0; j < lenDiff; j++) + rowCells.push(''); + + html += "\n"; + for (j = 0; j < colCount; j++) { + var colHtml = convertSpans(trim(rowCells[j]), self); + html += [" ", colHtml, "\n"].join(''); + } + html += "\n"; + } + + html += "\n"; + + // replace html with placeholder until postConversion step + return self.hashExtraBlock(html); + } + + return text; + }; + + + /****************************************************************** + * Footnotes * + *****************************************************************/ + + // Strip footnote, store in hashes. + Markdown.Extra.prototype.stripFootnoteDefinitions = function(text) { + var self = this; + + text = text.replace( + /\n[ ]{0,3}\[\^(.+?)\]\:[ \t]*\n?([\s\S]*?)\n{1,2}((?=\n[ ]{0,3}\S)|$)/g, + function(wholeMatch, m1, m2) { + m1 = slugify(m1); + m2 += "\n"; + m2 = m2.replace(/^[ ]{0,3}/g, ""); + self.footnotes[m1] = m2; + return "\n"; + }); + + return text; + }; + + + // Find and convert footnotes references. + Markdown.Extra.prototype.doFootnotes = function(text) { + var self = this; + if(self.isConvertingFootnote === true) { + return text; + } + + var footnoteCounter = 0; + text = text.replace(/\[\^(.+?)\]/g, function(wholeMatch, m1) { + var id = slugify(m1); + var footnote = self.footnotes[id]; + if (footnote === undefined) { + return wholeMatch; + } + footnoteCounter++; + self.usedFootnotes.push(id); + var html = '' + footnoteCounter + + ''; + return self.hashExtraInline(html); + }); + + return text; + }; + + // Print footnotes at the end of the document + Markdown.Extra.prototype.printFootnotes = function(text) { + var self = this; + + if (self.usedFootnotes.length === 0) { + return text; + } + + text += '\n\n
        \n
        \n
          \n\n'; + for(var i=0; i' + + formattedfootnote + + ' \n\n'; + } + text += '
        \n
        '; + return text; + }; + + + /****************************************************************** + * Fenced Code Blocks (gfm) * + ******************************************************************/ + + // Find and convert gfm-inspired fenced code blocks into html. + Markdown.Extra.prototype.fencedCodeBlocks = function(text) { + function encodeCode(code) { + code = code.replace(/&/g, "&"); + code = code.replace(//g, ">"); + // These were escaped by PageDown before postNormalization + code = code.replace(/~D/g, "$$"); + code = code.replace(/~T/g, "~"); + return code; + } + + var self = this; + text = text.replace(/(?:^|\n)```([^`\n]*)\n([\s\S]*?)\n```[ \t]*(?=\n)/g, function(match, m1, m2) { + var language = trim(m1), codeblock = m2; + + // adhere to specified options + var preclass = self.googleCodePrettify ? ' class="prettyprint"' : ''; + var codeclass = ''; + if (language) { + if (self.googleCodePrettify || self.highlightJs) { + // use html5 language- class names. supported by both prettify and highlight.js + codeclass = ' class="language-' + language + '"'; + } else { + codeclass = ' class="' + language + '"'; + } + } + + var html = ['', + encodeCode(codeblock), '
    '].join(''); + + // replace codeblock with placeholder until postConversion step + return self.hashExtraBlock(html); + }); + + return text; + }; + + + /****************************************************************** + * SmartyPants * + ******************************************************************/ + + Markdown.Extra.prototype.educatePants = function(text) { + var self = this; + var result = ''; + var blockOffset = 0; + // Here we parse HTML in a very bad manner + text.replace(/(?:)|(<)([a-zA-Z1-6]+)([^\n]*?>)([\s\S]*?)(<\/\2>)/g, function(wholeMatch, m1, m2, m3, m4, m5, offset) { + var token = text.substring(blockOffset, offset); + result += self.applyPants(token); + self.smartyPantsLastChar = result.substring(result.length - 1); + blockOffset = offset + wholeMatch.length; + if(!m1) { + // Skip commentary + result += wholeMatch; + return; + } + // Skip special tags + if(!/code|kbd|pre|script|noscript|iframe|math|ins|del|pre/i.test(m2)) { + m4 = self.educatePants(m4); + } + else { + self.smartyPantsLastChar = m4.substring(m4.length - 1); + } + result += m1 + m2 + m3 + m4 + m5; + }); + var lastToken = text.substring(blockOffset); + result += self.applyPants(lastToken); + self.smartyPantsLastChar = result.substring(result.length - 1); + return result; + }; + + function revertPants(wholeMatch, m1) { + var blockText = m1; + blockText = blockText.replace(/&\#8220;/g, "\""); + blockText = blockText.replace(/&\#8221;/g, "\""); + blockText = blockText.replace(/&\#8216;/g, "'"); + blockText = blockText.replace(/&\#8217;/g, "'"); + blockText = blockText.replace(/&\#8212;/g, "---"); + blockText = blockText.replace(/&\#8211;/g, "--"); + blockText = blockText.replace(/&\#8230;/g, "..."); + return blockText; + } + + Markdown.Extra.prototype.applyPants = function(text) { + // Dashes + text = text.replace(/---/g, "—").replace(/--/g, "–"); + // Ellipses + text = text.replace(/\.\.\./g, "…").replace(/\.\s\.\s\./g, "…"); + // Backticks + text = text.replace(/``/g, "“").replace (/''/g, "”"); + + if(/^'$/.test(text)) { + // Special case: single-character ' token + if(/\S/.test(this.smartyPantsLastChar)) { + return "’"; + } + return "‘"; + } + if(/^"$/.test(text)) { + // Special case: single-character " token + if(/\S/.test(this.smartyPantsLastChar)) { + return "”"; + } + return "“"; + } + + // Special case if the very first character is a quote + // followed by punctuation at a non-word-break. Close the quotes by brute force: + text = text.replace (/^'(?=[!"#\$\%'()*+,\-.\/:;<=>?\@\[\\]\^_`{|}~]\B)/, "’"); + text = text.replace (/^"(?=[!"#\$\%'()*+,\-.\/:;<=>?\@\[\\]\^_`{|}~]\B)/, "”"); + + // Special case for double sets of quotes, e.g.: + //

    He said, "'Quoted' words in a larger quote."

    + text = text.replace(/"'(?=\w)/g, "“‘"); + text = text.replace(/'"(?=\w)/g, "‘“"); + + // Special case for decade abbreviations (the '80s): + text = text.replace(/'(?=\d{2}s)/g, "’"); + + // Get most opening single quotes: + text = text.replace(/(\s| |--|&[mn]dash;|&\#8211;|&\#8212;|&\#x201[34];)'(?=\w)/g, "$1‘"); + + // Single closing quotes: + text = text.replace(/([^\s\[\{\(\-])'/g, "$1’"); + text = text.replace(/'(?=\s|s\b)/g, "’"); + + // Any remaining single quotes should be opening ones: + text = text.replace(/'/g, "‘"); + + // Get most opening double quotes: + text = text.replace(/(\s| |--|&[mn]dash;|&\#8211;|&\#8212;|&\#x201[34];)"(?=\w)/g, "$1“"); + + // Double closing quotes: + text = text.replace(/([^\s\[\{\(\-])"/g, "$1”"); + text = text.replace(/"(?=\s)/g, "”"); + + // Any remaining quotes should be opening ones. + text = text.replace(/"/ig, "“"); + return text; + }; + + // Find and convert markdown extra definition lists into html. + Markdown.Extra.prototype.runSmartyPants = function(text) { + this.smartyPantsLastChar = ''; + text = this.educatePants(text); + // Clean everything inside html tags (some of them may have been converted due to our rough html parsing) + text = text.replace(/(<([a-zA-Z1-6]+)\b([^\n>]*?)(\/)?>)/g, revertPants); + return text; + }; + + /****************************************************************** + * Definition Lists * + ******************************************************************/ + + // Find and convert markdown extra definition lists into html. + Markdown.Extra.prototype.definitionLists = function(text) { + var wholeList = new RegExp( + ['(\\x02\\n?|\\n\\n)' , + '(?:' , + '(' , // $1 = whole list + '(' , // $2 + '[ ]{0,3}' , + '((?:[ \\t]*\\S.*\\n)+)', // $3 = defined term + '\\n?' , + '[ ]{0,3}:[ ]+' , // colon starting definition + ')' , + '([\\s\\S]+?)' , + '(' , // $4 + '(?=\\0x03)' , // \z + '|' , + '(?=' , + '\\n{2,}' , + '(?=\\S)' , + '(?!' , // Negative lookahead for another term + '[ ]{0,3}' , + '(?:\\S.*\\n)+?' , // defined term + '\\n?' , + '[ ]{0,3}:[ ]+' , // colon starting definition + ')' , + '(?!' , // Negative lookahead for another definition + '[ ]{0,3}:[ ]+' , // colon starting definition + ')' , + ')' , + ')' , + ')' , + ')' + ].join(''), + 'gm' + ); + + var self = this; + text = addAnchors(text); + + text = text.replace(wholeList, function(match, pre, list) { + var result = trim(self.processDefListItems(list)); + result = "
    \n" + result + "\n
    "; + return pre + self.hashExtraBlock(result) + "\n\n"; + }); + + return removeAnchors(text); + }; + + // Process the contents of a single definition list, splitting it + // into individual term and definition list items. + Markdown.Extra.prototype.processDefListItems = function(listStr) { + var self = this; + + var dt = new RegExp( + ['(\\x02\\n?|\\n\\n+)' , // leading line + '(' , // definition terms = $1 + '[ ]{0,3}' , // leading whitespace + '(?![:][ ]|[ ])' , // negative lookahead for a definition + // mark (colon) or more whitespace + '(?:\\S.*\\n)+?' , // actual term (not whitespace) + ')' , + '(?=\\n?[ ]{0,3}:[ ])' // lookahead for following line feed + ].join(''), // with a definition mark + 'gm' + ); + + var dd = new RegExp( + ['\\n(\\n+)?' , // leading line = $1 + '(' , // marker space = $2 + '[ ]{0,3}' , // whitespace before colon + '[:][ ]+' , // definition mark (colon) + ')' , + '([\\s\\S]+?)' , // definition text = $3 + '(?=\\n*' , // stop at next definition mark, + '(?:' , // next term or end of text + '\\n[ ]{0,3}[:][ ]|' , + '
    |\\x03' , // \z + ')' , + ')' + ].join(''), + 'gm' + ); + + listStr = addAnchors(listStr); + // trim trailing blank lines: + listStr = listStr.replace(/\n{2,}(?=\\x03)/, "\n"); + + // Process definition terms. + listStr = listStr.replace(dt, function(match, pre, termsStr) { + var terms = trim(termsStr).split("\n"); + var text = ''; + for (var i = 0; i < terms.length; i++) { + var term = terms[i]; + // process spans inside dt + term = convertSpans(trim(term), self); + text += "\n
    " + term + "
    "; + } + return text + "\n"; + }); + + // Process actual definitions. + listStr = listStr.replace(dd, function(match, leadingLine, markerSpace, def) { + if (leadingLine || def.match(/\n{2,}/)) { + // replace marker with the appropriate whitespace indentation + def = Array(markerSpace.length + 1).join(' ') + def; + // process markdown inside definition + // TODO?: currently doesn't apply extensions + def = outdent(def) + "\n\n"; + def = "\n" + convertAll(def, self) + "\n"; + } else { + // convert span-level markdown inside definition + def = rtrim(def); + def = convertSpans(outdent(def), self); + } + + return "\n
    " + def + "
    \n"; + }); + + return removeAnchors(listStr); + }; + + + /*********************************************************** + * Strikethrough * + ************************************************************/ + + Markdown.Extra.prototype.strikethrough = function(text) { + // Pretty much duplicated from _DoItalicsAndBold + return text.replace(/([\W_]|^)~T~T(?=\S)([^\r]*?\S[\*_]*)~T~T([\W_]|$)/g, + "$1$2$3"); + }; + + + /*********************************************************** + * New lines * + ************************************************************/ + + Markdown.Extra.prototype.newlines = function(text) { + // We have to ignore already converted newlines and line breaks in sub-list items + return text.replace(/(<(?:br|\/li)>)?\n/g, function(wholeMatch, previousTag) { + return previousTag ? wholeMatch : "
    \n"; + }); + }; + +})(); + diff --git a/system/admin/editor/js/Markdown.Sanitizer.js b/system/admin/editor/js/Markdown.Sanitizer.js new file mode 100644 index 0000000..bfced16 --- /dev/null +++ b/system/admin/editor/js/Markdown.Sanitizer.js @@ -0,0 +1,108 @@ +(function () { + var output, Converter; + if (typeof exports === "object" && typeof require === "function") { // we're in a CommonJS (e.g. Node.js) module + output = exports; + Converter = require("./Markdown.Converter").Converter; + } else { + output = window.Markdown; + Converter = output.Converter; + } + + output.getSanitizingConverter = function () { + var converter = new Converter(); + converter.hooks.chain("postConversion", sanitizeHtml); + converter.hooks.chain("postConversion", balanceTags); + return converter; + } + + function sanitizeHtml(html) { + return html.replace(/<[^>]*>?/gi, sanitizeTag); + } + + // (tags that can be opened/closed) | (tags that stand alone) + var basic_tag_whitelist = /^(<\/?(b|blockquote|code|del|dd|dl|dt|em|h1|h2|h3|i|kbd|li|ol|p|pre|s|sup|sub|strong|strike|ul)>|<(br|hr)\s?\/?>)$/i; + // | + var a_white = /^(]+")?\s?>|<\/a>)$/i; + + // ]*")?(\stitle="[^"<>]*")?\s?\/?>)$/i; + + function sanitizeTag(tag) { + if (tag.match(basic_tag_whitelist) || tag.match(a_white) || tag.match(img_white)) + return tag; + else + return ""; + } + + /// + /// attempt to balance HTML tags in the html string + /// by removing any unmatched opening or closing tags + /// IMPORTANT: we *assume* HTML has *already* been + /// sanitized and is safe/sane before balancing! + /// + /// adapted from CODESNIPPET: A8591DBA-D1D3-11DE-947C-BA5556D89593 + /// + function balanceTags(html) { + + if (html == "") + return ""; + + var re = /<\/?\w+[^>]*(\s|$|>)/g; + // convert everything to lower case; this makes + // our case insensitive comparisons easier + var tags = html.toLowerCase().match(re); + + // no HTML tags present? nothing to do; exit now + var tagcount = (tags || []).length; + if (tagcount == 0) + return html; + + var tagname, tag; + var ignoredtags = "



  • "; + var match; + var tagpaired = []; + var tagremove = []; + var needsRemoval = false; + + // loop through matched tags in forward order + for (var ctag = 0; ctag < tagcount; ctag++) { + tagname = tags[ctag].replace(/<\/?(\w+).*/, "$1"); + // skip any already paired tags + // and skip tags in our ignore list; assume they're self-closed + if (tagpaired[ctag] || ignoredtags.search("<" + tagname + ">") > -1) + continue; + + tag = tags[ctag]; + match = -1; + + if (!/^<\//.test(tag)) { + // this is an opening tag + // search forwards (next tags), look for closing tags + for (var ntag = ctag + 1; ntag < tagcount; ntag++) { + if (!tagpaired[ntag] && tags[ntag] == "") { + match = ntag; + break; + } + } + } + + if (match == -1) + needsRemoval = tagremove[ctag] = true; // mark for removal + else + tagpaired[match] = true; // mark paired + } + + if (!needsRemoval) + return html; + + // delete all orphaned tags from the string + + var ctag = 0; + html = html.replace(re, function (match) { + var res = tagremove[ctag] ? "" : match; + ctag++; + return res; + }); + return html; + } +})(); diff --git a/system/admin/editor/js/editor.js b/system/admin/editor/js/editor.js new file mode 100644 index 0000000..fdc4cac --- /dev/null +++ b/system/admin/editor/js/editor.js @@ -0,0 +1,73 @@ +(function () { + var converter = new Markdown.Converter(); + Markdown.Extra.init(converter); + var editor = new Markdown.Editor(converter); + + //======Image Uploader===== + var callbackFunc; + var dialogClose = function() { + $('#insertImageDialog').modal('hide'); + $('#insertImageDialogURL').val(''); + $('#insertImageDialogFile').val(''); + $('#insertMediaDialogURL').val(''); + $('#insertMediaDialogFile').val(''); + $('#gallery-1').html(initial_image); + $('#gallery-2').html(initial_image); + }; + $('#insertImageDialogInsert').click( function() { + callbackFunc( $('#insertImageDialogURL').val().length > 0 ? $('#insertImageDialogURL').val() : null ); + dialogClose(); + }); + $('#insertImageDialogClose').click( function() { + callbackFunc(null); + dialogClose(); + }); + $('#insertImageDialogCancel').click( function() { + callbackFunc(null); + dialogClose(); + }); + $('#insertImageDialogFile').on('input', function(){ + var file = $("#insertImageDialogFile").prop("files"); + var formData = new FormData(); + formData.append('file', file[0], file[0].name); + // Set up the request. + $.ajax({ + type: "POST", + url: base_path + 'upload.php', + data: formData, + processData: false, + contentType: false, + success: function (response) { + if (response.error == '0') + { + callbackFunc(base_path + response.path); + dialogClose(); + } + else + { + if (response.error !== '') alert(response.error); + else alert("An unknown error has occurred"); + console.error("Bad Response"); + console.error(response); + $('#insertImageDialogFile').val(''); + } + }, + failure: function (response) { + if (response.error !== '') alert(response.error); + else alert("An unknown error has occurred"); + console.error("Unable to Upload"); + console.error(response); + $('#insertImageDialogFile').val(''); + } + });//ajax + });//oninput + editor.hooks.set('insertImageDialog', function(callback) { + $('#insertImageDialog').modal('show'); + callbackFunc = callback; + + return true; // tell the editor that we'll take care of getting the image url + }); + //=====end image uploader===== + editor.run(); + +})(); \ No newline at end of file diff --git a/system/admin/editor/js/local/Markdown.local.fr.js b/system/admin/editor/js/local/Markdown.local.fr.js new file mode 100644 index 0000000..febd080 --- /dev/null +++ b/system/admin/editor/js/local/Markdown.local.fr.js @@ -0,0 +1,43 @@ +// Usage: +// +// var myConverter = new Markdown.Editor(myConverter, null, { strings: Markdown.local.fr }); + +(function () { + Markdown.local = Markdown.local || {}; + Markdown.local.fr = { + bold: "Gras Ctrl+B", + boldexample: "texte en gras", + + italic: "Italique Ctrl+I", + italicexample: "texte en italique", + + link: "Hyperlien Ctrl+L", + linkdescription: "description de l'hyperlien", + linkdialog: "

    Insérer un hyperlien

    http://example.com/ \"titre optionnel\"

    ", + + quote: "Citation
    Ctrl+Q", + quoteexample: "Citation", + + code: "Extrait de code
     Ctrl+K",
    +        codeexample: "votre extrait de code",
    +
    +        image: "Image  Ctrl+G",
    +        imagedescription: "description de l'image",
    +        imagedialog: "

    Insérer une image

    http://example.com/images/diagram.jpg \"titre optionnel\"

    Vous chercher un hébergement d'image grauit ?

    ", + + olist: "Liste numérotée
      Ctrl+O", + ulist: "Liste à point
        Ctrl+U", + litem: "Elément de liste", + + heading: "Titre

        /

        Ctrl+H", + headingexample: "Titre", + + hr: "Trait horizontal
        Ctrl+R", + + undo: "Annuler - Ctrl+Z", + redo: "Refaire - Ctrl+Y", + redomac: "Refaire - Ctrl+Shift+Z", + + help: "Aide sur Markdown" + }; +})(); \ No newline at end of file diff --git a/system/admin/editor/js/node-pagedown-extra.js b/system/admin/editor/js/node-pagedown-extra.js new file mode 100644 index 0000000..a19f1d9 --- /dev/null +++ b/system/admin/editor/js/node-pagedown-extra.js @@ -0,0 +1,3 @@ +GLOBAL.Markdown = {}; +require('./Markdown.Extra.js'); +exports.Extra = Markdown.Extra; diff --git a/system/admin/editor/js/node-pagedown.js b/system/admin/editor/js/node-pagedown.js new file mode 100644 index 0000000..e214548 --- /dev/null +++ b/system/admin/editor/js/node-pagedown.js @@ -0,0 +1,2 @@ +exports.Converter = require("./Markdown.Converter").Converter; +exports.getSanitizingConverter = require("./Markdown.Sanitizer").getSanitizingConverter; diff --git a/system/admin/editor/package.json b/system/admin/editor/package.json new file mode 100644 index 0000000..57b0689 --- /dev/null +++ b/system/admin/editor/package.json @@ -0,0 +1,19 @@ +{ + "name": "pagedown", + "version": "1.1.0", + "description": "markdown converter, based on showdown", + "repository": { + "type": "hg", + "url": "https://code.google.com/p/pagedown/" + }, + "keywords": ["markdown"], + "license": "MIT", + "files": [ + "Markdown.Converter.js", + "Markdown.Sanitizer.js", + "node-pagedown.js" + ], + "main": "node-pagedown.js", + "bugs": "http://code.google.com/p/pagedown/issues/list", + "homepage": "http://code.google.com/p/pagedown/wiki/PageDown" +} diff --git a/system/admin/views/.htaccess b/system/admin/views/.htaccess new file mode 100644 index 0000000..3418e55 --- /dev/null +++ b/system/admin/views/.htaccess @@ -0,0 +1 @@ +deny from all \ No newline at end of file diff --git a/system/admin/views/404.html.php b/system/admin/views/404.html.php new file mode 100644 index 0000000..cb052c2 --- /dev/null +++ b/system/admin/views/404.html.php @@ -0,0 +1,21 @@ + + + + + + + + + 404 Not Found - <?php echo blog_title() ?> + + + + + +
        +

        + +

        ?

        +
        + + \ No newline at end of file diff --git a/system/admin/views/add-content.html.php b/system/admin/views/add-content.html.php new file mode 100644 index 0000000..7db1104 --- /dev/null +++ b/system/admin/views/add-content.html.php @@ -0,0 +1,381 @@ + + + + + + + + + + + + + +
        + +
        +
        +
        +
        +
        +
        +
        + + +
        + + +
        + + +
        + + +
        +
        + +
        +
        +
        + + +
        +
        + + +
        + +
        +
        + + +
        + + + + + +
        + + + + + + +
        + + + + + +
        + +
        +
        ';} ?>
        +
        + + +
        + + + + + + +
        + + + + + + +
        + + + + + + + +
        +
        +
        +
        + +
        +
        +
        +
        +
        + + +
        +
        + +

        +
        +
        +
        + +
        +
        " style="width:100%;overflow:auto;">
        +
        +
        +
        +
        + + + + + + + + +
        + + + + + + + + + + + + diff --git a/system/admin/views/add-page.html.php b/system/admin/views/add-page.html.php new file mode 100644 index 0000000..9817646 --- /dev/null +++ b/system/admin/views/add-page.html.php @@ -0,0 +1,201 @@ + + + + + + + + + + + + +
        + +
        +
        +
        +
        +
        +
        +
        + + +
        + + +
        +
        +
        + + + +
        + +
        +
        +
        +
        + +
        +
        +
        +
        + +
        + +
        + + + + + + + + + +
        +
        + +
        +
        " style="width:100%;overflow:auto;">
        +
        +
        +
        +
        + + + + +
        + + + + + + + + + + + \ No newline at end of file diff --git a/system/admin/views/add-user.html.php b/system/admin/views/add-user.html.php new file mode 100644 index 0000000..c809377 --- /dev/null +++ b/system/admin/views/add-user.html.php @@ -0,0 +1,48 @@ + +

        +
        + +
        + +
        + +
        + +
        + +
        +
        +
        + +
        +
        +
        + + +
        +
        + + +
        +
        + + +
        +
        +
        +
        +
        + +
        + +
        +
        + + +
        \ No newline at end of file diff --git a/system/admin/views/backup-start.html.php b/system/admin/views/backup-start.html.php new file mode 100644 index 0000000..aaaa353 --- /dev/null +++ b/system/admin/views/backup-start.html.php @@ -0,0 +1,24 @@ + + \ No newline at end of file diff --git a/system/admin/views/backup.html.php b/system/admin/views/backup.html.php new file mode 100644 index 0000000..6b4f2b1 --- /dev/null +++ b/system/admin/views/backup.html.php @@ -0,0 +1,51 @@ + + + +
        +
        Note:
        +Please install the ZIP extension to use the backup feature. +
        + +

        +
        + +

        +'; + echo '' . i18n('Filename') . ''.i18n('Date').'' . i18n('Operations') . ''; + foreach ($files as $file) { + + $arr = explode('_', pathinfo($file, PATHINFO_FILENAME)); + $t = str_replace('-', '', $arr[1]); + $dt = new DateTime($t); + $timestamp = $dt->format("D, d F Y, H:i:s"); + $url = site_url() . $file; + echo ''; + echo '' . pathinfo($file, PATHINFO_BASENAME) . ''; + echo '' . $timestamp . ''; + echo 'Download
        '; + echo ''; + } + echo ''; + } else { + echo i18n('No_available_backup'); + } +} + + ?> \ No newline at end of file diff --git a/system/admin/views/categories.html.php b/system/admin/views/categories.html.php new file mode 100644 index 0000000..cfe1700 --- /dev/null +++ b/system/admin/views/categories.html.php @@ -0,0 +1,30 @@ + + +

        +
        + +

        + + + + + + + + + + + + + + + + slug !== 'uncategorized'):?> + + + + + +
        title;?>body;?>slug) + $d->count + get_scheduledcount($d->slug); echo $total?> count == 0 && get_draftcount($d->slug) == 0 && get_scheduledcount($d->slug) == 0){echo '' . i18n('Delete') . '';}?>
        diff --git a/system/admin/views/category-list.html.php b/system/admin/views/category-list.html.php new file mode 100644 index 0000000..c7d1d23 --- /dev/null +++ b/system/admin/views/category-list.html.php @@ -0,0 +1,53 @@ + +

        title ?>

        +
        body;?>
        +
        +url !== site_url() . 'category/uncategorized'):?> +

        + + + + + + + + + + + + + + + url !== site_url() . 'category/uncategorized') {?> + + + + + + + + +
        title ?>date) ?>
        + +
        +
        +
          + +
        • + +
        • + +
        • + +
        • + +
        • + +
        +
        + + \ No newline at end of file diff --git a/system/admin/views/clear-cache.html.php b/system/admin/views/clear-cache.html.php new file mode 100644 index 0000000..db722fa --- /dev/null +++ b/system/admin/views/clear-cache.html.php @@ -0,0 +1,16 @@ + + \ No newline at end of file diff --git a/system/admin/views/config-custom.html.php b/system/admin/views/config-custom.html.php new file mode 100644 index 0000000..50d195d --- /dev/null +++ b/system/admin/views/config-custom.html.php @@ -0,0 +1,45 @@ + +

        +
        + +

        +

        +

        +

        <?php echo config(''); ?>

        +
        + + + + + + + $value) { + if (!in_array($key, $configList)) { + echo ''; + echo ''; + echo ''; + echo ''; + } + } + ?> +
        + +
        diff --git a/system/admin/views/config-metatags.html.php b/system/admin/views/config-metatags.html.php new file mode 100644 index 0000000..d3977c5 --- /dev/null +++ b/system/admin/views/config-metatags.html.php @@ -0,0 +1,254 @@ + + +

        +
        + +
        +
        Note:
        +Please install and enable the GD extension to use the thumbnail feature. +
        + + +

        +
        + +

        +
        +
        + +
        +
        +
        + checked> + +
        +
        + checked> + +
        +
        +
        +
        +
        + +
        + +
        +
        +
        + +
        + +
        +
        +
        + +
        + +

        default

        +

        post

        +
        +
        +
        +

        +
        +
        + +
        + +
        +
        +
        + +
        + +
        +
        +
        + +
        + +
        +
        +
        + +
        + +
        +
        +
        + +
        + +
        +
        +
        +

        Title formats

        +
        + +
        + +
        + +

        Available shortcode: %blog_title% %blog_tagline% %blog_description%

        +
        +
        +
        + +
        + +

        Available shortcode: %blog_title% %blog_tagline% %blog_description% %post_title% %post_description% %post_category% %post_tag% %post_author% %post_type%

        +
        +
        +
        + +
        + +

        Available shortcode: %blog_title% %blog_tagline% %blog_description% %page_title% %page_description%

        +
        +
        +
        + +
        + +

        Available shortcode: %blog_title% %blog_tagline% %blog_description% %category_title% %category_description%

        +
        +
        +
        + +
        + +

        Available shortcode: %blog_title% %blog_tagline% %blog_description% %tag_title% %tag_description%

        +
        +
        +
        + +
        + +

        Available shortcode: %blog_title% %blog_tagline% %blog_description% %archive_title% %archive_description%

        +
        +
        +
        + +
        + +

        Available shortcode: %blog_title% %blog_tagline% %blog_description% %search_title% %search_description%

        +
        +
        +
        + +
        + +

        Available shortcode: %blog_title% %blog_tagline% %blog_description% %type_title% %type_description%

        +
        +
        +
        + +
        + +

        Available shortcode: %blog_title% %blog_tagline% %blog_description% %author_name% %author_description%

        +
        +
        +
        + +
        + +

        Available shortcode: %blog_title% %blog_tagline% %blog_description%

        +
        +
        +
        + +
        + +

        Available shortcode: %blog_title% %blog_tagline% %blog_description% %page_title%

        +
        +
        +
        +

        +
        +

        https://www.sitemaps.org/protocol.html

        + $value) {?> + + +
        + +
        + +
        +
        + + + +
        +
        + +
        +
        +
        diff --git a/system/admin/views/config-performance.html.php b/system/admin/views/config-performance.html.php new file mode 100644 index 0000000..b6a0ded --- /dev/null +++ b/system/admin/views/config-performance.html.php @@ -0,0 +1,131 @@ + +

        +
        + +

        +
        + +
        + +
        + +
        +
        +
        + +
        +
        +
        + checked> + +
        +
        + checked> + +
        +
        +
        +
        +
        + +
        +
        +
        + checked> + +
        +
        + checked> + +
        +
        +
        +
        +
        + +
        +
        +
        + checked> + +
        +
        + checked> + +
        +
        +
        +
        +
        +

        Multisite

        +
        +
        + +
        +
        +
        + checked> + +
        +
        + checked> + +
        +
        +
        +
        +
        +

        +
        +
        + +
        +
        +
        + checked> + +
        +
        + checked> + +
        +
        +
        +
        +
        +
        + +
        +
        +
        diff --git a/system/admin/views/config-reading.html.php b/system/admin/views/config-reading.html.php new file mode 100644 index 0000000..64d7097 --- /dev/null +++ b/system/admin/views/config-reading.html.php @@ -0,0 +1,173 @@ + +

        +
        + +

        +
        + +
        + +
        +
        +
        + checked> + +
        +
        + checked> + +
        +
        +
        +
        +
        + +
        + +
        +
        +
        + +
        +
        +
        + checked> + +
        +
        + checked> + +
        +
        +
        +
        +
        + +
        + +
        +
        +
        + +
        +
        +
        + checked> + +
        +
        + checked> + +
        +
        + +
        +
        +
        + +
        + +
        +
        +
        +

        +
        +
        + +
        + +
        +
        +
        + +
        + +
        +
        +
        + +
        + +
        +
        +
        + +
        + +
        +
        +
        + +
        + +
        +
        +
        + +
        + +
        +
        +
        +

        +
        +
        + +
        +
        +
        + checked> + +
        +
        + checked> + +
        +
        +
        +
        +
        + +
        + +
        +
        +
        + +
        + +
        +
        +
        +
        + +
        +
        +
        diff --git a/system/admin/views/config-security.html.php b/system/admin/views/config-security.html.php new file mode 100644 index 0000000..55dfe00 --- /dev/null +++ b/system/admin/views/config-security.html.php @@ -0,0 +1,88 @@ + +

        +
        + +

        +
        + +

        +
        +

        https://www.google.com/recaptcha/admin +

        https://developers.cloudflare.com/turnstile/ +

        + +
        +
        +
        + checked> + +
        +
        + checked> + +
        +
        + checked> + +
        +
        +
        +
        +
        + +
        + +
        +
        +
        + +
        + +
        +
        +
        +

        +
        +
        + +
        +
        +
        + checked> + +
        +
        + checked> + +
        +
        + +
        +
        +
        +
        + +
        +
        +
        diff --git a/system/admin/views/config-widget.html.php b/system/admin/views/config-widget.html.php new file mode 100644 index 0000000..d81f5b0 --- /dev/null +++ b/system/admin/views/config-widget.html.php @@ -0,0 +1,261 @@ + +

        +
        + +

        +
        + +
        + +
        + +
        +
        +
        + +
        + +
        +
        +
        + +
        +
        +
        + checked> + +
        +
        + checked> + +
        +
        +
        +
        +
        + +
        + +
        +
        +
        + +
        + +
        +
        +
        +

        TOC (Table of Contents)

        +
        +
        + +
        + +
        +
        +
        + +
        +
        +
        + checked> + +
        +
        + checked> + +
        +
        +
        +
        +
        + +
        +
        +
        + checked> + +
        +
        + checked> + +
        +
        +
        +
        +
        + +
        +
        +
        + checked> + +
        +
        + checked> + +
        +
        + It will check the shortcode first before add the TOC to post or page/subpage +
        +
        +
        + +
        + +
        +
        +
        +

        +
        +

        +
        + +
        +
        +
        + checked> + +
        +
        + checked> + +
        +
        + checked> + +
        +
        +
        +
        +
        + +
        + +
        +
        +
        + +
        + +
        +
        +
        +

        +
        +
        + +
        + +
        +
        +
        + +
        + + +
        +
        +
        + +
        + + +
        +
        +
        +

        +
        +
        + +
        + +
        +
        +
        + +
        + +
        +
        +
        + +
        + +
        +
        +
        + +
        + +
        +
        +
        + +
        + +
        +
        +
        + +
        + +
        +
        +
        + +
        + +
        +
        +
        + +
        + +
        +
        +
        + +
        + +
        +
        +
        +
        + +
        +
        +
        diff --git a/system/admin/views/config-writing.html.php b/system/admin/views/config-writing.html.php new file mode 100644 index 0000000..dd9dcf1 --- /dev/null +++ b/system/admin/views/config-writing.html.php @@ -0,0 +1,44 @@ + +

        +
        + +

        +
        + +
        + +
        +
        +
        + checked> + +
        +
        + checked> + +
        +
        + +
        +
        +
        +
        + +
        +
        +
        diff --git a/system/admin/views/config.html.php b/system/admin/views/config.html.php new file mode 100644 index 0000000..d8998e6 --- /dev/null +++ b/system/admin/views/config.html.php @@ -0,0 +1,199 @@ + +

        +
        + + +
        +
        Note:
        +Please install and enable the INTL extension to format the date format to your local language. +
        + + +

        +
        + +
        + +
        + +
        +
        +
        + +
        + +
        +
        +
        + +
        + + +
        +
        +
        + +
        + + +
        +
        +
        + +
        + +
        +
        +
        + +
        + +
        +
        +
        + format("Y-m-d H:i:s");?> + +
        +
        +
        + checked> + +
        +
        + checked> + +
        +
        + checked> + +
        +
        + checked> + +
        +
        + checked> + +
        +
        + checked> + +
        +
        + checked> + +
        +
        + checked> + +
        +
        +
        +
        +
        + +
        + +
        +
        +
        + +
        + +
        +
        +
        + +
        +
        +
        + checked> + +
        +
        + checked> + +
        +
        + +
        +
        + +
        + +
        +
        +
        + checked> + +
        +
        + checked> + +
        +
        +
        +
        + + +
        +
        +
        + +
        +
        +
        diff --git a/system/admin/views/content-type.html.php b/system/admin/views/content-type.html.php new file mode 100644 index 0000000..4e99532 --- /dev/null +++ b/system/admin/views/content-type.html.php @@ -0,0 +1,21 @@ + +

        + +
        +
        +


        .

        +


        .

        +


        .

        +


        .

        +
        +
        +


        .

        +


        .

        + +


        .

        + +
        +
        \ No newline at end of file diff --git a/system/admin/views/delete-category.html.php b/system/admin/views/delete-category.html.php new file mode 100644 index 0000000..6aa9dc5 --- /dev/null +++ b/system/admin/views/delete-category.html.php @@ -0,0 +1,25 @@ + +file; +$post = $p->url; +if (isset($destination)) { + if ($destination == 'post') { + $back = $post; + } else { + $back = site_url() . $destination; + } +} else { + $back = site_url(); +} +$info = $p->title . ' (' . $p->file . ')'; +?> +

        +
        +
        + + + ' . i18n('Cancel');?> +
        \ No newline at end of file diff --git a/system/admin/views/delete-page.html.php b/system/admin/views/delete-page.html.php new file mode 100644 index 0000000..6aa9dc5 --- /dev/null +++ b/system/admin/views/delete-page.html.php @@ -0,0 +1,25 @@ + +file; +$post = $p->url; +if (isset($destination)) { + if ($destination == 'post') { + $back = $post; + } else { + $back = site_url() . $destination; + } +} else { + $back = site_url(); +} +$info = $p->title . ' (' . $p->file . ')'; +?> +

        +
        +
        + + + ' . i18n('Cancel');?> +
        \ No newline at end of file diff --git a/system/admin/views/delete-post.html.php b/system/admin/views/delete-post.html.php new file mode 100644 index 0000000..6aa9dc5 --- /dev/null +++ b/system/admin/views/delete-post.html.php @@ -0,0 +1,25 @@ + +file; +$post = $p->url; +if (isset($destination)) { + if ($destination == 'post') { + $back = $post; + } else { + $back = site_url() . $destination; + } +} else { + $back = site_url(); +} +$info = $p->title . ' (' . $p->file . ')'; +?> +

        +
        +
        + + + ' . i18n('Cancel');?> +
        \ No newline at end of file diff --git a/system/admin/views/delete-user.html.php b/system/admin/views/delete-user.html.php new file mode 100644 index 0000000..9610fd0 --- /dev/null +++ b/system/admin/views/delete-user.html.php @@ -0,0 +1,13 @@ + + +

        +

        Note: This only delete the user and not the contents. +

        +
        +
        + + + +
        \ No newline at end of file diff --git a/system/admin/views/denied.html.php b/system/admin/views/denied.html.php new file mode 100644 index 0000000..da08b83 --- /dev/null +++ b/system/admin/views/denied.html.php @@ -0,0 +1,2 @@ + +

        \ No newline at end of file diff --git a/system/admin/views/edit-content.html.php b/system/admin/views/edit-content.html.php new file mode 100644 index 0000000..8e77bb5 --- /dev/null +++ b/system/admin/views/edit-content.html.php @@ -0,0 +1,431 @@ + +file)) { + $file_path = pathinfo($p->file); +} else { + $file_path = pathinfo($oldfile); +} + +$filename = $file_path['dirname'] . '/' . $file_path['basename']; + +$desc = get_category_info(null); + +$content = file_get_contents($filename); +$oldtitle = get_content_tag('t', $content, 'Untitled'); +$olddescription = get_content_tag('d', $content); +$oldtag = get_content_tag('tag', $content); +$oldcontent = remove_html_comments($content); + +$oldimage = get_content_tag('image', $content); +$oldaudio = get_content_tag('audio', $content); +$oldvideo = get_content_tag('video', $content); +$oldlink = get_content_tag('link', $content); +$oldquote = get_content_tag('quote', $content); + +$dir = $file_path['dirname']; +$isdraft = explode('/', $dir); +$oldurl = explode('_', $file_path['basename']); + +if (empty($oldtag)) { + $oldtag = $oldurl[1]; +} + +$oldmd = str_replace('.md', '', $oldurl[2]); + +if (isset($_GET['destination'])) { + $destination = _h($_GET['destination']); +} else { + $destination = 'admin'; +} + +$cat = explode('/', $dir); +$category = $cat[3]; + +$dt = $oldurl[0]; +$t = str_replace('-', '', $dt); +$time = new DateTime($t); +$timestamp = $time->format("Y-m-d H:i:s"); +// The post date +$postdate = strtotime($timestamp); +// The post URL +if (permalink_type() == 'default') { + $delete = site_url() . date('Y/m', $postdate) . '/' . $oldmd . '/delete?destination=' . $destination; +} else { + // The post URL + $delete = site_url() . permalink_type() . '/' . $oldmd . '/delete?destination=' . $destination; +} + +$tags = tag_cloud(true); +$tagslang = "content/data/tags.lang"; +if (file_exists($tagslang)) { + $ptags = unserialize(file_get_contents($tagslang)); + $tkey = array_keys($tags); + if (!empty($ptags)) { + $newlang = array_intersect_key($ptags, array_flip($tkey)); + } else { + $newlang = array_combine($tkey, $tkey); + } + $tmp = serialize($newlang); + file_put_contents($tagslang, print_r($tmp, true), LOCK_EX); +} + +$images = image_gallery(null, 1, 40); + +?> + + + + + + + + + + + +
        + +
        +
        +
        +
        +
        +
        +
        + + +
        + + +
        + + +
        + + + +
        +
        + +
        +
        +
        + + +
        +
        + + +
        + +
        +
        + + +
        + + + + + +
        + + + + + + +
        + + + + + +
        + +
        +
        +
        + + +
        + + + + + + +
        + + + + + + +
        + + + + + + + +
        +
        +
        +
        + +
        +
        +
        +
        +
        + + +
        +
        + + + + + +

        +
        +
        +
        + +
        +
        " style="width:100%;overflow:auto;">
        +
        +
        +
        +
        + + + + + + + + +
        + + + + + + + + + + + + diff --git a/system/admin/views/edit-mfa.html.php b/system/admin/views/edit-mfa.html.php new file mode 100644 index 0000000..33a6227 --- /dev/null +++ b/system/admin/views/edit-mfa.html.php @@ -0,0 +1,76 @@ + +generateSecretKey(); + + if (version_compare(PHP_VERSION, '8.1', '>=')) { + + $g2faUrl = $google2fa->getQRCodeUrl( + $user, + $domain, + $mfasecret + ); + + $renderer = new GDLibRenderer(400); + $writer = new Writer($renderer); + + $qrcode_image = base64_encode($writer->writeString($g2faUrl)); + } +} +?> +

        +
        + +
        + +
        + + + + =')) {?> +
        + + + Setup Key +

        +

        + +
        + +
        + +
        +
        +
        + +
        + +
        +
        + + + + +
        + +
        + +
        +
        + + +
        diff --git a/system/admin/views/edit-page.html.php b/system/admin/views/edit-page.html.php new file mode 100644 index 0000000..2a01396 --- /dev/null +++ b/system/admin/views/edit-page.html.php @@ -0,0 +1,358 @@ + +body; + $oldtitle = $p->title; + $olddescription = $p->description; + $oldcontent = $p->body; + $oldmd = $p->slug; + $url = 'content/data/category/'. $p->slug . '.md'; +} else { + + if (isset($p->file)) { + $url = $p->file; + } else { + $url = $oldfile; + } + $content = file_get_contents($url); + $oldtitle = get_content_tag('t', $content, 'Untitled'); + $olddescription = get_content_tag('d', $content); + $oldcontent = remove_html_comments($content); + + if (isset($_GET['destination'])) { + $destination = _h($_GET['destination']); + } else { + $destination = 'admin'; + } + $dir = pathinfo($url, PATHINFO_DIRNAME); + $oldurl = pathinfo($url, PATHINFO_BASENAME); + + $fn = explode('.', pathinfo($url, PATHINFO_FILENAME)); + if (isset($fn[1])) { + $oldmd = $fn[1]; + } else { + $oldmd = pathinfo($url, PATHINFO_FILENAME); + } + + if (isset($p->url)) { + $delete = $p->url . '/delete?destination=' . $destination; + } + else { + if(empty($sub)) { + $delete = site_url() . $oldmd . '/delete?destination=' . $destination; + } + else { + $delete = site_url() . $static .'/'. $sub . '/delete?destination=' . $destination; + } + } +} + +$images = image_gallery(null, 1, 40); + +?> + + + + + + + + + + +
        + +
        +
        +
        +
        +
        +
        +
        + + +
        + + +
        + +

        + +
        +
        + + +
        + +
        + + + + + +
        + +
        +
        +
        + + +
        + + +
        +
        +
        +
        + +
        +
        +
        +
        + +
        + +
        + + + + + + + + + + + + + + + + + + +
        +
        + +
        +
        " style="width:100%;overflow:auto;">
        +
        +
        +
        +
        + + + + + + + + +
        + + + + + + + + + + + + + + + + diff --git a/system/admin/views/edit-password.html.php b/system/admin/views/edit-password.html.php new file mode 100644 index 0000000..8e0497d --- /dev/null +++ b/system/admin/views/edit-password.html.php @@ -0,0 +1,25 @@ + + +

        +
        +
        + +
        + +
        + +
        +
        +
        + +
        + +
        +
        + + +
        \ No newline at end of file diff --git a/system/admin/views/edit-user.html.php b/system/admin/views/edit-user.html.php new file mode 100644 index 0000000..efa3e1c --- /dev/null +++ b/system/admin/views/edit-user.html.php @@ -0,0 +1,49 @@ + +

        +
        + +
        + +
        + +
        + +
        +
        +
        + +
        +
        +
        + checked> + +
        +
        + checked> + +
        +
        + checked> + +
        +
        +
        +
        +
        + +
        + +
        +
        + + +
        \ No newline at end of file diff --git a/system/admin/views/import.html.php b/system/admin/views/import.html.php new file mode 100644 index 0000000..872c0fb --- /dev/null +++ b/system/admin/views/import.html.php @@ -0,0 +1,16 @@ + + +
        + +

        +

        +
        +
        +

        + + +
        diff --git a/system/admin/views/layout.html.php b/system/admin/views/layout.html.php new file mode 100644 index 0000000..fb68517 --- /dev/null +++ b/system/admin/views/layout.html.php @@ -0,0 +1,394 @@ + + + + + + <?php echo $title;?> + + + + + + + + + + +"> +
        +
        + + + + + + + + + +
        + +
        +
        +
        +
        + + + + +
        +
        +
        +
        + + + +
        +
        +
        +
        +
        +
        + +
        +
        +
        + +
        + +
        +
        + +
        + + + + + + + + +
        + + +"> + + + + + + + + + + + + + diff --git a/system/admin/views/login-mfa.html.php b/system/admin/views/login-mfa.html.php new file mode 100644 index 0000000..ee4531c --- /dev/null +++ b/system/admin/views/login-mfa.html.php @@ -0,0 +1,17 @@ + + + + +
        + +

        +
        + + + +
        + +
        diff --git a/system/admin/views/login.html.php b/system/admin/views/login.html.php new file mode 100644 index 0000000..7bd42e0 --- /dev/null +++ b/system/admin/views/login.html.php @@ -0,0 +1,38 @@ + + + +
        + + +

        +
        + + +
        + + +
        + + + +
        ">
        +
        + + + +
        ">
        +
        + + +
        + diff --git a/system/admin/views/logout.html.php b/system/admin/views/logout.html.php new file mode 100644 index 0000000..19ab5c8 --- /dev/null +++ b/system/admin/views/logout.html.php @@ -0,0 +1,8 @@ + + \ No newline at end of file diff --git a/system/admin/views/main.html.php b/system/admin/views/main.html.php new file mode 100644 index 0000000..01eab03 --- /dev/null +++ b/system/admin/views/main.html.php @@ -0,0 +1,31 @@ + +' . i18n('Your_recent_posts') . '';?> +
        + +

        +'; + echo '' . i18n('Title') . '' . i18n('Published') . ''; + if (config("views.counter") == "true") + echo ''.i18n('Views').''; + echo '' . i18n('Category') . '' . i18n('Tags') . '' . i18n('Operations') . ''; + foreach ($posts as $p) { + echo ''; + echo '' . $p->title . ''; + echo '' . format_date($p->date) . ''; + if (config("views.counter") == "true") + echo '' . $p->views . ''; + echo ''. $p->categoryTitle .''; + echo '' . str_replace("rel=\"tag\"", "rel=\"tag\" class=\"badge badge-light text-primary font-weight-normal\"", $p->tag) . ''; + echo '' . i18n('Edit') . ' ' . i18n('Delete') . ''; + echo ''; + } + echo ''; + } +} + +?> diff --git a/system/admin/views/menu.html.php b/system/admin/views/menu.html.php new file mode 100644 index 0000000..966094c --- /dev/null +++ b/system/admin/views/menu.html.php @@ -0,0 +1,416 @@ + +'; + foreach ($menus as $menu) { + $ol .= parseMenu($menu); + } + $ol .= '
    '; + return $ol; +} + +function parseMenu($menu) { + $li = '
  • '; + $li .= '
    '.$menu->name.'
    '; + $li .= ''.i18n('Delete').''; + $li .= ''.i18n('Edit').''; + if (isset($menu->children)) { + $li .= parseMenus($menu->children); + } + $li .= '
  • '; + return $li; +} + +?> + +
    +
    +
    Drag & Drop
    '. $menu;} else {echo ''.i18n('At_the_moment_you_are_using_auto_generated_menu').'
      ';}?>
      +
      + +
      + + +
      +
      + +
      +
      +
      + + +
      +
      +
      + + + + \ No newline at end of file diff --git a/system/admin/views/no-posts.html.php b/system/admin/views/no-posts.html.php new file mode 100644 index 0000000..641ec95 --- /dev/null +++ b/system/admin/views/no-posts.html.php @@ -0,0 +1,2 @@ + +

      !

      diff --git a/system/admin/views/popular-posts.html.php b/system/admin/views/popular-posts.html.php new file mode 100644 index 0000000..94946df --- /dev/null +++ b/system/admin/views/popular-posts.html.php @@ -0,0 +1,37 @@ + +

      +
      + +

      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      title ?>date) ?>slug); ?>author ?>categoryTitle;?>tag); ?>
      + diff --git a/system/admin/views/posts-list.html.php b/system/admin/views/posts-list.html.php new file mode 100644 index 0000000..f30bdb3 --- /dev/null +++ b/system/admin/views/posts-list.html.php @@ -0,0 +1,55 @@ + +

      +
      + +

      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      title ?>date) ?>views ?>author ?>categoryTitle;?>tag); ?>
      + +
      +
      +
        + +
      • + +
      • + +
      • + +
      • + +
      • + +
      +
      + + diff --git a/system/admin/views/scheduled.html.php b/system/admin/views/scheduled.html.php new file mode 100644 index 0000000..349b573 --- /dev/null +++ b/system/admin/views/scheduled.html.php @@ -0,0 +1,49 @@ + +

      +
      + +

      + + + + + + + + + + + + + + + + + + + + + + +
      title ?>date, 'd F Y, H:i:s') ?>categoryTitle;?>tag); ?>
      + +
      +
      +
        + +
      • + +
      • + +
      • + +
      • + +
      • + +
      +
      + + diff --git a/system/admin/views/static-pages.html.php b/system/admin/views/static-pages.html.php new file mode 100644 index 0000000..9470ffa --- /dev/null +++ b/system/admin/views/static-pages.html.php @@ -0,0 +1,72 @@ + +' . i18n('Static_pages') . '';?> +
      + +

      + + + + + + + + + + + + + + + + + slug); ?> + slug);?> + + + + + + + + +
      title;?>views;?> + +
      +
      + title;?> +
      +
      views;?>
      +
      + +
      +
      + +
      +
      + + + \ No newline at end of file diff --git a/system/admin/views/static-subpages.html.php b/system/admin/views/static-subpages.html.php new file mode 100644 index 0000000..0b43a20 --- /dev/null +++ b/system/admin/views/static-subpages.html.php @@ -0,0 +1,71 @@ + + +
      +
      +

      title ?>

      +
      description;?>
      +
      +
      + +

      + +slug);?> + + + + + + + + + + + + + + + + + + + + + + + +
      title ?>description;?>views;?>
      +
      + + \ No newline at end of file diff --git a/system/admin/views/update.html.php b/system/admin/views/update.html.php new file mode 100644 index 0000000..1fe412f --- /dev/null +++ b/system/admin/views/update.html.php @@ -0,0 +1,63 @@ + + 'danpros/htmly', + 'prerelease' => config("prerelease"), +)); + +$dir = 'cache/'; +if (!is_dir($dir)) { + mkdir($dir, 0775, true); +} +if (defined("JSON_PRETTY_PRINT")) { + file_put_contents( + 'cache/installedVersion.json', + json_encode(array( + "tag_name" => constant('HTMLY_VERSION') + ), JSON_PRETTY_PRINT), LOCK_EX); +} else { + file_put_contents( + 'cache/installedVersion.json', + json_encode(array( + "tag_name" => constant('HTMLY_VERSION') + )), LOCK_EX + ); +} + +if (empty($updater->getNewestInfo())) { + echo '

      '.i18n('Update').'


      '; + echo "Can't check Github server for latest version. You are probably offline."; +} else { + if ($updater->able()) { + $info = $updater->getNewestInfo(); + echo '

      '.i18n('Update_Available').'


      '; + echo '

      '. $info['name'] .'

      '; + echo '

      Version: '. $info['tag_name'] .'

      '; + echo '
      Release Notes
      '; + echo '
      '; + echo \Michelf\MarkdownExtra::defaultTransform($info['body']); + echo '
      '; + echo '

      Important: Please always backup your files before upgrading to newer version.

      '; + echo '

      '.i18n('Update_to').' '. $info['tag_name'] . ' '.i18n('now').'

      '; + } else { + echo '

      '.i18n('Congrats_You_have_the_latest_version_of_HTMLy').'


      '; + $info = $updater->getCurrentInfo(); + echo '

      '. $info['name'] .'

      '; + echo '

      Installed Version: '. $info['tag_name'] .'

      '; + echo '
      Release Notes:
      '; + echo '
      '; + echo \Michelf\MarkdownExtra::defaultTransform($info['body']); + echo '
      '; + echo '

      Read on Github

      '; + if (config('show.version') == 'false') { + if(file_exists('cache/installedVersion.json')) { + unlink('cache/installedVersion.json'); + } + } + } +} diff --git a/system/admin/views/updated-to.html.php b/system/admin/views/updated-to.html.php new file mode 100644 index 0000000..d5cc320 --- /dev/null +++ b/system/admin/views/updated-to.html.php @@ -0,0 +1,13 @@ +

      Updated to

      +

      []

      +

      + diff --git a/system/admin/views/user-draft.html.php b/system/admin/views/user-draft.html.php new file mode 100644 index 0000000..3285913 --- /dev/null +++ b/system/admin/views/user-draft.html.php @@ -0,0 +1,93 @@ + +

      +
      + +

      + + + + + + + + + + + + + + + + + + + + + + +
      title ?>date) ?>categoryTitle;?>tag); ?>
      + +
      +
      +
        + +
      • + +
      • + +
      • + +
      • + +
      • + +
      +
      + + + + +

      +
      +

      :

      + + + + + + + + slug)); ?> + + + + + + +
      title ?>lastMod) ?>
      + + + +

      +
      +

      : Sub

      + + + + + + + + + parentSlug);?> + + + + + + + +
      title ?>lastMod) ?> title;?>
      + diff --git a/system/admin/views/user-posts.html.php b/system/admin/views/user-posts.html.php new file mode 100644 index 0000000..12cd947 --- /dev/null +++ b/system/admin/views/user-posts.html.php @@ -0,0 +1,55 @@ + +

      +
      + +

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      title ?>date) ?>views ?>categoryTitle;?>tag); ?>
      + +
      +
      +
        + +
      • + +
      • + +
      • + +
      • + +
      • + +
      +
      + + diff --git a/system/admin/views/users.html.php b/system/admin/views/users.html.php new file mode 100644 index 0000000..4dfd837 --- /dev/null +++ b/system/admin/views/users.html.php @@ -0,0 +1,29 @@ + +

      +
      + +

      + + + + + + + + + + + + + + + + + + + + +
      \ No newline at end of file diff --git a/system/configList.json b/system/configList.json new file mode 100644 index 0000000..66eae48 --- /dev/null +++ b/system/configList.json @@ -0,0 +1,99 @@ +[ + "site.url", + "timezone", + "date.format", + "language", + "blog.title", + "blog.tagline", + "blog.description", + "blog.copyright", + "permalink.type", + "static.frontpage", + "blog.enable", + "blog.path", + "blog.string", + "social.bluesky", + "social.twitter", + "social.facebook", + "social.instagram", + "social.linkedin", + "social.github", + "social.youtube", + "social.mastodon", + "social.tiktok", + "breadcrumb.home", + "comment.system", + "fb.appid", + "fb.num", + "fb.color", + "disqus.shortname", + "google.wmt.id", + "google.analytics.id", + "google.gtag.id", + "login.protect.system", + "login.protect.public", + "login.protect.private", + "posts.perpage", + "category.perpage", + "tag.perpage", + "archive.perpage", + "search.perpage", + "profile.perpage", + "type.perpage", + "json.count", + "category.info", + "related.count", + "recent.count", + "popular.count", + "tagcloud.count", + "read.more", + "teaser.type", + "teaser.behave", + "teaser.char", + "description.char", + "rss.count", + "rss.char", + "views.counter", + "sitemap.priority.base", + "sitemap.priority.post", + "sitemap.priority.static", + "sitemap.priority.category", + "sitemap.priority.tag", + "sitemap.priority.archiveDay", + "sitemap.priority.archiveMonth", + "sitemap.priority.archiveYear", + "sitemap.priority.author", + "sitemap.priority.type", + "prerelease", + "cache.expiration", + "cache.off", + "generation.time", + "cache.timestamp", + "multi.site", + "toc.label", + "toc.state", + "toc.style", + "toc.automatic", + "toc.position", + "home.title.format", + "post.title.format", + "page.title.format", + "category.title.format", + "tag.title.format", + "archive.title.format", + "search.title.format", + "type.title.format", + "profile.title.format", + "blog.title.format", + "default.title.format", + "default.image", + "favicon.image", + "views.root", + "views.layout", + "autosave.enable", + "mfa.state", + "show.version", + "thumbnail.width", + "rss.description", + "admin.theme" +] \ No newline at end of file diff --git a/system/htmly.php b/system/htmly.php new file mode 100644 index 0000000..d22af8b --- /dev/null +++ b/system/htmly.php @@ -0,0 +1,5118 @@ + generate_title('is_front', null), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'bodyclass' => 'in-front', + 'breadcrumb' => '', + 'p' => $front, + 'static' => $front, + 'type' => 'is_frontpage', + 'is_front' => true + ), $layout); + + + } else { + + $page = from($_GET, 'page'); + $page = $page ? (int)$page : 1; + $perpage = config('posts.perpage'); + + $posts = get_posts(null, $page, $perpage); + + $total = ''; + + $pv = $vroot . '/main--front.html.php'; + if (file_exists($pv)) { + $pview = 'main--front'; + } else { + $pview = 'main'; + } + + $tblog = new stdClass; + $tblog->title = blog_tagline(); + $tblog->url = site_url(); + $tblog->count = count(get_blog_posts()); + $tblog->description = blog_description(); + $tblog->body = $tblog->description; + $tblog->rss = site_url() . 'feed/rss'; + $tblog->slug = site_path(); + + if (empty($posts) || $page < 1) { + + // a non-existing page + render('no-posts', array( + 'title' => generate_title('is_front', null), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'breadcrumb' => '', + 'bodyclass' => 'no-posts', + 'type' => 'is_frontpage', + 'is_front' => true + ), $layout); + + die; + } + + if ($page > 1) { + $CanonicalPageNum = '?page=' . $page; + } else { + $CanonicalPageNum = NULL; + } + + render($pview, array( + 'title' => generate_title('is_front', null), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url() . $CanonicalPageNum, + 'metatags' => generate_meta(null, null), + 'page' => $page, + 'posts' => $posts, + 'taxonomy' => $tblog, + 'bodyclass' => 'in-front', + 'breadcrumb' => '', + 'pagination' => has_pagination($total, $perpage, $page), + 'type' => 'is_frontpage', + 'is_front' => true, + 'is_taxonomy' => true + ), $layout); + + } +}); + +// Get submitted login data +post('/login', function () { + + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + $captcha = config('login.protect.system'); + if (is_null($captcha) || $captcha === 'disabled') { + $captcha = true; + } elseif ($captcha === 'cloudflare') { + $captcha = isTurnstile(from($_REQUEST, 'cf-turnstile-response')); + } elseif ($captcha === 'google') { + $captcha = isCaptcha(from($_REQUEST, 'g-recaptcha-response')); + } + + $user = from($_REQUEST, 'user'); + $pass = from($_REQUEST, 'password'); + $mfa_secret = user('mfa_secret', $user); + if ($proper && $captcha && !empty($user) && !empty($pass)) { + if (!is_null($mfa_secret) && $mfa_secret !== "disabled" && config('mfa.state') === 'true') { + config('views.root', 'system/admin/views'); + + render('login-mfa', array( + 'title' => generate_title('is_default', i18n('Login')), + 'description' => i18n('Login') . ' ' . blog_title(), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'username' => $user, + 'password' => $pass, + 'type' => 'is_login', + 'is_login' => true, + 'bodyclass' => 'in-login', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Login') + )); + } else { + session($user, $pass); + $log = session($user, $pass); + + if (!empty($log)) { + + config('views.root', 'system/admin/views'); + + render('login', array( + 'title' => generate_title('is_default', i18n('Login')), + 'description' => i18n('Login') . ' ' . blog_title(), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'error' => '
        ' . $log . '
      ', + 'type' => 'is_login', + 'is_login' => true, + 'bodyclass' => 'in-login', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Login') + )); + } + } + } else { + $message['error'] = ''; + if (empty($user)) { + $message['error'] .= '
    1. ' . i18n('User_Error') . '
    2. '; + } + if (empty($pass)) { + $message['error'] .= '
    3. ' . i18n('Pass_Error') . '
    4. '; + } + if (!$proper) { + $message['error'] .= '
    5. ' . i18n('Token_Error') . '
    6. '; + } + if (!$captcha) { + $message['error'] .= '
    7. ' . i18n('Captcha_Error') . '
    8. '; + } + + config('views.root', 'system/admin/views'); + + render('login', array( + 'title' => generate_title('is_default', i18n('Login')), + 'description' => i18n('Login') . ' ' . blog_title(), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'error' => '
        ' . $message['error'] . '
      ', + 'username' => $user, + 'password' => $pass, + 'type' => 'is_login', + 'is_login' => true, + 'bodyclass' => 'in-login', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Login') + )); + } +}); + +// Verify MFA +post('/login-mfa', function () { + + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + $user = $_SESSION["mfa_uid"]; + $pass = $_SESSION["mfa_pwd"]; + $mfacode = from($_REQUEST, 'mfacode'); + $mfa_secret = user('mfa_secret', $user); + $google2fa = new Google2FA(); + if ($proper && $google2fa->verifyKey($mfa_secret, $mfacode, '1')) { + session($user, $pass); + $log = session($user, $pass); + + if (!empty($log)) { + + config('views.root', 'system/admin/views'); + + render('login', array( + 'title' => generate_title('is_default', i18n('Login')), + 'description' => i18n('Login') . ' ' . blog_title(), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'error' => '
        ' . $log . '
      ', + 'type' => 'is_login', + 'is_login' => true, + 'bodyclass' => 'in-login', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Login') + )); + } + } else { + $message['error'] = ''; + if (!$proper) { + $message['error'] .= '
    9. ' . i18n('Token_Error') . '
    10. '; + } else { + $message['error'] .= '
    11. ' . i18n('MFA_Error') . '
    12. '; + } + config('views.root', 'system/admin/views'); + + render('login-mfa', array( + 'title' => generate_title('is_default', i18n('Login')), + 'description' => i18n('Login') . ' ' . blog_title(), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'error' => '
        ' . $message['error'] . '
      ', + 'username' => $user, + 'password' => $pass, + 'type' => 'is_login', + 'is_login' => true, + 'bodyclass' => 'in-login', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Login') + )); + } +}); + +// Show the author page +get('/author/:name', function ($name) { + + if (!login()) { + file_cache($_SERVER['REQUEST_URI']); + } + + $page = from($_GET, 'page'); + $page = $page ? (int)$page : 1; + $perpage = config('profile.perpage'); + + $posts = get_profile_posts($name, $page, $perpage); + + $total = get_count('/'.$name.'/', 'dirname'); + + if ($total === 0) { + not_found(); + } + + $author = get_author($name); + + if (isset($author[0])) { + $author = $author[0]; + } else { + $author = default_profile($name); + } + + $vroot = rtrim(config('views.root'), '/'); + + $lt = $vroot . '/layout--profile--' . strtolower($name) . '.html.php'; + $ls = $vroot . '/layout--profile.html.php'; + if (file_exists($lt)) { + $layout = 'layout--profile--' . strtolower($name); + } else if (file_exists($ls)) { + $layout = 'layout--profile'; + } else { + $layout = ''; + } + + $pv = $vroot . '/profile--'. strtolower($name) .'.html.php'; + if (file_exists($pv)) { + $pview = 'profile--'. strtolower($name); + } else { + $pview = 'profile'; + } + + if (empty($posts) || $page < 1) { + render($pview, array( + 'title' => generate_title('is_profile', $author), + 'description' => $author->description, + 'canonical' => $author->url, + 'metatags' => generate_meta('is_profile', $author), + 'page' => $page, + 'posts' => null, + 'about' => $author->about, + 'name' => $author->name, + 'author' => $author, + 'type' => 'is_profile', + 'bodyclass' => 'in-profile author-' . $name, + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Profile_for') . ' ' . $author->name, + 'pagination' => has_pagination($total, $perpage, $page), + 'is_profile' => true + ), $layout); + die; + } + + if ($page > 1) { + $CanonicalPageNum = '?page=' . $page; + } else { + $CanonicalPageNum = NULL; + } + + render($pview, array( + 'title' => generate_title('is_profile', $author), + 'description' => $author->description, + 'canonical' => $author->url . $CanonicalPageNum, + 'metatags' => generate_meta('is_profile', $author), + 'page' => $page, + 'posts' => $posts, + 'about' => $author->about, + 'name' => $author->name, + 'author' => $author, + 'type' => 'is_profile', + 'bodyclass' => 'in-profile author-' . $name, + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Profile_for') . ' ' . $author->name, + 'pagination' => has_pagination($total, $perpage, $page), + 'is_profile' => true + ), $layout); +}); + +// Show the RSS feed +get('/author/:name/feed', function ($name) { + + header('Content-Type: application/rss+xml'); + + $posts = get_profile_posts($name, 1, config('rss.count')); + + $author = get_author($name); + + if (isset($author[0])) { + $author = $author[0]; + } else { + $author = default_profile($name); + } + + // Show an RSS feed + echo generate_rss($posts, $author); +}); + +// Edit the profile +get('/edit/profile', function () { + if (login()) { + config('views.root', 'system/admin/views'); + render('edit-page', array( + 'title' => generate_title('is_default', i18n('Edit_profile')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_profile', + 'is_admin' => true, + 'bodyclass' => 'edit-profile', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » '. i18n('Edit_profile'), + )); + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Get submitted data from edit profile page +post('/edit/profile', function () { + if(!login()) { + $login = site_url() . 'login'; + header("location: $login"); + } + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + $user = $_SESSION[site_url()]['user']; + $title = from($_REQUEST, 'title'); + $description = from($_REQUEST, 'description'); + $image = from($_REQUEST, 'image'); + $content = from($_REQUEST, 'content'); + if ($proper && !empty($title) && !empty($content)) { + edit_profile($title, $content, $user, $description, $image); + } else { + $message['error'] = ''; + if (empty($title)) { + $message['error'] .= '
    13. ' . i18n('msg_error_field_req_title') . '
    14. '; + } + if (empty($content)) { + $message['error'] .= '
    15. ' . i18n('msg_error_field_req_content') . '
    16. '; + } + if (!$proper) { + $message['error'] .= '
    17. ' . i18n('Token_Error') . '
    18. '; + } + config('views.root', 'system/admin/views'); + + render('edit-page', array( + 'title' => generate_title('is_default', 'Edit profile'), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'error' => '
        ' . $message['error'] . '
      ', + 'postTitle' => $title, + 'postContent' => $content, + 'postImage' => $image, + 'type' => 'is_profile', + 'is_admin' => true, + 'bodyclass' => 'edit-profile', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » Edit profile' + )); + } +}); + +get('/edit/password', function () { + if (login()) { + config('views.root', 'system/admin/views'); + render('edit-password', array( + 'title' => generate_title('is_default', i18n('change_password')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_profile', + 'is_admin' => true, + 'bodyclass' => 'edit-password', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » '. i18n('change_password'), + )); + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +post('/edit/password', function() { + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + if (login() && $proper) { + $username = from($_REQUEST, 'username'); + $new_password = from($_REQUEST, 'password'); + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + $mfa = user('mfa_secret', $user); + $old_password = user('password', $username); + if ($user === $username) { + $file = 'config/users/' . $user . '.ini'; + if (file_exists($file)) { + if (!empty($new_password)) { + update_user($user, $new_password, $role, $mfa); + } + } + $redir = site_url() . 'admin'; + header("location: $redir"); + } else { + $redir = site_url(); + header("location: $redir"); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +get('/edit/mfa', function () { + if (login()) { + config('views.root', 'system/admin/views'); + render('edit-mfa', array( + 'title' => generate_title('is_default', i18n('config_mfa')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_profile', + 'is_admin' => true, + 'bodyclass' => 'edit-mfa', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » '. i18n('config_mfa'), + )); + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +post('/edit/mfa', function() { + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + if (login() && $proper) { + $username = from($_REQUEST, 'username'); + $mfa_secret = from($_REQUEST, 'mfa_secret'); + $mfacode = from($_REQUEST, 'mfacode'); + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + $old_password = user('password', $user); + $password = from($_REQUEST, 'password'); + $message['error'] = ''; + if ($user === $username) { + if (!is_null($mfa_secret) && $mfa_secret !== "disabled") { + $google2fa = new Google2FA(); + if ($google2fa->verifyKey($mfa_secret, $mfacode)) { + if (password_verify($password, $old_password)) { + if (!empty($mfa_secret)) { + update_user($user, $password, $role, $mfa_secret); + } + } else { + $message['error'] .= '
    19. ' . i18n('Pass_Error') . '
    20. '; + } + } else { + $message['error'] .= '
    21. ' . i18n('MFA_Error') . '
    22. '; + } + config('views.root', 'system/admin/views'); + render('edit-mfa', array( + 'title' => generate_title('is_default', i18n('config_mfa')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'error' => '
        ' . $message['error'] . '
      ', + 'type' => 'is_profile', + 'is_admin' => true, + 'bodyclass' => 'edit-mfa', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » '. i18n('config_mfa'), + )); + } else { + if (password_verify($password, $old_password)) { + update_user($user, $password, $role, 'disabled'); + } else { + $message['error'] .= '
    23. ' . i18n('Pass_Error') . '
    24. '; + } + config('views.root', 'system/admin/views'); + render('edit-mfa', array( + 'title' => generate_title('is_default', i18n('config_mfa')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'error' => '
        ' . $message['error'] . '
      ', + 'type' => 'is_profile', + 'is_admin' => true, + 'bodyclass' => 'edit-mfa', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » '. i18n('config_mfa'), + )); + } + } else { + $redir = site_url(); + header("location: $redir"); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Edit the frontpage +get('/edit/frontpage', function () { + + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + + if (login()) { + + config('views.root', 'system/admin/views'); + + if ($role === 'editor' || $role === 'admin') { + render('edit-page', array( + 'title' => generate_title('is_default', 'Edit frontpage'), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_frontpage', + 'is_admin' => true, + 'bodyclass' => 'edit-frontpage', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » Edit frontpage', + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', i18n('Denied')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_frontpage', + 'is_admin' => true, + 'bodyclass' => 'denied', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Denied') + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Get submitted data from edit frontpage +post('/edit/frontpage', function () { + if(!login()) { + $login = site_url() . 'login'; + header("location: $login"); + } + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + $title = from($_REQUEST, 'title'); + $content = from($_REQUEST, 'content'); + if ($role === 'editor' || $role === 'admin') { + if ($proper && !empty($title) && !empty($content)) { + edit_frontpage($title, $content); + } else { + $message['error'] = ''; + if (empty($title)) { + $message['error'] .= '
    25. ' . i18n('msg_error_field_req_title') . '
    26. '; + } + if (empty($content)) { + $message['error'] .= '
    27. ' . i18n('msg_error_field_req_content') . '
    28. '; + } + if (!$proper) { + $message['error'] .= '
    29. ' . i18n('Token_Error') . '
    30. '; + } + config('views.root', 'system/admin/views'); + + render('edit-page', array( + 'title' => generate_title('is_default', 'Edit frontpage'), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'error' => '
        ' . $message['error'] . '
      ', + 'postTitle' => $title, + 'postContent' => $content, + 'type' => 'is_frontpage', + 'is_admin' => true, + 'bodyclass' => 'edit-frontpage', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » Edit frontpage' + )); + } + } else { + $redir = site_url(); + header("location: $redir"); + } +}); + +// Edit the frontpage +get('/front/edit', function () { + + if (login()) { + $edit = site_url() . 'edit/frontpage'; + header("location: $edit"); + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Show the "Add content" page +get('/add/content', function () { + + if (isset($_GET['type'])) { + $req = _h($_GET['type']); + } else { + $req = 'post'; + } + + $type = 'is_' . $req; + + if (login()) { + + config('views.root', 'system/admin/views'); + + render('add-content', array( + 'title' => generate_title('is_default', i18n('Add_new_post')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => $type, + 'is_admin' => true, + 'bodyclass' => 'add-content', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Add_new_post') + )); + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Submitted add post data +post('/add/content', function () { + + if(!login()) { + $login = site_url() . 'login'; + header("location: $login"); + } + $is_image = from($_REQUEST, 'is_image'); + $is_audio = from($_REQUEST, 'is_audio'); + $is_video = from($_REQUEST, 'is_video'); + $is_quote = from($_REQUEST, 'is_quote'); + $is_link = from($_REQUEST, 'is_link'); + $is_post = from($_REQUEST, 'is_post'); + + if (!empty($is_image)) { + $type = 'is_image'; + } elseif (!empty($is_video)) { + $type = 'is_video'; + } elseif (!empty($is_link)) { + $type = 'is_link'; + } elseif (!empty($is_quote)) { + $type = 'is_quote'; + } elseif (!empty($is_audio)) { + $type = 'is_audio'; + } elseif (!empty($is_post)) { + $type = 'is_post'; + } + + $link = from($_REQUEST, 'link'); + $image = from($_REQUEST, 'image'); + $audio = from($_REQUEST, 'audio'); + $video = from($_REQUEST, 'video'); + $quote = from($_REQUEST, 'quote'); + + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + + $title = from($_REQUEST, 'title'); + $tag = from($_REQUEST, 'tag'); + $url = from($_REQUEST, 'url'); + $content = from($_REQUEST, 'content'); + $description = from($_REQUEST, 'description'); + $user = $_SESSION[site_url()]['user']; + $draft = from($_REQUEST, 'draft'); + $category = from($_REQUEST, 'category'); + $date = from($_REQUEST, 'date'); + $time = from($_REQUEST, 'time'); + $dateTime = null; + if ($date !== null && $time !== null) { + $dateTime = $date . ' ' . $time; + } + if (empty($url)) { + $url = $title; + } + + if (empty($is_post) && empty($is_image) && empty($is_video) && empty($is_audio) && empty($is_link) && empty($is_quote)) { + $add = site_url() . 'admin/content'; + header("location: $add"); + } + + if ($proper && !empty($title) && !empty($tag) && !empty($content) && !empty($is_post)) { + add_content($title, $tag, $url, $content, $user, $draft, $category, 'post', $description, null, $dateTime); + } elseif ($proper && !empty($title) && !empty($tag) && !empty($content) && !empty($image)) { + add_content($title, $tag, $url, $content, $user, $draft, $category, 'image', $description, $image, $dateTime); + } elseif ($proper && !empty($title) && !empty($tag) && !empty($content) && !empty($video)) { + add_content($title, $tag, $url, $content, $user, $draft, $category, 'video', $description, $video, $dateTime); + } elseif ($proper && !empty($title) && !empty($tag) && !empty($content) && !empty($audio)) { + add_content($title, $tag, $url, $content, $user, $draft, $category, 'audio', $description, $audio, $dateTime); + } elseif ($proper && !empty($title) && !empty($tag) && !empty($content) && !empty($quote)) { + add_content($title, $tag, $url, $content, $user, $draft, $category, 'quote', $description, $quote, $dateTime); + } elseif ($proper && !empty($title) && !empty($tag) && !empty($content) && !empty($link)) { + add_content($title, $tag, $url, $content, $user, $draft, $category, 'link', $description, $link, $dateTime); + } else { + $message['error'] = ''; + if (empty($title)) { + $message['error'] .= '
    31. ' . i18n('msg_error_field_req_title') . '
    32. '; + } + if (empty($tag)) { + $message['error'] .= '
    33. ' . i18n('msg_error_field_req_tag') . '
    34. '; + } + if (empty($content)) { + $message['error'] .= '
    35. ' . i18n('msg_error_field_req_content') . '
    36. '; + } + if (!$proper) { + $message['error'] .= '
    37. ' . i18n('Token_Error') . '
    38. '; + } + + if (!empty($is_image)) { + if (empty($image)) { + $message['error'] .= '
    39. ' . i18n('msg_error_field_req_image') . '
    40. '; + } + } elseif (!empty($is_video)) { + if (empty($video)) { + $message['error'] .= '
    41. ' . i18n('msg_error_field_req_video') . '
    42. '; + } + } elseif (!empty($is_link)) { + if (empty($link)) { + $message['error'] .= '
    43. ' . i18n('msg_error_field_req_link') . '
    44. '; + } + } elseif (!empty($is_quote)) { + if (empty($quote)) { + $message['error'] .= '
    45. ' . i18n('msg_error_field_req_quote') . '
    46. '; + } + } elseif (!empty($is_audio)) { + if (empty($audio)) { + $message['error'] .= '
    47. ' . i18n('msg_error_field_req_audio') . '
    48. '; + } + } + + config('views.root', 'system/admin/views'); + render('add-content', array( + 'title' => generate_title('is_default', i18n('Add_content')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'error' => '
        ' . $message['error'] . '
      ', + 'postTitle' => $title, + 'postImage' => $image, + 'postVideo' => $video, + 'postLink' => $link, + 'postQuote' => $quote, + 'postAudio' => $audio, + 'postTag' => $tag, + 'postUrl' => $url, + 'postContent' => $content, + 'type' => $type, + 'is_admin' => true, + 'bodyclass' => 'add-content', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Add_content') + )); + } + +}); + +// Show the static add page +get('/add/page', function () { + + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + + if (login()) { + config('views.root', 'system/admin/views'); + if ($role === 'editor' || $role === 'admin') { + render('add-page', array( + 'title' => generate_title('is_default', i18n('Add_new_page')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_page', + 'is_admin' => true, + 'bodyclass' => 'add-page', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Add_new_page') + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', i18n('Denied')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_page', + 'is_admin' => true, + 'bodyclass' => 'denied', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Denied') + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Submitted static add page data +post('/add/page', function () { + + if(!login()) { + $login = site_url() . 'login'; + header("location: $login"); + } + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + $title = from($_REQUEST, 'title'); + $url = from($_REQUEST, 'url'); + $content = from($_REQUEST, 'content'); + $description = from($_REQUEST, 'description'); + $draft = from($_REQUEST, 'draft'); + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if (empty($url)) { + $url = $title; + } + if ($role === 'editor' || $role === 'admin') { + if ($proper && !empty($title) && !empty($content) && login()) { + add_page($title, $url, $content, $draft, $description); + } else { + $message['error'] = ''; + if (empty($title)) { + $message['error'] .= '
    49. ' . i18n('msg_error_field_req_title') . '
    50. '; + } + if (empty($content)) { + $message['error'] .= '
    51. ' . i18n('msg_error_field_req_content') . '
    52. '; + } + if (!$proper) { + $message['error'] .= '
    53. ' . i18n('Token_Error') . '
    54. '; + } + config('views.root', 'system/admin/views'); + render('add-page', array( + 'title' => generate_title('is_default', i18n('Add_new_page')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'error' => '
        ' . $message['error'] . '
      ', + 'postTitle' => $title, + 'postUrl' => $url, + 'postContent' => $content, + 'type' => 'is_page', + 'is_admin' => true, + 'bodyclass' => 'add-page', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Add_new_page') + )); + } + } else { + $redir = site_url(); + header("location: $redir"); + } +}); + +// Autosave +post('/admin/autosave', function () { + + if (login()) { + $title = $_REQUEST['title']; + $url = $_REQUEST['url']; + $content = $_REQUEST['content']; + $description = $_REQUEST['description']; + $draft = 'draft'; + $posttype = $_REQUEST['posttype']; + $autoSave = $_REQUEST['autoSave']; + $oldfile = $_REQUEST['oldfile']; + $addEdit = $_REQUEST['addEdit']; + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + + if (empty($url)) { + $url = $title; + } + + if ($addEdit == 'edit') { + $revertPage = ''; + $revertPost = ''; + $publishDraft = ''; + $destination = null; + } + + if (!empty($title) && !empty($content)) { + if ($posttype == 'is_page') { + if ($role === 'editor' || $role === 'admin') { + if ($addEdit == 'add') { + $response = add_page($title, $url, $content, $draft, $description, $autoSave, $oldfile); + } else { + $response = edit_page($title, $url, $content, $oldfile, $revertPage, $publishDraft, $destination, $description, null, $autoSave); + } + } + } elseif ($posttype == 'is_subpage') { + if ($role === 'editor' || $role === 'admin') { + $static = $_REQUEST['parent_page']; + if ($addEdit == 'add') { + $response = add_sub_page($title, $url, $content, $static, $draft, $description, $autoSave, $oldfile); + } else { + $response = edit_page($title, $url, $content, $oldfile, $revertPage, $publishDraft, $destination, $description, $static, $autoSave); + } + } + } else { + $tag = $_REQUEST['tag']; + $category = $_REQUEST['category']; + $dateTime = $_REQUEST['dateTime']; + if ($posttype == 'is_image') { + $type = 'image'; + $media = $_REQUEST['pimage']; + } elseif ($posttype == 'is_video') { + $type = 'video'; + $media = $_REQUEST['pvideo']; + } elseif ($posttype == 'is_link') { + $type = 'link'; + $media = $_REQUEST['plink']; + } elseif ($posttype == 'is_quote') { + $type = 'quote'; + $media = $_REQUEST['pquote']; + } elseif ($posttype == 'is_audio') { + $type = 'audio'; + $media = $_REQUEST['paudio']; + } elseif ($posttype == 'is_post') { + $type = 'post'; + $media = null; + } + + if ($type == 'post') { + if (!empty($title) && !empty($tag) && !empty($content)) { + if ($addEdit == 'add') { + $response = add_content($title, $tag, $url, $content, $user, $draft, $category, $type, $description, $media, $dateTime, $autoSave, $oldfile); + } else { + $arr = explode('/', $oldfile); + if ($user === $arr[1] || $role === 'editor' || $role === 'admin') { + $response = edit_content($title, $tag, $url, $content, $oldfile, $revertPost, $publishDraft, $category, $type, $destination, $description, $dateTime, $media, $autoSave); + } + } + } else { + $response = json_encode(array('message' => 'Cannot save draft!
      Please fill in all required fields', 'file' => '')); + } + } else { + if (!empty($title) && !empty($tag) && !empty($content) && !empty($media)) { + if ($addEdit == 'add') { + $response = add_content($title, $tag, $url, $content, $user, $draft, $category, $type, $description, $media, $dateTime, $autoSave, $oldfile); + } else { + $arr = explode('/', $oldfile); + if ($user === $arr[1] || $role === 'editor' || $role === 'admin') { + $response = edit_content($title, $tag, $url, $content, $oldfile, $revertPost, $publishDraft, $category, $type, $destination, $description, $dateTime, $media, $autoSave); + } + } + } else { + $response = json_encode(array('message' => 'Cannot save draft!
      Please fill in all required fields', 'file' => '')); + } + } + } + } else { + $response = json_encode(array('message' => 'Cannot save draft!
      Please fill in all required fields', 'file' => '')); + } + header('Content-Type: application/json'); + echo $response; + } +}); + +// Show the add category +get('/add/category', function () { + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if (login()) { + config('views.root', 'system/admin/views'); + if ($role === 'editor' || $role === 'admin') { + render('add-page', array( + 'title' => generate_title('is_default', i18n('Add_category')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_category', + 'is_admin' => true, + 'bodyclass' => 'add-category', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Add_category') + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', i18n('Denied')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_category', + 'is_admin' => true, + 'bodyclass' => 'denied', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Denied') + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Submitted add category +post('/add/category', function () { + + if(!login()) { + $login = site_url() . 'login'; + header("location: $login"); + } + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + $title = from($_REQUEST, 'title'); + $url = from($_REQUEST, 'url'); + $content = from($_REQUEST, 'content'); + $description = from($_REQUEST, 'description'); + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if (empty($url)) { + $url = $title; + } + if ($role === 'editor' || $role === 'admin') { + if ($proper && !empty($title) && !empty($content)) { + add_category($title, $url, $content, $description); + } else { + $message['error'] = ''; + if (empty($title)) { + $message['error'] .= '
    55. ' . i18n('msg_error_field_req_title') . '
    56. '; + } + if (empty($content)) { + $message['error'] .= '
    57. ' . i18n('msg_error_field_req_content') . '
    58. '; + } + if (!$proper) { + $message['error'] .= '
    59. ' . i18n('Token_Error') . '
    60. '; + } + config('views.root', 'system/admin/views'); + render('add-page', array( + 'title' => generate_title('is_default', i18n('Add_category')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'error' => '
        ' . $message['error'] . '
      ', + 'postTitle' => $title, + 'postUrl' => $url, + 'postContent' => $content, + 'type' => 'is_category', + 'is_admin' => true, + 'bodyclass' => 'add-category', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Add_category') + )); + } + } else { + $redir = site_url(); + header("location: $redir"); + } + +}); + +// Show admin/posts +get('/admin/posts', function () { + + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if (login()) { + config('views.root', 'system/admin/views'); + if ($role === 'editor' || $role === 'admin') { + config('views.root', 'system/admin/views'); + $page = from($_GET, 'page'); + $page = $page ? (int)$page : 1; + $perpage = 20; + + $posts = get_posts(null, $page, $perpage); + + $total = ''; + + if (empty($posts) || $page < 1) { + + // a non-existing page + render('no-posts', array( + 'title' => generate_title('is_default', i18n('All_blog_posts')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'bodyclass' => 'no-posts', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('All_blog_posts') + )); + + die; + } + + render('posts-list', array( + 'title' => generate_title('is_default', i18n('All_blog_posts')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'heading' => i18n('All_blog_posts'), + 'page' => $page, + 'posts' => $posts, + 'bodyclass' => 'all-posts', + 'type' => 'is_admin-posts', + 'is_admin' => true, + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('All_blog_posts'), + 'pagination' => has_pagination($total, $perpage, $page) + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', i18n('All_blog_posts')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-posts', + 'is_admin' => true, + 'bodyclass' => 'denied', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('All_blog_posts') + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Show admin/popular +get('/admin/popular', function () { + + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if (login()) { + config('views.root', 'system/admin/views'); + if ($role === 'editor' || $role === 'admin') { + config('views.root', 'system/admin/views'); + $page = from($_GET, 'page'); + $page = $page ? (int)$page : 1; + $perpage = 20; + + $posts = popular_posts(true,$perpage); + + $total = ''; + + if (empty($posts) || $page < 1) { + + // a non-existing page + render('no-posts', array( + 'title' => generate_title('is_default', i18n('Popular_posts')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'is_admin' => true, + 'bodyclass' => 'admin-popular', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Popular_posts') + )); + + die; + } + + render('popular-posts', array( + 'title' => generate_title('is_default', i18n('Popular_posts')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'heading' => i18n('Popular_posts'), + 'page' => $page, + 'posts' => $posts, + 'is_admin' => true, + 'bodyclass' => 'admin-popular', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Popular_posts'), + 'pagination' => has_pagination($total, $perpage, $page) + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', i18n('Popular_posts')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'is_admin' => true, + 'bodyclass' => 'denied', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Popular_posts') + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Show admin/mine +get('/admin/mine', function () { + + if (login()) { + + config('views.root', 'system/admin/views'); + + $name = $_SESSION[site_url()]['user']; + + $page = from($_GET, 'page'); + $page = $page ? (int)$page : 1; + $perpage = config('profile.perpage'); + + $posts = get_profile_posts($name, $page, $perpage); + + $total = get_count('/'.$name.'/', 'dirname'); + + $author = get_author($name); + + if (isset($author[0])) { + $author = $author[0]; + } else { + $author = default_profile($name); + } + + if (empty($posts) || $page < 1) { + render('user-posts', array( + 'title' => generate_title('is_default', i18n('My_posts')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'page' => $page, + 'heading' => i18n('My_posts'), + 'posts' => null, + 'about' => $author->about, + 'name' => $author->name, + 'type' => 'is_admin-mine', + 'is_admin' => true, + 'bodyclass' => 'admin-mine', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('My_posts') . ': '. $author->name, + 'pagination' => has_pagination($total, $perpage, $page) + )); + die; + } + + render('user-posts', array( + 'title' => generate_title('is_default', i18n('My_posts')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'heading' => i18n('My_posts'), + 'page' => $page, + 'posts' => $posts, + 'about' => $author->about, + 'name' => $author->name, + 'type' => 'is_admin-mine', + 'is_admin' => true, + 'bodyclass' => 'admin-mine', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('My_posts') . ': '. $author->name, + 'pagination' => has_pagination($total, $perpage, $page) + )); + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Show admin/draft +get('/admin/draft', function () { + + if (login()) { + + config('views.root', 'system/admin/views'); + + $name = $_SESSION[site_url()]['user']; + + $page = from($_GET, 'page'); + $page = $page ? (int)$page : 1; + $perpage = config('profile.perpage'); + + $posts = get_draft($name, $page, $perpage); + + $draftPages = find_draft_page(); + + $draftSubpages = find_draft_subpage(); + + $total = get_draftcount($name); + + $author = get_author($name); + + if (isset($author[0])) { + $author = $author[0]; + } else { + $author = default_profile($name); + } + + if (empty($posts) || $page < 1) { + render('user-draft', array( + 'title' => generate_title('is_default', i18n('My_draft')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'page' => $page, + 'heading' => i18n('My_draft'), + 'posts' => null, + 'draftPages' => $draftPages, + 'draftSubpages' => $draftSubpages, + 'about' => $author->about, + 'name' => $author->name, + 'type' => 'is_admin-draft', + 'is_admin' => true, + 'bodyclass' => 'admin-draft', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('My_draft'). ': ' . $author->name, + 'pagination' => has_pagination($total, $perpage, $page) + )); + die; + } + + render('user-draft', array( + 'title' => generate_title('is_default', i18n('My_draft')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'heading' => i18n('My_draft'), + 'page' => $page, + 'posts' => $posts, + 'draftPages' => $draftPages, + 'draftSubpages' => $draftSubpages, + 'about' => $author->about, + 'name' => $author->name, + 'type' => 'is_admin-draft', + 'is_admin' => true, + 'bodyclass' => 'admin-draft', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('My_draft') . ': ' . $author->name, + 'pagination' => has_pagination($total, $perpage, $page) + )); + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Show admin/scheduled +get('/admin/scheduled', function () { + + if (login()) { + + config('views.root', 'system/admin/views'); + + $name = $_SESSION[site_url()]['user']; + + $page = from($_GET, 'page'); + $page = $page ? (int)$page : 1; + $perpage = config('profile.perpage'); + + $posts = get_scheduled($name, $page, $perpage); + + $total = get_scheduledcount($name); + + $author = get_author($name); + + if (isset($author[0])) { + $author = $author[0]; + } else { + $author = default_profile($name); + } + + if (empty($posts) || $page < 1) { + render('scheduled', array( + 'title' => generate_title('is_default', i18n('Scheduled_posts')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'page' => $page, + 'heading' => i18n('Scheduled_posts'), + 'posts' => null, + 'about' => $author->about, + 'name' => $author->name, + 'type' => 'is_admin-scheduled', + 'is_admin' => true, + 'bodyclass' => 'admin-scheduled', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Scheduled_posts') . ': ' . $author->name, + 'pagination' => has_pagination($total, $perpage, $page) + )); + die; + } + + render('scheduled', array( + 'title' => generate_title('is_default', i18n('Scheduled_posts')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'heading' => i18n('Scheduled_posts'), + 'page' => $page, + 'posts' => $posts, + 'about' => $author->about, + 'name' => $author->name, + 'type' => 'is_admin-scheduled', + 'is_admin' => true, + 'bodyclass' => 'admin-scheduled', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Scheduled_posts') . ': ' . $author->name, + 'pagination' => has_pagination($total, $perpage, $page) + )); + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Show admin/content +get('/admin/content', function () { + if (login()) { + config('views.root', 'system/admin/views'); + render('content-type', array( + 'title' => generate_title('is_default', i18n('Add_content')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-content', + 'is_admin' => true, + 'bodyclass' => 'admin-content', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Add_content') + )); + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Show admin/pages +get('/admin/pages', function () { + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if (login()) { + config('views.root', 'system/admin/views'); + if ($role === 'editor' || $role === 'admin') { + render('static-pages', array( + 'title' => generate_title('is_default', i18n('Static_pages')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-pages', + 'is_admin' => true, + 'bodyclass' => 'admin-pages', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Static_pages') + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', i18n('Denied')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-config', + 'is_admin' => true, + 'bodyclass' => 'denied', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Denied') + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +post('/admin/pages', function () { + + if (login()) { + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if ($role === 'editor' || $role === 'admin') { + $json = $_REQUEST['json']; + reorder_pages($json); + echo json_encode(array( + 'message' => 'Page order saved successfully!', + )); + } + } +}); + +// Show admin/pages +get('/admin/pages/:static', function ($static) +{ + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if (login()) { + config('views.root', 'system/admin/views'); + if ($role === 'editor' || $role === 'admin') { + + $post = find_page($static); + + if (!$post) { + not_found(); + } + + if (array_key_exists('prev', $post)) { + $prev = $post['prev']; + } else { + $prev = array(); + } + + if (array_key_exists('next', $post)) { + $next = $post['next']; + } else { + $next = array(); + } + + $post = $post['current']; + + render('static-subpages', array( + 'title' => generate_title('is_default', $post->title), + 'description' => $post->description, + 'canonical' => $post->url, + 'metatags' => generate_meta(null, null), + 'bodyclass' => 'in-page ' . strtolower($static), + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . '' .i18n('pages').' » ' . $post->title, + 'p' => $post, + 'static' => $post, + 'type' => 'is_subpage', + 'prev' => static_prev($prev), + 'next' => static_next($next), + 'is_page' => true + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', 'Pages'), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_subpage', + 'is_admin' => true, + 'bodyclass' => 'denied', + 'breadcrumb' => '', + )); + } + } else { + $login = site_url() . 'login'; + } +}); + +post('/admin/pages/:static', function ($static) { + + if (login()) { + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if ($role === 'editor' || $role === 'admin') { + $json = $_REQUEST['json']; + reorder_subpages($json); + echo json_encode(array( + 'message' => 'Page order saved successfully!', + )); + } + } +}); + +// Show import page +get('/admin/import', function () { + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if (login()) { + config('views.root', 'system/admin/views'); + if ($role === 'admin') { + render('import', array( + 'title' => generate_title('is_default', i18n('Import_Feed')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-import', + 'is_admin' => true, + 'bodyclass' => 'admin-import', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Import_Feed') + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', i18n('Denied')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-import', + 'is_admin' => true, + 'bodyclass' => 'denied', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Denied') + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } + die; +}); + +// Submitted import page data +post('/admin/import', function () { + if(!login()) { + $login = site_url() . 'login'; + header("location: $login"); + } + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + $url = from($_REQUEST, 'url'); + $credit = from($_REQUEST, 'credit'); + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if ($role === 'admin') { + if (!empty($url) && $proper) { + + get_feed($url, $credit); + $log = get_feed($url, $credit); + + if (!empty($log)) { + + config('views.root', 'system/admin/views'); + + render('import', array( + 'title' => generate_title('is_default', i18n('Import_Feed')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'error' => '
        ' . $log . '
      ', + 'type' => 'is_admin-import', + 'is_admin' => true, + 'bodyclass' => 'admin-import', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Import_Feed') + )); + } + } else { + $message['error'] = ''; + if (empty($url)) { + $message['error'] .= '
    61. ' . i18n('msg_error_field_req_feedurl') . '
    62. '; + } + if (!$proper) { + $message['error'] .= '
    63. ' . i18n('Token_Error') . '
    64. '; + } + + config('views.root', 'system/admin/views'); + + render('import', array( + 'title' => generate_title('is_default', i18n('Import_Feed')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'error' => '
        ' . $message['error'] . '
      ', + 'url' => $url, + 'type' => 'is_admin-import', + 'is_admin' => true, + 'bodyclass' => 'admin-import', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Import_Feed') + )); + } + } else { + $redir = site_url(); + header("location: $redir"); + } +}); + +// Show Config page +get('/admin/config', function () { + + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + + if (login()) { + config('views.root', 'system/admin/views'); + if ($role === 'admin') { + render('config', array( + 'title' => generate_title('is_default', i18n('Config')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-config', + 'is_admin' => true, + 'bodyclass' => 'admin-config', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Config') + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', i18n('Config')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-config', + 'is_admin' => true, + 'bodyclass' => 'denied', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Config') + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } + die; +}); + +// Submitted Config page data +post('/admin/config', function () { + + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + if (login() && $proper) { + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if ($role === 'admin') { + $new_config = array(); + $new_Keys = array(); + foreach ($_POST as $name => $value) { + if (substr($name, 0, 8) == "-config-") { + $name = str_replace("_", ".", substr($name, 8)); + if(!is_null(config($name))) { + $new_config[$name] = $value; + } else { + $new_Keys[$name] = $value; + } + } + } + save_config($new_config, $new_Keys); + foreach (glob('cache/widget/archive*.cache', GLOB_NOSORT) as $file) { + unlink($file); + } + $redir = site_url() . 'admin/config'; + header("location: $redir"); + } else { + $redir = site_url(); + header("location: $redir"); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Show Config page +get('/admin/config/custom', function () { + + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + + if (login()) { + config('views.root', 'system/admin/views'); + if ($role === 'admin') { + render('config-custom', array( + 'title' => generate_title('is_default', i18n('Config')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-config', + 'is_admin' => true, + 'bodyclass' => 'admin-config', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Config') + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', i18n('Config')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-config', + 'is_admin' => true, + 'bodyclass' => 'denied', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Config') + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Submitted Config page data +post('/admin/config/custom', function () { + + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + if (login() && $proper) { + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if ($role === 'admin') { + $newKey = from($_REQUEST, 'newKey'); + $newValue = from($_REQUEST, 'newValue'); + + $new_config = array(); + $new_Keys = array(); + if (!empty($newKey)) { + $new_Keys[$newKey] = $newValue; + } + foreach ($_POST as $name => $value) { + if (substr($name, 0, 8) == "-config-") { + $name = str_replace("_", ".", substr($name, 8)); + $new_config[$name] = $value; + } + } + save_config($new_config, $new_Keys); + $redir = site_url() . 'admin/config/custom'; + header("location: $redir"); + } else { + $redir = site_url(); + header("location: $redir"); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Show Config page +get('/admin/config/reading', function () { + + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + + if (login()) { + config('views.root', 'system/admin/views'); + if ($role === 'admin') { + render('config-reading', array( + 'title' => generate_title('is_default', i18n('Config')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-config', + 'is_admin' => true, + 'bodyclass' => 'admin-config', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Config') + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', i18n('Config')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-config', + 'is_admin' => true, + 'bodyclass' => 'denied', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Config') + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Submitted Config page data +post('/admin/config/reading', function () { + + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + if (login() && $proper) { + $new_config = array(); + $new_Keys = array(); + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if ($role === 'admin') { + foreach ($_POST as $name => $value) { + if (substr($name, 0, 8) == "-config-") { + $name = str_replace("_", ".", substr($name, 8)); + if(!is_null(config($name))) { + $new_config[$name] = $value; + } else { + $new_Keys[$name] = $value; + } + } + } + save_config($new_config, $new_Keys); + $redir = site_url() . 'admin/config/reading'; + header("location: $redir"); + } else { + $redir = site_url(); + header("location: $redir"); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Show Config page +get('/admin/config/writing', function () { + + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + + if (login()) { + config('views.root', 'system/admin/views'); + if ($role === 'admin') { + render('config-writing', array( + 'title' => generate_title('is_default', i18n('Config')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-config', + 'is_admin' => true, + 'bodyclass' => 'admin-config', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Config') + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', i18n('Config')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-config', + 'is_admin' => true, + 'bodyclass' => 'denied', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Config') + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Submitted Config page data +post('/admin/config/writing', function () { + + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + if (login() && $proper) { + $new_config = array(); + $new_Keys = array(); + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if ($role === 'admin') { + foreach ($_POST as $name => $value) { + if (substr($name, 0, 8) == "-config-") { + $name = str_replace("_", ".", substr($name, 8)); + if(!is_null(config($name))) { + $new_config[$name] = $value; + } else { + $new_Keys[$name] = $value; + } + } + } + save_config($new_config, $new_Keys); + $redir = site_url() . 'admin/config/writing'; + header("location: $redir"); + } else { + $redir = site_url(); + header("location: $redir"); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Show Config page +get('/admin/config/widget', function () { + + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + + if (login()) { + config('views.root', 'system/admin/views'); + if ($role === 'admin') { + render('config-widget', array( + 'title' => generate_title('is_default', i18n('Config')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-config', + 'is_admin' => true, + 'bodyclass' => 'admin-config', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Config') + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', i18n('Config')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-config', + 'is_admin' => true, + 'bodyclass' => 'denied', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Config') + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Submitted Config page data +post('/admin/config/widget', function () { + + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + if (login() && $proper) { + $new_config = array(); + $new_Keys = array(); + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if ($role === 'admin') { + foreach ($_POST as $name => $value) { + if (substr($name, 0, 8) == "-config-") { + $name = str_replace("_", ".", substr($name, 8)); + if(!is_null(config($name))) { + $new_config[$name] = $value; + } else { + $new_Keys[$name] = $value; + } + } + } + save_config($new_config, $new_Keys); + foreach (glob('cache/widget/tags*.cache', GLOB_NOSORT) as $file) { + unlink($file); + } + $redir = site_url() . 'admin/config/widget'; + header("location: $redir"); + } else { + $redir = site_url(); + header("location: $redir"); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Show Config page +get('/admin/config/metatags', function () { + + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + + if (login()) { + config('views.root', 'system/admin/views'); + if ($role === 'admin') { + render('config-metatags', array( + 'title' => generate_title('is_default', i18n('Config')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-config', + 'is_admin' => true, + 'bodyclass' => 'admin-config', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Config') + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', i18n('Config')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-config', + 'is_admin' => true, + 'bodyclass' => 'denied', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Config') + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } + die; +}); + +// Submitted Config page data +post('/admin/config/metatags', function () { + + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + if (login() && $proper) { + $new_config = array(); + $new_Keys = array(); + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if ($role === 'admin') { + foreach ($_POST as $name => $value) { + if (substr($name, 0, 8) == "-config-") { + $name = str_replace("_", ".", substr($name, 8)); + if(!is_null(config($name))) { + $new_config[$name] = $value; + } else { + $new_Keys[$name] = $value; + } + } + } + save_config($new_config, $new_Keys); + foreach (glob('cache/widget/*.cache', GLOB_NOSORT) as $file) { + unlink($file); + } + $redir = site_url() . 'admin/config/metatags'; + header("location: $redir"); + } else { + $redir = site_url(); + header("location: $redir"); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Show Config page +get('/admin/config/security', function () { + + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + + if (login()) { + config('views.root', 'system/admin/views'); + if ($role === 'admin') { + render('config-security', array( + 'title' => generate_title('is_default', i18n('Config')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-config', + 'is_admin' => true, + 'bodyclass' => 'admin-config', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Config') + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', i18n('Config')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-config', + 'is_admin' => true, + 'bodyclass' => 'denied', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Config') + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Submitted Config page data +post('/admin/config/security', function () { + + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + if (login() && $proper) { + $new_config = array(); + $new_Keys = array(); + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if ($role === 'admin') { + foreach ($_POST as $name => $value) { + if (substr($name, 0, 8) == "-config-") { + $name = str_replace("_", ".", substr($name, 8)); + if(!is_null(config($name))) { + $new_config[$name] = $value; + } else { + $new_Keys[$name] = $value; + } + } + } + save_config($new_config, $new_Keys); + $redir = site_url() . 'admin/config/security'; + header("location: $redir"); + } else { + $redir = site_url(); + header("location: $redir"); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + + +// Show Config page +get('/admin/config/performance', function () { + + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + + if (login()) { + config('views.root', 'system/admin/views'); + if ($role === 'admin') { + render('config-performance', array( + 'title' => generate_title('is_default', i18n('Config')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-config', + 'is_admin' => true, + 'bodyclass' => 'admin-config', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Config') + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', i18n('Config')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-config', + 'is_admin' => true, + 'bodyclass' => 'denied', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Config') + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } + die; +}); + +// Submitted Config page data +post('/admin/config/performance', function () { + + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + if (login() && $proper) { + $new_config = array(); + $new_Keys = array(); + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if ($role === 'admin') { + foreach ($_POST as $name => $value) { + if (substr($name, 0, 8) == "-config-") { + $name = str_replace("_", ".", substr($name, 8)); + if(!is_null(config($name))) { + $new_config[$name] = $value; + } else { + $new_Keys[$name] = $value; + } + } + } + save_config($new_config, $new_Keys); + $redir = site_url() . 'admin/config/performance'; + header("location: $redir"); + } else { + $redir = site_url(); + header("location: $redir"); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Show Backup page +get('/admin/backup', function () { + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if (login()) { + config('views.root', 'system/admin/views'); + if ($role === 'admin') { + render('backup', array( + 'title' => generate_title('is_default', i18n('Backup')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-backup', + 'is_admin' => true, + 'bodyclass' => 'admin-backup', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Backup') + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', i18n('Denied')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-config', + 'is_admin' => true, + 'bodyclass' => 'denied', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Denied') + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Show Create backup page +get('/admin/backup-start', function () { + if (login()) { + config('views.root', 'system/admin/views'); + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if ($role === 'admin') { + render('backup-start', array( + 'title' => generate_title('is_default', i18n('Create_backup')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-backup-start', + 'is_admin' => true, + 'bodyclass' => 'admin-backup-start', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Create_backup') + )); + } else { + $redir = site_url(); + header("location: $redir"); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Show clear cache page +get('/admin/clear-cache', function () { + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if (login()) { + config('views.root', 'system/admin/views'); + if ($role === 'editor' || $role === 'admin') { + render('clear-cache', array( + 'title' => generate_title('is_default', i18n('Clear_cache')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-clear-cache', + 'is_admin' => true, + 'bodyclass' => 'admin-clear-cache', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Clear_cache') + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', i18n('Denied')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-clear-cache', + 'is_admin' => true, + 'bodyclass' => 'denied', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Denied') + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Show Update page +get('/admin/update', function () { + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if (login()) { + config('views.root', 'system/admin/views'); + if ($role === 'admin') { + render('update', array( + 'title' => generate_title('is_default', i18n('Check_update')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-update', + 'is_admin' => true, + 'bodyclass' => 'admin-update', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Check_update') + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', i18n('Denied')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-config', + 'is_admin' => true, + 'bodyclass' => 'denied', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Denied') + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Show the update now link +get('/admin/update/now/:csrf', function ($CSRF) { + $proper = is_csrf_proper($CSRF); + $updater = new \Kanti\HubUpdater(array( + 'name' => 'danpros/htmly', + 'prerelease' => !!config("prerelease"), + )); + if (login() && $proper && $updater->able()) { + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if ($role === 'admin') { + $updater->update(); + config('views.root', 'system/admin/views'); + render('updated-to', array( + 'title' => generate_title('is_default', i18n('Update')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'info' => $updater->getCurrentInfo(), + 'type' => 'is_admin-update', + 'is_admin' => true, + 'bodyclass' => 'admin-update', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Update') + )); + } else { + $redir = site_url(); + header("location: $redir"); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Show Menu builder +get('/admin/menu', function () { + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if (login()) { + config('views.root', 'system/admin/views'); + if ($role === 'editor' || $role === 'admin') { + render('menu', array( + 'title' => generate_title('is_default', i18n('Menus')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-menu', + 'is_admin' => true, + 'bodyclass' => 'admin-menu', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Menus') + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', i18n('Denied')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-menu', + 'is_admin' => true, + 'bodyclass' => 'denied', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Denied') + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +post('/admin/menu', function () { + + if (login()) { + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if ($role === 'editor' || $role === 'admin') { + $json = from($_REQUEST, 'json'); + file_put_contents('content/data/menu.json', json_encode($json, JSON_UNESCAPED_UNICODE)); + echo json_encode(array( + 'message' => 'Menu saved successfully!', + )); + } else { + $redir = site_url(); + header("location: $redir"); + } + } +}); + +// Manage users page +get('/admin/users', function () { + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if (login()) { + config('views.root', 'system/admin/views'); + if ($role === 'admin') { + render('users', array( + 'title' => generate_title('is_default', i18n('User')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-users', + 'is_admin' => true, + 'bodyclass' => 'admin-users', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('User') + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', i18n('Denied')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-menu', + 'is_admin' => true, + 'bodyclass' => 'denied', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Denied') + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +get('/admin/add/user', function () { + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if (login()) { + config('views.root', 'system/admin/views'); + if ($role === 'admin') { + render('add-user', array( + 'title' => generate_title('is_default', i18n('Add_user')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-users', + 'is_admin' => true, + 'bodyclass' => 'admin-users', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('add_user') + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', i18n('Denied')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-menu', + 'is_admin' => true, + 'bodyclass' => 'denied', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Denied') + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +post('/admin/add/user', function () { + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + $username = from($_REQUEST, 'username'); + $user_role = from($_REQUEST, 'user-role'); + $password = from($_REQUEST, 'password'); + if (login() && $proper) { + config('views.root', 'system/admin/views'); + if ($role === 'admin') { + + if (!empty($username) && !empty($password)) { + create_user($username, $password, $user_role); + } else { + + $message['error'] = ''; + if (empty($username)) { + $message['error'] .= '
    65. ' . i18n('msg_error_field_req_username') . '
    66. '; + } + if (empty($password)) { + $message['error'] .= '
    67. ' . i18n('msg_error_field_req_password') . '
    68. '; + } + + render('add-user', array( + 'title' => generate_title('is_default', i18n('Add_user')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'error' => '
        ' . $message['error'] . '
      ', + 'type' => 'is_admin-users', + 'is_admin' => true, + 'username' => $username, + 'user_role' => $user_role, + 'password' => $password, + 'bodyclass' => 'admin-users', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('add_user') + )); + } + $redir = site_url() . 'admin/users'; + header("location: $redir"); + } else { + $redir = site_url(); + header("location: $redir"); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +get('/admin/users/:username/edit', function ($username) { + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if (login()) { + config('views.root', 'system/admin/views'); + if ($role === 'admin') { + render('edit-user', array( + 'title' => generate_title('is_default', $username), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-users', + 'username' => $username, + 'is_admin' => true, + 'bodyclass' => 'admin-users', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $username + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', i18n('Denied')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-menu', + 'is_admin' => true, + 'bodyclass' => 'denied', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Denied') + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Submitted Config page data +post('/admin/users/:username/edit', function () { + + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + if (login() && $proper) { + $username = from($_REQUEST, 'username'); + $user_role = from($_REQUEST, 'role-name'); + $new_password = from($_REQUEST, 'password'); + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + $old_password = user('password', $username); + if ($role === 'admin') { + $file = 'config/users/' . $username . '.ini'; + if (file_exists($file)) { + if (empty($new_password)) { + file_put_contents($file, "password = " . $old_password . "\n" . + "encryption = password_hash\n" . + "role = " . $user_role . "\n", LOCK_EX); + } else { + update_user($username, $new_password, $user_role); + } + } + $redir = site_url() . 'admin/users'; + header("location: $redir"); + } else { + $redir = site_url(); + header("location: $redir"); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +get('/admin/users/:username/delete', function ($username) { + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if (login()) { + config('views.root', 'system/admin/views'); + if ($role === 'admin') { + render('delete-user', array( + 'title' => generate_title('is_default', $username), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-users', + 'username' => $username, + 'is_admin' => true, + 'bodyclass' => 'admin-users', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $username + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', i18n('Denied')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-menu', + 'is_admin' => true, + 'bodyclass' => 'denied', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Denied') + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +post('/admin/users/:username/delete', function () { + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + $file = from($_REQUEST, 'file'); + $username = from($_REQUEST, 'username'); + $user_role = user('role', $username); + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + if ($proper && login()) { + if ($role === 'admin') { + if ($user_role !== 'admin') { + unlink($file); + } + } + $redir = site_url() . 'admin/users'; + header("location: $redir"); + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +post('/admin/gallery', function () { + + if (login()) { + $page = from($_REQUEST, 'page'); + $images = image_gallery(null, $page, 40); + echo json_encode(array('images' => $images)); + } +}); + +// Show category page +get('/admin/categories', function () { + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if (login()) { + config('views.root', 'system/admin/views'); + if ($role === 'editor' || $role === 'admin') { + render('categories', array( + 'title' => generate_title('is_default', i18n('Categories')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-categories', + 'is_admin' => true, + 'bodyclass' => 'admin-categories', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Categories') + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', i18n('Denied')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-categories', + 'is_admin' => true, + 'bodyclass' => 'denied', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Denied') + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Show the category page +get('/admin/categories/:category', function ($category) { + + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if (login()) { + config('views.root', 'system/admin/views'); + if ($role === 'editor' || $role === 'admin') { + $page = from($_GET, 'page'); + $page = $page ? (int)$page : 1; + $perpage = config('category.perpage'); + + if (empty($perpage)) { + $perpage = 10; + } + + $posts = get_category($category, $page, $perpage); + + $desc = get_category_info($category); + + if(!empty($desc)) { + $desc = $desc[0]; + } + + if (empty($desc)) { + // a non-existing page + not_found(); + } + + $total = $desc->count; + + render('category-list', array( + 'title' => generate_title('is_default', $desc->title), + 'description' => $desc->description, + 'canonical' => $desc->url, + 'metatags' => generate_meta(null, null), + 'page' => $page, + 'posts' => $posts, + 'category' => $desc, + 'bodyclass' => 'in-category category-' . strtolower($category), + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Categories') .' » ' . $desc->title, + 'pagination' => has_pagination($total, $perpage, $page), + 'is_category' => true, + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', 'Categories'), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-categories', + 'is_admin' => true, + 'bodyclass' => 'denied', + 'breadcrumb' => '', + )); + } + } else { + $login = site_url() . 'login'; + } +}); + +// Show the category page +get('/category/:category', function ($category) { + + if (!login()) { + file_cache($_SERVER['REQUEST_URI']); + } + + $page = from($_GET, 'page'); + $page = $page ? (int)$page : 1; + $perpage = config('category.perpage'); + + if (empty($perpage)) { + $perpage = 10; + } + + $posts = get_category($category, $page, $perpage); + + $desc = get_category_info($category); + + + if(!empty($desc)) { + $desc = $desc[0]; + } + + if (empty($posts) || $page < 1) { + // a non-existing page + not_found(); + } + + $total = $desc->count; + + $vroot = rtrim(config('views.root'), '/'); + + $lt = $vroot . '/layout--category--'. strtolower($category) .'.html.php'; + $ls = $vroot . '/layout--category.html.php'; + if (file_exists($lt)) { + $layout = 'layout--category--' . strtolower($category); + } else if (file_exists($ls)) { + $layout = 'layout--category'; + } else { + $layout = ''; + } + + $pv = $vroot . '/main--category--'. strtolower($category) .'.html.php'; + $ps = $vroot . '/main--category.html.php'; + if (file_exists($pv)) { + $pview = 'main--category--' . strtolower($category); + } else if (file_exists($ps)) { + $pview = 'main--category'; + } else { + $pview = 'main'; + } + + if ($page > 1) { + $CanonicalPageNum = '?page=' . $page; + } else { + $CanonicalPageNum = NULL; + } + + render($pview, array( + 'title' => generate_title('is_category', $desc), + 'description' => $desc->description, + 'canonical' => $desc->url . $CanonicalPageNum, + 'metatags' => generate_meta('is_category', $desc), + 'page' => $page, + 'posts' => $posts, + 'category' => $desc, + 'taxonomy' => $desc, + 'bodyclass' => 'in-category category-' . strtolower($category), + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $desc->title, + 'pagination' => has_pagination($total, $perpage, $page), + 'is_category' => true, + 'is_taxonomy' => true + ), $layout); +}); + +// Show the RSS feed +get('/category/:category/feed', function ($category) { + + header('Content-Type: application/rss+xml'); + + $posts = get_category($category, 1, config('rss.count')); + + $data = get_category_info($category); + + if(!empty($data)) { + $data = $data[0]; + } + + // Show an RSS feed + echo generate_rss($posts, $data); +}); + +// Show edit the category page +get('/category/:category/edit', function ($category) { + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if (login()) { + config('views.root', 'system/admin/views'); + if ($role === 'editor' || $role === 'admin') { + $post = get_category_info($category); + + if(empty($post)) { + not_found(); + } + + $post = $post[0]; + + render('edit-page', array( + 'title' => generate_title('is_default', i18n('Edit_category')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_category', + 'is_admin' => true, + 'bodyclass' => 'edit-category', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Category') . ': ' . $post->title, + 'p' => $post, + 'static' => $post, + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', i18n('Denied')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_category', + 'is_admin' => true, + 'bodyclass' => 'denied', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Denied') + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Get edited data from category page +post('/category/:category/edit', function () { + + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + + if(!login()) { + $login = site_url() . 'login'; + header("location: $login"); + } + + $title = from($_REQUEST, 'title'); + $url = from($_REQUEST, 'url'); + $content = from($_REQUEST, 'content'); + $oldfile = from($_REQUEST, 'oldfile'); + $destination = from($_GET, 'destination'); + $description = from($_REQUEST, 'description'); + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if (empty($url)) { + $url = $title; + } + if ($role === 'editor' || $role === 'admin') { + if ($proper && !empty($title) && !empty($content)) { + edit_category($title, $url, $content, $oldfile, $destination, $description); + } else { + $message['error'] = ''; + if (empty($title)) { + $message['error'] .= '
    69. ' . i18n('msg_error_field_req_title') . '
    70. '; + } + if (empty($content)) { + $message['error'] .= '
    71. ' . i18n('msg_error_field_req_content') . '
    72. '; + } + if (!$proper) { + $message['error'] .= '
    73. ' . i18n('Token_Error') . '
    74. '; + } + config('views.root', 'system/admin/views'); + + render('edit-page', array( + 'title' => generate_title('is_default', i18n('Edit_category')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'error' => '
        ' . $message['error'] . '
      ', + 'oldfile' => $oldfile, + 'postTitle' => $title, + 'postUrl' => $url, + 'postContent' => $content, + 'type' => 'is_category', + 'is_admin' => true, + 'bodyclass' => 'edit-category', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Edit_category') + )); + } + } else { + $redir = site_url(); + header("location: $redir"); + } +}); + +// Delete category +get('/category/:category/delete', function ($category) { + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if (login()) { + config('views.root', 'system/admin/views'); + if ($role === 'editor' || $role === 'admin') { + $post = get_category_info($category); + + if(empty($post)) { + not_found(); + } + + $post = $post[0]; + + render('delete-category', array( + 'title' => generate_title('is_default', i18n('Delete') . ' ' . i18n('Category')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_category', + 'is_admin' => true, + 'bodyclass' => 'delete-category', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Category') . ': ' . $post->title, + 'p' => $post, + 'static' => $post, + 'type' => 'categoryPage', + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', i18n('Denied')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-config', + 'is_admin' => true, + 'bodyclass' => 'denied', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Denied') + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Get deleted category data +post('/category/:category/delete', function () { + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + if ($proper && login()) { + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if ($role === 'editor' || $role === 'admin') { + $file = from($_REQUEST, 'file'); + $destination = from($_GET, 'destination'); + delete_page($file, $destination); + } else { + $redir = site_url(); + header("location: $redir"); + } + } +}); + +// Show the type page +get('/type/:type', function ($type) { + + if (!login()) { + file_cache($_SERVER['REQUEST_URI']); + } + + $page = from($_GET, 'page'); + $page = $page ? (int)$page : 1; + $perpage = config('type.perpage'); + + if (empty($perpage)) { + $perpage = 10; + } + + $posts = get_type($type, $page, $perpage); + + $total = get_typecount($type); + + $ttype = new stdClass; + $ttype->title = ucfirst($type); + $ttype->url = site_url() . 'type/' . strtolower($type); + $ttype->count = $total; + $ttype->description = i18n('Posts_with_type') . ' ' . ucfirst($type) . ' ' . i18n('by') . ' ' . blog_title(); + $ttype->body = $ttype->description; + $ttype->rss = $ttype->url . '/feed'; + $ttype->slug = strtolower($type); + + if (empty($posts) || $page < 1) { + // a non-existing page + not_found(); + } + + $vroot = rtrim(config('views.root'), '/'); + + $lt = $vroot . '/layout--type--'. strtolower($type) .'.html.php'; + $ls = $vroot . '/layout--type.html.php'; + if (file_exists($lt)) { + $layout = 'layout--type--' . strtolower($type); + } else if (file_exists($ls)) { + $layout = 'layout--type'; + } else { + $layout = ''; + } + + $pv = $vroot . '/main--type--'. strtolower($type) .'.html.php'; + $ps = $vroot . '/main--type.html.php'; + if (file_exists($pv)) { + $pview = 'main--type--' . strtolower($type); + } else if (file_exists($ps)) { + $pview = 'main--type'; + } else { + $pview = 'main'; + } + + if ($page > 1) { + $CanonicalPageNum = '?page=' . $page; + } else { + $CanonicalPageNum = NULL; + } + + render($pview, array( + 'title' => generate_title('is_type', $ttype), + 'description' => $ttype->description, + 'canonical' => $ttype->url . $CanonicalPageNum, + 'metatags' => generate_meta('is_type', $ttype), + 'page' => $page, + 'posts' => $posts, + 'type' => $ttype, + 'taxonomy' => $ttype, + 'bodyclass' => 'in-type type-' . strtolower($type), + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . ucfirst($type), + 'pagination' => has_pagination($total, $perpage, $page), + 'is_type' => true, + 'is_taxonomy' => true + ), $layout); +}); + +// Show the RSS feed +get('/type/:type/feed', function ($type) { + + header('Content-Type: application/rss+xml'); + + $posts = get_type($type, 1, config('rss.count')); + $data = new stdClass; + $data->title = ucfirst($type); + $data->url = site_url() . 'type/' . strtolower($type); + $data->body = i18n('Posts_with_type') . ' ' . ucfirst($type) . ' ' . i18n('by') . ' ' . blog_title(); + + // Show an RSS feed + echo generate_rss($posts, $data); +}); + +// Show the tag page +get('/tag/:tag', function ($tag) { + + if (!login()) { + file_cache($_SERVER['REQUEST_URI']); + } + + $page = from($_GET, 'page'); + $page = $page ? (int)$page : 1; + $perpage = config('tag.perpage'); + + $posts = get_tag($tag, $page, $perpage); + + $total = get_tagcount($tag); + + $ttag = new stdClass; + $ttag->title = tag_i18n($tag); + $ttag->url = site_url() . 'tag/' . strtolower($tag); + $ttag->count = $total; + $ttag->description = i18n('All_posts_tagged') . ' ' . tag_i18n($tag) . ' ' . i18n('by') . ' ' . blog_title(); + $ttag->body = $ttag->description; + $ttag->rss = $ttag->url . '/feed'; + $ttag->slug = strtolower($tag); + + if (empty($posts) || $page < 1) { + // a non-existing page + not_found(); + } + + $vroot = rtrim(config('views.root'), '/'); + + $lt = $vroot . '/layout--tag--' . strtolower($tag) . '.html.php'; + $ls = $vroot . '/layout--tag.html.php'; + if (file_exists($lt)) { + $layout = 'layout--tag--' . strtolower($tag); + } else if (file_exists($ls)) { + $layout = 'layout--tag'; + } else { + $layout = ''; + } + + $pv = $vroot . '/main--tag--' . strtolower($tag) . '.html.php'; + $ps = $vroot . '/main--tag.html.php'; + if (file_exists($pv)) { + $pview = 'main--tag--' . strtolower($tag); + } elseif (file_exists($ps)) { + $pview = 'main--tag'; + } else { + $pview = 'main'; + } + + if ($page > 1) { + $CanonicalPageNum = '?page=' . $page; + } else { + $CanonicalPageNum = NULL; + } + + render($pview, array( + 'title' => generate_title('is_tag', $ttag), + 'description' => $ttag->description, + 'canonical' => $ttag->url . $CanonicalPageNum, + 'metatags' => generate_meta('is_tag', $ttag), + 'page' => $page, + 'posts' => $posts, + 'tag' => $ttag, + 'taxonomy' => $ttag, + 'bodyclass' => 'in-tag tag-' . strtolower($tag), + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Posts_tagged') . ' ' . tag_i18n($tag), + 'pagination' => has_pagination($total, $perpage, $page), + 'is_tag' => true, + 'is_taxonomy' => true + ), $layout); +}); + +// Show the RSS feed +get('/tag/:tag/feed', function ($tag) { + + header('Content-Type: application/rss+xml'); + + $posts = get_tag($tag, 1, config('rss.count')); + $data = new stdClass; + $data->title = tag_i18n($tag); + $data->url = site_url() . 'tag/' . strtolower($tag); + $data->body = i18n('All_posts_tagged') . ' ' . tag_i18n($tag) . ' ' . i18n('by') . ' ' . blog_title(); + + // Show an RSS feed + echo generate_rss($posts, $data); +}); + +// Show the archive page +get('/archive/:req', function ($req) { + + if (!login()) { + file_cache($_SERVER['REQUEST_URI']); + } + + $page = from($_GET, 'page'); + $page = $page ? (int)$page : 1; + $perpage = config('archive.perpage'); + + $posts = get_archive($req, $page, $perpage); + + $total = get_count($req, 'basename'); + + if (empty($posts) || $page < 1) { + // a non-existing page + not_found(); + } + + $time = explode('-', $req); + $date = strtotime($req); + + if (isset($time[0]) && isset($time[1]) && isset($time[2])) { + $timestamp = format_date($date, 'd F Y'); + } elseif (isset($time[0]) && isset($time[1])) { + $timestamp = format_date($date, 'F Y'); + } else { + $timestamp = $req; + } + + $tarchive = new stdClass; + $tarchive->title = $timestamp; + $tarchive->url = site_url() . 'archive/' . $req; + $tarchive->count = $total; + $tarchive->description = i18n('Archive_page_for') . ' ' . $timestamp . ' ' . i18n('by') . ' ' . blog_title(); + $tarchive->body = $tarchive->description; + $tarchive->rss = $tarchive->url . '/feed'; + $tarchive->slug = strtolower($req); + + if (!$date) { + // a non-existing page + not_found(); + } + + $vroot = rtrim(config('views.root'), '/'); + + $lt = $vroot . '/layout--archive.html.php'; + if (file_exists($lt)) { + $layout = 'layout--archive'; + } else { + $layout = ''; + } + + $pv = $vroot . '/main--archive.html.php'; + if (file_exists($pv)) { + $pview = 'main--archive'; + } else { + $pview = 'main'; + } + + if ($page > 1) { + $CanonicalPageNum = '?page=' . $page; + } else { + $CanonicalPageNum = NULL; + } + + render($pview, array( + 'title' => generate_title('is_archive', $tarchive), + 'description' => $tarchive->description, + 'canonical' => $tarchive->url . $CanonicalPageNum, + 'metatags' => generate_meta('is_archive', $tarchive), + 'page' => $page, + 'posts' => $posts, + 'archive' => $tarchive, + 'taxonomy' => $tarchive, + 'bodyclass' => 'in-archive archive-' . strtolower($req), + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Archive_for') . ' ' . $timestamp, + 'pagination' => has_pagination($total, $perpage, $page), + 'is_archive' => true, + 'is_taxonomy' => true + ), $layout); +}); + +// Show the RSS feed +get('/archive/:req/feed', function ($req) { + + header('Content-Type: application/rss+xml'); + + $posts = get_archive($req, 1, config('rss.count')); + + $time = explode('-', $req); + $date = strtotime($req); + + if (isset($time[0]) && isset($time[1]) && isset($time[2])) { + $timestamp = format_date($date, 'd F Y'); + } elseif (isset($time[0]) && isset($time[1])) { + $timestamp = format_date($date, 'F Y'); + } else { + $timestamp = $req; + } + + $data = new stdClass; + $data->title = $timestamp; + $data->url = site_url() . 'archive/' . $req; + $data->body = i18n('Archive_page_for') . ' ' . $timestamp . ' ' . i18n('by') . ' ' . blog_title(); + + // Show an RSS feed + echo generate_rss($posts, $data); +}); + +// Show the search page +get('/search/:keyword', function ($keyword) { + + if (!login()) { + file_cache($_SERVER['REQUEST_URI']); + } + + $page = from($_GET, 'page'); + $page = $page ? (int)$page : 1; + $perpage = config('search.perpage'); + + $posts = get_keyword($keyword, $page, $perpage); + $total = keyword_count($keyword); + + $tsearch = new stdClass; + $tsearch->title = $keyword; + $tsearch->url = site_url() . 'search/' . strtolower($keyword); + $tsearch->count = $total; + $tsearch->description = i18n('Search_results_for') . ' ' . $keyword . ' ' . i18n('by') . ' ' . blog_title(); + $tsearch->body = $tsearch->description; + $tsearch->rss = $tsearch->url . '/feed'; + $tsearch->slug = strtolower($keyword); + + $vroot = rtrim(config('views.root'), '/'); + + $lt = $vroot . '/layout--search.html.php'; + if (file_exists($lt)) { + $layout = 'layout--search'; + } else { + $layout = ''; + } + + if (!$posts || $page < 1) { + // a non-existing page or no search result + render('404-search', array( + 'title' => i18n('Search_results_not_found') . ' - ' . blog_title(), + 'description' => i18n('Search_results_not_found'), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'search' => $tsearch, + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('No_search_results'), + 'canonical' => site_url(), + 'bodyclass' => 'error-404-search', + 'is_404search' => true, + ), $layout); + die; + } + + $pv = $vroot . '/main--search.html.php'; + if (file_exists($pv)) { + $pview = 'main--search'; + } else { + $pview = 'main'; + } + + if ($page > 1) { + $CanonicalPageNum = '?page=' . $page; + } else { + $CanonicalPageNum = NULL; + } + + render($pview, array( + 'title' => generate_title('is_search', $tsearch), + 'description' => $tsearch->description, + 'canonical' => $tsearch->url . $CanonicalPageNum, + 'metatags' => generate_meta('is_search', $tsearch), + 'page' => $page, + 'posts' => $posts, + 'search' => $tsearch, + 'taxonomy' => $tsearch, + 'bodyclass' => 'in-search search-' . strtolower($keyword), + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Search_results_for') . ' ' . $keyword, + 'pagination' => has_pagination($total, $perpage, $page), + 'is_search' => true, + 'is_taxonomy' => true + ), $layout); +}); + +// Show the RSS feed +get('/search/:keyword/feed', function ($keyword) { + + header('Content-Type: application/rss+xml'); + + $posts = get_keyword($keyword, 1, config('rss.count')); + + $data = new stdClass; + $data->title = $keyword; + $data->url = site_url() . 'search/' . strtolower($keyword); + $data->body = i18n('Search_results_for') . ' ' . $keyword . ' ' . i18n('by') . ' ' . blog_title(); + + // Show an RSS feed + echo generate_rss($posts, $data); +}); + +// The JSON API +get('/api/json', function () { + + header('Content-type: application/json'); + + $page = from($_GET, 'page'); + $page = $page ? (int)$page : 1; + $perpage = config('json.count'); + + echo generate_json(get_posts(null, $page, $perpage)); +}); + +// Show the RSS feed +get('/feed/rss', function () { + + header('Content-Type: application/rss+xml'); + + // Show an RSS feed with the 30 latest posts + echo generate_rss(get_posts(null, 1, config('rss.count'))); +}); + +// Generate OPML file +get('/feed/opml', function () { + + header('Content-Type: text/xml'); + + // Generate OPML file for the RSS + echo generate_opml(); +}); + +// Show blog post without year-month +get('/'. permalink_type() .'/:name', function ($name) { + + if (permalink_type() == 'default') { + $post = find_post(null, null, $name); + if (is_null($post)) { + not_found(); + } else { + $current = $post['current']; + } + $redir = site_url() . date('Y/m', $current->date) . '/' . $name; + header("location: $redir", TRUE, 301); + } + + if (config("views.counter") != "true") { + if (!login()) { + file_cache($_SERVER['REQUEST_URI']); + } + } else { + add_view('post_' . $name); + if (!login()) { + file_cache($_SERVER['REQUEST_URI']); + } + } + + $post = find_post(null, null, $name); + + if (is_null($post)) { + not_found('post_' . $name); + } else { + $current = $post['current']; + } + + $author = new stdClass; + $author->url = $current->authorUrl; + $author->name = $current->authorName; + $author->description = $current->authorDescription; + $author->about = $current->authorAbout; + $author->avatar = $current->authorAvatar; + $author->rss = $current->authorRss; + $author->slug = $current->author; + + if (array_key_exists('prev', $post)) { + $prev = $post['prev']; + } else { + $prev = array(); + } + + if (array_key_exists('next', $post)) { + $next = $post['next']; + } else { + $next = array(); + } + + if (isset($current->image)) { + $var = 'imagePost'; + } elseif (isset($current->link)) { + $var = 'linkPost'; + } elseif (isset($current->quote)) { + $var = 'quotePost'; + } elseif (isset($current->audio)) { + $var = 'audioPost'; + } elseif (isset($current->video)) { + $var = 'videoPost'; } + else { + $var = 'blogPost'; + } + + if (config('blog.enable') === 'true') { + $blog = ' » '; + } else { + $blog = ''; + } + + $vroot = rtrim(config('views.root'), '/'); + + $lt = $vroot . '/layout--post--' . $current->ct . '.html.php'; + $pt = $vroot . '/layout--post--' . $current->type . '.html.php'; + $ls = $vroot . '/layout--post.html.php'; + if (file_exists($lt)) { + $layout = 'layout--post--' . $current->ct; + } else if (file_exists($pt)) { + $layout = 'layout--post--' . $current->type; + } else if (file_exists($ls)) { + $layout = 'layout--post'; + } else { + $layout = ''; + } + + $pv = $vroot . '/post--' . $current->ct . '.html.php'; + $pvt = $vroot . '/post--' . $current->type . '.html.php'; + if (file_exists($pv)) { + $pview = 'post--' . $current->ct; + } else if(file_exists($pvt)) { + $pview = 'post--' . $current->type; + } else { + $pview = 'post'; + } + + render($pview, array( + 'title' => generate_title('is_post', $current), + 'description' => $current->description, + 'canonical' => $current->url, + 'metatags' => generate_meta('is_post', $current), + 'p' => $current, + 'post' => $current, + 'author' => $author, + 'bodyclass' => 'in-post category-' . $current->ct . ' type-' . $current->type, + 'breadcrumb' => '', + 'prev' => has_prev($prev), + 'next' => has_next($next), + 'type' => $var, + 'is_post' => true + ), $layout); + +}); + +// Edit blog post +get('/'. permalink_type() .'/:name/edit', function ($name) { + + if (login()) { + + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + + config('views.root', 'system/admin/views'); + $post = find_post(null, null, $name); + + if (!$post) { + $post = find_draft(null, null, $name); + if (!$post) { + $post = find_scheduled(null, null, $name); + if (!$post) { + not_found(); + } + } + + } + + $current = $post['current']; + + if (isset($current->image)) { + $type= 'is_image'; + } elseif (isset($current->link)) { + $type = 'is_link'; + } elseif (isset($current->quote)) { + $type = 'is_quote'; + } elseif (isset($current->audio)) { + $type = 'is_audio'; + } elseif (isset($current->video)) { + $type = 'is_video'; + } else { + $type = 'is_post'; + } + + if ($user === $current->author || $role === 'editor' || $role === 'admin') { + render('edit-content', array( + 'title' => generate_title('is_default', $current->title), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'p' => $current, + 'post' => $current, + 'type' => $type, + 'is_admin' => true, + 'bodyclass' => 'edit-post', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $current->categoryb . ' » ' . $current->title + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', $current->title), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'p' => $current, + 'post' => $current, + 'bodyclass' => 'denied', + 'is_admin' => true, + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $current->categoryb . ' » ' . $current->title + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Get edited data from blog post +post('/'. permalink_type() .'/:name/edit', function () { + if(!login()) { + $login = site_url() . 'login'; + header("location: $login"); + } + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + $title = from($_REQUEST, 'title'); + $is_post = from($_REQUEST, 'is_post'); + $image = from($_REQUEST, 'image'); + $is_image = from($_REQUEST, 'is_image'); + $video = from($_REQUEST, 'video'); + $is_video = from($_REQUEST, 'is_video'); + $link = from($_REQUEST, 'link'); + $is_link = from($_REQUEST, 'is_link'); + $audio = from($_REQUEST, 'audio'); + $is_audio = from($_REQUEST, 'is_audio'); + $quote = from($_REQUEST, 'quote'); + $is_quote = from($_REQUEST, 'is_quote'); + $tag = from($_REQUEST, 'tag'); + $url = from($_REQUEST, 'url'); + $content = from($_REQUEST, 'content'); + $oldfile = from($_REQUEST, 'oldfile'); + $destination = from($_GET, 'destination'); + $description = from($_REQUEST, 'description'); + $date = from($_REQUEST, 'date'); + $time = from($_REQUEST, 'time'); + $dateTime = null; + $revertPost = from($_REQUEST, 'revertpost'); + $publishDraft = from($_REQUEST, 'publishdraft'); + $category = from($_REQUEST, 'category'); + if ($date !== null && $time !== null) { + $dateTime = $date . ' ' . $time; + } + + if (!empty($is_image)) { + $type = 'is_image'; + } elseif (!empty($is_video)) { + $type = 'is_video'; + } elseif (!empty($is_link)) { + $type = 'is_link'; + } elseif (!empty($is_quote)) { + $type = 'is_quote'; + } elseif (!empty($is_audio)) { + $type = 'is_audio'; + } elseif (!empty($is_post)) { + $type = 'is_post'; + } + + if (empty($url)) { + $url = $title; + } + + $arr = explode('/', $oldfile); + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if ($user === $arr[1] || $role === 'editor' || $role === 'admin') { + if ($proper && !empty($title) && !empty($tag) && !empty($content) && !empty($image)) { + + edit_content($title, $tag, $url, $content, $oldfile, $revertPost, $publishDraft, $category, 'image', $destination, $description, $dateTime, $image); + + } else if ($proper && !empty($title) && !empty($tag) && !empty($content) && !empty($video)) { + + edit_content($title, $tag, $url, $content, $oldfile, $revertPost, $publishDraft, $category, 'video', $destination, $description, $dateTime, $video); + + } else if ($proper && !empty($title) && !empty($tag) && !empty($content) && !empty($link)) { + + edit_content($title, $tag, $url, $content, $oldfile, $revertPost, $publishDraft, $category, 'link', $destination, $description, $dateTime, $link); + + } else if ($proper && !empty($title) && !empty($tag) && !empty($content) && !empty($quote)) { + + edit_content($title, $tag, $url, $content, $oldfile, $revertPost, $publishDraft, $category, 'quote', $destination, $description, $dateTime, $quote); + + } else if ($proper && !empty($title) && !empty($tag) && !empty($content) && !empty($audio)) { + + edit_content($title, $tag, $url, $content, $oldfile, $revertPost, $publishDraft, $category, 'audio', $destination, $description, $dateTime, $audio); + + } else if ($proper && !empty($title) && !empty($tag) && !empty($content) && !empty($is_post)) { + + edit_content($title, $tag, $url, $content, $oldfile, $revertPost, $publishDraft, $category, 'post', $destination, $description, $dateTime, null); + + } else { + $message['error'] = ''; + if (empty($title)) { + $message['error'] .= '
    75. ' . i18n('msg_error_field_req_title') . '
    76. '; + } + if (empty($tag)) { + $message['error'] .= '
    77. ' . i18n('msg_error_field_req_tag') . '
    78. '; + } + if (empty($content)) { + $message['error'] .= '
    79. ' . i18n('msg_error_field_req_content') . '
    80. '; + } + if (!$proper) { + $message['error'] .= '
    81. ' . i18n('Token_Error') . '
    82. '; + } + + if (!empty($is_image)) { + if (empty($image)) { + $message['error'] .= '
    83. ' . i18n('msg_error_field_req_image') . '
    84. '; + } + } elseif (!empty($is_video)) { + if (empty($video)) { + $message['error'] .= '
    85. ' . i18n('msg_error_field_req_video') . '
    86. '; + } + } elseif (!empty($is_link)) { + if (empty($link)) { + $message['error'] .= '
    87. ' . i18n('msg_error_field_req_link') . '
    88. '; + } + } elseif (!empty($is_quote)) { + if (empty($quote)) { + $message['error'] .= '
    89. ' . i18n('msg_error_field_req_quote') . '
    90. '; + } + } elseif (!empty($is_audio)) { + if (empty($audio)) { + $message['error'] .= '
    91. ' . i18n('msg_error_field_req_audio') . '
    92. '; + } + } + + config('views.root', 'system/admin/views'); + + render('edit-content', array( + 'title' => generate_title('is_default', $title), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'error' => '
        ' . $message['error'] . '
      ', + 'oldfile' => $oldfile, + 'postTitle' => $title, + 'postImage' => $image, + 'postVideo' => $video, + 'postLink' => $link, + 'postQuote' => $quote, + 'postAudio' => $audio, + 'postTag' => $tag, + 'postUrl' => $url, + 'type' => $type, + 'is_admin' => true, + 'postContent' => $content, + 'bodyclass' => 'edit-post', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Edit_content') + )); + } + } else { + $redir = site_url(); + header("location: $redir"); + } +}); + +// Delete blog post +get('/'. permalink_type() .'/:name/delete', function ($name) { + + if (login()) { + + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + + config('views.root', 'system/admin/views'); + $post = find_post(null, null, $name); + + if (!$post) { + $post = find_draft(null, null, $name); + if (!$post) { + $post = find_scheduled(null, null, $name); + if (!$post) { + not_found(); + } + } + + } + + $current = $post['current']; + + if (config('blog.enable') === 'true') { + $blog = ' » '; + } else { + $blog = ''; + } + + if ($user === $current->author || $role === 'editor' || $role === 'admin') { + render('delete-post', array( + 'title' => generate_title('is_default', i18n('Delete')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'p' => $current, + 'post' => $current, + 'is_admin' => true, + 'bodyclass' => 'delete-post', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $current->categoryb . ' » ' . $current->title + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', 'Delete post'), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'p' => $current, + 'post' => $current, + 'is_admin' => true, + 'bodyclass' => 'delete-post', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $current->categoryb . ' » ' . $current->title + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Get deleted data from blog post +post('/'. permalink_type() .'/:name/delete', function () { + + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + if ($proper && login()) { + $file = from($_REQUEST, 'file'); + $destination = from($_GET, 'destination'); + $arr = explode('/', $file); + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if ($user === $arr[1] || $role === 'editor' || $role === 'admin') { + delete_post($file, $destination); + } else { + $redir = site_url(); + header("location: $redir"); + } + } +}); + +// Show various page (top-level), admin, login, sitemap, static page. +get('/:static', function ($static) { + + if (strpos($static, ".xml") !== false) { + if ($static === 'sitemap.xml') { + $sitemap = 'index.xml'; + } else { + $sitemap = str_replace('sitemap.', '', $static); + } + header('Content-Type: text/xml'); + generate_sitemap($sitemap); + die; + } elseif ($static === 'admin') { + if (login()) { + config('views.root', 'system/admin/views'); + render('main', array( + 'title' => generate_title('is_default', i18n('Admin')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'bodyclass' => 'admin-front', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Admin') + )); + } else { + $login = site_url() . 'login'; + header("location: $login"); + } + die; + } elseif ($static === 'login') { + if (session_status() == PHP_SESSION_NONE) session_start(); + config('views.root', 'system/admin/views'); + render('login', array( + 'title' => generate_title('is_default', i18n('Login')), + 'description' => 'Login page from ' . blog_title() . '.', + 'canonical' => site_url() . '/login', + 'metatags' => generate_meta(null, null), + 'bodyclass' => 'in-login', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Login') + )); + die; + } elseif ($static === 'logout') { + if (login()) { + config('views.root', 'system/admin/views'); + render('logout', array( + 'title' => generate_title('is_default', i18n('Logout')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'bodyclass' => 'in-logout', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Logout') + )); + } else { + $login = site_url() . 'login'; + header("location: $login"); + } + die; + } elseif ($static === blog_path()) { + + if(config('blog.enable') !== 'true') { + $url = site_url(); + header("Location: $url"); + } + + if (!login()) { + file_cache($_SERVER['REQUEST_URI']); + } + + $page = from($_GET, 'page'); + $page = $page ? (int)$page : 1; + $perpage = config('posts.perpage'); + + $posts = get_posts(null, $page, $perpage); + + $total = ''; + + $vroot = rtrim(config('views.root'), '/'); + + $lt = $vroot . '/layout--blog.html.php'; + if (file_exists($lt)) { + $layout = 'layout--blog'; + } else { + $layout = ''; + } + + $pv = $vroot . '/main--blog.html.php'; + if (file_exists($pv)) { + $pview = 'main--blog'; + } else { + $pview = 'main'; + } + + $tblog = new stdClass; + $tblog->title = blog_string(); + $tblog->url = site_url() . blog_path(); + $tblog->count = count(get_blog_posts()); + $tblog->description = i18n('all_blog_posts') . ' ' . i18n('by') . ' ' . blog_title(); + $tblog->body = $tblog->description; + $tblog->rss = site_url() . 'feed/rss'; + $tblog->slug = blog_path(); + + if (empty($posts) || $page < 1) { + + // a non-existing page + render('no-posts', array( + 'title' => generate_title('is_blog', null), + 'description' => blog_title() . ' ' . blog_string(), + 'canonical' => site_url(), + 'metatags' => generate_meta('is_blog', null), + 'bodyclass' => 'no-posts', + 'is_front' => true, + ), $layout); + + die; + } + + if ($page > 1) { + $CanonicalPageNum = '?page=' . $page; + } else { + $CanonicalPageNum = NULL; + } + + render($pview, array( + 'title' => generate_title('is_blog', null), + 'description' => blog_title() . ' ' . blog_string(), + 'canonical' => site_url() . blog_path() . $CanonicalPageNum, + 'metatags' => generate_meta('is_blog', null), + 'page' => $page, + 'posts' => $posts, + 'taxonomy' => $tblog, + 'bodyclass' => 'in-blog', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . blog_string(), + 'pagination' => has_pagination($total, $perpage, $page), + 'is_blog' => true, + 'is_taxonomy' => true + ), $layout); + } elseif ($static === 'front') { + + $redir = site_url(); + header("location: $redir", TRUE, 301); + + } else { + + if (config("views.counter") != "true") { + if (!login()) { + file_cache($_SERVER['REQUEST_URI']); + } + } else { + add_view('page_' . $static); + if (!login()) { + file_cache($_SERVER['REQUEST_URI']); + } + } + + $post = find_page($static); + + if (!$post) { + not_found('page_' . $static); + } + + if (array_key_exists('prev', $post)) { + $prev = $post['prev']; + } else { + $prev = array(); + } + + if (array_key_exists('next', $post)) { + $next = $post['next']; + } else { + $next = array(); + } + + $post = $post['current']; + + $vroot = rtrim(config('views.root'), '/'); + + $lt = $vroot . '/layout--' . strtolower($static) . '.html.php'; + $ls = $vroot . '/layout--static.html.php'; + if (file_exists($lt)) { + $layout = 'layout--' . strtolower($static); + } else if (file_exists($ls)) { + $layout = 'layout--static'; + } else { + $layout = ''; + } + + $pv = $vroot . '/static--' . strtolower($static) . '.html.php'; + if (file_exists($pv)) { + $pview = 'static--' . strtolower($static); + } else { + $pview = 'static'; + } + + render($pview, array( + 'title' => generate_title('is_page', $post), + 'description' => $post->description, + 'canonical' => $post->url, + 'metatags' => generate_meta('is_page', $post), + 'bodyclass' => 'in-page ' . strtolower($static), + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $post->title, + 'p' => $post, + 'static' => $post, + 'type' => 'is_page', + 'prev' => static_prev($prev), + 'next' => static_next($next), + 'is_page' => true + ), $layout); + } +}); + +// Show the add sub static page +get('/:static/add', function ($static) { + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if (login()) { + config('views.root', 'system/admin/views'); + if ($role === 'editor' || $role === 'admin') { + $post = find_page($static); + + if (!$post) { + not_found(); + } + + $post = $post['current']; + + render('add-page', array( + 'title' => generate_title('is_default', i18n('Add_new_page')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_subpage', + 'parent' => $static, + 'is_admin' => true, + 'bodyclass' => 'add-page', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $post->title . ' » ' . i18n('Add_new_page') + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', i18n('Denied')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-config', + 'is_admin' => true, + 'bodyclass' => 'denied', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Denied') + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Submitted data from add sub static page +post('/:static/add', function ($static) { + if(!login()) { + $login = site_url() . 'login'; + header("location: $login"); + } + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + $title = from($_REQUEST, 'title'); + $url = from($_REQUEST, 'url'); + $content = from($_REQUEST, 'content'); + $description = from($_REQUEST, 'description'); + $draft = from($_REQUEST, 'draft'); + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if (empty($url)) { + $url = $title; + } + if ($role === 'editor' || $role === 'admin') { + if ($proper && !empty($title) && !empty($content)) { + add_sub_page($title, $url, $content, $static, $draft, $description); + } else { + $message['error'] = ''; + if (empty($title)) { + $message['error'] .= '
    93. ' . i18n('msg_error_field_req_title') . '
    94. '; + } + if (empty($content)) { + $message['error'] .= '
    95. ' . i18n('msg_error_field_req_content') . '
    96. '; + } + if (!$proper) { + $message['error'] .= '
    97. ' . i18n('Token_Error') . '
    98. '; + } + config('views.root', 'system/admin/views'); + render('add-page', array( + 'title' => generate_title('is_default', i18n('Add_new_page')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'error' => '
        ' . $message['error'] . '
      ', + 'postTitle' => $title, + 'postUrl' => $url, + 'postContent' => $content, + 'type' => 'is_subpage', + 'is_admin' => true, + 'bodyclass' => 'add-page', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $title . ' » ' . i18n('Add_new_page') + )); + } + } else { + $redir = site_url(); + header("location: $redir"); + } +}); + +// Show edit the static page +get('/:static/edit', function ($static) { + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if (login()) { + config('views.root', 'system/admin/views'); + if ($role === 'editor' || $role === 'admin') { + $post = find_page($static); + + if (!$post) { + $post = find_draft_page($static); + if (!$post) { + not_found(); + } else { + $post = $post[0]; + } + } else { + $post = $post['current']; + } + + render('edit-page', array( + 'title' => generate_title('is_default', i18n('Edit') . ': ' . $post->title), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'bodyclass' => 'edit-page', + 'is_admin' => true, + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' .i18n('pages').' » ' . $post->title, + 'p' => $post, + 'static' => $post, + 'type' => 'is_page', + 'parent' => '' + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', i18n('Denied')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_page', + 'is_admin' => true, + 'bodyclass' => 'denied', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Denied') + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Get edited data from static page +post('/:static/edit', function () { + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + if(!login()) { + $login = site_url() . 'login'; + header("location: $login"); + } + $title = from($_REQUEST, 'title'); + $url = from($_REQUEST, 'url'); + $content = from($_REQUEST, 'content'); + $oldfile = from($_REQUEST, 'oldfile'); + $destination = from($_GET, 'destination'); + $description = from($_REQUEST, 'description'); + $revertPage = from($_REQUEST, 'revertpage'); + $publishDraft = from($_REQUEST, 'publishdraft'); + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if (empty($url)) { + $url = $title; + } + if ($role === 'editor' || $role === 'admin') { + if ($proper && !empty($title) && !empty($content)) { + edit_page($title, $url, $content, $oldfile, $revertPage, $publishDraft, $destination, $description); + } else { + $message['error'] = ''; + if (empty($title)) { + $message['error'] .= '
    99. ' . i18n('msg_error_field_req_title') . '
    100. '; + } + if (empty($content)) { + $message['error'] .= '
    101. ' . i18n('msg_error_field_req_content') . '
    102. '; + } + if (!$proper) { + $message['error'] .= '
    103. ' . i18n('Token_Error') . '
    104. '; + } + config('views.root', 'system/admin/views'); + + render('edit-page', array( + 'title' => generate_title('is_default', i18n('Edit') . ': ' . $post->title), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'error' => '
        ' . $message['error'] . '
      ', + 'oldfile' => $oldfile, + 'postTitle' => $title, + 'postUrl' => $url, + 'postContent' => $content, + 'bodyclass' => 'edit-page', + 'is_admin' => true, + 'type' => 'is_page', + 'parent' => '', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Edit') + )); + } + } else { + $redir = site_url(); + header("location: $redir"); + } +}); + +// Deleted the static page +get('/:static/delete', function ($static) { + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if (login()) { + config('views.root', 'system/admin/views'); + if ($role === 'editor' || $role === 'admin') { + $post = find_page($static); + + if (!$post) { + $post = find_draft_page($static); + if (!$post) { + not_found(); + } else { + $post = $post[0]; + } + } else { + $post = $post['current']; + } + + render('delete-page', array( + 'title' => generate_title('is_default', i18n('Delete') . ': ' . $post->title), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'bodyclass' => 'delete-page', + 'is_admin' => true, + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Delete') . ': ' . $post->title, + 'p' => $post, + 'static' => $post, + 'type' => 'is_page', + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', i18n('Denied')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_admin-config', + 'is_admin' => true, + 'bodyclass' => 'denied', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Denied') + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Get deleted data for static page +post('/:static/delete', function () { + + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + if ($proper && login()) { + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if ($role === 'editor' || $role === 'admin') { + $file = from($_REQUEST, 'file'); + $destination = from($_GET, 'destination'); + delete_page($file, $destination); + } else { + $redir = site_url(); + header("location: $redir"); + } + } +}); + +// Show the sb static page +get('/:static/:sub', function ($static, $sub) { + + if ($static === 'front') { + $redir = site_url(); + header("location: $redir", TRUE, 301); + } + + if (config("views.counter") != "true") { + if (!login()) { + file_cache($_SERVER['REQUEST_URI']); + } + } else { + add_view('subpage_' . $static.'.'.$sub); + if (!login()) { + file_cache($_SERVER['REQUEST_URI']); + } + } + + $parent_post = find_page($static); + if (!$parent_post) { + not_found('subpage_' . $static.'.'.$sub); + } + $post = find_subpage($static, $sub); + + if (!$post) { + not_found('subpage_' . $static.'.'.$sub); + } + + if (array_key_exists('prev', $post)) { + $prev = $post['prev']; + } else { + $prev = array(); + } + + if (array_key_exists('next', $post)) { + $next = $post['next']; + } else { + $next = array(); + } + + $post = $post['current']; + + $vroot = rtrim(config('views.root'), '/'); + + $lt = $vroot . '/layout--' . strtolower($static) . '--' . strtolower($sub) . '.html.php'; + $ls = $vroot . '/layout--' . strtolower($static) . '.html.php'; + $lf = $vroot . '/layout--static.html.php'; + if (file_exists($lt)) { + $layout = 'layout--' . strtolower($static) . '--' . strtolower($sub); + } else if (file_exists($ls)) { + $layout = 'layout--' . strtolower($static); + } else if (file_exists($lf)) { + $layout = 'layout--static'; + } else { + $layout = ''; + } + + $pv = $vroot . '/static--' . strtolower($static) . '--' . strtolower($sub) . '.html.php'; + $ps = $vroot . '/static--' . strtolower($static) . '.html.php'; + if (file_exists($pv)) { + $pview = 'static--' . strtolower($static) . '--' . strtolower($sub); + } else if (file_exists($ps)) { + $pview = 'static--' . strtolower($static); + } else { + $pview = 'static'; + } + + render($pview, array( + 'title' => generate_title('is_subpage', $post), + 'description' => $post->description, + 'canonical' => $post->url, + 'metatags' => generate_meta('is_subpage', $post), + 'bodyclass' => 'in-page ' . strtolower($static) . ' ' . strtolower($sub) , + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $parent_post['current']->title . ' » ' . $post->title, + 'p' => $post, + 'static' => $post, + 'parent' => $parent_post, + 'prev' => static_prev($prev), + 'next' => static_next($next), + 'type' => 'is_subpage', + 'is_subpage' => true + ), $layout); +}); + +// Edit the sub static page +get('/:static/:sub/edit', function ($static, $sub) { + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if (login()) { + config('views.root', 'system/admin/views'); + if ($role === 'editor' || $role === 'admin') { + $post = find_page($static); + + if (!$post) { + not_found(); + } + + $post = $post['current']; + + $page = find_subpage($static, $sub); + + if (!$page) { + $page = find_draft_subpage($static, $sub); + if (!$page) { + not_found(); + } else { + $page = $page[0]; + } + } else { + $page = $page['current']; + } + + render('edit-page', array( + 'title' => generate_title('is_default', i18n('Edit') . ': ' . $page->title), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'bodyclass' => 'edit-page', + 'is_admin' => true, + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $post->title . ' » ' . $page->title, + 'p' => $page, + 'static' => $page, + 'type' => 'is_subpage', + 'parent' => $static + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', i18n('Denied')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_subpage', + 'is_admin' => true, + 'bodyclass' => 'denied', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Denied') + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Submitted data from edit sub static page +post('/:static/:sub/edit', function ($static, $sub) { + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + if(!login()) { + $login = site_url() . 'login'; + header("location: $login"); + } + $title = from($_REQUEST, 'title'); + $url = from($_REQUEST, 'url'); + $content = from($_REQUEST, 'content'); + $oldfile = from($_REQUEST, 'oldfile'); + $destination = from($_GET, 'destination'); + $description = from($_REQUEST, 'description'); + $revertPage = from($_REQUEST, 'revertpage'); + $publishDraft = from($_REQUEST, 'publishdraft'); + if ($destination === null) { + $destination = $static . "/" . $sub; + } + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if (empty($url)) { + $url = $title; + } + if ($role === 'editor' || $role === 'admin') { + if ($proper && !empty($title) && !empty($content)) { + edit_page($title, $url, $content, $oldfile, $revertPage, $publishDraft, $destination, $description, $static); + } else { + $message['error'] = ''; + if (empty($title)) { + $message['error'] .= '
    105. ' . i18n('msg_error_field_req_title') . '
    106. '; + } + if (empty($content)) { + $message['error'] .= '
    107. ' . i18n('msg_error_field_req_content') . '
    108. '; + } + if (!$proper) { + $message['error'] .= '
    109. ' . i18n('Token_Error') . '
    110. '; + } + config('views.root', 'system/admin/views'); + + render('edit-page', array( + 'title' => generate_title('is_default', i18n('Edit') . ': ' . $page->title), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'error' => '
        ' . $message['error'] . '
      ', + 'oldfile' => $oldfile, + 'postTitle' => $title, + 'postUrl' => $url, + 'postContent' => $content, + 'static' => $static, + 'sub' => $sub, + 'type' => 'is_subpage', + 'bodyclass' => 'edit-page', + 'is_admin' => true, + 'parent' => $static, + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Edit') + )); + } + } else { + $redir = site_url(); + header("location: $redir"); + } +}); + +// Delete sub static page +get('/:static/:sub/delete', function ($static, $sub) { + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if (login()) { + config('views.root', 'system/admin/views'); + if ($role === 'editor' || $role === 'admin') { + $post = find_page($static); + + if (!$post) { + not_found(); + } + + $post = $post['current']; + + $page = find_subpage($static, $sub); + + if (!$page) { + $page = find_draft_subpage($static, $sub); + if (!$page) { + not_found(); + } else { + $page = $page[0]; + } + } else { + $page = $page['current']; + } + + render('delete-page', array( + 'title' => generate_title('is_default', i18n('Delete') . ': ' . $page->title), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'bodyclass' => 'delete-page', + 'is_admin' => true, + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $post->title . ' » ' . $page->title, + 'p' => $page, + 'static' => $page, + 'type' => 'is_subpage', + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', i18n('Denied')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'type' => 'is_subpage', + 'is_admin' => true, + 'bodyclass' => 'denied', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('Denied') + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Submitted data from delete sub static page +post('/:static/:sub/delete', function () { + + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + if ($proper && login()) { + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if ($role === 'editor' || $role === 'admin') { + $file = from($_REQUEST, 'file'); + $destination = from($_GET, 'destination'); + delete_page($file, $destination); + } else { + $redir = site_url(); + header("location: $redir"); + } + } +}); + +// Show blog post with year-month +get('/:year/:month/:name', function ($year, $month, $name) { + + if (permalink_type() !== 'default') { + $redir = site_url() . permalink_type() . '/' . $name; + header("location: $redir", TRUE, 301); + } + + if (config("views.counter") != "true") { + if (!login()) { + file_cache($_SERVER['REQUEST_URI']); + } + } else { + add_view('post_' . $name); + if (!login()) { + file_cache($_SERVER['REQUEST_URI']); + } + } + + $post = find_post($year, $month, $name); + + if (is_null($post)) { + not_found('post_'. $name); + } else { + $current = $post['current']; + } + + $author = new stdClass; + $author->url = $current->authorUrl; + $author->name = $current->authorName; + $author->description = $current->authorDescription; + $author->about = $current->authorAbout; + $author->avatar = $current->authorAvatar; + $author->rss = $current->authorRss; + $author->slug = $current->author; + + if (array_key_exists('prev', $post)) { + $prev = $post['prev']; + } else { + $prev = array(); + } + + if (array_key_exists('next', $post)) { + $next = $post['next']; + } else { + $next = array(); + } + + if (isset($current->image)) { + $var = 'imagePost'; + } elseif (isset($current->link)) { + $var = 'linkPost'; + } elseif (isset($current->quote)) { + $var = 'quotePost'; + } elseif (isset($current->audio)) { + $var = 'audioPost'; + } elseif (isset($current->video)) { + $var = 'videoPost'; } + else { + $var = 'blogPost'; + } + + if (config('blog.enable') === 'true') { + $blog = ' » '; + } else { + $blog = ''; + } + + $vroot = rtrim(config('views.root'), '/'); + + $lt = $vroot . '/layout--post--' . $current->ct . '.html.php'; + $pt = $vroot . '/layout--post--' . $current->type . '.html.php'; + $ls = $vroot . '/layout--post.html.php'; + if (file_exists($lt)) { + $layout = 'layout--post--' . $current->ct; + } else if (file_exists($pt)) { + $layout = 'layout--post--' . $current->type; + } else if (file_exists($ls)) { + $layout = 'layout--post'; + } else { + $layout = ''; + } + + $pv = $vroot . '/post--' . $current->ct . '.html.php'; + $pvt = $vroot . '/post--' . $current->type . '.html.php'; + if (file_exists($pv)) { + $pview = 'post--' . $current->ct; + } else if(file_exists($pvt)) { + $pview = 'post--' . $current->type; + } else { + $pview = 'post'; + } + + render($pview, array( + 'title' => generate_title('is_post', $current), + 'description' => $current->description, + 'canonical' => $current->url, + 'metatags' => generate_meta('is_post', $current), + 'p' => $current, + 'post' => $current, + 'author' => $author, + 'bodyclass' => 'in-post category-' . $current->ct . ' type-' . $current->type, + 'breadcrumb' => '', + 'prev' => has_prev($prev), + 'next' => has_next($next), + 'type' => $var, + 'is_post' => true + ), $layout); + +}); + +// Edit blog post +get('/:year/:month/:name/edit', function ($year, $month, $name) { + + if (login()) { + + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + + config('views.root', 'system/admin/views'); + $post = find_post($year, $month, $name); + + if (!$post) { + $post = find_draft($year, $month, $name); + if (!$post) { + $post = find_scheduled($year, $month, $name); + if (!$post) { + not_found(); + } + } + + } + + $current = $post['current']; + + if (isset($current->image)) { + $type= 'is_image'; + } elseif (isset($current->link)) { + $type = 'is_link'; + } elseif (isset($current->quote)) { + $type = 'is_quote'; + } elseif (isset($current->audio)) { + $type = 'is_audio'; + } elseif (isset($current->video)) { + $type = 'is_video'; + } else { + $type = 'is_post'; + } + + if ($user === $current->author || $role === 'editor' || $role === 'admin') { + render('edit-content', array( + 'title' => generate_title('is_default', $current->title), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'p' => $current, + 'post' => $current, + 'type' => $type, + 'bodyclass' => 'edit-post', + 'is_admin' => true, + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $current->categoryb . ' » ' . $current->title + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', $current->title), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'p' => $current, + 'post' => $current, + 'bodyclass' => 'denied', + 'is_admin' => true, + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $current->categoryb . ' » ' . $current->title + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Get edited data from blog post +post('/:year/:month/:name/edit', function () { + + if(!login()) { + $login = site_url() . 'login'; + header("location: $login"); + } + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + $title = from($_REQUEST, 'title'); + $is_post = from($_REQUEST, 'is_post'); + $image = from($_REQUEST, 'image'); + $is_image = from($_REQUEST, 'is_image'); + $video = from($_REQUEST, 'video'); + $is_video = from($_REQUEST, 'is_video'); + $link = from($_REQUEST, 'link'); + $is_link = from($_REQUEST, 'is_link'); + $audio = from($_REQUEST, 'audio'); + $is_audio = from($_REQUEST, 'is_audio'); + $quote = from($_REQUEST, 'quote'); + $is_quote = from($_REQUEST, 'is_quote'); + $tag = from($_REQUEST, 'tag'); + $url = from($_REQUEST, 'url'); + $content = from($_REQUEST, 'content'); + $oldfile = from($_REQUEST, 'oldfile'); + $destination = from($_GET, 'destination'); + $description = from($_REQUEST, 'description'); + $date = from($_REQUEST, 'date'); + $time = from($_REQUEST, 'time'); + $dateTime = null; + $revertPost = from($_REQUEST, 'revertpost'); + $publishDraft = from($_REQUEST, 'publishdraft'); + $category = from($_REQUEST, 'category'); + if ($date !== null && $time !== null) { + $dateTime = $date . ' ' . $time; + } + + if (!empty($is_image)) { + $type = 'is_image'; + } elseif (!empty($is_video)) { + $type = 'is_video'; + } elseif (!empty($is_link)) { + $type = 'is_link'; + } elseif (!empty($is_quote)) { + $type = 'is_quote'; + } elseif (!empty($is_audio)) { + $type = 'is_audio'; + } elseif (!empty($is_post)) { + $type = 'is_post'; + } + + if (empty($url)) { + $url = $title; + } + + $arr = explode('/', $oldfile); + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if ($user === $arr[1] || $role === 'editor' || $role === 'admin') { + + if ($proper && !empty($title) && !empty($tag) && !empty($content) && !empty($image)) { + + edit_content($title, $tag, $url, $content, $oldfile, $revertPost, $publishDraft, $category, 'image', $destination, $description, $dateTime, $image); + + } else if ($proper && !empty($title) && !empty($tag) && !empty($content) && !empty($video)) { + + edit_content($title, $tag, $url, $content, $oldfile, $revertPost, $publishDraft, $category, 'video', $destination, $description, $dateTime, $video); + + } else if ($proper && !empty($title) && !empty($tag) && !empty($content) && !empty($link)) { + + edit_content($title, $tag, $url, $content, $oldfile, $revertPost, $publishDraft, $category, 'link', $destination, $description, $dateTime, $link); + + } else if ($proper && !empty($title) && !empty($tag) && !empty($content) && !empty($quote)) { + + edit_content($title, $tag, $url, $content, $oldfile, $revertPost, $publishDraft, $category, 'quote', $destination, $description, $dateTime, $quote); + + } else if ($proper && !empty($title) && !empty($tag) && !empty($content) && !empty($audio)) { + + edit_content($title, $tag, $url, $content, $oldfile, $revertPost, $publishDraft, $category, 'audio', $destination, $description, $dateTime, $audio); + + } else if ($proper && !empty($title) && !empty($tag) && !empty($content) && !empty($is_post)) { + + edit_content($title, $tag, $url, $content, $oldfile, $revertPost, $publishDraft, $category, 'post', $destination, $description, $dateTime, null); + + } else { + $message['error'] = ''; + if (empty($title)) { + $message['error'] .= '
    111. ' . i18n('msg_error_field_req_title') . '
    112. '; + } + if (empty($tag)) { + $message['error'] .= '
    113. ' . i18n('msg_error_field_req_tag') . '
    114. '; + } + if (empty($content)) { + $message['error'] .= '
    115. ' . i18n('msg_error_field_req_content') . '
    116. '; + } + if (!$proper) { + $message['error'] .= '
    117. ' . i18n('Token_Error') . '
    118. '; + } + + if (!empty($is_image)) { + if (empty($image)) { + $message['error'] .= '
    119. ' . i18n('msg_error_field_req_image') . '
    120. '; + } + } elseif (!empty($is_video)) { + if (empty($video)) { + $message['error'] .= '
    121. ' . i18n('msg_error_field_req_video') . '
    122. '; + } + } elseif (!empty($is_link)) { + if (empty($link)) { + $message['error'] .= '
    123. ' . i18n('msg_error_field_req_link') . '
    124. '; + } + } elseif (!empty($is_quote)) { + if (empty($quote)) { + $message['error'] .= '
    125. ' . i18n('msg_error_field_req_quote') . '
    126. '; + } + } elseif (!empty($is_audio)) { + if (empty($audio)) { + $message['error'] .= '
    127. ' . i18n('msg_error_field_req_audio') . '
    128. '; + } + } + + config('views.root', 'system/admin/views'); + + render('edit-content', array( + 'title' => generate_title('is_default', $title), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'error' => '
        ' . $message['error'] . '
      ', + 'oldfile' => $oldfile, + 'postTitle' => $title, + 'postImage' => $image, + 'postVideo' => $video, + 'postLink' => $link, + 'postQuote' => $quote, + 'postAudio' => $audio, + 'postTag' => $tag, + 'postUrl' => $url, + 'type' => $type, + 'postContent' => $content, + 'is_admin' => true, + 'bodyclass' => 'edit-post', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $title + )); + } + } else { + $redir = site_url(); + header("location: $redir"); + } +}); + +// Delete blog post +get('/:year/:month/:name/delete', function ($year, $month, $name) { + + if (login()) { + + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + + config('views.root', 'system/admin/views'); + $post = find_post($year, $month, $name); + + if (!$post) { + $post = find_draft($year, $month, $name); + if (!$post) { + $post = find_scheduled($year, $month, $name); + if (!$post) { + not_found(); + } + } + + } + + $current = $post['current']; + + if ($user === $current->author || $role === 'editor' || $role === 'admin') { + render('delete-post', array( + 'title' => generate_title('is_default', i18n('Delete')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'p' => $current, + 'post' => $current, + 'bodyclass' => 'delete-post', + 'is_admin' => true, + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $current->categoryb . ' » ' . $current->title + )); + } else { + render('denied', array( + 'title' => generate_title('is_default', i18n('Delete')), + 'description' => safe_html(strip_tags(blog_description())), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'p' => $current, + 'post' => $current, + 'bodyclass' => 'delete-post', + 'is_admin' => true, + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $current->categoryb . ' » ' . $current->title + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } +}); + +// Get deleted data from blog post +post('/:year/:month/:name/delete', function () { + + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + if ($proper && login()) { + $file = from($_REQUEST, 'file'); + $destination = from($_GET, 'destination'); + $arr = explode('/', $file); + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + if ($user === $arr[1] || $role === 'editor' || $role === 'admin') { + delete_post($file, $destination); + } + } +}); + +// If we get here, it means that +// nothing has been matched above +get('.*', function () { + not_found(); +}); + +// Serve the blog +dispatch(); diff --git a/system/includes/.htaccess b/system/includes/.htaccess new file mode 100644 index 0000000..3418e55 --- /dev/null +++ b/system/includes/.htaccess @@ -0,0 +1 @@ +deny from all \ No newline at end of file diff --git a/system/includes/dispatch.php b/system/includes/dispatch.php new file mode 100644 index 0000000..f5ae7c6 --- /dev/null +++ b/system/includes/dispatch.php @@ -0,0 +1,720 @@ + $value) { + $value = json_encode($value, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); + $map = array('\r\n' => ' \n ', '\r' => ' \n '); + $value = trim(strtr($value, $map)); + $string = preg_replace("/^" . $word . " = .+$/m", $word . ' = ' . $value, $string); + } + $string = rtrim($string); + foreach ($new as $word => $value) { + $value = json_encode($value, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); + $map = array('\r\n' => ' \n ', '\r' => ' \n '); + $value = trim(strtr($value, $map)); + $string .= "\n" . $word . ' = ' . $value . "\n"; + } + $string = rtrim($string); + return file_put_contents($config_file, $string, LOCK_EX); +} + +function get_search_query() +{ + if (isset($_GET['search'])) { + $search = _h($_GET['search']); + $url = site_url() . 'search/' . remove_accent($search); + header("Location: $url"); + die; + } +} + +function to_b64($str) +{ + $str = base64_encode($str); + $str = preg_replace('/\//', '_', $str); + $str = preg_replace('/\+/', '.', $str); + $str = preg_replace('/\=/', '-', $str); + return trim($str, '-'); +} + +function from_b64($str) +{ + $str = preg_replace('/\_/', '/', $str); + $str = preg_replace('/\./', '+', $str); + $str = preg_replace('/\-/', '=', $str); + $str = base64_decode($str); + return $str; +} + +if (extension_loaded('mcrypt')) { + + function encrypt($decoded, $algo = MCRYPT_RIJNDAEL_256, $mode = MCRYPT_MODE_CBC) + { + if (($secret = config('cookies.secret')) == null) + error(500, '[cookies.secret] is not set'); + + $secret = mb_substr($secret, 0, mcrypt_get_key_size($algo, $mode)); + $iv_size = mcrypt_get_iv_size($algo, $mode); + $iv_code = mcrypt_create_iv($iv_size, MCRYPT_DEV_URANDOM); + $encrypted = to_b64(mcrypt_encrypt($algo, $secret, $decoded, $mode, $iv_code)); + + return sprintf('%s|%s', $encrypted, to_b64($iv_code)); + } + + function decrypt($encoded, $algo = MCRYPT_RIJNDAEL_256, $mode = MCRYPT_MODE_CBC) + { + if (($secret = config('cookies.secret')) == null) + error(500, '[cookies.secret] is not set'); + + $secret = mb_substr($secret, 0, mcrypt_get_key_size($algo, $mode)); + list($enc_str, $iv_code) = explode('|', $encoded); + $enc_str = from_b64($enc_str); + $iv_code = from_b64($iv_code); + $enc_str = mcrypt_decrypt($algo, $secret, $enc_str, $mode, $iv_code); + + return rtrim($enc_str, "\0"); + } + +} + +function set_cookie($name, $value, $expire = 31536000, $path = '/') +{ + $value = (function_exists('encrypt') ? encrypt($value) : $value); + setcookie($name, $value, time() + $expire, $path); +} + +function get_cookie($name) +{ + $value = from($_COOKIE, $name); + + if ($value) + $value = (function_exists('decrypt') ? decrypt($value) : $value); + + return $value; +} + +function delete_cookie() +{ + $cookies = func_get_args(); + foreach ($cookies as $ck) + setcookie($ck, '', -10, '/'); +} + +// if we have APCu loaded, enable cache functions +if (extension_loaded('apcu')) { + + function cache($key, $func, $ttl = 0) + { + if (($data = apcu_fetch($key)) === false) { + $data = call_user_func($func); + if ($data !== null) { + apcu_store($key, $data, $ttl); + } + } + return $data; + } + + function cache_invalidate() + { + foreach (func_get_args() as $key) { + apcu_delete($key); + } + } + +} + +function warn($name = null, $message = null) +{ + static $warnings = array(); + + if ($name == '*') + return $warnings; + + if (!$name) + return count(array_keys($warnings)); + + if (!$message) + return isset($warnings[$name]) ? $warnings[$name] : null; + + $warnings[$name] = $message; +} + +function _u($str) +{ + return urlencode($str); +} + +function _h($str, $enc = 'UTF-8', $flags = ENT_QUOTES) +{ + return htmlentities($str, $flags, $enc); +} + +function from($source, $name) +{ + $map = array("\r\n" => "\n", "\r" => "\n"); + if (is_array($name)) { + $data = array(); + foreach ($name as $k) + $data[$k] = isset($source[$k]) ? trim(strtr($source[$k], $map)) : null; + return $data; + } + return isset($source[$name]) ? trim(strtr($source[$name], $map)) : null; +} + +function stash($name, $value = null) +{ + static $_stash = array(); + + if ($value === null) + return isset($_stash[$name]) ? $_stash[$name] : null; + + $_stash[$name] = $value; + + return $value; +} + +function method($verb = null) +{ + if ($verb == null || (strtoupper($verb) == strtoupper($_SERVER['REQUEST_METHOD']))) + return strtoupper($_SERVER['REQUEST_METHOD']); + + error(400, 'bad request'); +} + +function client_ip() +{ + if (isset($_SERVER['HTTP_CLIENT_IP'])) + return $_SERVER['HTTP_CLIENT_IP']; + elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) + return $_SERVER['HTTP_X_FORWARDED_FOR']; + + return $_SERVER['REMOTE_ADDR']; +} + +function redirect(/* $code_or_path, $path_or_cond, $cond */) +{ + $argv = func_get_args(); + $argc = count($argv); + + $path = null; + $code = 302; + $cond = true; + + switch ($argc) { + case 3: + list($code, $path, $cond) = $argv; + break; + case 2: + if (is_string($argv[0]) ? $argv[0] : $argv[1]) { + $code = 302; + $path = $argv[0]; + $cond = $argv[1]; + } else { + $code = $argv[0]; + $path = $argv[1]; + } + break; + case 1: + if (!is_string($argv[0])) + error(500, 'bad call to redirect()'); + $path = $argv[0]; + break; + default: + error(500, 'bad call to redirect()'); + } + + $cond = (is_callable($cond) ? !!call_user_func($cond) : !!$cond); + + if (!$cond) + return; + + header('Location: ' . $path, true, $code); + exit; +} + +function partial($view, $locals = null) +{ + if (is_array($locals) && count($locals)) { + extract($locals, EXTR_SKIP); + } + + if (($view_root = config('views.root')) == null) + error(500, "[views.root] is not set"); + + $path = basename($view); + $view = preg_replace('/' . $path . '$/', "_{$path}", $view); + $view = "{$view_root}/{$view}.html.php"; + + if (file_exists($view)) { + ob_start(); + require $view; + return ob_get_clean(); + } else { + error(500, "partial [{$view}] not found"); + } + + return ''; +} + +function content($value = null) +{ + return stash('$content$', $value); +} + +function render($view, $locals = null, $layout = null) +{ + if (!login()) { + $c = str_replace('/', '#', str_replace('?', '~', rawurldecode($_SERVER['REQUEST_URI']))); + $dir = 'cache/page'; + $cachefile = $dir . '/' . $c . '.cache'; + if (!is_dir($dir)) { + mkdir($dir, 0775, true); + } + } + + if (is_array($locals) && count($locals)) { + extract($locals, EXTR_SKIP); + } + + if (($view_root = config('views.root')) == null) + error(500, "[views.root] is not set"); + + $fnc = "{$view_root}/functions.php"; + + ob_start(); + if (file_exists($fnc)) { + include $fnc; + } + include "{$view_root}/{$view}.html.php"; + content(trim(ob_get_clean())); + + if ($layout !== false) { + if ($layout == null) { + $layout = config('views.layout'); + $layout = ($layout == null) ? 'layout' : $layout; + } + $layout = "{$view_root}/{$layout}.html.php"; + header('Content-type: text/html; charset=utf-8'); + if (config('generation.time') == 'true') { + ob_start(); + require $layout; + $time = microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"]; + $total_time = round($time, 4); + echo "\n" . ''; + } else { + ob_start(); + require $layout; + } + if (!login() && $view != '404' && $view != '404-search' && $view != 'login-mfa' && config('cache.off') == "false") { + if (config('cache.timestamp') == 'true') { + echo "\n" . ''; + } + if (isset($cachefile)) + file_put_contents($cachefile, ob_get_contents(), LOCK_EX); + } + echo trim(ob_get_clean()); + } else { + echo content(); + } +} + +function json($obj, $code = 200) +{ + header('Content-type: application/json', true, $code); + echo json_encode($obj); + exit; +} + +function save_json_pretty($filename, $arr) +{ + if (defined("JSON_PRETTY_PRINT")) { + file_put_contents($filename, json_encode($arr, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT), LOCK_EX); + } else { + file_put_contents($filename, json_encode($arr, JSON_UNESCAPED_UNICODE), LOCK_EX); + } +} + +function file_get_data($filename) +{ + $thisFile = fopen($filename, 'r'); + if (flock($thisFile, LOCK_SH)) { + $fileData = file_get_contents($filename); + flock($thisFile, LOCK_UN); + } else { + $fileData = json_encode(array('flock_fail' => 'reading')); + } + fclose($thisFile); + return $fileData; +} + +function condition() +{ + static $cb_map = array(); + + $argv = func_get_args(); + $argc = count($argv); + + if (!$argc) + error(500, 'bad call to condition()'); + + $name = array_shift($argv); + $argc = $argc - 1; + + if (!$argc && is_callable($cb_map[$name])) + return call_user_func($cb_map[$name]); + + if (is_callable($argv[0])) + return ($cb_map[$name] = $argv[0]); + + if (is_callable($cb_map[$name])) + return call_user_func_array($cb_map[$name], $argv); + + error(500, 'condition [' . $name . '] is undefined'); +} + +function middleware($cb_or_path = null) +{ + static $cb_map = array(); + + if ($cb_or_path == null || is_string($cb_or_path)) { + foreach ($cb_map as $cb) { + call_user_func($cb, $cb_or_path); + } + } else { + array_push($cb_map, $cb_or_path); + } +} + +function filter($sym, $cb_or_val = null) +{ + static $cb_map = array(); + + if (is_callable($cb_or_val)) { + $cb_map[$sym] = $cb_or_val; + return; + } + + if (is_array($sym) && count($sym) > 0) { + foreach ($sym as $s) { + $s = substr($s, 1); + if (isset($cb_map[$s]) && isset($cb_or_val[$s])) + call_user_func($cb_map[$s], $cb_or_val[$s]); + } + return; + } + + error(500, 'bad call to filter()'); +} + +function route_to_regex($route) +{ + $route = preg_replace_callback('@:[\w]+@i', function ($matches) { + $token = str_replace(':', '', $matches[0]); + return '(?P<' . $token . '>[a-z0-9_\0-\.]+)'; + }, $route); + return '@^' . rtrim($route, '/') . '$@i'; +} + +function route($method, $pattern, $callback = null) +{ + // callback map by request type + static $route_map = array( + 'GET' => array(), + 'POST' => array() + ); + + $method = strtoupper($method); + + if (!in_array($method, array('GET', 'POST'))) + error(500, 'Only GET and POST are supported'); + + // a callback was passed, so we create a route defiition + if ($callback !== null) { + + // create a route entry for this pattern + $route_map[$method][$pattern] = array( + 'xp' => route_to_regex($pattern), + 'cb' => $callback + ); + + } else { + + + // callback is null, so this is a route invokation. look up the callback. + foreach ($route_map[$method] as $pat => $obj) { + + // if the requested uri ($pat) has a matching route, let's invoke the cb + if (!preg_match($obj['xp'], $pattern, $vals)) + continue; + + // call middleware + middleware($pattern); + + // construct the params for the callback + array_shift($vals); + preg_match_all('@:([\w]+)@', $pat, $keys, PREG_PATTERN_ORDER); + $keys = array_shift($keys); + $argv = array(); + + foreach ($keys as $index => $id) { + $id = substr($id, 1); + if (isset($vals[$id])) { + array_push($argv, trim(urldecode($vals[$id]))); + } + } + + // call filters if we have symbols + if (count($keys)) { + filter(array_values($keys), $vals); + } + + // if cb found, invoke it + if (is_callable($obj['cb'])) { + call_user_func_array($obj['cb'], $argv); + } + + // leave after first match + break; + + } + } + +} + +function get($path, $cb) +{ + route('GET', $path, $cb); +} + +function post($path, $cb) +{ + route('POST', $path, $cb); +} + +function flash($key, $msg = null, $now = false) +{ + static $x = array(), + $f = null; + + $f = (config('cookies.flash') ? config('cookies.flash') : '_F'); + + if ($c = get_cookie($f)) + $c = json_decode($c, true); + else + $c = array(); + + if ($msg == null) { + + if (isset($c[$key])) { + $x[$key] = $c[$key]; + unset($c[$key]); + set_cookie($f, json_encode($c)); + } + + return (isset($x[$key]) ? $x[$key] : null); + } + + if (!$now) { + $c[$key] = $msg; + set_cookie($f, json_encode($c)); + } + + $x[$key] = $msg; +} + +function create_thumb($src, $desired_width = null, $desired_height = null) { + + if (!extension_loaded('gd')) { + return $src; + } + + $dir = 'content/images/thumbnails'; + + if (!is_dir($dir)) { + mkdir($dir); + } + + $w = config('thumbnail.width'); + if (empty($w)) { + $w = 500; + } + + if (is_null($desired_width)) { + $desired_width = $w; + } + + if (!is_null($desired_height)) { + $h = 'x' . $desired_height; + } else { + $h = null; + } + + $fileName = pathinfo($src, PATHINFO_FILENAME); + $thumbFile = $dir . '/' . $fileName . '-' . $desired_width . $h .'.webp'; + + if (file_exists($thumbFile)) { + return site_url() . $thumbFile; + } else { + + /* read the source image */ + $source_image = imagecreatefromstring(file_get_contents($src)); + if ($source_image === false) { + return $src; + } + $width = imagesx($source_image); + $height = imagesy($source_image); + + /* find the "desired height" of this thumbnail, relative to the desired width */ + if (is_null($desired_height)) { + $desired_height = floor($height * ($desired_width / $width)); + } + + $ratio = max($desired_width/$width, $desired_height/$height); + $height = floor($desired_height / $ratio); + $x = floor(($width - $desired_width / $ratio) / 2); + $width = floor($desired_width / $ratio); + + /* create a new, "virtual" image */ + $virtual_image = imagecreatetruecolor($desired_width, $desired_height); + imageAlphaBlending($virtual_image, false); + imageSaveAlpha($virtual_image, true); + + /* copy source image at a resized size */ + imagecopyresampled($virtual_image, $source_image, 0, 0, $x, 0, $desired_width, $desired_height, $width, $height); + + /* create the physical thumbnail image to its destination */ + imagewebp($virtual_image, $thumbFile, 75); + imagedestroy($virtual_image); + + return site_url() . $thumbFile; + + } +} + +function dispatch() +{ + $path = $_SERVER['REQUEST_URI']; + + if (config('site.url') !== null) + $path = preg_replace('@^' . preg_quote(site_path()) . '@', '', $path); + + $parts = preg_split('/\?/', $path, -1, PREG_SPLIT_NO_EMPTY); + + $uri = trim($parts[0], '/'); + $uri = strlen($uri) ? $uri : 'index'; + + route(method(), "/{$uri}"); +} diff --git a/system/includes/functions.php b/system/includes/functions.php new file mode 100644 index 0000000..132140b --- /dev/null +++ b/system/includes/functions.php @@ -0,0 +1,4146 @@ + $b['basename']) ? 1 : -1); +} + +// usort function. +function sortfile_d($a, $b) +{ + return $a['basename'] == $b['basename'] ? 0 : (($a['basename'] < $b['basename']) ? 1 : -1); +} + +// usort function. Sort by date. +function sortdate($a, $b) +{ + return $a->date == $b->date ? 0 : (($a->date < $b->date) ? 1 : -1); +} + +// Rebuilt cache index +function rebuilt_cache($type = null) +{ + $dir = 'cache/index'; + $posts_cache = array(); + $page_cache = array(); + $subpage_cache = array(); + $author_cache = array(); + $scheduled_cache = array(); + $category_cache = array(); + $draft_cache = array(); + + if (!is_dir($dir)) { + mkdir($dir, 0775, true); + } + + // Rebuilt posts index + $tmp = array(); + $ctmp = array(); + $tmp = glob('content/*/blog/*/*/*.md', GLOB_NOSORT); + if (is_array($tmp)) { + foreach ($tmp as $file) { + if(strpos($file, '/draft/') === false) { + $posts_cache[] = pathinfo($file); + $pc = explode('/', $file); + $ctmp[] = $pc[3]; + } + } + } + usort($posts_cache, "sortfile_d"); + $posts_string = serialize($posts_cache); + file_put_contents('cache/index/index-posts.txt', print_r($posts_string, true), LOCK_EX); + + // Rebuilt scheduled posts index + $stmp = array(); + $stmp = glob('content/*/*/*/*/scheduled/*.md', GLOB_NOSORT); + if (is_array($stmp)) { + foreach ($stmp as $file) { + $scheduled_cache[] = pathinfo($file); + $ss = explode('/', $file); + $ctmp[] = $ss[3]; + } + } + usort($scheduled_cache, "sortfile_d"); + $scheduled_string = serialize($scheduled_cache); + file_put_contents('cache/index/index-scheduled.txt', print_r($scheduled_string, true), LOCK_EX); + + // Rebuilt draft posts index + $drf = array(); + $drf = glob('content/*/*/*/draft/*.md', GLOB_NOSORT); + if (is_array($drf)) { + foreach ($drf as $file) { + $draft_cache[] = pathinfo($file); + $dd = explode('/', $file); + $ctmp[] = $dd[3]; + } + } + usort($draft_cache, "sortfile_d"); + $draft_string = serialize($draft_cache); + file_put_contents('cache/index/index-draft.txt', print_r($draft_string, true), LOCK_EX); + + // Rebuilt category files index + $ftmp = array(); + $ftmp = glob('content/data/category/*.md', GLOB_NOSORT); + if (is_array($ftmp)) { + foreach ($ftmp as $file) { + $category_cache[] = pathinfo($file); + $ctmp[] = pathinfo($file, PATHINFO_FILENAME); + } + } + usort($category_cache, "sortfile_a"); + $category_string = serialize($category_cache); + file_put_contents('cache/index/index-category-files.txt', print_r($category_string, true), LOCK_EX); + + // Rebuilt category slug index + $dirc = array(); + $dirc = array_push($ctmp, 'uncategorized'); + $dirc = array_unique($ctmp, SORT_REGULAR); + file_put_contents('cache/index/index-category.txt', print_r(serialize($dirc), true), LOCK_EX); + + // Rebuilt static page index + $ptmp = array(); + $ptmp = glob('content/static/*.md', GLOB_NOSORT); + natsort($ptmp); + if (is_array($ptmp)) { + foreach ($ptmp as $file) { + if(strpos($file, '/draft/') === false) { + $page_cache[] = pathinfo($file); + } + } + } + $page_string = serialize($page_cache); + file_put_contents('cache/index/index-pages.txt', print_r($page_string, true), LOCK_EX); + + // Rebuilt subpage index + $sptmp = array(); + $sptmp = glob('content/static/*/*.md', GLOB_NOSORT); + natsort($sptmp); + if (is_array($sptmp)) { + foreach ($sptmp as $file) { + if(strpos($file, '/draft/') === false) { + $subpage_cache[] = pathinfo($file); + } + } + } + $subpage_string = serialize($subpage_cache); + file_put_contents('cache/index/index-subpages.txt', print_r($subpage_string, true), LOCK_EX); + + // Rebuilt user profile index + $atmp = array(); + $atmp = glob('content/*/author.md', GLOB_NOSORT); + if (is_array($atmp)) { + foreach ($atmp as $file) { + $author_cache[] = pathinfo($file); + } + } + usort($author_cache, "sortfile_a"); + $author_string = serialize($author_cache); + file_put_contents('cache/index/index-author.txt', print_r($author_string, true), LOCK_EX); + + // Remove the widget cache + foreach (glob('cache/widget/*.cache', GLOB_NOSORT) as $file) { + unlink($file); + } + +} + +// Return blog posts. +function get_posts($posts, $page = 1, $perpage = 0) +{ + if (empty($posts)) { + $posts = get_blog_posts(); + } + + $tmp = array(); + + // Extract a specific page with results + $posts = array_slice($posts, ($page - 1) * $perpage, $perpage); + + $cList = category_list(true); + + $auto = config('toc.automatic'); + $counter = config('views.counter'); + $caption = config('fig.captions'); + + if ($counter == 'true') { + $viewsFile = "content/data/views.json"; + if (file_exists($viewsFile)) { + $views = json_decode(file_get_contents($viewsFile), true); + } + } + + foreach ($posts as $index => $v) { + + $post = new stdClass; + + $filepath = $v['dirname'] . '/' . $v['basename']; + + // Extract the date + $arr = explode('_', $v['basename']); + + // dirname string + $dirname = $v['dirname']; + + // Author string + $str = explode('/', $dirname); + $author = $str[1]; + + foreach ($cList as $a => $t) { + if ($t['0'] === $str[3]) { + $post->category = '' . $t['1'] . ''; + $post->categoryUrl = site_url() . 'category/' . $t['0']; + $post->categoryCount = $t['2']; + $post->categorySlug = $t['0']; + $post->categoryMd = $t['0'] . '.md'; + $post->categoryTitle = $t['1']; + $post->categoryb = '' . $t['1'] . ''; + } + } + + $type = $str[4]; + $post->ct = $str[3]; + + // The post author + author url + $post->author = $author; + $post->authorUrl = site_url() . 'author/' . $author; + $post->authorRss = site_url() . 'author/' . $author . '/feed'; + + $profile = get_author($author); + if (isset($profile[0])) { + $post->authorName = $profile[0]->name; + $post->authorDescription = $profile[0]->description; + $post->authorAbout = $profile[0]->about; + $post->authorAvatar = $profile[0]->avatar; + } else { + $post->authorName = $author; + $post->authorDescription = i18n('Author_Description'); + $post->authorAbout = i18n('Author_Description'); + $post->authorAvatar = site_url() . 'system/resources/images/logo-small.png'; + } + + $post->type = $type; + $dt = str_replace($dirname, '', $arr[0]); + $t = str_replace('-', '', $dt); + $time = new DateTime($t); + $timestamp = $time->format("Y-m-d H:i:s"); + + // The post date + $post->date = strtotime($timestamp); + $post->lastMod = strtotime(date('Y-m-d H:i:s', filemtime($filepath))); + + // The archive per day + $post->archive = site_url() . 'archive/' . date('Y-m', $post->date); + + if (permalink_type() == 'default') { + $post->url = site_url() . date('Y/m', $post->date) . '/' . str_replace('.md', '', $arr[2]); + } else { + $post->url = site_url() . permalink_type() . '/' . str_replace('.md', '', $arr[2]); + } + + $post->slug = str_replace('.md', '', $arr[2]); + + $post->file = $filepath; + + $content = file_get_contents($filepath); + + // Extract the title and body + $post->title = get_content_tag('t', $content, 'Untitled post: ' . format_date($post->lastMod, 'l, j F Y, H:i')); + $post->image = get_content_tag('image', $content); + $post->video = get_content_tag('video', $content); + $post->link = get_content_tag('link', $content); + $post->quote = get_content_tag('quote', $content); + $post->audio = get_content_tag('audio', $content); + + $tag = array(); + $url = array(); + $bc = array(); + $rel = array(); + + $tagt = get_content_tag('tag', $content); + $t = explode(',', rtrim($arr[1], ',')); + + if(!empty($tagt)) { + $tl = explode(',', rtrim($tagt, ',')); + if (count($tl) == count($t)) { + $tCom = array_combine($t, $tl); + } else { + $tCom = array_combine($t, $t); + } + foreach ($tCom as $key => $val) { + if(!empty($val)) { + $tag[] = array($val, site_url() . 'tag/' . strtolower($key)); + } else { + $tag[] = array($key, site_url() . 'tag/' . strtolower($key)); + } + } + } else { + foreach ($t as $tt) { + $tag[] = array($tt, site_url() . 'tag/' . strtolower($tt)); + } + } + + foreach ($tag as $a) { + $url[] = ''; + $bc[] = '' . $a[0] . ''; + } + + $post->tag = implode(' ', $url); + + $post->tagb = implode(' » ', $bc); + + $post->related = $post->categorySlug. ',' .$post->url; + + $more = explode('', $content); + if (isset($more['1'])) { + $content = $more['0'] . '
      ' . $more['1']; + } + + // Get the contents and convert it to HTML + $post->body = MarkdownExtra::defaultTransform(remove_html_comments($content)); + + $post->description = get_content_tag("d", $content, get_description($post->body)); + + $word_count = str_word_count(strip_tags($post->body)); + $post->readTime = ceil($word_count / 200); + + $toc = explode('', $post->body); + if (isset($toc['1'])) { + $post->body = insert_toc('post-' . $post->date, $toc['0'], $toc['1']); + } else { + if ($auto === 'true') { + $post->body = automatic_toc($post->body, 'post-' . $post->date); + } + } + + // Convert image tags to figures + if ($caption == 'true') { + $post->body = preg_replace( '/

      ()<\/p>/', '

      $1
      $2
      ', $post->body ); + } + + if ($counter == 'true') { + $post->views = get_views('post_' . $post->slug, $post->file, $views); + } else { + $post->views = null; + } + + $tmp[] = $post; + } + + return $tmp; +} + +function get_pages($pages, $page = 1, $perpage = 0) +{ + if (empty($pages)) { + $pages = get_static_pages(); + } + + $tmp = array(); + + $auto = config('toc.automatic'); + $counter = config('views.counter'); + + if ($counter == 'true') { + $viewsFile = "content/data/views.json"; + if (file_exists($viewsFile)) { + $views = json_decode(file_get_contents($viewsFile), true); + } + } + + // Extract a specific page with results + $pages = array_slice($pages, ($page - 1) * $perpage, $perpage); + + foreach ($pages as $index => $v) { + $post = new stdClass; + + // The static page URL + $fn = explode('.', $v['filename']); + + if (isset($fn[1])) { + $url = $fn[1]; + } else { + $url= $v['filename']; + } + + $post->url = site_url() . $url; + + $post->file = $v['dirname'] . '/' . $v['basename']; + $post->lastMod = strtotime(date('Y-m-d H:i:s', filemtime($post->file))); + + $post->md = $v['basename']; + $post->slug = $url; + $post->parent = null; + $post->parentSlug = null; + + // Get the contents and convert it to HTML + $content = file_get_contents($post->file); + + // Extract the title and body + $post->title = get_content_tag('t', $content, 'Untitled static page: ' . format_date($post->lastMod, 'l, j F Y, H:i')); + + // Get the contents and convert it to HTML + $post->body = MarkdownExtra::defaultTransform(remove_html_comments($content)); + + $post->description = get_content_tag("d", $content, get_description($post->body)); + + $word_count = str_word_count(strip_tags($post->body)); + $post->readTime = ceil($word_count / 200); + + $toc = explode('', $post->body); + if (isset($toc['1'])) { + $post->body = insert_toc('page-' . $post->slug, $toc['0'], $toc['1']); + } else { + if ($auto === 'true') { + $post->body = automatic_toc($post->body, 'page-' . $post->slug); + } + } + + if ($counter == 'true') { + $post->views = get_views('page_' . $post->slug, $post->file, $views); + } else { + $post->views = null; + } + + $tmp[] = $post; + } + + return $tmp; + +} + +function get_subpages($sub_pages, $page = 1, $perpage = 0) +{ + if (empty($sub_pages)) { + $sub_pages = get_static_subpages(); + } + + $tmp = array(); + + $auto = config('toc.automatic'); + $counter = config('views.counter'); + + if ($counter == 'true') { + $viewsFile = "content/data/views.json"; + if (file_exists($viewsFile)) { + $views = json_decode(file_get_contents($viewsFile), true); + } + } + + // Extract a specific page with results + $sub_pages = array_slice($sub_pages, ($page - 1) * $perpage, $perpage); + + foreach ($sub_pages as $index => $v) { + + $post = new stdClass; + + $fd = str_replace(dirname($v['dirname']) . '/', '', $v['dirname']); + + $st = explode('.', $fd); + if (isset($st[1])) { + $static = $st[1]; + } else { + $static = $fd; + } + + // The static page URL + $fn = explode('.', $v['filename']); + + if (isset($fn[1])) { + $url = $fn[1]; + } else { + $url= $v['filename']; + } + + $post->url = site_url() . $static . "/" . $url; + + $post->file = $v['dirname'] . '/' . $v['basename']; + $post->lastMod = strtotime(date('Y-m-d H:i:s', filemtime($post->file))); + + $post->md = $v['basename']; + $post->slug = $url; + $post->parent = $fd; + $post->parentSlug = $static; + + // Get the contents and convert it to HTML + $content = file_get_contents($post->file); + + // Extract the title and body + $post->title = get_content_tag('t', $content, 'Untitled static subpage: ' . format_date($post->lastMod, 'l, j F Y, H:i')); + + // Get the contents and convert it to HTML + $post->body = MarkdownExtra::defaultTransform(remove_html_comments($content)); + + $post->description = get_content_tag("d", $content, get_description($post->body)); + + $word_count = str_word_count(strip_tags($post->body)); + $post->readTime = ceil($word_count / 200); + + $toc = explode('', $post->body); + if (isset($toc['1'])) { + $post->body = insert_toc('subpage-' . $post->slug, $toc['0'], $toc['1']); + } else { + if ($auto === 'true') { + $post->body = automatic_toc($post->body, 'subpage-' . $post->slug); + } + } + + if ($counter == 'true') { + $post->views = get_views('subpage_' . $post->parentSlug .'.'. $post->slug, $post->file, $views); + } else { + $post->views = null; + } + + $tmp[] = $post; + } + + return $tmp; + +} + +// Find post by year, month and name, previous, and next. +function find_post($year, $month, $name) +{ + $posts = get_blog_posts(); + + foreach ($posts as $index => $v) { + $arr = explode('_', $v['basename']); + if ((strpos($arr[0], "$year-$month") !== false && strtolower($arr[2]) === strtolower($name . '.md')) || ($year === NULL && strtolower($arr[2]) === strtolower($name . '.md'))) { + + // Use the get_posts method to return + // a properly parsed object + + $ar = get_posts($posts, $index + 1, 1); + $nx = get_posts($posts, $index, 1); + $pr = get_posts($posts, $index + 2, 1); + + if ($index == 0) { + if (isset($pr[0])) { + return array( + 'current' => $ar[0], + 'prev' => $pr[0] + ); + } else { + return array( + 'current' => $ar[0], + 'prev' => null + ); + } + } elseif (count($posts) == $index + 1) { + return array( + 'current' => $ar[0], + 'next' => $nx[0] + ); + } else { + return array( + 'current' => $ar[0], + 'next' => $nx[0], + 'prev' => $pr[0] + ); + } + } + } +} + +// Return static page. +function find_page($static = null) +{ + $pages = get_static_pages(); + + $tmp = array(); + + if (!empty($pages)) { + + foreach ($pages as $index => $v) { + if (is_null($static)) { + + return get_pages($pages, 1, null); + + } elseif (stripos($v['basename'], $static . '.md') !== false) { + + // Use the get_posts method to return + // a properly parsed object + + $ar = get_pages($pages, $index + 1, 1); + $nx = get_pages($pages, $index, 1); + $pr = get_pages($pages, $index + 2, 1); + + if ($index == 0) { + if (isset($pr[0])) { + return array( + 'current' => $ar[0], + 'prev' => $pr[0] + ); + } else { + return array( + 'current' => $ar[0], + 'prev' => null + ); + } + } elseif (count($pages) == $index + 1) { + return array( + 'current' => $ar[0], + 'next' => $nx[0] + ); + } else { + return array( + 'current' => $ar[0], + 'next' => $nx[0], + 'prev' => $pr[0] + ); + } + } + } + } + + return $tmp; +} + +// Return static subpage. +function find_subpage($static, $sub_static = null) +{ + $sub_pages = array_values(get_static_subpages($static)); + + $tmp = array(); + + if (!empty($sub_pages)) { + + foreach ($sub_pages as $index => $v) { + + if (is_null($sub_static)) { + + return get_subpages($sub_pages, 1, null); + + } elseif (stripos($v['basename'], $sub_static . '.md') !== false) { + + // Use the get_posts method to return + // a properly parsed object + + $ar = get_subpages($sub_pages, $index + 1, 1); + $nx = get_subpages($sub_pages, $index, 1); + $pr = get_subpages($sub_pages, $index + 2, 1); + + if ($index == 0) { + if (isset($pr[0])) { + return array( + 'current' => $ar[0], + 'prev' => $pr[0] + ); + } else { + return array( + 'current' => $ar[0], + 'prev' => null + ); + } + } elseif (count($sub_pages) == $index + 1) { + return array( + 'current' => $ar[0], + 'next' => $nx[0] + ); + } else { + return array( + 'current' => $ar[0], + 'next' => $nx[0], + 'prev' => $pr[0] + ); + } + } + } + } + + return $tmp; +} + +// Return category page. +function get_category($category, $page, $perpage, $random = null) +{ + $posts = get_blog_posts(); + + if ($random === true) { + shuffle($posts); + } + + $tmp = array(); + + if (empty($perpage)) { + $perpage = 10; + } + + foreach ($posts as $index => $v) { + + // dirname string + $dirname = $v['dirname']; + + $str = explode('/', $dirname); + + if (strtolower($category) === strtolower($str[3])) { + $tmp[] = $v; + } + } + + if (empty($tmp)) { + return false; + } + + $tmp = array_unique($tmp, SORT_REGULAR); + + return $tmp = get_posts($tmp, $page, $perpage); +} + +// Return category info. +function get_category_info($category = null) +{ + + $tmp = array(); + $cslug= get_category_slug(); + if (!empty($cslug)) { + asort($cslug); + if (is_null($category)) { + foreach ($cslug as $key => $c){ + $ctmp = read_category_info($c); + if (!empty($ctmp[0])) { + $tmp[] = $ctmp[0]; + } else { + $tmp[] = default_category($c); + } + } + } else { + foreach ($cslug as $key => $c){ + if ($c === $category) { + $ctmp = read_category_info($category); + if (!empty($ctmp[0])) { + $tmp[] = $ctmp[0]; + } else { + $tmp[] = default_category($category); + } + } + } + } + } else { + $tmp[] = default_category($category); + } + return $tmp; +} + +function read_category_info($category) +{ + $tmp = array(); + $cFiles = get_category_files(); + + if (!empty($cFiles)) { + foreach ($cFiles as $index => $v) { + if ($v['basename'] == $category . '.md' ) { + + $desc = new stdClass; + + // The filename + $filename = $v['dirname'] . '/' . $v['basename']; + + $url= $v['filename']; + + $desc->url = site_url() . 'category/' . $url; + + $desc->md = $v['basename']; + + $desc->slug = $url; + + $desc->count = get_categorycount($url); + + $desc->file = $filename; + + $desc->rss = $desc->url . '/feed'; + + // Get the contents and convert it to HTML + $content = file_get_contents($desc->file); + + // Extract the title and body + $desc->title = get_content_tag('t', $content, $category); + + // Get the contents and convert it to HTML + $desc->body = MarkdownExtra::defaultTransform(remove_html_comments($content)); + + $desc->description = get_content_tag("d", $content, get_description($desc->body)); + + $toc = explode('', $desc->body); + if (isset($toc['1'])) { + $desc->body = insert_toc('taxonomy-' . $desc->slug, $toc['0'], $toc['1']); + } + + $tmp[] = $desc; + } + } + } + return $tmp; +} + +// Return default category +function default_category($category = null) +{ + $tmp = array(); + $desc = new stdClass; + + if (is_null($category) || $category == 'uncategorized') { + $desc->title = i18n("Uncategorized"); + $desc->url = site_url() . 'category/uncategorized'; + $desc->slug = 'uncategorized'; + $desc->body = '

      ' . i18n('Uncategorized_comment') . '

      '; + $desc->md = 'uncategorized.md'; + $desc->description = i18n('Uncategorized_comment'); + $desc->file = ''; + $desc->count = get_categorycount($desc->slug); + $desc->rss = $desc->url . '/feed'; + } else{ + $desc->title = $category; + $desc->url = site_url() . 'category/' . $category; + $desc->slug = $category; + $desc->body = '

      ' . i18n('All_blog_posts') . ': ' . $category . '

      '; + $desc->md = $category . '.md'; + $desc->description = i18n('All_blog_posts') . ': ' . $category; + $desc->file = ''; + $desc->count = get_categorycount($category); + $desc->rss = $desc->url . '/feed'; + } + + return $tmp[] = $desc; +} + +// Return category list +function category_list($custom = null) +{ + $dir = "cache/widget"; + $filename = "cache/widget/category.list.cache"; + $tmp = array(); + $cat = array(); + $list = array(); + $cList = ''; + + if (!is_dir($dir)) { + mkdir($dir, 0775, true); + } + + if (file_exists($filename)) { + $cat = unserialize(file_get_contents($filename)); + } else { + $arr = get_category_info(null); + foreach ($arr as $i => $a) { + $cat[] = array($a->slug, $a->title, $a->count, $a->description); + } + + $tmp = serialize($cat); + file_put_contents($filename, print_r($tmp, true), LOCK_EX); + } + + if(!empty($custom)) { + return $cat; + } + + $cList .= '
        '; + + foreach ($cat as $k => $v) { + if ($v['2'] !== 0) { + $cList .= '
      • ' . $v['1'] . ' ('. $v['2'] .')
      • '; + } + } + + $cList .= '
      '; + return $cList; + +} + +// Return type page. +function get_type($type, $page, $perpage) +{ + $posts = get_blog_posts(); + + $tmp = array(); + + if (empty($perpage)) { + $perpage = 10; + } + + foreach ($posts as $index => $v) { + + // dirname string + $dirname = $v['dirname']; + + if (strpos($dirname, '/' . strtolower($type)) !== false) { + $tmp[] = $v; + } + } + + if (empty($tmp)) { + return $tmp; + } + + $tmp = array_unique($tmp, SORT_REGULAR); + + return $tmp = get_posts($tmp, $page, $perpage); +} + +// Return tag page. +function get_tag($tag, $page, $perpage, $random = null) +{ + $posts = get_blog_posts(); + + if ($random === true) { + shuffle($posts); + } + + $tmp = array(); + + foreach ($posts as $index => $v) { + $str = explode('_', $v['basename']); + $mtag = explode(',', rtrim($str[1], ',')); + $etag = explode(',', $tag); + foreach ($mtag as $t) { + foreach ($etag as $e) { + $e = trim($e); + if (strtolower($t) === strtolower($e)) { + $tmp[] = $v; + } + } + } + } + + if (empty($tmp)) { + return $tmp; + } + + $tmp = array_unique($tmp, SORT_REGULAR); + + return $tmp = get_posts($tmp, $page, $perpage); +} + +// Return archive page. +function get_archive($req, $page, $perpage) +{ + $posts = get_blog_posts(); + + $tmp = array(); + + foreach ($posts as $index => $v) { + $str = explode('_', $v['basename']); + if (strpos($str[0], "$req") !== false) { + $tmp[] = $v; + } + } + + if (empty($tmp)) { + return false; + } + + return $tmp = get_posts($tmp, $page, $perpage); +} + +// Return posts list on profile. +function get_profile_posts($name, $page, $perpage) +{ + $posts = get_blog_posts(); + + $tmp = array(); + + foreach ($posts as $index => $v) { + $str = explode('/', $v['dirname']); + if (strtolower($name) === strtolower($str[1])) { + $tmp[] = $v; + } + } + + if (empty($tmp)) { + return false; + } + + return $tmp = get_posts($tmp, $page, $perpage); +} + +// Return author info. +function get_author($name) +{ + $names = get_author_name(); + + $tmp = array(); + + if (!empty($names)) { + + foreach ($names as $index => $v) { + + $author = new stdClass; + + // dirname string + $dirname = $v['dirname']; + + // Author string + $str = explode('/', $dirname); + $profile = $str[1]; + + if ($name === $profile) { + // Profile URL + $filename = $v['dirname'] . '/' . $v['basename']; + + $author->file = $filename; + + $author->url = site_url() . 'author/' . $profile; + $author->slug = $profile; + + // Get the contents and convert it to HTML + $content = file_get_contents($author->file); + + // Extract the title and body + $author->name = get_content_tag('t', $content, $author); + + // Get the contents and convert it to HTML + $author->about = MarkdownExtra::defaultTransform(remove_html_comments($content)); + + $author->description = get_content_tag("d", $content, get_description($author->about)); + + $author->avatar = get_content_tag("image", $content, site_url() . 'system/resources/images/logo-small.png'); + + $author->rss = $author->url . '/feed'; + + $toc = explode('', $author->about); + if (isset($toc['1'])) { + $author->about = insert_toc('profile-' . $author->slug, $toc['0'], $toc['1']); + } + + $author->body = $author->about; + $author->title = $author->name; + + $tmp[] = $author; + } + } + } + + if (!empty($tmp)) { + return $tmp; + } else { + return false; + } +} + +// Return default profile +function default_profile($name) +{ + $tmp = array(); + $author = new stdClass; + + $author->name = $name; + $author->title = $name; + $author->about = '

      ' . i18n('Author_Description') . '

      '; + $author->body = '

      ' . i18n('Author_Description') . '

      '; + $author->description = i18n('Author_Description'); + $author->avatar = site_url() . 'system/resources/images/logo-small.png'; + $author->url = site_url(). 'author/' . $name; + $author->slug = $name; + $author->file = ''; + $author->rss = $author->url . '/feed'; + + return $tmp[] = $author; +} + +// Return frontpage content +function get_frontpage() +{ + $front = new stdClass; + + $filename = 'content/data/frontpage/frontpage.md'; + + if (file_exists($filename)) { + $content = file_get_contents($filename); + $front->file = $filename; + $front->title = get_content_tag('t', $content, 'Welcome'); + $front->url = site_url() . 'front'; + $front->slug = 'front'; + $front->parent = null; + $front->parentSlug = null; + // Get the contents and convert it to HTML + $front->body = MarkdownExtra::defaultTransform(remove_html_comments($content)); + $front->description = get_content_tag("d", $content, get_description($front->body)); + $word_count = str_word_count(strip_tags($front->body)); + $front->readTime = ceil($word_count / 200); + $front->views = null; + $toc = explode('', $front->body); + if (isset($toc['1'])) { + $front->body = insert_toc('page-front', $toc['0'], $toc['1']); + } + } else { + $front->title = 'Welcome'; + $front->url = site_url() . 'front'; + $front->body = 'Welcome to our website.'; + $front->file = null; + $front->slug = 'front'; + $front->parent = null; + $front->parentSlug = null; + $front->description = $front->body; + $word_count = str_word_count(strip_tags($front->body)); + $front->readTime = ceil($word_count / 200); + $front->views = null; + } + + return $front; +} + +// Return search page. +function get_keyword($keyword, $page, $perpage) +{ + if (strlen($keyword) >= 3) { // three-character minimum + + $posts = get_blog_posts(); + + $tmp = array(); + + foreach ($posts as $index => $v) { + + $filepath = $v['dirname'] . '/' . $v['basename']; + + $findRxWhole = '\b' . preg_quote($keyword, '~') . '\b'; // whole-words only + + $findRx = "~{$findRxWhole}~iu"; // Case-insensitive and UTF-8 mode + + $lines = file($filepath); + + foreach ($lines as $line) { + if (preg_match ($findRx, $line)) { + if (!in_array($v, $tmp)) { + $tmp[] = $v; + } + } + } + } + + if (empty($tmp)) { + return false; + } + + return $tmp = get_posts($tmp, $page, $perpage); + + } +} + +// Get related posts base on post category. +function get_related($tag, $custom = null, $count = null) +{ + if (empty($count)) { + $count = config('related.count'); + if (empty($count)) { + $count = 3; + } + } + + $tmp = array(); + $exp = explode(',', $tag); + $posts = get_category($exp[0], 1, $count + 1, true); + $related = ''; + + foreach ($posts as $post) { + if ($post->url !== $exp[1]) { + $tmp[] = $post; + } + } + + if (empty($custom)) { + if (!empty($tmp)) { + $i = 1; + $related .= '
        '; + foreach ($tmp as $post) { + $related .= '
      • ' . $post->title . '
      • '; + if ($i++ >= $count) + break; + } + $related .= '
      '; + return $related; + } else { + $related .= '
      • ' . i18n('No_related_post_found') . '
      '; + return $related; + } + + } else { + return $tmp; + } + +} + +// Return post count. Matching $var and $str provided. +function get_count($var, $str) +{ + $posts = get_blog_posts(); + + $tmp = array(); + + foreach ($posts as $index => $v) { + if ($str === 'basename') { + $arr = explode('_', $v[$str]); + $url = $arr[0]; + if (stripos($url, "$var") !== false) { + $tmp[] = $v; + } + } else { + if (stripos($v[$str], $var) !== false) { + $tmp[] = $v; + } + } + } + + return count($tmp); +} + +// Return category count. Matching $var +function get_categorycount($var) +{ + $posts = get_blog_posts(); + + $tmp = array(); + + foreach ($posts as $index => $v) { + + if (stripos($v['dirname'], '/' . $var . '/') !== false) { + $tmp[] = $v; + } + + } + + return count($tmp); +} + +// Return type count. Matching $var +function get_typecount($var) +{ + $posts = get_blog_posts(); + + $tmp = array(); + + foreach ($posts as $index => $v) { + + if (stripos($v['dirname'], '/' . $var) !== false) { + $tmp[] = $v; + } + + } + + return count($tmp); +} + + +// Return draft count. Matching $var +function get_draftcount($var) +{ + $posts = get_draft_posts(); + + $tmp = array(); + + foreach ($posts as $index => $v) { + + if (stripos($v['dirname'], '/' . $var . '/') !== false) { + $tmp[] = $v; + } + + } + return count($tmp); +} + +// Return scheduled post count. Matching $var +function get_scheduledcount($var) +{ + $posts = get_scheduled_posts(); + + $tmp = array(); + + foreach ($posts as $index => $v) { + + if (stripos($v['dirname'], '/' . $var . '/') !== false) { + $tmp[] = $v; + } + + } + + return count($tmp); + +} + +// Return tag count. Matching $var +function get_tagcount($var) +{ + $posts = get_blog_posts(); + + $tmp = array(); + + foreach ($posts as $index => $v) { + $arr = explode('_', $v['basename']); + $mtag = explode(',', rtrim($arr[1], ',')); + foreach ($mtag as $t) { + if (strtolower($t) === strtolower($var)) { + $tmp[] = $v; + } + } + } + + return count($tmp); +} + +// Return search result count +function keyword_count($keyword) +{ + if (strlen($keyword) >= 3) { // three-character minimum + + $posts = get_blog_posts(); + + $tmp = array(); + + foreach ($posts as $index => $v) { + + $filepath = $v['dirname'] . '/' . $v['basename']; + + $findRxWhole = '\b' . preg_quote($keyword, '~') . '\b'; // whole-words only + + $findRx = "~{$findRxWhole}~iu"; // Case-insensitive and UTF-8 mode + + $lines = file($filepath); + + foreach ($lines as $line) { + if (preg_match ($findRx, $line)) { + if (!in_array($v, $tmp)) { + $tmp[] = $v; + } + } + } + } + + $tmp = array_unique($tmp, SORT_REGULAR); + return count($tmp); + } +} + +// Return recent posts lists +function recent_posts($custom = null, $count = null) +{ + if (empty($count)) { + $count = config('recent.count'); + if (empty($count)) { + $count = 5; + } + } + + $dir = "cache/widget"; + $filename = "cache/widget/recent.cache"; + $tmp = array(); + $posts = array(); + $recent = ''; + + if (!is_dir($dir)) { + mkdir($dir, 0775, true); + } + + if (file_exists($filename)) { + $posts = unserialize(file_get_contents($filename)); + if (count($posts) < $count) { + $posts = get_posts(null, 1, $count); + $tmp = serialize($posts); + file_put_contents($filename, print_r($tmp, true), LOCK_EX); + } + } else { + $posts = get_posts(null, 1, $count); + $tmp = serialize($posts); + file_put_contents($filename, print_r($tmp, true), LOCK_EX); + } + + if (!empty($custom)) { + $arr = array(); + $i = 1; + foreach ($posts as $post) { + $arr[] = $post; + if ($i++ >= $count) + break; + } + return $arr; + } else { + $i = 1; + $recent .= '
        '; + foreach ($posts as $post) { + $recent .= '
      • ' . $post->title . '
      • '; + if ($i++ >= $count) + break; + } + if (empty($posts)) { + $recent .= '
      • ' . i18n('No_posts_found') . '
      • '; + } + $recent .= '
      '; + return $recent; + } +} + +// Return recent type lists +function recent_type($type, $count = null, $custom = null) +{ + if (empty($count)) { + $count = config('recent.count'); + if (empty($count)) { + $count = 5; + } + } + + $dir = 'cache/widget'; + $filename = 'cache/widget/recent.' . $type . '.cache'; + $tmp = array(); + $posts = array(); + $recent = ''; + + if (!is_dir($dir)) { + mkdir($dir, 0775, true); + } + + if (file_exists($filename)) { + $posts = unserialize(file_get_contents($filename)); + if (count($posts) < $count) { + $posts = get_type($type, 1, $count); + if (!empty($posts)) { + $tmp = serialize($posts); + file_put_contents($filename, print_r($tmp, true), LOCK_EX); + } + } + } else { + $posts = get_type($type, 1, $count); + if (!empty($posts)) { + $tmp = serialize($posts); + file_put_contents($filename, print_r($tmp, true), LOCK_EX); + } + } + + if (!empty($custom)) { + $arr = array(); + $i = 1; + foreach ($posts as $post) { + $arr[] = $post; + if ($i++ >= $count) + break; + } + return $arr; + } else { + $i = 1; + $recent .= '
        '; + foreach ($posts as $post) { + $recent .= '
      • ' . $post->title . '
      • '; + if ($i++ >= $count) + break; + } + if (empty($posts)) { + $recent .= '
      • No recent ' . $type . ' found
      • '; + } + $recent .= '
      '; + return $recent; + } +} + +// Return recent tag posts list +function recent_tag($tag, $count = null, $custom = null) +{ + if (empty($count)) { + $count = config('recent.count'); + if (empty($count)) { + $count = 5; + } + } + + $dir = 'cache/widget'; + $filename = 'cache/widget/recent.tag.' . $tag . '.cache'; + $tmp = array(); + $posts = array(); + $recent = ''; + + if (!is_dir($dir)) { + mkdir($dir, 0775, true); + } + + if (file_exists($filename)) { + $posts = unserialize(file_get_contents($filename)); + if (count($posts) < $count) { + $posts = get_tag($tag, 1, $count); + if (!empty($posts)) { + $tmp = serialize($posts); + file_put_contents($filename, print_r($tmp, true), LOCK_EX); + } + } + } else { + $posts = get_tag($tag, 1, $count); + if (!empty($posts)) { + $tmp = serialize($posts); + file_put_contents($filename, print_r($tmp, true), LOCK_EX); + } + } + + if (!empty($custom)) { + $arr = array(); + $i = 1; + foreach ($posts as $post) { + $arr[] = $post; + if ($i++ >= $count) + break; + } + return $arr; + } else { + $i = 1; + $recent .= '
        '; + foreach ($posts as $post) { + $recent .= '
      • ' . $post->title . '
      • '; + if ($i++ >= $count) + break; + } + if (empty($posts)) { + $recent .= '
      • No recent ' . $tag . ' found
      • '; + } + $recent .= '
      '; + return $recent; + } +} + +// Return popular posts lists +function popular_posts($custom = null, $count = null) +{ + static $_views = array(); + $tmp = array(); + $posts_list = get_blog_posts(); + $pop = ''; + + if (empty($count)) { + $count = config('popular.count'); + if (empty($count)) { + $count = 5; + } + } + + if (config('views.counter') == 'true') { + if (empty($_views)) { + $filename = 'content/data/views.json'; + if (file_exists($filename)) { + $_views = json_decode(file_get_contents($filename), true); + if(is_array($_views)) { + arsort($_views); + $i = 1; + foreach ($_views as $key => $val) { + $arr = explode('post_', $key); + if (isset($arr[1])) { + foreach($posts_list as $in => $f) { + if (strpos($f['basename'], $arr[1] . '.md') !== false ) { + $tmp[] = $f; + if ($i++ >= $count) + break; + } + } + } + + } + + $dir = "cache/widget"; + $filecache = "cache/widget/popular.cache"; + $ar = array(); + $posts = array(); + + if (!is_dir($dir)) { + mkdir($dir, 0775, true); + } + + if (file_exists($filecache)) { + $posts = unserialize(file_get_contents($filecache)); + if (count($posts) < $count) { + $posts = get_posts($tmp, 1, $count); + $ar = serialize($posts); + file_put_contents($filecache, print_r($ar, true), LOCK_EX); + } + } else { + $posts = get_posts($tmp, 1, $count); + $ar = serialize($posts); + file_put_contents($filecache, print_r($ar, true), LOCK_EX); + } + + if (empty($custom)) { + $ix = 1; + $pop .= '
        '; + foreach ($posts as $post) { + $pop .= '
      • ' . $post->title . '
      • '; + if ($ix++ >= $count) + break; + } + $pop .= '
      '; + return $pop; + } else { + $arp = array(); + $ix = 1; + foreach ($posts as $post) { + $arp[] = $post; + if ($ix++ >= $count) + break; + } + return $arp; + } + } else { + if(empty($custom)) { + $pop .= '
      • No popular posts found
      '; + return $pop; + } else { + return $tmp; + } + } + } else { + if (empty($custom)) { + $pop .= '
      • No popular posts found
      '; + return $pop; + } else { + return $tmp; + } + } + } + } else { + if (empty($custom)) { + $pop .= '
      • No popular posts found
      '; + return $pop; + } else { + return $tmp; + } + } +} + +// Return an archive list, categorized by year and month. +function archive_list($custom = null) +{ + $dir = "cache/widget"; + $filename = "cache/widget/archive.cache"; + $ar = array(); + $arch = ''; + + if (!is_dir($dir)) { + mkdir($dir, 0775, true); + } + + $posts = get_blog_posts(); + $by_year = array(); + $col = array(); + + if (!empty($posts)) { + + if (!file_exists($filename)) { + foreach ($posts as $index => $v) { + + $arr = explode('_', $v['filename']); + + $date = $arr[0]; + $data = explode('-', $date); + $col[] = $data; + } + + foreach ($col as $row) { + + $y = $row['0']; + $m = $row['1']; + $by_year[$y][] = $m; + } + + $ar = serialize($by_year); + file_put_contents($filename, print_r($ar, true), LOCK_EX); + + } else { + $by_year = unserialize(file_get_contents($filename)); + } + + # Most recent year first + krsort($by_year); + + # Iterate for display + $i = 0; + $len = count($by_year); + + if (empty($custom)) { + $cache_d = "cache/widget/archive.default.cache"; + if (file_exists($cache_d)) { + $arch = unserialize(file_get_contents($cache_d)); + return $arch; + } else { + foreach ($by_year as $year => $months) { + if ($i == 0) { + $class = 'expanded'; + $arrow = '▼'; + } else { + $class = 'collapsed'; + $arrow = '►'; + } + $i++; + + $by_month = array_count_values($months); + # Sort the months + krsort($by_month); + + $script = << -1){this.parentNode.className = 'collapsed';this.innerHTML = '►';} else {this.parentNode.className = 'expanded';this.innerHTML = '▼';} +EOF; + $arch .= '
        '; + $arch .= '
      • '; + $arch .= '' . $arrow . ' '; + $arch .= '' . $year . ' '; + $arch .= '(' . count($months) . ')'; + $arch .= '
          '; + + foreach ($by_month as $month => $count) { + $name = format_date(mktime(0, 0, 0, $month, 1, 2010), 'F'); + $arch .= '
        • ' . $name . ''; + $arch .= ' (' . $count . ')
        • '; + } + + $arch .= '
        '; + $arch .= '
      • '; + $arch .= '
      '; + } + + $ar = serialize($arch); + file_put_contents($cache_d, $ar, LOCK_EX); + return $arch; + } + } elseif ($custom === 'month-year') { + $cache_my = "cache/widget/archive.month-year.cache"; + if (file_exists($cache_my)) { + $arch = unserialize(file_get_contents($cache_my)); + return $arch; + } else { + foreach ($by_year as $year => $months) { + $by_month = array_count_values($months); + # Sort the months + krsort($by_month); + foreach ($by_month as $month => $count) { + $name = format_date(mktime(0, 0, 0, $month, 1, 2010), 'F'); + $arch .= '
    129. ' . $name . ' ' . $year .' ('.$count.')
    130. '; + } + } + $ar = serialize($arch); + file_put_contents($cache_my, $ar, LOCK_EX); + return $arch; + } + } elseif ($custom === 'year') { + $cache_y = "cache/widget/archive.year.cache"; + if (file_exists($cache_y)) { + $arch = unserialize(file_get_contents($cache_y)); + return $arch; + } else { + foreach ($by_year as $year => $months) { + $by_month = array_count_values($months); + # Sort the months + krsort($by_month); + $arch .= '
    131. ' . $year .' ('. count($months) .')
    132. '; + } + $ar = serialize($arch); + file_put_contents($cache_y, $ar, LOCK_EX); + return $arch; + } + } else { + return $by_year; + } + } +} + +// Return tag cloud. +function tag_cloud($custom = null) +{ + $dir = "cache/widget"; + $filename = "cache/widget/tags.cache"; + $tg = array(); + + if (!is_dir($dir)) { + mkdir($dir, 0775, true); + } + + $posts = get_blog_posts(); + $tags = array(); + + $tagcloud_count = config('tagcloud.count'); + if(empty($tagcloud_count)) { + $tagcloud_count = 40; + } + + if (!empty($posts)) { + + if (!file_exists($filename)) { + foreach ($posts as $index => $v) { + $arr = explode('_', $v['filename']); + $data = rtrim($arr[1], ','); + $mtag = explode(',', $data); + foreach ($mtag as $etag) { + $tags[] = strtolower($etag); + } + } + $tag_collection = array_count_values($tags); + ksort($tag_collection); + $tg = serialize($tag_collection); + file_put_contents($filename, print_r($tg, true), LOCK_EX); + } else { + $tag_collection = unserialize(file_get_contents($filename)); + } + + if(empty($custom)) { + $wrapper = ''; + $cache_t = "cache/widget/tags.default.cache"; + if (file_exists($cache_t)) { + $wrapper = unserialize(file_get_contents($cache_t)); + return $wrapper; + } else { + // Font sizes + $max_size = 22; // max font size in % + $min_size = 8; // min font size in % + + // Get the largest and smallest array values + $max_qty = max(array_values($tag_collection)); + $min_qty = min(array_values($tag_collection)); + + // Find the range of values + $spread = $max_qty - $min_qty; + if (0 == $spread) { // we don't want to divide by zero + $spread = 1; + } + + // Font-size increment + // this is the increase per tag quantity (times used) + $step = ($max_size - $min_size)/($spread); + + arsort($tag_collection); + $sliced_tags = array_slice($tag_collection, 0, $tagcloud_count, true); + ksort($sliced_tags); + foreach ($sliced_tags as $tag => $count) { + $size = $min_size + (($count - $min_qty) * $step); + $wrapper .= ' '.tag_i18n($tag).' '; + } + $ar = serialize($wrapper); + file_put_contents($cache_t, $ar, LOCK_EX); + return $wrapper; + } + + } else { + return $tag_collection; + } + } else { + if(empty($custom)) return; + return $tags; + } +} + +// Helper function to determine whether +// to show the previous buttons +function has_prev($prev) +{ + if (!empty($prev)) { + return array( + 'url' => $prev->url, + 'title' => $prev->title, + 'date' => $prev->date, + 'body' => $prev->body, + 'description' => $prev->description, + 'tag' => $prev->tag, + 'author' => $prev->author, + 'authorName' => $prev->authorName, + 'authorDescription' => $prev->authorDescription, + 'authorAbout' => $prev->authorAbout, + 'authorUrl' => $prev->authorUrl, + 'authorAvatar' => $prev->authorAvatar, + 'authorRss' => $prev->authorRss, + 'related' => $prev->related, + 'views' => $prev->views, + 'type' => $prev->type, + 'file' => $prev->file, + 'image' => $prev->image, + 'video' => $prev->video, + 'audio' => $prev->audio, + 'quote' => $prev->quote, + 'link' => $prev->link, + 'slug' => $prev->slug, + 'category' => $prev->category, + 'categoryUrl' => $prev->categoryUrl, + 'categoryCount' => $prev->categoryCount, + 'categorySlug' => $prev->categorySlug, + 'categoryMd' => $prev->categoryMd, + 'categoryTitle' => $prev->categoryTitle, + 'readTime' => $prev->readTime, + 'lastMod' => $prev->lastMod + ); + } +} + +// Helper function to determine whether +// to show the next buttons +function has_next($next) +{ + if (!empty($next)) { + return array( + 'url' => $next->url, + 'title' => $next->title, + 'date' => $next->date, + 'body' => $next->body, + 'description' => $next->description, + 'tag' => $next->tag, + 'author' => $next->author, + 'authorName' => $next->authorName, + 'authorDescription' => $next->authorDescription, + 'authorAbout' => $next->authorAbout, + 'authorUrl' => $next->authorUrl, + 'authorAvatar' => $next->authorAvatar, + 'authorRss' => $next->authorRss, + 'related' => $next->related, + 'views' => $next->views, + 'type' => $next->type, + 'file' => $next->file, + 'image' => $next->image, + 'video' => $next->video, + 'audio' => $next->audio, + 'quote' => $next->quote, + 'link' => $next->link, + 'slug' => $next->slug, + 'category' => $next->category, + 'categoryUrl' => $next->categoryUrl, + 'categoryCount' => $next->categoryCount, + 'categorySlug' => $next->categorySlug, + 'categoryMd' => $next->categoryMd, + 'categoryTitle' => $next->categoryTitle, + 'readTime' => $next->readTime, + 'lastMod' => $next->lastMod + ); + } +} + +function static_prev($prev) +{ + if (!empty($prev)) { + return array( + 'url' => $prev->url, + 'title' => $prev->title, + 'body' => $prev->body, + 'description' => $prev->description, + 'views' => $prev->views, + 'md' => $prev->md, + 'slug' => $prev->slug, + 'parent' => $prev->parent, + 'parentSlug' => $prev->parentSlug, + 'file' => $prev->file, + 'readTime' => $prev->readTime, + 'lastMod' => $prev->lastMod + ); + } +} + +function static_next($next) +{ + if (!empty($next)) { + return array( + 'url' => $next->url, + 'title' => $next->title, + 'body' => $next->body, + 'description' => $next->description, + 'views' => $next->views, + 'md' => $next->md, + 'slug' => $next->slug, + 'parent' => $next->parent, + 'parentSlug' => $next->parentSlug, + 'file' => $next->file, + 'readTime' => $next->readTime, + 'lastMod' => $next->lastMod + ); + } +} + +// Helper function to determine whether +// to show the pagination buttons +function has_pagination($total, $perpage, $page = 1) +{ + if (!$total) { + $total = count(get_blog_posts()); + } + $totalPage = ceil($total / $perpage); + $number = i18n('Page') . ' ' . $page . ' ' . i18n('of') . ' ' . $totalPage; + $pager = get_pagination($total, $page, $perpage, 2); + return array( + 'prev' => $page > 1, + 'next' => $total > $page * $perpage, + 'pagenum' => $number, + 'html' => $pager, + 'items' => $total, + 'perpage' => $perpage + ); +} + +//function to return the pagination string +function get_pagination($totalitems, $page = 1, $perpage = 10, $adjacents = 1, $pagestring = '?page=') +{ + //defaults + if(!$adjacents) $adjacents = 1; + if(!$perpage) $perpage = 10; + if(!$page) $page = 1; + + //other vars + $prev = $page - 1; //previous page is page - 1 + $next = $page + 1; //next page is page + 1 + $lastpage = ceil($totalitems / $perpage); //lastpage is = total items / items per page, rounded up. + $lpm1 = $lastpage - 1; //last page minus 1 + + /* + Now we apply our rules and draw the pagination object. + We're actually saving the code to a variable in case we want to draw it more than once. + */ + $pagination = ''; + $curpage = strtok($_SERVER["REQUEST_URI"], '?'); + + if($lastpage > 1) + { + $pagination .= '
        '; + + //newer button + if ($page > 2) + $pagination .= '
      • « '. i18n('Newer') .'
      • '; + else if ($page == 2) + $pagination .= '
      • « '. i18n('Newer') .'
      • '; + else + $pagination .= '
      • « '. i18n('Newer') . '
      • '; + + //pages + if ($lastpage < 7 + ($adjacents * 2)) //not enough pages to bother breaking it up + { + for ($counter = 1; $counter <= $lastpage; $counter++) + { + if ($counter == 1 && $counter !== $page) // link 1st pagination page to parent page instead of ?page=1 for SEO + $pagination .= '
      • 1
      • '; + else if ($counter == $page) + $pagination .= '
      • '. $counter.'
      • '; + else + $pagination .= '
      • '. $counter .'
      • '; + } + } + elseif($lastpage >= 7 + ($adjacents * 2)) //enough pages to hide some + { + //close to beginning; only hide later pages + if($page < 1 + ($adjacents * 3)) + { + for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++) + { + if ($counter == 1) // link 1st pagination page to parent page instead of ?page=1 for SEO + $pagination .= '
      • 1
      • '; + else if ($counter == $page) + $pagination .= '
      • '. $counter .'
      • '; + else + $pagination .= '
      • '. $counter .'
      • '; + } + $pagination .= '
      • ...
      • '; + $pagination .= '
      • '. $lpm1 .'
      • '; + $pagination .= '
      • '. $lastpage .'
      • '; + } + //in middle; hide some front and some back + elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2)) + { + $pagination .= '
      • 1
      • '; + $pagination .= '
      • 2
      • '; + $pagination .= '
      • ...
      • '; + for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++) + { + if ($counter == $page) + $pagination .= '
      • '. $counter .'
      • '; + else + $pagination .= '
      • '. $counter .'
      • '; + } + $pagination .= '
      • ...
      • '; + $pagination .= '
      • '. $lpm1 .'
      • '; + $pagination .= '
      • '. $lastpage .'
      • '; + } + //close to end; only hide early pages + else + { + $pagination .= '
      • 1
      • '; + $pagination .= '
      • 2
      • '; + $pagination .= '
      • ...
      • '; + for ($counter = $lastpage - (1 + ($adjacents * 3)); $counter <= $lastpage; $counter++) + { + if ($counter == $page) + $pagination .= '
      • '. $counter .'
      • '; + else + $pagination .= '
      • '. $counter .'
      • '; + } + } + } + + //older button + if ($page < $counter - 1) + $pagination .= '
      • '. i18n('Older') .' »
      • '; + else + $pagination .= '
      • '. i18n('Older') .' »
      • '; + $pagination .= '
      '; + } + + return $pagination; + +} + +// Get the meta description +function get_description($string, $char = null) +{ + if(empty($char)) { + $char = config('description.char'); + if(empty($char)) { + $char = 150; + } + } + if (strlen(strip_tags($string)) < $char) { + return safe_html(strip_tags($string)); + } else { + $string = safe_html(strip_tags($string)); + $string = substr($string, 0, $char); + $string = substr($string, 0, strrpos($string, ' ')); + return $string; + } + +} + +// Get the teaser +function get_teaser($string, $url = null, $char = null) +{ + $teaserType = config('teaser.type'); + $more = config('read.more'); + $behave = config('teaser.behave'); + + if(empty($more)) { + $more = 'Read more'; + } + + if(empty($char)) { + $char = config('teaser.char'); + if(empty($char)) { + $char = 200; + } + } + + if ($teaserType === 'full') { + $readMore = explode('', $string); + if (isset($readMore['1'])) { + $string = replace_href($readMore['0'], 'a', 'footnote-ref', $url); + return $string . ''; + } else { + return $string; + } + } else { + if ($behave === 'check') { + $readMore = explode('', $string); + if (isset($readMore['1'])) { + $string = shorten($readMore[0]); + return $string; + } else { + $string = shorten($string, $char); + return $string; + } + } else { + $string = shorten($string, $char); + return $string; + } + } +} + +// Shorten the string +function shorten($string = null, $char = null) +{ + if(empty($string)) { + return; + } + $string = str_replace(''. config('toc.label') .'', '', $string); + libxml_use_internal_errors(true); + $dom = new DOMDocument(); + $dom->loadHTML('' . $string); + $tags_to_remove = array('script', 'style'); + foreach($tags_to_remove as $tag){ + $element = $dom->getElementsByTagName($tag); + foreach($element as $item){ + $item->parentNode->removeChild($item); + } + } + $string = preg_replace('~<(?:!DOCTYPE|/?(?:html|head|body))[^>]*>\s*~i', '', mb_convert_encoding($dom->saveHTML($dom->documentElement), 'UTF-8')); + $string = preg_replace('/\s\s+/', ' ', strip_tags($string)); + $string = ltrim(rtrim($string)); + $string = str_replace('', '', $string); + if (!empty($char)) { + if (strlen($string) > $char) { + $string = substr($string, 0, $char); + $string = substr($string, 0, strrpos($string, ' ')); + } + } + return $string; + +} + +// Get thumbnail from image and Youtube. +function get_thumbnail($text, $url = null) +{ + if (config('img.thumbnail') == 'true') { + + $teaserType = config('teaser.type'); + + if (strlen(strip_tags($text)) > config('teaser.char') && $teaserType === 'trimmed') { + + libxml_use_internal_errors(true); + $default = config('default.thumbnail'); + $dom = new DOMDocument(); + $dom->loadHtml('' . $text); + $imgTags = $dom->getElementsByTagName('img'); + $vidTags = $dom->getElementsByTagName('iframe'); + if ($imgTags->length > 0) { + $imgElement = $imgTags->item(0); + $imgSource = $imgElement->getAttribute('src'); + if (!empty($url)) { + return $imgSource; + } else { + return '
      '; + } + } elseif ($vidTags->length > 0) { + $vidElement = $vidTags->item(0); + $vidSource = $vidElement->getAttribute('src'); + $fetch = explode("embed/", $vidSource); + if (isset($fetch[1])) { + $vidThumb = '//img.youtube.com/vi/' . $fetch[1] . '/default.jpg'; + if (!empty($url)) { + return $vidThumb; + } else { + return '
      '; + } + } + } else { + if (!empty($default)) { + if (!empty($url)) { + return $default; + } else { + return '
      '; + } + } + } + } else { + // Ignore + } + } +} + +// Get image from post and Youtube thumbnail. +function get_image($text, $width = null, $height = null) +{ + libxml_use_internal_errors(true); + $dom = new DOMDocument(); + $dom->loadHtml('' . $text); + $imgTags = $dom->getElementsByTagName('img'); + $vidTags = $dom->getElementsByTagName('iframe'); + if ($imgTags->length > 0) { + $imgElement = $imgTags->item(0); + $imgSource = $imgElement->getAttribute('src'); + if(is_null($width)) { + return $imgSource; + } else { + return create_thumb($imgSource, $width, $height); + } + } elseif ($vidTags->length > 0) { + $vidElement = $vidTags->item(0); + $vidSource = $vidElement->getAttribute('src'); + $fetch = explode("embed/", $vidSource); + if (isset($fetch[1])) { + $vidThumb = '//img.youtube.com/vi/' . $fetch[1] . '/sddefault.jpg'; + return $vidThumb; + } + } else{ + return false; + } +} + +// Return edit tab on post +function tab($p) +{ + $user = $_SESSION[site_url()]['user']; + $role = user('role', $user); + $tab = ''; + if (isset($p->author)) { + if ($user === $p->author || $role === 'editor' || $role === 'admin') { + $tab = ''; + } + } else { + if ($p->url) { + if ($role === 'editor' || $role === 'admin') { + $tab = ''; + } + } + } + return $tab; +} + +// Social links +function social($class = null) +{ + $bluesky = config('social.bluesky'); + $twitter = config('social.twitter'); + $facebook = config('social.facebook'); + $instagram = config('social.instagram'); + $linkedin = config('social.linkedin'); + $github = config('social.github'); + $youtube = config('social.youtube'); + $mastodon = config('social.mastodon'); + $tiktok = config('social.tiktok'); + $rss = site_url() . 'feed/rss'; + $social = ''; + + $social .= ''; + return $social; +} + +// Copyright +function copyright() +{ + $blogcp = blog_copyright(); + $credit = 'Powered by HTMLy'; + + if (!empty($blogcp)) { + return $copyright = '' . $blogcp . ' ' . $credit . ''; + } else { + return $credit = '' . $credit . ''; + } +} + +// Disqus on post. +function disqus($title = null, $url = null) +{ + $comment = config('comment.system'); + $disqus = config('disqus.shortname'); + $script = << + var getAbsolutePath = function(href) { + var link = document.createElement('a'); + link.href = href; + return link.href; + }; + var disqus_shortname = '{$disqus}'; + var disqus_title = '{$title}'; + var disqus_url = getAbsolutePath('{$url}'); + (function () { + var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; + dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js'; + (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); + })(); + +EOF; + if (!empty($disqus) && $comment == 'disqus') { + return $script; + } +} + +// Disqus comment count on teaser +function disqus_count() +{ + $comment = config('comment.system'); + $disqus = config('disqus.shortname'); + $script = << + var disqus_shortname = '{$disqus}'; + (function () { + var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; + dsq.src = '//' + disqus_shortname + '.disqus.com/count.js'; + (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); + })(); + +EOF; + if (!empty($disqus) && $comment == 'disqus') { + return $script; + } +} + +// Disqus recent comments +function recent_comments() +{ + $comment = config('comment.system'); + $disqus = config('disqus.shortname'); + $script = << +EOF; + if (!empty($disqus) && $comment == 'disqus') { + return $script; + } +} + +// Facebook comments +function facebook() +{ + $comment = config('comment.system'); + $appid = config('fb.appid'); + $lang = locale_language(); + $script = << + + +EOF; + + if (!empty($appid) && $comment == 'facebook') { + return $script; + } +} + +// Google Publisher (Google+ page). +function publisher() +{ + $publisher = config('google.publisher'); + if (!empty($publisher)) { + return $publisher; + } +} + +// Google Analytics +function analytics() +{ + $analytics = config('google.analytics.id'); + $gtag = config('google.gtag.id'); + $script = << + (function (i,s,o,g,r,a,m) {i['GoogleAnalyticsObject']=r;i[r]=i[r]||function () { + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); + ga('create', '{$analytics}', 'auto'); + ga('send', 'pageview'); + +EOF; + $gtagScript = << + + +EOF; + if (!empty($gtag)) { + return $gtagScript; + } elseif (!empty($analytics)) { + return $script; + } +} + +function slashUrl($url) +{ + return rtrim($url, '/') . '/'; +} + +function parseNodes($nodes, $child = null, $class = null) +{ + if (empty($child)) { + $ul = ''; + return $ul; + } else { + $ul = ''; + return $ul; + } +} + +function parseNode($node, $child = null) +{ + $req = strtok($_SERVER["REQUEST_URI"],'?'); + $url = parse_url(slashUrl($node->slug)); + $su = parse_url(site_url()); + if (empty($child)) { + + if (isset($url['host']) && isset($su['host'])) { + if ($url['host'] == $su['host']) { + if (slashUrl($url['path']) == slashUrl($req)) { + $li = ''; + return $li; + } else { + + if (isset($url['host']) && isset($su['host'])) { + if ($url['host'] == $su['host']) { + if (slashUrl($url['path']) == slashUrl($req)) { + $li = ''; + return $li; + } +} + +// Menu +function menu($class = null) +{ + $filename = "content/data/menu.json"; + if (file_exists($filename)) { + $json = json_decode(file_get_contents('content/data/menu.json', true)); + $nodes = json_decode($json); + if (empty($nodes)) { + return get_menu($class); + } else { + $html = parseNodes($nodes, null, $class); + $output = ''; + libxml_use_internal_errors(true); + $doc = new DOMDocument(); + $doc->loadHTML('' . $html); + + $finder = new DOMXPath($doc); + $elements = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' dropdown-menu ')]"); + + // loop through all
        with dropdown-menu class + foreach ($elements as $element) { + $nodes = $element->childNodes; + foreach ($nodes as $node) { + $class = $node->getAttribute('class'); + if (stripos($class, 'active')) { + $parentClass = $element->parentNode->getAttribute('class') . ' active'; + $element->parentNode->setAttribute('class', $parentClass); + } + } + } + + $output = preg_replace('~<(?:!DOCTYPE|/?(?:html|head|body))[^>]*>\s*~i', '', mb_convert_encoding($doc->saveHTML($doc->documentElement), 'UTF-8')); + return str_replace('', '', $output); + + } + } else { + return get_menu($class); + } +} + +// Get the title from file +function get_title_from_file($v) +{ + // Get the contents and convert it to HTML + $content = MarkdownExtra::defaultTransform(file_get_contents($v)); + + $filename= pathinfo($v, PATHINFO_FILENAME); + + // Extract the title and body + return get_content_tag('t', $content, str_replace('-', ' ', $filename)); +} + +// Auto generate menu from static page +function get_menu($custom = null, $auto = null) +{ + $posts = get_static_pages(); + $req = $_SERVER['REQUEST_URI']; + $menu = ''; + + if (!empty($posts)) { + + $menu .= ''; + return $menu; + } else { + + $menu .= ''; + return $menu; + } +} + +// Search form +function search($text = null) +{ + if(!empty($text)) { + echo << + + + +EOF; + } else { + $search = i18n('Search'); + echo << + + + +EOF; + } + if (isset($_GET['search'])) { + $search = _h($_GET['search']); + $url = site_url() . 'search/' . remove_accent($search); + header("Location: $url"); + } +} + +// The not found error +function not_found($request = null) +{ + if (!config('views.root')) die('HTMLy is not installed!'); + $vroot = rtrim(config('views.root'), '/'); + $lt = $vroot . '/layout--404.html.php'; + if (file_exists($lt)) { + $layout = 'layout--404'; + } else { + $layout = ''; + } + + if (config('views.counter') == 'true') { + if (!is_null($request)) { + $filename = "content/data/views.json"; + $views = array(); + if (file_exists($filename)) { + $views = json_decode(file_get_data($filename), true); + } + if (isset($views[$request])) { + unset($views[$request]); + save_json_pretty($filename, $views); + } + } + } + + header($_SERVER["SERVER_PROTOCOL"] . " 404 Not Found"); + render('404', array( + 'title' => generate_title('is_default', i18n('This_page_doesnt_exist')), + 'description' => i18n('This_page_doesnt_exist'), + 'canonical' => site_url(), + 'metatags' => generate_meta(null, null), + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . i18n('This_page_doesnt_exist'), + 'bodyclass' => 'error-404', + 'is_404' => true, + ), $layout); + die(); +} + +// Turn an array of posts into an RSS feed +function generate_rss($posts, $data = null) +{ + $feed = new Feed(); + $channel = new Channel(); + $rssLength = config('rss.char'); + $data = $data; + $rssDesc = config('rss.description'); + + if (is_null($data)) { + $channel + ->title(blog_title()) + ->description(blog_description()) + ->url(site_url()) + ->appendTo($feed); + } else { + $channel + ->title($data->title) + ->description(strip_tags($data->body)) + ->url($data->url) + ->appendTo($feed); + } + if ($posts) { + foreach ($posts as $p) { + $img = get_image($p->body); + if ($rssDesc == "meta") { + if (!empty($rssLength)) { + $body = shorten($p->description, $rssLength); + } else { + $body = $p->description; + } + } else { + if (!empty($rssLength)) { + $body = shorten($p->body, $rssLength); + } else { + $body = $p->body; + } + } + $item = new Item(); + $item + ->category(strip_tags($p->category)); + $item + ->title($p->title) + ->pubDate($p->date) + ->description($body) + ->url($p->url) + ->appendTo($channel); + + if (!empty($p->image)) { + $item->enclosure($p->image, 0, "image/" . pathinfo($p->image, PATHINFO_EXTENSION)); + } elseif (!empty($img)) { + $item->enclosure($img, 0, "image/" . pathinfo($img, PATHINFO_EXTENSION)); + } + + } + } + + return $feed; +} + +// Return post, archive url for sitemap +function sitemap_post_path($posts, $page = 1, $perpage = 0) +{ + if (empty($posts)) { + $posts = get_blog_posts(); + } + + krsort($posts); + + $tmp = array(); + + $posts = array_slice($posts, ($page - 1) * $perpage, $perpage); + + foreach ($posts as $index => $v) { + + $post = new stdClass; + + $filepath = $v['dirname'] . '/' . $v['basename']; + + // Extract the date + $arr = explode('_', $v['basename']); + + // dirname string + $dirname = $v['dirname']; + + // Author string + $str = explode('/', $dirname); + $author = $str[1]; + + $post->authorUrl = site_url() . 'author/' . $author; + + $dt = str_replace($dirname, '', $arr[0]); + $t = str_replace('-', '', $dt); + $time = new DateTime($t); + $timestamp = $time->format("Y-m-d H:i:s"); + + // The post date + $post->date = strtotime($timestamp); + $post->lastMod = strtotime(date('Y-m-d H:i:s', filemtime($filepath))); + + // The archive per month + $post->archivemonth = site_url() . 'archive/' . date('Y-m', $post->date); + + // The archive per year + $post->archiveyear = site_url() . 'archive/' . date('Y', $post->date); + + // The post URL + if (permalink_type() == 'default') { + $post->url = site_url() . date('Y/m', $post->date) . '/' . str_replace('.md', '', $arr[2]); + } else { + $post->url = site_url() . permalink_type() . '/' . str_replace('.md', '', $arr[2]); + } + + $tmp[] = $post; + } + + return $tmp; +} + +// Return static page path for sitemap +function sitemap_page_path() +{ + $posts = get_static_pages(); + + $tmp = array(); + + if (!empty($posts)) { + + foreach ($posts as $index => $v) { + + $post = new stdClass; + + $fn = explode('.', $v['filename']); + + if (isset($fn[1])) { + $filename = $fn[1]; + } else { + $filename= $v['filename']; + } + + $file = $v['dirname'] . '/' . $v['basename']; + $post->url = site_url() . $filename; + $post->lastMod = strtotime(date('Y-m-d H:i:s', filemtime($file))); + + $tmp[] = $post; + + $subPages = get_static_subpages($filename); + + foreach ($subPages as $sIndex => $sp) { + + $subpost = new stdClass; + + $bs = explode('.', $sp['filename']); + + if (isset($bs[1])) { + $baseSub = $bs[1]; + } else { + $baseSub = $sp['filename']; + } + + $urlSub = $filename . '/' . $baseSub; + $subfile = $sp['dirname'] . '/' . $sp['basename']; + $subpost->url = site_url() . $urlSub; + $subpost->lastMod = strtotime(date('Y-m-d H:i:s', filemtime($subfile))); + + $tmp[] = $subpost; + } + } + } + + return $tmp; +} + +// Generate sitemap.xml. +function generate_sitemap($str) +{ + $default_priority = '0.5'; + $map = ''; + + header('X-Robots-Tag: noindex'); + + $map .= ''; + + if ($str == 'index.xml') { + + $map .= ''; + + if (config('sitemap.priority.base') !== '-1') { + $map .= '' . site_url() . 'sitemap.base.xml'; + } + + if (config('sitemap.priority.post') !== '-1') { + $map .= '' . site_url() . 'sitemap.post.xml'; + } + + if (config('sitemap.priority.static') !== '-1') { + $map .= '' . site_url() . 'sitemap.static.xml'; + } + + if (config('sitemap.priority.category') !== '-1') { + $map .= '' . site_url() . 'sitemap.category.xml'; + } + + if (config('sitemap.priority.tag') !== '-1') { + $map .= '' . site_url() . 'sitemap.tag.xml'; + } + + if (config('sitemap.priority.archiveDay') !== '-1' || config('sitemap.priority.archiveMonth') !== '-1' || config('sitemap.priority.archiveYear') !== '-1') { + $map .= '' . site_url() . 'sitemap.archive.xml'; + } + + if (config('sitemap.priority.author') !== '-1') { + $map .= '' . site_url() . 'sitemap.author.xml'; + } + + if (config('sitemap.priority.type') !== '-1') { + $map .= '' . site_url() . 'sitemap.type.xml'; + } + + $map .= ''; + + } elseif ($str == 'base.xml') { + + $priority = (config('sitemap.priority.base')) ? config('sitemap.priority.base') : '1.0'; + + $map .= ''; + + if ($priority !== '-1') { + $map .= '' . site_url() . '' . $priority . ''; + if (config('blog.enable') === 'true') { + $map .= '' . site_url() . blog_path() .'' . $priority . ''; + } + } + + $map .= ''; + + } elseif (strpos($str, 'post.') !== false ) { + + if ($str == 'post.xml') { + + $map .= ''; + + $totalPosts = array(); + $totalPosts = get_blog_posts(); + + $total = count($totalPosts); + $totalPage = ceil($total / 500); + + for ($i = 1; $i <= $totalPage; $i++) { + $map .= '' . site_url() . 'sitemap.post.'. $i .'.xml'; + } + + $map .= ''; + + } else { + + $priority = (config('sitemap.priority.post')) ? config('sitemap.priority.post') : $default_priority; + + $posts = array(); + $arr = explode('.', $str); + if ($priority !== '-1') { + $posts = sitemap_post_path(null, $arr[1], 500); + } + + $map .= ''; + + foreach ($posts as $p) { + + $map .= '' . $p->url . '' . $priority . '' . date('Y-m-d\TH:i:sP', $p->lastMod) . ''; + } + + $map .= ''; + + } + + } elseif ($str == 'static.xml') { + + $priority = (config('sitemap.priority.static')) ? config('sitemap.priority.static') : $default_priority; + + $posts = array(); + if ($priority !== '-1') { + $posts = sitemap_page_path(); + } + + $map .= ''; + + foreach ($posts as $p) { + + $map .= '' . $p->url . '' . $priority . '' . date('Y-m-d\TH:i:sP', $p->lastMod) . ''; + } + + $map .= ''; + + } elseif ($str == 'tag.xml') { + + $priority = (config('sitemap.priority.tag')) ? config('sitemap.priority.tag') : $default_priority; + + $posts = array(); + if ($priority !== '-1') { + $posts = get_blog_posts(); + } + + $tags = array(); + + $map .= ''; + + if($posts) { + foreach ($posts as $index => $v) { + + $arr = explode('_', $v['filename']); + $data = $arr[1]; + $mtag = explode(',', $data); + foreach ($mtag as $etag) { + $tags[] = strtolower($etag); + } + } + + foreach ($tags as $t) { + $tag[] = site_url() . 'tag/' . strtolower($t); + } + + if (isset($tag)) { + + $tag = array_unique($tag, SORT_REGULAR); + + foreach ($tag as $t) { + $map .= '' . $t . '' . $priority . ''; + } + } + } + + $map .= ''; + + } elseif ($str == 'archive.xml') { + + $priorityMonth = (config('sitemap.priority.archiveMonth')) ? config('sitemap.priority.archiveMonth') : $default_priority; + $priorityYear = (config('sitemap.priority.archiveYear')) ? config('sitemap.priority.archiveYear') : $default_priority; + + $posts = sitemap_post_path(null, 1, null); + $month = array(); + $year = array(); + + foreach ($posts as $p) { + $month[] = $p->archivemonth; + $year[] = $p->archiveyear; + } + + $month = array_unique($month, SORT_REGULAR); + $year = array_unique($year, SORT_REGULAR); + + $map .= ''; + + if ($priorityYear !== '-1') { + foreach ($year as $y) { + $map .= '' . $y . '' . $priorityYear . ''; + } + } + + if ($priorityMonth !== '-1') { + foreach ($month as $m) { + $map .= '' . $m . '' . $priorityMonth . ''; + } + } + + $map .= ''; + + } elseif ($str == 'author.xml') { + + $priority = (config('sitemap.priority.author')) ? config('sitemap.priority.author') : $default_priority; + + $author = array(); + if ($priority !== '-1') { + + $posts = sitemap_post_path(null, 1, null); + + foreach ($posts as $p) { + $author[] = $p->authorUrl; + } + + $author = array_unique($author, SORT_REGULAR); + } + + $map .= ''; + + if ($priority !== '-1') { + foreach ($author as $a) { + $map .= '' . $a . '' . $priority . ''; + } + } + + $map .= ''; + + } elseif ($str == 'category.xml') { + + $priority = (config('sitemap.priority.category')) ? config('sitemap.priority.category') : $default_priority; + + $posts = array(); + if ($priority !== '-1') { + $posts = get_blog_posts(); + } + + $cats = array(); + + $map .= ''; + + if($posts) { + foreach ($posts as $index => $v) { + + $dirname = $v['dirname']; + $str = explode('/', $dirname); + $cats[] = $str[3]; + + } + + foreach ($cats as $c) { + $cat[] = site_url() . 'category/' . strtolower($c); + } + + if (isset($cat)) { + + $cat = array_unique($cat, SORT_REGULAR); + + foreach ($cat as $c) { + $map .= '' . $c . '' . $priority . ''; + } + } + } + + $map .= ''; + + } elseif ($str == 'type.xml') { + + $priority = (config('sitemap.priority.type')) ? config('sitemap.priority.type') : $default_priority; + + $posts = array(); + if ($priority !== '-1') { + $posts = get_blog_posts(); + } + + $cats = array(); + + $map .= ''; + + if($posts) { + foreach ($posts as $index => $v) { + + $dirname = $v['dirname']; + $str = explode('/', $dirname); + $types[] = $str[4]; + } + + foreach ($types as $t) { + $type[] = site_url() . 'type/' . strtolower($t); + } + + if (isset($type)) { + + $type = array_unique($type, SORT_REGULAR); + + foreach ($type as $t) { + $map .= '' . $t . '' . $priority . ''; + } + } + } + + $map .= ''; + } + echo $map; +} + +// Function to generate OPML file +function generate_opml() +{ + $opml_data = array( + 'head' => array( + 'title' => blog_title() . ' OPML File', + 'ownerName' => blog_title(), + 'ownerId' => site_url() + ), + 'body' => array( + array( + 'text' => blog_title(), + 'description' => blog_description(), + 'htmlUrl' => site_url(), + 'language' => 'unknown', + 'title' => blog_title(), + 'type' => 'rss', + 'version' => 'RSS2', + 'xmlUrl' => site_url() . 'feed/rss' + ) + ) + ); + + $opml = new opml($opml_data); + return $opml->render(); +} + +// Turn an array of posts into a JSON +function generate_json($posts) +{ + return json_encode($posts); +} + +// TRUE if the current page is an index page like frontpage, tag index, archive index and search index. +function is_index() +{ + if (blog_path() == permalink_type()) { + $req = rtrim(strtok($_SERVER["REQUEST_URI"], '?'), '/') . '/'; + $in = explode('/' . blog_path(), $req); + if (isset($in[1])) { + if ($in[1] == '/') { + return true; + } + } + if (stripos($req, '/category/') !== false || stripos($req, '/archive/') !== false || stripos($req, '/tag/') !== false || stripos($req, '/search/') !== false || stripos($req, '/type/') !== false || $req == site_path() . '/') { + return true; + } else { + return false; + } + } else { + $req = strtok($_SERVER["REQUEST_URI"], '?'); + if (stripos($req, '/category/') !== false || stripos($req, '/archive/') !== false || stripos($req, '/tag/') !== false || stripos($req, '/search/') !== false || stripos($req, '/type/') !== false || stripos($req, '/' . blog_path()) !== false || $req == site_path() . '/') { + return true; + } else { + return false; + } + } +} + +// Return post permalink type +function permalink_type() +{ + $permalink = config('permalink.type'); + if (!is_null($permalink) && !empty($permalink)) { + return strtolower(str_replace('/', '', $permalink)); + } + return 'default'; +} + +// Return blog path index +function blog_path() +{ + $path = config('blog.path'); + if (!is_null($path) && !empty($path)) { + return strtolower(str_replace('/', '', $path)); + } + return 'blog'; +} + +// Return blog string +function blog_string() +{ + $string = config('blog.string'); + if (!is_null($string) && !empty($string)) { + return $string; + } + return 'Blog'; +} + +// Return blog title +function blog_title() +{ + return config('blog.title'); +} + +// Return blog tagline +function blog_tagline() +{ + return config('blog.tagline'); +} + +// Return blog description +function blog_description() +{ + return config('blog.description'); +} + +// Return blog copyright +function blog_copyright() +{ + return config('blog.copyright'); +} + +// Return blog language +function blog_language() +{ + $lang = config('language'); + if (!empty($lang)) { + $exp = explode('_', $lang); + return $exp[0] . '-' . $exp[1]; + } + return 'en-US'; +} + +// Return locale language +function locale_language() +{ + $lang = config('language'); + if (!empty($lang)) { + $exp = explode('_', $lang); + return $exp[0] . '_' . $exp[1]; + } + return 'en_US'; +} + +// Output head contents +function head_contents() +{ + $output = ''; + $wmt_id = config('google.wmt.id'); + if (config('show.version') !== 'false') { + $version = 'HTMLy ' . constant('HTMLY_VERSION'); + } else { + $version = 'HTMLy'; + } + $favicon = config('favicon.image'); + if (empty($favicon)) { + $favicon = '' . "\n"; + } else { + $favicon = '' . "\n"; + } + $output .= '' . "\n"; + $output .= '' . "\n"; + $output .= '' . "\n"; + $output .= '' . "\n"; + $output .= $favicon; + $output .= '' . "\n"; + $output .= '' . "\n"; + if (!empty($wmt_id)) { + $output .= '' . "\n"; + } + + return $output; +} + +// File cache +function file_cache($request) +{ + if (config('cache.off') == 'true') return; + $hour = config('cache.expiration'); + if (empty($hour)) { + $hour = 6; + } + + $now = time(); + $c = str_replace('/', '#', str_replace('?', '~', rawurldecode($request))); + $cachefile = 'cache/page/' . $c . '.cache'; + if (file_exists($cachefile)) { + if ($now - filemtime($cachefile) >= 60 * 60 * $hour) { + unlink($cachefile); + } else { + header('Content-type: text/html; charset=utf-8'); + readfile($cachefile); + die; + } + } +} + +// Add page views count +function add_view($page) +{ + $dir = 'content/data/'; + if (!is_dir($dir)) { + mkdir($dir, 0775, true); + } + $filename = "content/data/views.json"; + $views = array(); + if (file_exists($filename)) { + $views = json_decode(file_get_data($filename), true); + } + if (isset($views[$page])) { + $views[$page]++; + save_json_pretty($filename, $views); + } else { + if (isset($views['flock_fail'])) { + return; + } else { + $views[$page] = 1; + save_json_pretty($filename, $views); + } + } +} + +// Get the page views count +function get_views($page, $oldID = null, $views = null) +{ + $filename = "content/data/views.json"; + + if (is_null($views)) { + if (file_exists($filename)) { + $views = json_decode(file_get_contents($filename), true); + } + } + + if (!is_null($oldID)) { + if (isset($views[$oldID])) { + if (file_exists($filename)) { + $views = json_decode(file_get_data($filename), true); + } + if (isset($views['flock_fail'])) { + return -1; + } else { + $arr = replace_key($views, $oldID, $page); + save_json_pretty($filename, $arr); + } + return $views[$oldID]; + } else { + if (isset($views[$page])) { + return $views[$page]; + } + } + } else { + if (isset($views[$page])) { + return $views[$page]; + } + } + return -1; +} + +// Get tag inside the markdown files +function get_content_tag($tag, $string, $alt = null) +{ + $reg = '/\(\s|)/', '/(\s|)(\s|)/', '/(\s|)(\s|)/', '/(\s|)(\s|)/', '/(\s|)(\s|)/', '/(\s|)(\s|)/', '/(\s|)(\s|)/', '/(\s|)(\s|)/', '/(\s|)(\s|)/'); + return preg_replace($patterns, '', $content); +} + +// Google recaptcha +function isCaptcha($reCaptchaResponse) +{ + $url = "https://www.google.com/recaptcha/api/siteverify"; + $options = array( + "secret" => config("login.protect.private"), + "response" => $reCaptchaResponse, + "remoteip" => $_SERVER['REMOTE_ADDR'], + ); + $fileContent = @file_get_contents($url . "?" . http_build_query($options)); + if ($fileContent === false) { + return false; + } + $json = json_decode($fileContent, true); + if ($json == false) { + return false; + } + return ($json['success']); +} + +// Cloudflare Turnstile +function isTurnstile($turnstileResponse) +{ + $public = config("login.protect.public"); + $private = config("login.protect.private"); + $ip = $_SERVER['REMOTE_ADDR']; + + $url = 'https://challenges.cloudflare.com/turnstile/v0/siteverify'; + $data = array('secret' => $private, 'response' => $turnstileResponse, 'remoteip' => $ip); + + $query = http_build_query($data); + $options = array( + 'http' => array( + 'header' => "Content-Type: application/x-www-form-urlencoded\r\n". + "Content-Length: ".strlen($query)."\r\n". + "User-Agent:HTMLy/1.0\r\n", + 'method' => "POST", + 'content' => $query, + ) + ); + + $stream = stream_context_create($options); + $fileContent = file_get_contents($url, false, $stream); + + if ($fileContent === false) { + return false; + } + $json = json_decode($fileContent, true); + if ($json == false) { + return false; + } + return ($json['success']); +} + +// Get video ID +function get_video_id($url) +{ + if(empty($url)) { + return; + } + + $link = parse_url($url); + + if(!isset($link['host'])) { + return $url; + } + + if (stripos($link['host'], 'youtube.com') !== false || stripos($link['host'], 'youtu.be') !== false) { + preg_match('%(?:youtube(?:-nocookie)?\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i', $url, $match); + return $match[1]; + } elseif (stripos($link['host'], 'vimeo.com') !== false) { + preg_match('%^https?:\/\/(?:www\.|player\.)?vimeo.com\/(?:channels\/(?:\w+\/)?|groups\/([^\/]*)\/videos\/|album\/(\d+)\/video\/|video\/|)(\d+)(?:$|\/|\?)(?:[?]?.*)$%im', $url, $match); + return $match[3]; + } else { + return $url; + } +} + +// translate tag to i18n +function tag_i18n($tag) +{ + static $tags = array(); + + if (empty($tags)) { + $filename = "content/data/tags.lang"; + if (file_exists($filename)) { + $tags = unserialize(file_get_contents($filename)); + } + } + if (isset($tags[$tag])) { + return $tags[$tag]; + } + return $tag; +} + +// return html safe string +function safe_html($string) +{ + $string = htmlspecialchars($string, ENT_QUOTES); + $string = preg_replace('/\r\n|\r|\n/', ' ', $string); + $string = preg_replace('/\s\s+/', ' ', $string); + $string = ltrim(rtrim($string)); + return $string; +} + +// Replace href +function replace_href($string, $tag, $class, $url) +{ + + libxml_use_internal_errors(true); + + // Load the HTML in DOM + $doc = new DOMDocument(); + $doc->loadHTML('' . $string); + $output = ''; + // Then select all anchor tags + $all_anchor_tags = $doc->getElementsByTagName($tag); + foreach ($all_anchor_tags as $_tag) { + if ($_tag->getAttribute('class') == $class) { + // If match class get the href value + $old = $_tag->getAttribute('href'); + $new = $_tag->setAttribute('href', $url . mb_convert_encoding($old, 'UTF-8')); + } + } + + $output = preg_replace('~<(?:!DOCTYPE|/?(?:html|head|body))[^>]*>\s*~i', '', mb_convert_encoding($doc->saveHTML($doc->documentElement), 'UTF-8')); + return str_replace('', '', $output); + +} + +// Format the date +function format_date($date, $dateFormat = null) +{ + if (empty($dateFormat)) { + $dateFormat = config('date.format'); + } + if (extension_loaded('intl')) { + $format_map = array('s' => 'ss', 'i' => 'mm', 'H' => 'HH', 'G' => 'H', 'd' => 'dd', 'j' => 'd', 'D' => 'EE', 'l' => 'EEEE', 'm' => 'MM', 'M' => 'MMM', 'F' => 'MMMM', 'Y' => 'yyyy'); + $intlFormat = strtr($dateFormat, $format_map); + $formatter = new IntlDateFormatter(locale_language(), IntlDateFormatter::NONE, IntlDateFormatter::NONE, config('timezone'), IntlDateFormatter::GREGORIAN, $intlFormat); + return $formatter->format($date); + } else { + return date($dateFormat, $date); + } +} + +// Publish scheduled post +function publish_scheduled() +{ + $posts = get_scheduled_posts(); + if (!empty($posts)) { + foreach ($posts as $index => $v) { + $str = explode('_', $v['basename']); + $old = $v['dirname'] . '/' . $v['basename']; + $new = dirname($v['dirname']) . '/' . $v['basename']; + $t = str_replace('-', '', $str[0]); + $time = new DateTime($t); + $timestamp = $time->format("Y m d H:i:s"); + if (date('Y m d H:i:s') >= $timestamp) { + rename($old, $new); + rebuilt_cache('all'); + clear_cache(); + } + } + } +} + +// Insert toc +function insert_toc($id, $part_1 = null, $part_2 = null) +{ + $state = config('toc.state'); + if ($state !== 'open') { + $state = ''; + } + $label = config('toc.label'); + if (empty($label)) { + $label = 'Table of Contents'; + } + $style = config('toc.style'); + if ($style == 'default' || empty($style)) { + $style = ''; + } else { + $style = ''; + } + $load = << + document.addEventListener("DOMContentLoaded", function() { + if (document.getElementById('toc-wrapper.{$id}').parentNode.classList.contains('{$id}')) { + generateTOC('.{$id}'); + } else { + document.getElementById('toc-wrapper.{$id}').parentNode.classList.add('{$id}'); + generateTOC('.{$id}'); + } + }); + +EOF; + $result = $part_1 . '' . $part_2; + return $result; +} + +// Automatically add toc after x paragraph +function automatic_toc($content, $id) +{ + $pos = config('toc.position'); + $exp = explode('

        ', $content); + if (is_null($pos) || $pos > count($exp)){ + return $content; + } + array_splice($exp, $pos, 0, insert_toc($id) . '

        '); + $content = implode('

        ', $exp); + return $content; +} + +function generate_title($type = null, $object = null) +{ + if ($type == 'is_front') { + $format = config('home.title.format'); + if (empty($format)) { + $format = '%blog_title% - %blog_tagline%'; + } + $var_map = array('%blog_title%' => blog_title(), '%blog_tagline%' => blog_tagline(), '%blog_description%' => blog_description()); + $var = strtr($format, $var_map); + return strip_tags($var); + } elseif ($type == 'is_post') { + $format = config('post.title.format'); + if (empty($format)) { + $format = '%post_title% - %blog_title%'; + } + $var_map = array('%blog_title%' => blog_title(), '%blog_tagline%' => blog_tagline(), '%blog_description%' => blog_description(), '%post_title%' => $object->title, '%post_description%' => $object->description, '%post_category%' => $object->categoryTitle, '%post_tag%' => $object->tag, '%post_author%' => $object->authorName, '%post_type%' => ucfirst($object->type)); + $var = strtr($format, $var_map); + return strip_tags($var); + } elseif ($type == 'is_page' || $type == 'is_subpage') { + $format = config('page.title.format'); + if (empty($format)) { + $format = '%page_title% - %blog_title%'; + } + $var_map = array('%blog_title%' => blog_title(), '%blog_tagline%' => blog_tagline(), '%blog_description%' => blog_description(), '%page_title%' => $object->title, '%page_description%' => $object->description); + $var = strtr($format, $var_map); + return strip_tags($var); + } elseif ($type == 'is_profile') { + $format = config('profile.title.format'); + if (empty($format)) { + $format = '%author_name% - %blog_title%'; + } + $var_map = array('%blog_title%' => blog_title(), '%blog_tagline%' => blog_tagline(), '%blog_description%' => blog_description(), '%author_name%' => $object->title, '%author_description%' => $object->description); + $var = strtr($format, $var_map); + return strip_tags($var); + } elseif ($type == 'is_category') { + $format = config('category.title.format'); + if (empty($format)) { + $format = '%category_title% - %blog_title%'; + } + $var_map = array('%blog_title%' => blog_title(), '%blog_tagline%' => blog_tagline(), '%blog_description%' => blog_description(), '%category_title%' => $object->title, '%category_description%' => $object->description); + $var = strtr($format, $var_map); + return strip_tags($var); + } elseif ($type == 'is_tag') { + $format = config('tag.title.format'); + if (empty($format)) { + $format = '%tag_title% - %blog_title%'; + } + $var_map = array('%blog_title%' => blog_title(), '%blog_tagline%' => blog_tagline(), '%blog_description%' => blog_description(), '%tag_title%' => $object->title, '%tag_description%' => $object->description); + $var = strtr($format, $var_map); + return strip_tags($var); + } elseif ($type == 'is_archive') { + $format = config('archive.title.format'); + if (empty($format)) { + $format = '%archive_title% - %blog_title%'; + } + $var_map = array('%blog_title%' => blog_title(), '%blog_tagline%' => blog_tagline(), '%blog_description%' => blog_description(), '%archive_title%' => $object->title, '%archive_description%' => $object->description); + $var = strtr($format, $var_map); + return strip_tags($var); + } elseif ($type == 'is_search') { + $format = config('search.title.format'); + if (empty($format)) { + $format = '%search_title% - %blog_title%'; + } + $var_map = array('%blog_title%' => blog_title(), '%blog_tagline%' => blog_tagline(), '%blog_description%' => blog_description(), '%search_title%' => $object->title, '%search_description%' => $object->description); + $var = strtr($format, $var_map); + return strip_tags($var); + } elseif ($type == 'is_type') { + $format = config('type.title.format'); + if (empty($format)) { + $format = '%type_title% - %blog_title%'; + } + $var_map = array('%blog_title%' => blog_title(), '%blog_tagline%' => blog_tagline(), '%blog_description%' => blog_description(), '%type_title%' => $object->title, '%type_description%' => $object->description); + $var = strtr($format, $var_map); + return strip_tags($var); + } elseif ($type == 'is_blog') { + $format = config('blog.title.format'); + if (empty($format)) { + $format = 'Blog - %blog_title%'; + } + $var_map = array('%blog_title%' => blog_title(), '%blog_tagline%' => blog_tagline(), '%blog_description%' => blog_description()); + $var = strtr($format, $var_map); + return strip_tags($var); + } elseif ($type == 'is_default') { + $format = config('default.title.format'); + if (empty($format)) { + $format = '%page_title% - %blog_title%'; + } + $var_map = array('%blog_title%' => blog_title(), '%blog_tagline%' => blog_tagline(), '%blog_description%' => blog_description(), '%page_title%' => $object); + $var = strtr($format, $var_map); + return strip_tags($var); + } +} + +function generate_meta($type = null, $object = null) +{ + $tags = ''; + $defaultImg = config('default.image'); + if (empty($defaultImg)) { + $defaultImg = site_url() . 'system/resources/images/logo-big.png'; + } + $fbApp = config('fb.appid'); + $facebook = config('social.facebook'); + $twitter = config('social.twitter'); + if (is_null($object)) { + $tags .= '' . "\n"; + $tags .= '' . "\n"; + $tags .= '' . "\n"; + if ($type == 'is_blog') { + $tags .= '' . "\n"; + $tags .= '' . "\n"; + } else { + $tags .= '' . "\n"; + $tags .= '' . "\n"; + } + $tags .= '' . "\n"; + $tags .= '' . "\n"; + $tags .= '' . "\n"; + if(!empty($twitter)) { + $twitter = parse_url($twitter); + $tags .= '' . "\n"; + } + if (!empty($fbApp)) { + $tags .= '' . "\n"; + } + } else { + if(!empty($object->image)) { + $image = $object->image; + } else { + $image = get_image($object->body); + if(empty($image)) { + $image = $defaultImg; + } + } + $tags .= '' . "\n"; + $tags .= '' . "\n"; + $tags .= '' . "\n"; + $tags .= '' . "\n"; + if ($type == 'is_post') { + $tags .= '' . "\n"; + $tags .= '' . "\n"; + $tags .= '' . "\n"; + $tags .= '' . "\n"; + $tags .= '' . "\n"; + } + if ($type == 'is_page' || $type == 'is_subpage') { + $tags .= '' . "\n"; + } + if(!empty($facebook)) { + $tags .= '' . "\n"; + } + if(!empty($twitter)) { + $twitter = parse_url($twitter); + $tags .= '' . "\n"; + $tags .= '' . "\n"; + } + $tags .= '' . "\n"; + $tags .= '' . "\n"; + $tags .= '' . "\n"; + $tags .= '' . "\n"; + if (!empty($fbApp)) { + $tags .= '' . "\n"; + } + } + + return $tags; +} diff --git a/system/includes/opml.php b/system/includes/opml.php new file mode 100644 index 0000000..dd1acf2 --- /dev/null +++ b/system/includes/opml.php @@ -0,0 +1,44 @@ +data = $data; + $this->writer = new XMLWriter(); + $this->writer->openMemory(); + } + + public function render() + { + $this->writer->startDocument('1.0', 'UTF-8'); + $this->writer->startElement('opml'); + $this->writer->writeAttribute('version', '2.0'); + + // Header + $this->writer->startElement('head'); + foreach ($this->data['head'] as $key => $value) { + $this->writer->writeElement($key, $value); + } + $this->writer->writeElement('dateModified', date("D, d M Y H:i:s T")); + $this->writer->endElement(); + + // Body + $this->writer->startElement('body'); + foreach ($this->data['body'] as $outlines) { + $this->writer->startElement('outline'); + foreach ($outlines as $key => $value) { + $this->writer->writeAttribute($key, $value); + } + $this->writer->endElement(); + } + $this->writer->endElement(); + + $this->writer->endElement(); + $this->writer->endDocument(); + return $this->writer->outputMemory(); + } +} diff --git a/system/includes/session.php b/system/includes/session.php new file mode 100644 index 0000000..826294a --- /dev/null +++ b/system/includes/session.php @@ -0,0 +1,26 @@ + $samesite]); +} + +session_start(); + +function login() +{ + if (session_status() == PHP_SESSION_NONE) return false; + if (isset($_SESSION[site_url()]['user']) && !empty($_SESSION[site_url()]['user'])) { + return true; + } else { + return false; + } +} + +if (rtrim($_SERVER['REQUEST_URI'], '/') != site_path() . '/login-mfa') { + if (isset($_SESSION['mfa_pwd']) && isset($_SESSION['mfa_uid'])) { + unset($_SESSION['mfa_pwd']); + unset($_SESSION['mfa_uid']); + } +} diff --git a/system/resources/css/adminlte.min.css b/system/resources/css/adminlte.min.css new file mode 100644 index 0000000..b35c34d --- /dev/null +++ b/system/resources/css/adminlte.min.css @@ -0,0 +1,16 @@ +/*! + * AdminLTE v3.2.0 + * Core + pages + components + * Author: Colorlib + * Website: AdminLTE.io + * License: Open source - MIT + *//*! + * Bootstrap v4.6.1 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors + * Copyright 2011-2021 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:"Source Sans Pro",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:none}a:not([href]):not([class]){color:inherit;text-decoration:none}a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-family:inherit;font-weight:500;line-height:1.2;color:inherit}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;box-shadow:0 1px 2px rgba(0,0,0,.075);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem;box-shadow:inset 0 -.1rem 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;box-shadow:none}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:7.5px;padding-left:7.5px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-7.5px;margin-left:-7.5px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:7.5px;padding-left:7.5px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529;background-color:transparent}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#212529;border-color:#383f45}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#212529}.table-dark td,.table-dark th,.table-dark thead th{border-color:#383f45}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(2.25rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;box-shadow:inset 0 0 0 transparent;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:inset 0 0 0 transparent}.form-control::-webkit-input-placeholder{color:#939ba2;opacity:1}.form-control::-moz-placeholder{color:#939ba2;opacity:1}.form-control:-ms-input-placeholder{color:#939ba2;opacity:1}.form-control::-ms-input-placeholder{color:#939ba2;opacity:1}.form-control::placeholder{color:#939ba2;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{-webkit-appearance:none;-moz-appearance:none;appearance:none}select.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.8125rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(2.875rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.form-row>.col>.valid-tooltip,.form-row>[class*=col-]>.valid-tooltip{left:5px}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:2.25rem!important;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 0 rgba(40,167,69,.25)}.was-validated select.form-control:valid,select.form-control.is-valid{padding-right:3rem!important;background-position:right 1.5rem center}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:2.25rem;background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem)!important;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat,#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 0 rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 0 rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 0 rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.form-row>.col>.invalid-tooltip,.form-row>[class*=col-]>.invalid-tooltip{left:5px}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:2.25rem!important;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 0 rgba(220,53,69,.25)}.was-validated select.form-control:invalid,select.form-control.is-invalid{padding-right:3rem!important;background-position:right 1.5rem center}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:2.25rem;background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem)!important;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat,#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 0 rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 0 rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 0 rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:none}.btn.disabled,.btn:disabled{opacity:.65;box-shadow:none}.btn:not(:disabled):not(.disabled){cursor:pointer}.btn:not(:disabled):not(.disabled).active,.btn:not(:disabled):not(.disabled):active{box-shadow:none}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff;box-shadow:none}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#0069d9;border-color:#0062cc;box-shadow:0 0 0 0 rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d;box-shadow:none}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{color:#fff;background-color:#5a6268;border-color:#545b62;box-shadow:0 0 0 0 rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745;box-shadow:none}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#218838;border-color:#1e7e34;box-shadow:0 0 0 0 rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8;box-shadow:none}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#138496;border-color:#117a8b;box-shadow:0 0 0 0 rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(58,176,195,.5)}.btn-warning{color:#1f2d3d;background-color:#ffc107;border-color:#ffc107;box-shadow:none}.btn-warning:hover{color:#1f2d3d;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{color:#1f2d3d;background-color:#e0a800;border-color:#d39e00;box-shadow:0 0 0 0 rgba(221,171,15,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#1f2d3d;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#1f2d3d;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(221,171,15,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545;box-shadow:none}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c82333;border-color:#bd2130;box-shadow:0 0 0 0 rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(225,83,97,.5)}.btn-light{color:#1f2d3d;background-color:#f8f9fa;border-color:#f8f9fa;box-shadow:none}.btn-light:hover{color:#1f2d3d;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{color:#1f2d3d;background-color:#e2e6ea;border-color:#dae0e5;box-shadow:0 0 0 0 rgba(215,218,222,.5)}.btn-light.disabled,.btn-light:disabled{color:#1f2d3d;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#1f2d3d;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(215,218,222,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40;box-shadow:none}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{color:#fff;background-color:#23272b;border-color:#1d2124;box-shadow:0 0 0 0 rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 0 rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 0 rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 0 rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 0 rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#1f2d3d;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 0 rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#1f2d3d;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 0 rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#1f2d3d;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 0 rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#1f2d3d;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 0 rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:none}.btn-link.focus,.btn-link:focus{text-decoration:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .46rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem;box-shadow:0 .5rem 1rem rgba(0,0,0,.175)}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group.show .dropdown-toggle{box-shadow:none}.btn-group.show .dropdown-toggle.btn-link{box-shadow:none}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label,.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label::after,.input-group:not(.has-validation)>.custom-select:not(:last-child),.input-group:not(.has-validation)>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label,.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label::after,.input-group.has-validation>.custom-select:nth-last-child(n+3),.input-group.has-validation>.form-control:nth-last-child(n+3){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(2.875rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.8125rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.btn,.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.input-group-text,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.btn,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;z-index:1;display:block;min-height:1.5rem;padding-left:1.5rem;-webkit-print-color-adjust:exact;color-adjust:exact}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#007bff;background-color:#007bff;box-shadow:none}.custom-control-input:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff;box-shadow:none}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before,.custom-control-input[disabled]~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#dee2e6;border:#adb5bd solid 1px;box-shadow:inset 0 .25rem .25rem rgba(0,0,0,.1)}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:50%/50% 50% no-repeat}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#007bff;background-color:#007bff;box-shadow:none}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#dee2e6;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(2.25rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat;border:1px solid #ced4da;border-radius:.25rem;box-shadow:inset 0 1px 2px rgba(0,0,0,.075);-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.075)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.8125rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:75%}.custom-select-lg{height:calc(2.875rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:125%}.custom-file{position:relative;display:inline-block;width:100%;height:calc(2.25rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(2.25rem + 2px);margin:0;overflow:hidden;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:none}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(2.25rem + 2px);padding:.375rem .75rem;overflow:hidden;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;box-shadow:none}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:2.25rem;padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem;box-shadow:inset 0 .25rem .25rem rgba(0,0,0,.1)}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem;box-shadow:inset 0 .25rem .25rem rgba(0,0,0,.1)}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:0;margin-left:0;background-color:#007bff;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem;box-shadow:inset 0 .25rem .25rem rgba(0,0,0,.1)}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item,.nav-fill>.nav-link{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem .5rem}.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:.5rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:50%/100% 100% no-repeat}.navbar-nav-scroll{max-height:75vh;overflow-y:auto}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:1rem;padding-left:1rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:1rem;padding-left:1rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:1rem;padding-left:1rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:1rem;padding-left:1rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:1rem;padding-left:1rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:#fff}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.75);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba%28255, 255, 255, 0.75%29' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-dark .navbar-text{color:rgba(255,255,255,.75)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:0 solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 0);border-top-right-radius:calc(.25rem - 0)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 0);border-bottom-left-radius:calc(.25rem - 0)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:0 solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 0) calc(.25rem - 0) 0 0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:0 solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 0) calc(.25rem - 0)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem;border-radius:calc(.25rem - 0)}.card-img,.card-img-bottom,.card-img-top{-ms-flex-negative:0;flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 0);border-top-right-radius:calc(.25rem - 0)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 0);border-bottom-left-radius:calc(.25rem - 0)}.card-deck .card{margin-bottom:7.5px}@media (min-width:576px){.card-deck{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-7.5px;margin-left:-7.5px}.card-deck .card{-ms-flex:1 0 0%;flex:1 0 0%;margin-right:7.5px;margin-bottom:0;margin-left:7.5px}}.card-group>.card{margin-bottom:7.5px}@media (min-width:576px){.card-group{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion{overflow-anchor:none}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:0}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#1f2d3d;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#1f2d3d;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#1f2d3d;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#1f2d3d;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;z-index:2;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;line-height:0;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem;box-shadow:inset 0 .1rem .1rem rgba(0,0,0,.1)}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:1s linear infinite progress-bar-stripes;animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0}a.close.disabled{pointer-events:none}.toast{-ms-flex-preferred-size:350px;flex-basis:350px;max-width:350px;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);height:-webkit-min-content;height:-moz-min-content;height:min-content;content:""}.modal-dialog-centered.modal-dialog-scrollable{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;box-shadow:0 .25rem .5rem rgba(0,0,0,.5);outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #e9ecef;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #e9ecef;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem);height:-webkit-min-content;height:-moz-min-content;height:min-content}.modal-content{box-shadow:0 .5rem 1rem rgba(0,0,0,.5)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;box-shadow:0 .25rem .5rem rgba(0,0,0,.2)}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow::before,.bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow::after,.bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow::before,.bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow::after,.bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow::before,.bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow::after,.bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow::before,.bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow::after,.bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;color:inherit;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease;transition:transform .6s ease;transition:transform .6s ease,-webkit-transform .6s ease}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:.75s linear infinite spinner-border;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:.75s linear infinite spinner-grow;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{-webkit-animation-duration:1.5s;animation-duration:1.5s}}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;word-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@-webkit-keyframes fadeOut{from{opacity:1}to{opacity:0}}@keyframes fadeOut{from{opacity:1}to{opacity:0}}@-webkit-keyframes shake{0%{-webkit-transform:translate(2px,1px) rotate(0);transform:translate(2px,1px) rotate(0)}10%{-webkit-transform:translate(-1px,-2px) rotate(-2deg);transform:translate(-1px,-2px) rotate(-2deg)}20%{-webkit-transform:translate(-3px,0) rotate(3deg);transform:translate(-3px,0) rotate(3deg)}30%{-webkit-transform:translate(0,2px) rotate(0);transform:translate(0,2px) rotate(0)}40%{-webkit-transform:translate(1px,-1px) rotate(1deg);transform:translate(1px,-1px) rotate(1deg)}50%{-webkit-transform:translate(-1px,2px) rotate(-1deg);transform:translate(-1px,2px) rotate(-1deg)}60%{-webkit-transform:translate(-3px,1px) rotate(0);transform:translate(-3px,1px) rotate(0)}70%{-webkit-transform:translate(2px,1px) rotate(-2deg);transform:translate(2px,1px) rotate(-2deg)}80%{-webkit-transform:translate(-1px,-1px) rotate(4deg);transform:translate(-1px,-1px) rotate(4deg)}90%{-webkit-transform:translate(2px,2px) rotate(0);transform:translate(2px,2px) rotate(0)}100%{-webkit-transform:translate(1px,-2px) rotate(-1deg);transform:translate(1px,-2px) rotate(-1deg)}}@keyframes shake{0%{-webkit-transform:translate(2px,1px) rotate(0);transform:translate(2px,1px) rotate(0)}10%{-webkit-transform:translate(-1px,-2px) rotate(-2deg);transform:translate(-1px,-2px) rotate(-2deg)}20%{-webkit-transform:translate(-3px,0) rotate(3deg);transform:translate(-3px,0) rotate(3deg)}30%{-webkit-transform:translate(0,2px) rotate(0);transform:translate(0,2px) rotate(0)}40%{-webkit-transform:translate(1px,-1px) rotate(1deg);transform:translate(1px,-1px) rotate(1deg)}50%{-webkit-transform:translate(-1px,2px) rotate(-1deg);transform:translate(-1px,2px) rotate(-1deg)}60%{-webkit-transform:translate(-3px,1px) rotate(0);transform:translate(-3px,1px) rotate(0)}70%{-webkit-transform:translate(2px,1px) rotate(-2deg);transform:translate(2px,1px) rotate(-2deg)}80%{-webkit-transform:translate(-1px,-1px) rotate(4deg);transform:translate(-1px,-1px) rotate(4deg)}90%{-webkit-transform:translate(2px,2px) rotate(0);transform:translate(2px,2px) rotate(0)}100%{-webkit-transform:translate(1px,-2px) rotate(-1deg);transform:translate(1px,-2px) rotate(-1deg)}}@-webkit-keyframes wobble{0%{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}100%{-webkit-transform:none;transform:none}}@keyframes wobble{0%{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}100%{-webkit-transform:none;transform:none}}.dark-mode :root{--lightblue:#86bad8;--navy:#002c59;--olive:#74c8a3;--lime:#67ffa9;--fuchsia:#f672d8;--maroon:#ed6c9b;--blue:#3f6791;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#e74c3c;--orange:#fd7e14;--yellow:#f39c12;--green:#00bc8c;--teal:#20c997;--cyan:#3498db;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#3f6791;--secondary:#6c757d;--success:#00bc8c;--info:#3498db;--warning:#f39c12;--danger:#e74c3c;--light:#f8f9fa;--dark:#343a40}.animation__shake{-webkit-animation:shake 1.5s;animation:shake 1.5s}.animation__wobble{-webkit-animation:wobble 1.5s;animation:wobble 1.5s}.preloader{display:-ms-flexbox;display:flex;background-color:#f4f6f9;height:100vh;width:100%;transition:height .2s linear;position:fixed;left:0;top:0;z-index:9999}.dark-mode .preloader{background-color:#454d55!important;color:#fff}html.scroll-smooth{scroll-behavior:smooth}.wrapper,body,html{min-height:100%}.wrapper{position:relative}.wrapper .content-wrapper{min-height:calc(100vh - calc(3.5rem + 1px) - calc(3.5rem + 1px))}.layout-boxed .wrapper{box-shadow:0 0 10 rgba(0,0,0,.3)}.layout-boxed .wrapper,.layout-boxed .wrapper::before{margin:0 auto;max-width:1250px;overflow:hidden}.layout-boxed .wrapper .main-sidebar{left:inherit}@supports not (-webkit-touch-callout:none){.layout-fixed .wrapper .sidebar{height:calc(100vh - (3.5rem + 1px))}.layout-fixed.text-sm .wrapper .sidebar{height:calc(100vh - (2.93725rem + 1px))}}.layout-navbar-fixed.layout-fixed .wrapper .control-sidebar{top:calc(3.5rem + 1px)}.layout-navbar-fixed.layout-fixed .wrapper .main-header.text-sm~.control-sidebar{top:calc(2.93725rem + 1px)}.layout-navbar-fixed.layout-fixed .wrapper .sidebar{margin-top:calc(3.5rem + 1px)}.layout-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm~.sidebar{margin-top:calc(2.93725rem + 1px)}.layout-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar{top:calc(2.93725rem + 1px)}.layout-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar{margin-top:calc(2.93725rem + 1px)}.layout-navbar-fixed.sidebar-mini-md.sidebar-collapse .wrapper .brand-link,.layout-navbar-fixed.sidebar-mini-xs.sidebar-collapse .wrapper .brand-link,.layout-navbar-fixed.sidebar-mini.sidebar-collapse .wrapper .brand-link{height:calc(3.5rem + 1px);width:4.6rem}.layout-navbar-fixed.sidebar-mini-md.sidebar-collapse .wrapper .brand-link.text-sm,.layout-navbar-fixed.sidebar-mini-xs.sidebar-collapse .wrapper .brand-link.text-sm,.layout-navbar-fixed.sidebar-mini.sidebar-collapse .wrapper .brand-link.text-sm{height:calc(2.93725rem + 1px)}.layout-navbar-fixed.sidebar-mini-md.sidebar-collapse.text-sm .wrapper .brand-link,.layout-navbar-fixed.sidebar-mini-xs.sidebar-collapse.text-sm .wrapper .brand-link,.layout-navbar-fixed.sidebar-mini.sidebar-collapse.text-sm .wrapper .brand-link{height:calc(2.93725rem + 1px)}body:not(.layout-fixed).layout-navbar-fixed.text-sm .wrapper .main-sidebar{margin-top:calc(calc(2.93725rem + 1px)/ -1)}body:not(.layout-fixed).layout-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar{margin-top:calc(2.93725rem + 1px)}.layout-navbar-fixed .wrapper .control-sidebar{top:0}.layout-navbar-fixed .wrapper a.anchor{display:block;position:relative;top:calc((3.5rem + 1px + (.5rem * 2))/ -1)}.layout-navbar-fixed .wrapper .main-sidebar:hover .brand-link{transition:width .3s ease-in-out;width:250px}.layout-navbar-fixed .wrapper .brand-link{overflow:hidden;position:fixed;top:0;transition:width .3s ease-in-out;width:250px;z-index:1035}.layout-navbar-fixed .wrapper .sidebar-dark-primary .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .wrapper .sidebar-light-primary .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .wrapper .sidebar-light-secondary .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .wrapper .sidebar-dark-success .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .wrapper .sidebar-light-success .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .wrapper .sidebar-dark-info .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .wrapper .sidebar-light-info .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .wrapper .sidebar-dark-warning .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .wrapper .sidebar-light-warning .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .wrapper .sidebar-dark-danger .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .wrapper .sidebar-light-danger .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .wrapper .sidebar-dark-light .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .wrapper .sidebar-light-light .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .wrapper .sidebar-dark-dark .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .wrapper .sidebar-light-dark .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .wrapper .sidebar-dark-lightblue .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .wrapper .sidebar-light-lightblue .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .wrapper .sidebar-dark-navy .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .wrapper .sidebar-light-navy .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .wrapper .sidebar-dark-olive .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .wrapper .sidebar-light-olive .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .wrapper .sidebar-dark-lime .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .wrapper .sidebar-light-lime .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .wrapper .sidebar-dark-fuchsia .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .wrapper .sidebar-light-fuchsia .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .wrapper .sidebar-dark-maroon .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .wrapper .sidebar-light-maroon .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .wrapper .sidebar-dark-blue .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .wrapper .sidebar-light-blue .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .wrapper .sidebar-dark-indigo .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .wrapper .sidebar-light-indigo .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .wrapper .sidebar-dark-purple .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .wrapper .sidebar-light-purple .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .wrapper .sidebar-dark-pink .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .wrapper .sidebar-light-pink .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .wrapper .sidebar-dark-red .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .wrapper .sidebar-light-red .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .wrapper .sidebar-dark-orange .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .wrapper .sidebar-light-orange .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .wrapper .sidebar-dark-yellow .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .wrapper .sidebar-light-yellow .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .wrapper .sidebar-dark-green .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .wrapper .sidebar-light-green .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .wrapper .sidebar-dark-teal .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .wrapper .sidebar-light-teal .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .wrapper .sidebar-dark-cyan .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .wrapper .sidebar-light-cyan .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .wrapper .sidebar-dark-white .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .wrapper .sidebar-light-white .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .wrapper .sidebar-dark-gray .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .wrapper .sidebar-light-gray .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .wrapper .sidebar-dark-gray-dark .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .wrapper .sidebar-light-gray-dark .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .wrapper .main-header.border-bottom-0~.content-wrapper{margin-top:3.5rem}.layout-navbar-fixed .wrapper .content-wrapper{margin-top:calc(3.5rem + 1px)}.layout-navbar-fixed .wrapper .main-header.text-sm~.content-wrapper{margin-top:calc(2.93725rem + 1px)}.layout-navbar-fixed .wrapper .main-header{left:0;position:fixed;right:0;top:0;z-index:1033}.layout-navbar-fixed.text-sm .wrapper .content-wrapper{margin-top:calc(2.93725rem + 1px)}.layout-navbar-not-fixed .wrapper .brand-link{position:static}.layout-navbar-not-fixed .wrapper .content-wrapper,.layout-navbar-not-fixed .wrapper .sidebar{margin-top:0}.layout-navbar-not-fixed .wrapper .main-header{position:static}.layout-navbar-not-fixed.layout-fixed .wrapper .sidebar{margin-top:0}.layout-navbar-fixed.layout-fixed .wrapper .control-sidebar{top:calc(3.5rem + 1px)}.layout-navbar-fixed.layout-fixed .wrapper .main-header.text-sm~.control-sidebar,.text-sm .layout-navbar-fixed.layout-fixed .wrapper .main-header~.control-sidebar{top:calc(2.93725rem + 1px)}.layout-navbar-fixed.layout-fixed .wrapper .sidebar{margin-top:calc(3.5rem + 1px)}.layout-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm~.sidebar,.text-sm .layout-navbar-fixed.layout-fixed .wrapper .brand-link~.sidebar{margin-top:calc(2.93725rem + 1px)}.layout-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar{top:calc(2.93725rem + 1px)}.layout-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar{margin-top:calc(2.93725rem + 1px)}.layout-navbar-fixed .wrapper .control-sidebar{top:0}.layout-navbar-fixed .wrapper a.anchor{display:block;position:relative;top:calc((3.5rem + 1px + (.5rem * 2))/ -1)}.layout-navbar-fixed .wrapper.sidebar-collapse .brand-link{height:calc(3.5rem + 1px);transition:width .3s ease-in-out;width:4.6rem}.layout-navbar-fixed .wrapper.sidebar-collapse .brand-link.text-sm,.text-sm .layout-navbar-fixed .wrapper.sidebar-collapse .brand-link{height:calc(2.93725rem + 1px)}.layout-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link{transition:width .3s ease-in-out;width:250px}.layout-navbar-fixed .wrapper .brand-link{overflow:hidden;position:fixed;top:0;transition:width .3s ease-in-out;width:250px;z-index:1035}.layout-navbar-fixed .wrapper .content-wrapper{margin-top:calc(3.5rem + 1px)}.layout-navbar-fixed .wrapper .main-header.text-sm~.content-wrapper,.text-sm .layout-navbar-fixed .wrapper .main-header~.content-wrapper{margin-top:calc(2.93725rem + 1px)}.layout-navbar-fixed .wrapper .main-header{left:0;position:fixed;right:0;top:0;z-index:1037}.layout-navbar-fixed.text-sm .wrapper .content-wrapper{margin-top:calc(2.93725rem + 1px)}body:not(.layout-fixed).layout-navbar-fixed.text-sm .wrapper .main-sidebar{margin-top:calc(calc(2.93725rem + 1px)/ -1)}body:not(.layout-fixed).layout-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar{margin-top:calc(2.93725rem + 1px)}.layout-navbar-not-fixed .wrapper .brand-link{position:static}.layout-navbar-not-fixed .wrapper .content-wrapper,.layout-navbar-not-fixed .wrapper .sidebar{margin-top:0}.layout-navbar-not-fixed .wrapper .main-header{position:static}.layout-navbar-not-fixed.layout-fixed .wrapper .sidebar{margin-top:0}@media (min-width:576px){.layout-sm-navbar-fixed.layout-fixed .wrapper .control-sidebar{top:calc(3.5rem + 1px)}.layout-sm-navbar-fixed.layout-fixed .wrapper .main-header.text-sm~.control-sidebar,.text-sm .layout-sm-navbar-fixed.layout-fixed .wrapper .main-header~.control-sidebar{top:calc(2.93725rem + 1px)}.layout-sm-navbar-fixed.layout-fixed .wrapper .sidebar{margin-top:calc(3.5rem + 1px)}.layout-sm-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm~.sidebar,.text-sm .layout-sm-navbar-fixed.layout-fixed .wrapper .brand-link~.sidebar{margin-top:calc(2.93725rem + 1px)}.layout-sm-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar{top:calc(2.93725rem + 1px)}.layout-sm-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar{margin-top:calc(2.93725rem + 1px)}.layout-sm-navbar-fixed .wrapper .control-sidebar{top:0}.layout-sm-navbar-fixed .wrapper a.anchor{display:block;position:relative;top:calc((3.5rem + 1px + (.5rem * 2))/ -1)}.layout-sm-navbar-fixed .wrapper.sidebar-collapse .brand-link{height:calc(3.5rem + 1px);transition:width .3s ease-in-out;width:4.6rem}.layout-sm-navbar-fixed .wrapper.sidebar-collapse .brand-link.text-sm,.text-sm .layout-sm-navbar-fixed .wrapper.sidebar-collapse .brand-link{height:calc(2.93725rem + 1px)}.layout-sm-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link{transition:width .3s ease-in-out;width:250px}.layout-sm-navbar-fixed .wrapper .brand-link{overflow:hidden;position:fixed;top:0;transition:width .3s ease-in-out;width:250px;z-index:1035}.layout-sm-navbar-fixed .wrapper .content-wrapper{margin-top:calc(3.5rem + 1px)}.layout-sm-navbar-fixed .wrapper .main-header.text-sm~.content-wrapper,.text-sm .layout-sm-navbar-fixed .wrapper .main-header~.content-wrapper{margin-top:calc(2.93725rem + 1px)}.layout-sm-navbar-fixed .wrapper .main-header{left:0;position:fixed;right:0;top:0;z-index:1037}.layout-sm-navbar-fixed.text-sm .wrapper .content-wrapper{margin-top:calc(2.93725rem + 1px)}body:not(.layout-fixed).layout-sm-navbar-fixed.text-sm .wrapper .main-sidebar{margin-top:calc(calc(2.93725rem + 1px)/ -1)}body:not(.layout-fixed).layout-sm-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar{margin-top:calc(2.93725rem + 1px)}.layout-sm-navbar-not-fixed .wrapper .brand-link{position:static}.layout-sm-navbar-not-fixed .wrapper .content-wrapper,.layout-sm-navbar-not-fixed .wrapper .sidebar{margin-top:0}.layout-sm-navbar-not-fixed .wrapper .main-header{position:static}.layout-sm-navbar-not-fixed.layout-fixed .wrapper .sidebar{margin-top:0}}@media (min-width:768px){.layout-md-navbar-fixed.layout-fixed .wrapper .control-sidebar{top:calc(3.5rem + 1px)}.layout-md-navbar-fixed.layout-fixed .wrapper .main-header.text-sm~.control-sidebar,.text-sm .layout-md-navbar-fixed.layout-fixed .wrapper .main-header~.control-sidebar{top:calc(2.93725rem + 1px)}.layout-md-navbar-fixed.layout-fixed .wrapper .sidebar{margin-top:calc(3.5rem + 1px)}.layout-md-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm~.sidebar,.text-sm .layout-md-navbar-fixed.layout-fixed .wrapper .brand-link~.sidebar{margin-top:calc(2.93725rem + 1px)}.layout-md-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar{top:calc(2.93725rem + 1px)}.layout-md-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar{margin-top:calc(2.93725rem + 1px)}.layout-md-navbar-fixed .wrapper .control-sidebar{top:0}.layout-md-navbar-fixed .wrapper a.anchor{display:block;position:relative;top:calc((3.5rem + 1px + (.5rem * 2))/ -1)}.layout-md-navbar-fixed .wrapper.sidebar-collapse .brand-link{height:calc(3.5rem + 1px);transition:width .3s ease-in-out;width:4.6rem}.layout-md-navbar-fixed .wrapper.sidebar-collapse .brand-link.text-sm,.text-sm .layout-md-navbar-fixed .wrapper.sidebar-collapse .brand-link{height:calc(2.93725rem + 1px)}.layout-md-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link{transition:width .3s ease-in-out;width:250px}.layout-md-navbar-fixed .wrapper .brand-link{overflow:hidden;position:fixed;top:0;transition:width .3s ease-in-out;width:250px;z-index:1035}.layout-md-navbar-fixed .wrapper .content-wrapper{margin-top:calc(3.5rem + 1px)}.layout-md-navbar-fixed .wrapper .main-header.text-sm~.content-wrapper,.text-sm .layout-md-navbar-fixed .wrapper .main-header~.content-wrapper{margin-top:calc(2.93725rem + 1px)}.layout-md-navbar-fixed .wrapper .main-header{left:0;position:fixed;right:0;top:0;z-index:1037}.layout-md-navbar-fixed.text-sm .wrapper .content-wrapper{margin-top:calc(2.93725rem + 1px)}body:not(.layout-fixed).layout-md-navbar-fixed.text-sm .wrapper .main-sidebar{margin-top:calc(calc(2.93725rem + 1px)/ -1)}body:not(.layout-fixed).layout-md-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar{margin-top:calc(2.93725rem + 1px)}.layout-md-navbar-not-fixed .wrapper .brand-link{position:static}.layout-md-navbar-not-fixed .wrapper .content-wrapper,.layout-md-navbar-not-fixed .wrapper .sidebar{margin-top:0}.layout-md-navbar-not-fixed .wrapper .main-header{position:static}.layout-md-navbar-not-fixed.layout-fixed .wrapper .sidebar{margin-top:0}}@media (min-width:992px){.layout-lg-navbar-fixed.layout-fixed .wrapper .control-sidebar{top:calc(3.5rem + 1px)}.layout-lg-navbar-fixed.layout-fixed .wrapper .main-header.text-sm~.control-sidebar,.text-sm .layout-lg-navbar-fixed.layout-fixed .wrapper .main-header~.control-sidebar{top:calc(2.93725rem + 1px)}.layout-lg-navbar-fixed.layout-fixed .wrapper .sidebar{margin-top:calc(3.5rem + 1px)}.layout-lg-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm~.sidebar,.text-sm .layout-lg-navbar-fixed.layout-fixed .wrapper .brand-link~.sidebar{margin-top:calc(2.93725rem + 1px)}.layout-lg-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar{top:calc(2.93725rem + 1px)}.layout-lg-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar{margin-top:calc(2.93725rem + 1px)}.layout-lg-navbar-fixed .wrapper .control-sidebar{top:0}.layout-lg-navbar-fixed .wrapper a.anchor{display:block;position:relative;top:calc((3.5rem + 1px + (.5rem * 2))/ -1)}.layout-lg-navbar-fixed .wrapper.sidebar-collapse .brand-link{height:calc(3.5rem + 1px);transition:width .3s ease-in-out;width:4.6rem}.layout-lg-navbar-fixed .wrapper.sidebar-collapse .brand-link.text-sm,.text-sm .layout-lg-navbar-fixed .wrapper.sidebar-collapse .brand-link{height:calc(2.93725rem + 1px)}.layout-lg-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link{transition:width .3s ease-in-out;width:250px}.layout-lg-navbar-fixed .wrapper .brand-link{overflow:hidden;position:fixed;top:0;transition:width .3s ease-in-out;width:250px;z-index:1035}.layout-lg-navbar-fixed .wrapper .content-wrapper{margin-top:calc(3.5rem + 1px)}.layout-lg-navbar-fixed .wrapper .main-header.text-sm~.content-wrapper,.text-sm .layout-lg-navbar-fixed .wrapper .main-header~.content-wrapper{margin-top:calc(2.93725rem + 1px)}.layout-lg-navbar-fixed .wrapper .main-header{left:0;position:fixed;right:0;top:0;z-index:1037}.layout-lg-navbar-fixed.text-sm .wrapper .content-wrapper{margin-top:calc(2.93725rem + 1px)}body:not(.layout-fixed).layout-lg-navbar-fixed.text-sm .wrapper .main-sidebar{margin-top:calc(calc(2.93725rem + 1px)/ -1)}body:not(.layout-fixed).layout-lg-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar{margin-top:calc(2.93725rem + 1px)}.layout-lg-navbar-not-fixed .wrapper .brand-link{position:static}.layout-lg-navbar-not-fixed .wrapper .content-wrapper,.layout-lg-navbar-not-fixed .wrapper .sidebar{margin-top:0}.layout-lg-navbar-not-fixed .wrapper .main-header{position:static}.layout-lg-navbar-not-fixed.layout-fixed .wrapper .sidebar{margin-top:0}}@media (min-width:1200px){.layout-xl-navbar-fixed.layout-fixed .wrapper .control-sidebar{top:calc(3.5rem + 1px)}.layout-xl-navbar-fixed.layout-fixed .wrapper .main-header.text-sm~.control-sidebar,.text-sm .layout-xl-navbar-fixed.layout-fixed .wrapper .main-header~.control-sidebar{top:calc(2.93725rem + 1px)}.layout-xl-navbar-fixed.layout-fixed .wrapper .sidebar{margin-top:calc(3.5rem + 1px)}.layout-xl-navbar-fixed.layout-fixed .wrapper .brand-link.text-sm~.sidebar,.text-sm .layout-xl-navbar-fixed.layout-fixed .wrapper .brand-link~.sidebar{margin-top:calc(2.93725rem + 1px)}.layout-xl-navbar-fixed.layout-fixed.text-sm .wrapper .control-sidebar{top:calc(2.93725rem + 1px)}.layout-xl-navbar-fixed.layout-fixed.text-sm .wrapper .sidebar{margin-top:calc(2.93725rem + 1px)}.layout-xl-navbar-fixed .wrapper .control-sidebar{top:0}.layout-xl-navbar-fixed .wrapper a.anchor{display:block;position:relative;top:calc((3.5rem + 1px + (.5rem * 2))/ -1)}.layout-xl-navbar-fixed .wrapper.sidebar-collapse .brand-link{height:calc(3.5rem + 1px);transition:width .3s ease-in-out;width:4.6rem}.layout-xl-navbar-fixed .wrapper.sidebar-collapse .brand-link.text-sm,.text-sm .layout-xl-navbar-fixed .wrapper.sidebar-collapse .brand-link{height:calc(2.93725rem + 1px)}.layout-xl-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link{transition:width .3s ease-in-out;width:250px}.layout-xl-navbar-fixed .wrapper .brand-link{overflow:hidden;position:fixed;top:0;transition:width .3s ease-in-out;width:250px;z-index:1035}.layout-xl-navbar-fixed .wrapper .content-wrapper{margin-top:calc(3.5rem + 1px)}.layout-xl-navbar-fixed .wrapper .main-header.text-sm~.content-wrapper,.text-sm .layout-xl-navbar-fixed .wrapper .main-header~.content-wrapper{margin-top:calc(2.93725rem + 1px)}.layout-xl-navbar-fixed .wrapper .main-header{left:0;position:fixed;right:0;top:0;z-index:1037}.layout-xl-navbar-fixed.text-sm .wrapper .content-wrapper{margin-top:calc(2.93725rem + 1px)}body:not(.layout-fixed).layout-xl-navbar-fixed.text-sm .wrapper .main-sidebar{margin-top:calc(calc(2.93725rem + 1px)/ -1)}body:not(.layout-fixed).layout-xl-navbar-fixed.text-sm .wrapper .main-sidebar .sidebar{margin-top:calc(2.93725rem + 1px)}.layout-xl-navbar-not-fixed .wrapper .brand-link{position:static}.layout-xl-navbar-not-fixed .wrapper .content-wrapper,.layout-xl-navbar-not-fixed .wrapper .sidebar{margin-top:0}.layout-xl-navbar-not-fixed .wrapper .main-header{position:static}.layout-xl-navbar-not-fixed.layout-fixed .wrapper .sidebar{margin-top:0}}.layout-footer-fixed .wrapper .control-sidebar{bottom:0}.layout-footer-fixed .wrapper .main-footer{bottom:0;left:0;position:fixed;right:0;z-index:1032}.layout-footer-not-fixed .wrapper .main-footer{position:static}.layout-footer-not-fixed .wrapper .content-wrapper{margin-bottom:0}.layout-footer-fixed .wrapper .control-sidebar{bottom:0}.layout-footer-fixed .wrapper .main-footer{bottom:0;left:0;position:fixed;right:0;z-index:1032}.layout-footer-fixed .wrapper .content-wrapper{padding-bottom:calc(3.5rem + 1px)}.layout-footer-not-fixed .wrapper .main-footer{position:static}@media (min-width:576px){.layout-sm-footer-fixed .wrapper .control-sidebar{bottom:0}.layout-sm-footer-fixed .wrapper .main-footer{bottom:0;left:0;position:fixed;right:0;z-index:1032}.layout-sm-footer-fixed .wrapper .content-wrapper{padding-bottom:calc(3.5rem + 1px)}.layout-sm-footer-not-fixed .wrapper .main-footer{position:static}}@media (min-width:768px){.layout-md-footer-fixed .wrapper .control-sidebar{bottom:0}.layout-md-footer-fixed .wrapper .main-footer{bottom:0;left:0;position:fixed;right:0;z-index:1032}.layout-md-footer-fixed .wrapper .content-wrapper{padding-bottom:calc(3.5rem + 1px)}.layout-md-footer-not-fixed .wrapper .main-footer{position:static}}@media (min-width:992px){.layout-lg-footer-fixed .wrapper .control-sidebar{bottom:0}.layout-lg-footer-fixed .wrapper .main-footer{bottom:0;left:0;position:fixed;right:0;z-index:1032}.layout-lg-footer-fixed .wrapper .content-wrapper{padding-bottom:calc(3.5rem + 1px)}.layout-lg-footer-not-fixed .wrapper .main-footer{position:static}}@media (min-width:1200px){.layout-xl-footer-fixed .wrapper .control-sidebar{bottom:0}.layout-xl-footer-fixed .wrapper .main-footer{bottom:0;left:0;position:fixed;right:0;z-index:1032}.layout-xl-footer-fixed .wrapper .content-wrapper{padding-bottom:calc(3.5rem + 1px)}.layout-xl-footer-not-fixed .wrapper .main-footer{position:static}}.layout-top-nav .wrapper{margin-left:0}.layout-top-nav .wrapper .main-header .brand-image{margin-top:-.5rem;margin-right:.2rem;height:33px}.layout-top-nav .wrapper .main-sidebar{bottom:inherit;height:inherit}.layout-top-nav .wrapper .content-wrapper,.layout-top-nav .wrapper .main-footer,.layout-top-nav .wrapper .main-header{margin-left:0}body.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .content-wrapper,body.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .content-wrapper::before,body.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .main-footer,body.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .main-footer::before,body.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .main-header,body.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) .main-header::before{margin-left:0}@media (min-width:768px){body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .content-wrapper,body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-footer,body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-header{transition:margin-left .3s ease-in-out;margin-left:250px}}@media (min-width:768px) and (prefers-reduced-motion:reduce){body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .content-wrapper,body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-footer,body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-header{transition:none}}@media (min-width:768px){.sidebar-collapse body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .content-wrapper,.sidebar-collapse body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-footer,.sidebar-collapse body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-header{margin-left:0}}@media (max-width:991.98px){body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .content-wrapper,body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-footer,body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-header{margin-left:0}}@media (min-width:768px){.sidebar-mini-md .content-wrapper,.sidebar-mini-md .main-footer,.sidebar-mini-md .main-header{transition:margin-left .3s ease-in-out;margin-left:250px}}@media (min-width:768px) and (prefers-reduced-motion:reduce){.sidebar-mini-md .content-wrapper,.sidebar-mini-md .main-footer,.sidebar-mini-md .main-header{transition:none}}@media (min-width:768px){.sidebar-collapse .sidebar-mini-md .content-wrapper,.sidebar-collapse .sidebar-mini-md .main-footer,.sidebar-collapse .sidebar-mini-md .main-header{margin-left:4.6rem}}@media (max-width:991.98px){.sidebar-mini-md .content-wrapper,.sidebar-mini-md .main-footer,.sidebar-mini-md .main-header{margin-left:4.6rem}}@media (max-width:767.98px){.sidebar-mini-md .content-wrapper,.sidebar-mini-md .main-footer,.sidebar-mini-md .main-header{margin-left:0}}@media (min-width:768px){.sidebar-mini-xs .content-wrapper,.sidebar-mini-xs .main-footer,.sidebar-mini-xs .main-header{transition:margin-left .3s ease-in-out;margin-left:250px}}@media (min-width:768px) and (prefers-reduced-motion:reduce){.sidebar-mini-xs .content-wrapper,.sidebar-mini-xs .main-footer,.sidebar-mini-xs .main-header{transition:none}}@media (min-width:768px){.sidebar-collapse .sidebar-mini-xs .content-wrapper,.sidebar-collapse .sidebar-mini-xs .main-footer,.sidebar-collapse .sidebar-mini-xs .main-header{margin-left:4.6rem}}@media (max-width:991.98px){.sidebar-mini-xs .content-wrapper,.sidebar-mini-xs .main-footer,.sidebar-mini-xs .main-header{margin-left:4.6rem}}.content-wrapper{background-color:#f4f6f9}.content-wrapper>.content{padding:0 .5rem}.main-sidebar,.main-sidebar::before{transition:margin-left .3s ease-in-out,width .3s ease-in-out;width:250px}@media (prefers-reduced-motion:reduce){.main-sidebar,.main-sidebar::before{transition:none}}.sidebar-collapse:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .main-sidebar,.sidebar-collapse:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .main-sidebar::before{box-shadow:none!important}.sidebar-collapse .main-sidebar,.sidebar-collapse .main-sidebar::before{margin-left:-250px}.sidebar-collapse .main-sidebar .nav-sidebar.nav-child-indent .nav-treeview{padding:0}@media (max-width:767.98px){.main-sidebar,.main-sidebar::before{box-shadow:none!important;margin-left:-250px}.sidebar-open .main-sidebar,.sidebar-open .main-sidebar::before{margin-left:0}}body:not(.layout-fixed) .main-sidebar{height:inherit;min-height:100%;position:absolute;top:0}body:not(.layout-fixed) .main-sidebar .sidebar{overflow-y:auto}.layout-fixed .brand-link{width:250px}.layout-fixed .main-sidebar{bottom:0;float:none;left:0;position:fixed;top:0}.layout-fixed .control-sidebar{bottom:0;float:none;position:fixed;top:0}.layout-fixed .control-sidebar .control-sidebar-content{height:calc(100vh - calc(3.5rem + 1px));overflow-y:auto;scrollbar-width:thin;scrollbar-color:#a9a9a9 transparent}.layout-fixed .control-sidebar .control-sidebar-content::-webkit-scrollbar{width:.5rem;height:.5rem}.layout-fixed .control-sidebar .control-sidebar-content::-webkit-scrollbar-thumb{background-color:#a9a9a9}.layout-fixed .control-sidebar .control-sidebar-content::-webkit-scrollbar-track{background-color:transparent}.layout-fixed .control-sidebar .control-sidebar-content::-webkit-scrollbar-corner{background-color:transparent}@supports (-webkit-touch-callout:none){.layout-fixed .main-sidebar{height:inherit}}.main-footer{background-color:#fff;border-top:1px solid #dee2e6;color:#869099;padding:1rem}.main-footer.text-sm,.text-sm .main-footer{padding:.812rem}.content-header{padding:15px .5rem}.text-sm .content-header{padding:10px .5rem}.content-header h1{font-size:1.8rem;margin:0}.text-sm .content-header h1{font-size:1.5rem}.content-header .breadcrumb{background-color:transparent;line-height:1.8rem;margin-bottom:0;padding:0}.text-sm .content-header .breadcrumb{line-height:1.5rem}.hold-transition .content-wrapper,.hold-transition .control-sidebar,.hold-transition .control-sidebar *,.hold-transition .main-footer,.hold-transition .main-header,.hold-transition .main-sidebar,.hold-transition .main-sidebar *{transition:none!important;-webkit-animation-duration:0s!important;animation-duration:0s!important}.dark-mode{background-color:#454d55!important;color:#fff}.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=navbar]){background-color:#fff}.layout-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=navbar]){background-color:#343a40}.layout-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=navbar]){background-color:#fff}@media (min-width:576px){.layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=navbar]){background-color:#343a40}.layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=navbar]){background-color:#fff}.layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=navbar]){background-color:#343a40}.layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=navbar]){background-color:#fff}.layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=navbar]){background-color:#343a40}.layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=navbar]){background-color:#fff}.layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=navbar]){background-color:#343a40}.layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=navbar]){background-color:#fff}.layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=navbar]){background-color:#343a40}.layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=navbar]){background-color:#fff}.layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=navbar]){background-color:#343a40}.layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=navbar]){background-color:#fff}.layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=navbar]){background-color:#343a40}.layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=navbar]){background-color:#fff}.layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=navbar]){background-color:#343a40}.layout-sm-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=navbar]){background-color:#fff}}@media (min-width:768px){.layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=navbar]){background-color:#343a40}.layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=navbar]){background-color:#fff}.layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=navbar]){background-color:#343a40}.layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=navbar]){background-color:#fff}.layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=navbar]){background-color:#343a40}.layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=navbar]){background-color:#fff}.layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=navbar]){background-color:#343a40}.layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=navbar]){background-color:#fff}.layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=navbar]){background-color:#343a40}.layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=navbar]){background-color:#fff}.layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=navbar]){background-color:#343a40}.layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=navbar]){background-color:#fff}.layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=navbar]){background-color:#343a40}.layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=navbar]){background-color:#fff}.layout-md-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=navbar]){background-color:#343a40}.layout-md-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=navbar]){background-color:#fff}}@media (min-width:992px){.layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=navbar]){background-color:#343a40}.layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=navbar]){background-color:#fff}.layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=navbar]){background-color:#343a40}.layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=navbar]){background-color:#fff}.layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=navbar]){background-color:#343a40}.layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=navbar]){background-color:#fff}.layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=navbar]){background-color:#343a40}.layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=navbar]){background-color:#fff}.layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=navbar]){background-color:#343a40}.layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=navbar]){background-color:#fff}.layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=navbar]){background-color:#343a40}.layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=navbar]){background-color:#fff}.layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=navbar]){background-color:#343a40}.layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=navbar]){background-color:#fff}.layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=navbar]){background-color:#343a40}.layout-lg-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=navbar]){background-color:#fff}}@media (min-width:1200px){.layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-primary .brand-link:not([class*=navbar]){background-color:#343a40}.layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-primary .brand-link:not([class*=navbar]){background-color:#fff}.layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-secondary .brand-link:not([class*=navbar]){background-color:#343a40}.layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-secondary .brand-link:not([class*=navbar]){background-color:#fff}.layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-success .brand-link:not([class*=navbar]){background-color:#343a40}.layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-success .brand-link:not([class*=navbar]){background-color:#fff}.layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-info .brand-link:not([class*=navbar]){background-color:#343a40}.layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-info .brand-link:not([class*=navbar]){background-color:#fff}.layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-warning .brand-link:not([class*=navbar]){background-color:#343a40}.layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-warning .brand-link:not([class*=navbar]){background-color:#fff}.layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-danger .brand-link:not([class*=navbar]){background-color:#343a40}.layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-danger .brand-link:not([class*=navbar]){background-color:#fff}.layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-light .brand-link:not([class*=navbar]){background-color:#343a40}.layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-light .brand-link:not([class*=navbar]){background-color:#fff}.layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-dark-dark .brand-link:not([class*=navbar]){background-color:#343a40}.layout-xl-navbar-fixed .dark-mode .wrapper .sidebar-light-dark .brand-link:not([class*=navbar]){background-color:#fff}}.dark-mode .breadcrumb-item+.breadcrumb-item::before,.dark-mode .breadcrumb-item.active{color:#adb5bd}.dark-mode .main-footer{background-color:#343a40;border-color:#4b545c}.dark-mode .content-wrapper{background-color:#454d55;color:#fff}.dark-mode .content-wrapper .content-header{color:#fff}.main-header{border-bottom:1px solid #dee2e6;z-index:1034}.main-header .nav-link{height:2.5rem;position:relative}.main-header.text-sm .nav-link,.text-sm .main-header .nav-link{height:1.93725rem;padding:.35rem 1rem}.main-header.text-sm .nav-link>.fa,.main-header.text-sm .nav-link>.fab,.main-header.text-sm .nav-link>.fad,.main-header.text-sm .nav-link>.fal,.main-header.text-sm .nav-link>.far,.main-header.text-sm .nav-link>.fas,.main-header.text-sm .nav-link>.ion,.main-header.text-sm .nav-link>.svg-inline--fa,.text-sm .main-header .nav-link>.fa,.text-sm .main-header .nav-link>.fab,.text-sm .main-header .nav-link>.fad,.text-sm .main-header .nav-link>.fal,.text-sm .main-header .nav-link>.far,.text-sm .main-header .nav-link>.fas,.text-sm .main-header .nav-link>.ion,.text-sm .main-header .nav-link>.svg-inline--fa{font-size:.875rem}.main-header .navbar-nav .nav-item{margin:0}.main-header .navbar-nav[class*="-right"] .dropdown-menu{left:auto;margin-top:-3px;right:0}@media (max-width:575.98px){.main-header .navbar-nav[class*="-right"] .dropdown-menu{left:0;right:auto}}.main-header.dropdown-legacy .dropdown-menu{top:3rem;margin-top:0}.navbar-img{height:calc(calc(3.5rem + 1px) * .5);width:auto}.navbar-badge{font-size:.6rem;font-weight:300;padding:2px 4px;position:absolute;right:5px;top:9px}.btn-navbar{background-color:transparent;border-left-width:0}.form-control-navbar{border-right-width:0}.form-control-navbar+.input-group-append{margin-left:0}.btn-navbar,.form-control-navbar{transition:none}.navbar-dark .btn-navbar,.navbar-dark .form-control-navbar{background-color:#343a40;border-color:#6c757d}.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.6)}.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.6)}.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.6)}.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.6)}.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.6)}.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{color:rgba(255,255,255,.6)}.navbar-dark .form-control-navbar:focus,.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#495057;border-color:#6c757d!important;color:#ced4da}.navbar-light .btn-navbar,.navbar-light .form-control-navbar{background-color:#dadfe4;border-color:#ced4da}.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(0,0,0,.6)}.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(0,0,0,.6)}.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(0,0,0,.6)}.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(0,0,0,.6)}.navbar-light .form-control-navbar::placeholder{color:rgba(0,0,0,.6)}.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{color:rgba(0,0,0,.6)}.navbar-light .form-control-navbar:focus,.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#d3d9df;border-color:#c7ced5!important;color:#ced4da}.navbar-light .navbar-search-block .form-control-navbar:focus,.navbar-light .navbar-search-block .form-control-navbar:focus+.input-group-append .btn-navbar{color:rgba(0,0,0,.6)}.navbar-search-block{position:absolute;padding:0 1rem;left:0;top:0;right:0;bottom:0;z-index:10;display:none;-ms-flex-pack:center;justify-content:center;-ms-flex-direction:column;flex-direction:column;background-color:initial}.navbar-search-block.navbar-search-open{display:-ms-flexbox;display:flex}.navbar-search-block .input-group{width:100%}.brand-link{display:block;font-size:1.25rem;line-height:1.5;padding:.8125rem .5rem;transition:width .3s ease-in-out;white-space:nowrap}.brand-link:hover{color:#fff;text-decoration:none}.text-sm .brand-link{font-size:inherit}[class*=sidebar-dark] .brand-link{border-bottom:1px solid #4b545c}[class*=sidebar-dark] .brand-link,[class*=sidebar-dark] .brand-link .pushmenu{color:rgba(255,255,255,.8)}[class*=sidebar-dark] .brand-link .pushmenu:hover,[class*=sidebar-dark] .brand-link:hover{color:#fff}[class*=sidebar-light] .brand-link{border-bottom:1px solid #dee2e6}[class*=sidebar-light] .brand-link,[class*=sidebar-light] .brand-link .pushmenu{color:rgba(0,0,0,.8)}[class*=sidebar-light] .brand-link .pushmenu:hover,[class*=sidebar-light] .brand-link:hover{color:#000}.brand-link .pushmenu{margin-right:.5rem;font-size:1rem}.brand-link .brand-link{padding:0;border-bottom:none}.brand-link .brand-image{float:left;line-height:.8;margin-left:.8rem;margin-right:.5rem;margin-top:-3px;max-height:33px;width:auto}.brand-link .brand-image-xs{float:left;line-height:.8;margin-top:-.1rem;max-height:33px;width:auto}.brand-link .brand-image-xl{line-height:.8;max-height:40px;width:auto}.brand-link .brand-image-xl.single{margin-top:-.3rem}.brand-link.text-sm .brand-image,.text-sm .brand-link .brand-image{height:29px;margin-bottom:-.25rem;margin-left:.95rem;margin-top:-.25rem}.brand-link.text-sm .brand-image-xs,.text-sm .brand-link .brand-image-xs{margin-top:-.2rem;max-height:29px}.brand-link.text-sm .brand-image-xl,.text-sm .brand-link .brand-image-xl{margin-top:-.225rem;max-height:38px}.main-sidebar{height:100vh;overflow-y:hidden;z-index:1038}.main-sidebar a:-moz-focusring{border:0;outline:0}.sidebar{height:calc(100% - (3.5rem + 1px));overflow-x:hidden;overflow-y:initial;padding-bottom:0;padding-left:.5rem;padding-right:.5rem;padding-top:0;scrollbar-color:#a9a9a9 transparent;scrollbar-width:none}.sidebar::-webkit-scrollbar-thumb{background-color:#a9a9a9}.sidebar::-webkit-scrollbar-track{background-color:transparent}.sidebar::-webkit-scrollbar-corner{background-color:transparent}.sidebar::-webkit-scrollbar{width:0}.sidebar:hover{scrollbar-width:thin}.sidebar:hover::-webkit-scrollbar{width:.5rem;height:.5rem}.brand-link.border-bottom-0~.sidebar{height:calc(100% - 3.5rem)}.user-panel{position:relative}[class*=sidebar-dark] .user-panel{border-bottom:1px solid #4f5962}[class*=sidebar-light] .user-panel{border-bottom:1px solid #dee2e6}.user-panel,.user-panel .info{overflow:hidden;white-space:nowrap}.user-panel .image{display:inline-block;padding-left:.8rem}.user-panel img{height:auto;width:2.1rem}.user-panel .info{display:inline-block;padding:5px 5px 5px 10px}.user-panel .dropdown-menu,.user-panel .status{font-size:.875rem}.nav-sidebar .nav-item>.nav-link{margin-bottom:.2rem}.nav-sidebar .nav-item>.nav-link .right{transition:-webkit-transform ease-in-out .3s;transition:transform ease-in-out .3s;transition:transform ease-in-out .3s,-webkit-transform ease-in-out .3s}@media (prefers-reduced-motion:reduce){.nav-sidebar .nav-item>.nav-link .right{transition:none}}.nav-sidebar .nav-link>.right,.nav-sidebar .nav-link>p>.right{position:absolute;right:1rem;top:.7rem}.nav-sidebar .nav-link>.right i,.nav-sidebar .nav-link>.right span,.nav-sidebar .nav-link>p>.right i,.nav-sidebar .nav-link>p>.right span{margin-left:.5rem}.nav-sidebar .nav-link>.right:nth-child(2),.nav-sidebar .nav-link>p>.right:nth-child(2){right:2.2rem}.nav-sidebar .menu-open>.nav-treeview{display:block}.nav-sidebar .menu-is-opening>.nav-link i.right,.nav-sidebar .menu-is-opening>.nav-link svg.right,.nav-sidebar .menu-open>.nav-link i.right,.nav-sidebar .menu-open>.nav-link svg.right{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.nav-sidebar>.nav-item{margin-bottom:0}.nav-sidebar>.nav-item .nav-icon{margin-left:.05rem;font-size:1.2rem;margin-right:.2rem;text-align:center;width:1.6rem}.nav-sidebar>.nav-item .nav-icon.fa,.nav-sidebar>.nav-item .nav-icon.fab,.nav-sidebar>.nav-item .nav-icon.fad,.nav-sidebar>.nav-item .nav-icon.fal,.nav-sidebar>.nav-item .nav-icon.far,.nav-sidebar>.nav-item .nav-icon.fas,.nav-sidebar>.nav-item .nav-icon.ion,.nav-sidebar>.nav-item .nav-icon.svg-inline--fa{font-size:1.1rem}.nav-sidebar>.nav-item .float-right{margin-top:3px}.nav-sidebar .nav-treeview{display:none;list-style:none;padding:0}.nav-sidebar .nav-treeview>.nav-item>.nav-link>.nav-icon{width:1.6rem}.nav-sidebar.nav-child-indent .nav-treeview{transition:padding .3s ease-in-out;padding-left:1rem}.text-sm .nav-sidebar.nav-child-indent .nav-treeview{padding-left:.5rem}.nav-sidebar.nav-child-indent.nav-legacy .nav-treeview .nav-treeview{padding-left:2rem;margin-left:-1rem}.text-sm .nav-sidebar.nav-child-indent.nav-legacy .nav-treeview .nav-treeview{padding-left:1rem;margin-left:-.5rem}.nav-sidebar .nav-header{font-size:.9rem;padding:.5rem .75rem}.nav-sidebar .nav-link p{display:inline;margin:0;white-space:normal}.sidebar-is-opening .sidebar .nav-sidebar .nav-link p{-webkit-animation-name:fadeIn;animation-name:fadeIn;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both}#sidebar-overlay{background-color:rgba(0,0,0,.1);bottom:0;display:none;left:0;position:fixed;right:0;top:0;z-index:1037}@media (max-width:991.98px){.sidebar-open #sidebar-overlay{display:block}}[class*=sidebar-light-]{background-color:#fff}[class*=sidebar-light-] .user-panel a:hover{color:#212529}[class*=sidebar-light-] .user-panel .status{background-color:rgba(0,0,0,.1);color:#343a40}[class*=sidebar-light-] .user-panel .status:active,[class*=sidebar-light-] .user-panel .status:focus,[class*=sidebar-light-] .user-panel .status:hover{background-color:rgba(0,0,0,.1);color:#212529}[class*=sidebar-light-] .user-panel .dropdown-menu{box-shadow:0 2px 4px rgba(0,0,0,.4);border-color:rgba(0,0,0,.1)}[class*=sidebar-light-] .user-panel .dropdown-item{color:#212529}[class*=sidebar-light-] .nav-sidebar>.nav-item>.nav-link:active,[class*=sidebar-light-] .nav-sidebar>.nav-item>.nav-link:focus{color:#343a40}[class*=sidebar-light-] .nav-sidebar>.nav-item.menu-open>.nav-link,[class*=sidebar-light-] .nav-sidebar>.nav-item:hover>.nav-link{background-color:rgba(0,0,0,.1);color:#212529}[class*=sidebar-light-] .nav-sidebar>.nav-item>.nav-link.active{color:#000;box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24)}[class*=sidebar-light-] .nav-sidebar>.nav-item>.nav-treeview{background-color:transparent}[class*=sidebar-light-] .nav-header{background-color:inherit;color:#292d32}[class*=sidebar-light-] .sidebar a{color:#343a40}[class*=sidebar-light-] .sidebar a:hover{text-decoration:none}[class*=sidebar-light-] .nav-treeview>.nav-item>.nav-link{color:#777}[class*=sidebar-light-] .nav-treeview>.nav-item>.nav-link:focus,[class*=sidebar-light-] .nav-treeview>.nav-item>.nav-link:hover{background-color:rgba(0,0,0,.1);color:#000}[class*=sidebar-light-] .nav-treeview>.nav-item>.nav-link.active,[class*=sidebar-light-] .nav-treeview>.nav-item>.nav-link.active:hover{background-color:rgba(0,0,0,.1);color:#212529}[class*=sidebar-light-] .nav-treeview>.nav-item>.nav-link:hover{background-color:rgba(0,0,0,.1)}[class*=sidebar-light-] .nav-flat .nav-item .nav-treeview .nav-treeview{border-color:rgba(0,0,0,.1)}[class*=sidebar-light-] .nav-flat .nav-item .nav-treeview>.nav-item>.nav-link,[class*=sidebar-light-] .nav-flat .nav-item .nav-treeview>.nav-item>.nav-link.active{border-color:rgba(0,0,0,.1)}[class*=sidebar-dark-]{background-color:#343a40}[class*=sidebar-dark-] .user-panel a:hover{color:#fff}[class*=sidebar-dark-] .user-panel .status{background-color:rgba(255,255,255,.1);color:#c2c7d0}[class*=sidebar-dark-] .user-panel .status:active,[class*=sidebar-dark-] .user-panel .status:focus,[class*=sidebar-dark-] .user-panel .status:hover{background-color:rgba(247,247,247,.1);color:#fff}[class*=sidebar-dark-] .user-panel .dropdown-menu{box-shadow:0 2px 4px rgba(0,0,0,.4);border-color:rgba(242,242,242,.1)}[class*=sidebar-dark-] .user-panel .dropdown-item{color:#212529}[class*=sidebar-dark-] .nav-sidebar>.nav-item>.nav-link:active{color:#c2c7d0}[class*=sidebar-dark-] .nav-sidebar>.nav-item.menu-open>.nav-link,[class*=sidebar-dark-] .nav-sidebar>.nav-item:hover>.nav-link,[class*=sidebar-dark-] .nav-sidebar>.nav-item>.nav-link:focus{background-color:rgba(255,255,255,.1);color:#fff}[class*=sidebar-dark-] .nav-sidebar>.nav-item>.nav-link.active{color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24)}[class*=sidebar-dark-] .nav-sidebar>.nav-item>.nav-treeview{background-color:transparent}[class*=sidebar-dark-] .nav-header{background-color:inherit;color:#d0d4db}[class*=sidebar-dark-] .sidebar a{color:#c2c7d0}[class*=sidebar-dark-] .sidebar a:focus,[class*=sidebar-dark-] .sidebar a:hover{text-decoration:none}[class*=sidebar-dark-] .nav-treeview>.nav-item>.nav-link{color:#c2c7d0}[class*=sidebar-dark-] .nav-treeview>.nav-item>.nav-link:focus,[class*=sidebar-dark-] .nav-treeview>.nav-item>.nav-link:hover{background-color:rgba(255,255,255,.1);color:#fff}[class*=sidebar-dark-] .nav-treeview>.nav-item>.nav-link.active,[class*=sidebar-dark-] .nav-treeview>.nav-item>.nav-link.active:focus,[class*=sidebar-dark-] .nav-treeview>.nav-item>.nav-link.active:hover{background-color:rgba(255,255,255,.9);color:#343a40}[class*=sidebar-dark-] .nav-flat .nav-item .nav-treeview .nav-treeview{border-color:rgba(255,255,255,.9)}[class*=sidebar-dark-] .nav-flat .nav-item .nav-treeview>.nav-item>.nav-link,[class*=sidebar-dark-] .nav-flat .nav-item .nav-treeview>.nav-item>.nav-link.active{border-color:rgba(255,255,255,.9)}.sidebar-dark-primary .nav-sidebar>.nav-item>.nav-link.active,.sidebar-light-primary .nav-sidebar>.nav-item>.nav-link.active{background-color:#007bff;color:#fff}.sidebar-dark-primary .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.sidebar-light-primary .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#007bff}.sidebar-dark-secondary .nav-sidebar>.nav-item>.nav-link.active,.sidebar-light-secondary .nav-sidebar>.nav-item>.nav-link.active{background-color:#6c757d;color:#fff}.sidebar-dark-secondary .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.sidebar-light-secondary .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#6c757d}.sidebar-dark-success .nav-sidebar>.nav-item>.nav-link.active,.sidebar-light-success .nav-sidebar>.nav-item>.nav-link.active{background-color:#28a745;color:#fff}.sidebar-dark-success .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.sidebar-light-success .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#28a745}.sidebar-dark-info .nav-sidebar>.nav-item>.nav-link.active,.sidebar-light-info .nav-sidebar>.nav-item>.nav-link.active{background-color:#17a2b8;color:#fff}.sidebar-dark-info .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.sidebar-light-info .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#17a2b8}.sidebar-dark-warning .nav-sidebar>.nav-item>.nav-link.active,.sidebar-light-warning .nav-sidebar>.nav-item>.nav-link.active{background-color:#ffc107;color:#1f2d3d}.sidebar-dark-warning .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.sidebar-light-warning .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#ffc107}.sidebar-dark-danger .nav-sidebar>.nav-item>.nav-link.active,.sidebar-light-danger .nav-sidebar>.nav-item>.nav-link.active{background-color:#dc3545;color:#fff}.sidebar-dark-danger .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.sidebar-light-danger .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#dc3545}.sidebar-dark-light .nav-sidebar>.nav-item>.nav-link.active,.sidebar-light-light .nav-sidebar>.nav-item>.nav-link.active{background-color:#f8f9fa;color:#1f2d3d}.sidebar-dark-light .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.sidebar-light-light .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#f8f9fa}.sidebar-dark-dark .nav-sidebar>.nav-item>.nav-link.active,.sidebar-light-dark .nav-sidebar>.nav-item>.nav-link.active{background-color:#343a40;color:#fff}.sidebar-dark-dark .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.sidebar-light-dark .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#343a40}.sidebar-dark-lightblue .nav-sidebar>.nav-item>.nav-link.active,.sidebar-light-lightblue .nav-sidebar>.nav-item>.nav-link.active{background-color:#3c8dbc;color:#fff}.sidebar-dark-lightblue .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.sidebar-light-lightblue .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#3c8dbc}.sidebar-dark-navy .nav-sidebar>.nav-item>.nav-link.active,.sidebar-light-navy .nav-sidebar>.nav-item>.nav-link.active{background-color:#001f3f;color:#fff}.sidebar-dark-navy .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.sidebar-light-navy .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#001f3f}.sidebar-dark-olive .nav-sidebar>.nav-item>.nav-link.active,.sidebar-light-olive .nav-sidebar>.nav-item>.nav-link.active{background-color:#3d9970;color:#fff}.sidebar-dark-olive .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.sidebar-light-olive .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#3d9970}.sidebar-dark-lime .nav-sidebar>.nav-item>.nav-link.active,.sidebar-light-lime .nav-sidebar>.nav-item>.nav-link.active{background-color:#01ff70;color:#1f2d3d}.sidebar-dark-lime .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.sidebar-light-lime .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#01ff70}.sidebar-dark-fuchsia .nav-sidebar>.nav-item>.nav-link.active,.sidebar-light-fuchsia .nav-sidebar>.nav-item>.nav-link.active{background-color:#f012be;color:#fff}.sidebar-dark-fuchsia .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.sidebar-light-fuchsia .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#f012be}.sidebar-dark-maroon .nav-sidebar>.nav-item>.nav-link.active,.sidebar-light-maroon .nav-sidebar>.nav-item>.nav-link.active{background-color:#d81b60;color:#fff}.sidebar-dark-maroon .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.sidebar-light-maroon .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#d81b60}.sidebar-dark-blue .nav-sidebar>.nav-item>.nav-link.active,.sidebar-light-blue .nav-sidebar>.nav-item>.nav-link.active{background-color:#007bff;color:#fff}.sidebar-dark-blue .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.sidebar-light-blue .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#007bff}.sidebar-dark-indigo .nav-sidebar>.nav-item>.nav-link.active,.sidebar-light-indigo .nav-sidebar>.nav-item>.nav-link.active{background-color:#6610f2;color:#fff}.sidebar-dark-indigo .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.sidebar-light-indigo .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#6610f2}.sidebar-dark-purple .nav-sidebar>.nav-item>.nav-link.active,.sidebar-light-purple .nav-sidebar>.nav-item>.nav-link.active{background-color:#6f42c1;color:#fff}.sidebar-dark-purple .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.sidebar-light-purple .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#6f42c1}.sidebar-dark-pink .nav-sidebar>.nav-item>.nav-link.active,.sidebar-light-pink .nav-sidebar>.nav-item>.nav-link.active{background-color:#e83e8c;color:#fff}.sidebar-dark-pink .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.sidebar-light-pink .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#e83e8c}.sidebar-dark-red .nav-sidebar>.nav-item>.nav-link.active,.sidebar-light-red .nav-sidebar>.nav-item>.nav-link.active{background-color:#dc3545;color:#fff}.sidebar-dark-red .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.sidebar-light-red .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#dc3545}.sidebar-dark-orange .nav-sidebar>.nav-item>.nav-link.active,.sidebar-light-orange .nav-sidebar>.nav-item>.nav-link.active{background-color:#fd7e14;color:#1f2d3d}.sidebar-dark-orange .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.sidebar-light-orange .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#fd7e14}.sidebar-dark-yellow .nav-sidebar>.nav-item>.nav-link.active,.sidebar-light-yellow .nav-sidebar>.nav-item>.nav-link.active{background-color:#ffc107;color:#1f2d3d}.sidebar-dark-yellow .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.sidebar-light-yellow .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#ffc107}.sidebar-dark-green .nav-sidebar>.nav-item>.nav-link.active,.sidebar-light-green .nav-sidebar>.nav-item>.nav-link.active{background-color:#28a745;color:#fff}.sidebar-dark-green .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.sidebar-light-green .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#28a745}.sidebar-dark-teal .nav-sidebar>.nav-item>.nav-link.active,.sidebar-light-teal .nav-sidebar>.nav-item>.nav-link.active{background-color:#20c997;color:#fff}.sidebar-dark-teal .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.sidebar-light-teal .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#20c997}.sidebar-dark-cyan .nav-sidebar>.nav-item>.nav-link.active,.sidebar-light-cyan .nav-sidebar>.nav-item>.nav-link.active{background-color:#17a2b8;color:#fff}.sidebar-dark-cyan .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.sidebar-light-cyan .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#17a2b8}.sidebar-dark-white .nav-sidebar>.nav-item>.nav-link.active,.sidebar-light-white .nav-sidebar>.nav-item>.nav-link.active{background-color:#fff;color:#1f2d3d}.sidebar-dark-white .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.sidebar-light-white .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#fff}.sidebar-dark-gray .nav-sidebar>.nav-item>.nav-link.active,.sidebar-light-gray .nav-sidebar>.nav-item>.nav-link.active{background-color:#6c757d;color:#fff}.sidebar-dark-gray .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.sidebar-light-gray .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#6c757d}.sidebar-dark-gray-dark .nav-sidebar>.nav-item>.nav-link.active,.sidebar-light-gray-dark .nav-sidebar>.nav-item>.nav-link.active{background-color:#343a40;color:#fff}.sidebar-dark-gray-dark .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.sidebar-light-gray-dark .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#343a40}.sidebar-mini .main-sidebar.sidebar-focused .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,.sidebar-mini .main-sidebar:not(.sidebar-no-expand) .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,.sidebar-mini-md .main-sidebar.sidebar-focused .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand) .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand) .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview,.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview{padding-left:1rem;margin-left:-.5rem}.nav-flat{margin:-.25rem -.5rem 0}.nav-flat .nav-item>.nav-link{border-radius:0;margin-bottom:0}.nav-flat .nav-item>.nav-link>.nav-icon{margin-left:.55rem}.nav-flat:not(.nav-child-indent) .nav-treeview .nav-item>.nav-link>.nav-icon{margin-left:.4rem}.nav-flat.nav-child-indent .nav-treeview{padding-left:0}.nav-flat.nav-child-indent .nav-treeview .nav-icon{margin-left:.85rem}.nav-flat.nav-child-indent .nav-treeview .nav-treeview{border-left:.2rem solid}.nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-icon{margin-left:1.15rem}.nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon{margin-left:1.45rem}.nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon{margin-left:1.75rem}.nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon{margin-left:2.05rem}.sidebar-collapse .nav-flat.nav-child-indent .sidebar .nav-treeview .nav-icon{margin-left:.55rem}.sidebar-collapse .nav-flat.nav-child-indent .sidebar .nav-treeview .nav-link{padding-left:calc(1rem - .2rem)}.sidebar-collapse .nav-flat.nav-child-indent .sidebar .nav-treeview .nav-treeview .nav-icon{margin-left:.35rem}.sidebar-collapse .nav-flat.nav-child-indent .sidebar .nav-treeview .nav-treeview .nav-treeview .nav-icon{margin-left:.15rem}.sidebar-collapse .nav-flat.nav-child-indent .sidebar .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon{margin-left:-.15rem}.sidebar-collapse .nav-flat.nav-child-indent .sidebar .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon{margin-left:-.35rem}.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon,.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon,.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon,.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon,.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon,.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-compact.nav-sidebar .nav-treeview .nav-icon{margin-left:.4rem}.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon,.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon,.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon,.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon,.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon,.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-icon{margin-left:.85rem}.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon,.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon,.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon,.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon,.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon,.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-icon{margin-left:1.15rem}.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon,.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon,.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon,.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon,.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon,.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-icon{margin-left:1.45rem}.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon{margin-left:1.75rem}.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon,.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover .nav-flat.nav-sidebar.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-icon{margin-left:2.05rem}.nav-flat .nav-icon{transition:margin-left ease-in-out .3s}@media (prefers-reduced-motion:reduce){.nav-flat .nav-icon{transition:none}}.nav-flat .nav-treeview .nav-icon{margin-left:-.2rem}.nav-flat.nav-sidebar>.nav-item .nav-treeview,.nav-flat.nav-sidebar>.nav-item>.nav-treeview{background-color:rgba(255,255,255,.05)}.nav-flat.nav-sidebar>.nav-item .nav-treeview .nav-item>.nav-link,.nav-flat.nav-sidebar>.nav-item>.nav-treeview .nav-item>.nav-link{border-left:.2rem solid}.nav-legacy{margin:-.25rem -.5rem 0}.nav-legacy.nav-sidebar .nav-item>.nav-link{border-radius:0;margin-bottom:0}.nav-legacy.nav-sidebar .nav-item>.nav-link>.nav-icon{margin-left:.55rem}.text-sm .nav-legacy.nav-sidebar .nav-item>.nav-link>.nav-icon{margin-left:.75rem}.nav-legacy.nav-sidebar>.nav-item>.nav-link.active{background-color:inherit;border-left:3px solid transparent;box-shadow:none}.nav-legacy.nav-sidebar>.nav-item>.nav-link.active>.nav-icon{margin-left:calc(.55rem - 3px)}.text-sm .nav-legacy.nav-sidebar>.nav-item>.nav-link.active>.nav-icon{margin-left:calc(.75rem - 3px)}.text-sm .nav-legacy.nav-sidebar.nav-flat .nav-treeview .nav-item>.nav-link>.nav-icon{margin-left:calc(.75rem - 3px)}.sidebar-mini .nav-legacy>.nav-item .nav-link .nav-icon,.sidebar-mini-md .nav-legacy>.nav-item .nav-link .nav-icon,.sidebar-mini-xs .nav-legacy>.nav-item .nav-link .nav-icon{transition:margin-left ease-in-out .3s;margin-left:.6rem}@media (prefers-reduced-motion:reduce){.sidebar-mini .nav-legacy>.nav-item .nav-link .nav-icon,.sidebar-mini-md .nav-legacy>.nav-item .nav-link .nav-icon,.sidebar-mini-xs .nav-legacy>.nav-item .nav-link .nav-icon{transition:none}}.main-sidebar.sidebar-focused .nav-legacy .sidebar-mini-md.sidebar-collapse.nav-child-indent .nav-treeview,.main-sidebar.sidebar-focused .nav-legacy .sidebar-mini-xs.sidebar-collapse.nav-child-indent .nav-treeview,.main-sidebar.sidebar-focused .nav-legacy .sidebar-mini.sidebar-collapse.nav-child-indent .nav-treeview,.main-sidebar:hover .nav-legacy .sidebar-mini-md.sidebar-collapse.nav-child-indent .nav-treeview,.main-sidebar:hover .nav-legacy .sidebar-mini-xs.sidebar-collapse.nav-child-indent .nav-treeview,.main-sidebar:hover .nav-legacy .sidebar-mini.sidebar-collapse.nav-child-indent .nav-treeview{padding-left:1rem}.main-sidebar.sidebar-focused .nav-legacy .sidebar-mini-md.sidebar-collapse.nav-child-indent .nav-treeview .nav-treeview,.main-sidebar.sidebar-focused .nav-legacy .sidebar-mini-xs.sidebar-collapse.nav-child-indent .nav-treeview .nav-treeview,.main-sidebar.sidebar-focused .nav-legacy .sidebar-mini.sidebar-collapse.nav-child-indent .nav-treeview .nav-treeview,.main-sidebar:hover .nav-legacy .sidebar-mini-md.sidebar-collapse.nav-child-indent .nav-treeview .nav-treeview,.main-sidebar:hover .nav-legacy .sidebar-mini-xs.sidebar-collapse.nav-child-indent .nav-treeview .nav-treeview,.main-sidebar:hover .nav-legacy .sidebar-mini.sidebar-collapse.nav-child-indent .nav-treeview .nav-treeview{padding-left:2rem;margin-left:-1rem}.main-sidebar.sidebar-focused .nav-legacy .sidebar-mini-md.sidebar-collapse.text-sm.nav-child-indent .nav-treeview,.main-sidebar.sidebar-focused .nav-legacy .sidebar-mini-xs.sidebar-collapse.text-sm.nav-child-indent .nav-treeview,.main-sidebar.sidebar-focused .nav-legacy .sidebar-mini.sidebar-collapse.text-sm.nav-child-indent .nav-treeview,.main-sidebar:hover .nav-legacy .sidebar-mini-md.sidebar-collapse.text-sm.nav-child-indent .nav-treeview,.main-sidebar:hover .nav-legacy .sidebar-mini-xs.sidebar-collapse.text-sm.nav-child-indent .nav-treeview,.main-sidebar:hover .nav-legacy .sidebar-mini.sidebar-collapse.text-sm.nav-child-indent .nav-treeview{padding-left:.5rem}.main-sidebar.sidebar-focused .nav-legacy .sidebar-mini-md.sidebar-collapse.text-sm.nav-child-indent .nav-treeview .nav-treeview,.main-sidebar.sidebar-focused .nav-legacy .sidebar-mini-xs.sidebar-collapse.text-sm.nav-child-indent .nav-treeview .nav-treeview,.main-sidebar.sidebar-focused .nav-legacy .sidebar-mini.sidebar-collapse.text-sm.nav-child-indent .nav-treeview .nav-treeview,.main-sidebar:hover .nav-legacy .sidebar-mini-md.sidebar-collapse.text-sm.nav-child-indent .nav-treeview .nav-treeview,.main-sidebar:hover .nav-legacy .sidebar-mini-xs.sidebar-collapse.text-sm.nav-child-indent .nav-treeview .nav-treeview,.main-sidebar:hover .nav-legacy .sidebar-mini.sidebar-collapse.text-sm.nav-child-indent .nav-treeview .nav-treeview{padding-left:1rem;margin-left:-.5rem}.sidebar-mini-md.sidebar-collapse .nav-legacy .sidebar>.nav-item>.nav-link .nav-icon,.sidebar-mini-xs.sidebar-collapse .nav-legacy .sidebar>.nav-item>.nav-link .nav-icon,.sidebar-mini.sidebar-collapse .nav-legacy .sidebar>.nav-item>.nav-link .nav-icon{margin-left:.55rem}.sidebar-mini-md.sidebar-collapse .nav-legacy .sidebar>.nav-item>.nav-link.active>.nav-icon,.sidebar-mini-xs.sidebar-collapse .nav-legacy .sidebar>.nav-item>.nav-link.active>.nav-icon,.sidebar-mini.sidebar-collapse .nav-legacy .sidebar>.nav-item>.nav-link.active>.nav-icon{margin-left:.36rem}.sidebar-mini-md.sidebar-collapse .nav-legacy .sidebar.nav-child-indent .nav-treeview .nav-treeview,.sidebar-mini-xs.sidebar-collapse .nav-legacy .sidebar.nav-child-indent .nav-treeview .nav-treeview,.sidebar-mini.sidebar-collapse .nav-legacy .sidebar.nav-child-indent .nav-treeview .nav-treeview{padding-left:0;margin-left:0}.sidebar-mini-md.sidebar-collapse.text-sm .nav-legacy .sidebar>.nav-item>.nav-link .nav-icon,.sidebar-mini-xs.sidebar-collapse.text-sm .nav-legacy .sidebar>.nav-item>.nav-link .nav-icon,.sidebar-mini.sidebar-collapse.text-sm .nav-legacy .sidebar>.nav-item>.nav-link .nav-icon{margin-left:.75rem}.sidebar-mini-md.sidebar-collapse.text-sm .nav-legacy .sidebar>.nav-item>.nav-link.active>.nav-icon,.sidebar-mini-xs.sidebar-collapse.text-sm .nav-legacy .sidebar>.nav-item>.nav-link.active>.nav-icon,.sidebar-mini.sidebar-collapse.text-sm .nav-legacy .sidebar>.nav-item>.nav-link.active>.nav-icon{margin-left:calc(.75rem - 3px)}[class*=sidebar-dark] .nav-legacy.nav-sidebar>.nav-item .nav-treeview,[class*=sidebar-dark] .nav-legacy.nav-sidebar>.nav-item>.nav-treeview{background-color:rgba(255,255,255,.05)}[class*=sidebar-dark] .nav-legacy.nav-sidebar>.nav-item>.nav-link.active{color:#fff}[class*=sidebar-dark] .nav-legacy .nav-treeview>.nav-item>.nav-link.active,[class*=sidebar-dark] .nav-legacy .nav-treeview>.nav-item>.nav-link:focus,[class*=sidebar-dark] .nav-legacy .nav-treeview>.nav-item>.nav-link:hover{background-color:transparent;color:#fff}[class*=sidebar-light] .nav-legacy.nav-sidebar>.nav-item .nav-treeview,[class*=sidebar-light] .nav-legacy.nav-sidebar>.nav-item>.nav-treeview{background-color:rgba(0,0,0,.05)}[class*=sidebar-light] .nav-legacy.nav-sidebar>.nav-item>.nav-link.active{color:#000}[class*=sidebar-light] .nav-legacy .nav-treeview>.nav-item>.nav-link.active,[class*=sidebar-light] .nav-legacy .nav-treeview>.nav-item>.nav-link:focus,[class*=sidebar-light] .nav-legacy .nav-treeview>.nav-item>.nav-link:hover{background-color:transparent;color:#000}.nav-collapse-hide-child .menu-open>.nav-treeview{max-height:-webkit-min-content;max-height:-moz-min-content;max-height:min-content;-webkit-animation-name:fadeIn;animation-name:fadeIn;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.sidebar-collapse .sidebar:not(:hover) .nav-collapse-hide-child .menu-open>.nav-treeview{max-height:0;-webkit-animation-name:fadeOut;animation-name:fadeOut;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.main-sidebar.sidebar-focused .nav-collapse-hide-child .sidebar-mini-md.sidebar-collapse .menu-open>.nav-treeview,.main-sidebar.sidebar-focused .nav-collapse-hide-child .sidebar-mini-xs.sidebar-collapse .menu-open>.nav-treeview,.main-sidebar.sidebar-focused .nav-collapse-hide-child .sidebar-mini.sidebar-collapse .menu-open>.nav-treeview,.main-sidebar:not(.sidebar-no-expand):hover .nav-collapse-hide-child .sidebar-mini-md.sidebar-collapse .menu-open>.nav-treeview,.main-sidebar:not(.sidebar-no-expand):hover .nav-collapse-hide-child .sidebar-mini-xs.sidebar-collapse .menu-open>.nav-treeview,.main-sidebar:not(.sidebar-no-expand):hover .nav-collapse-hide-child .sidebar-mini.sidebar-collapse .menu-open>.nav-treeview{max-height:-webkit-min-content;max-height:-moz-min-content;max-height:min-content;-webkit-animation-name:fadeIn;animation-name:fadeIn;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.nav-compact .nav-header,.nav-compact .nav-link{padding-top:.25rem;padding-bottom:.25rem}.nav-compact .nav-header:not(:first-of-type){padding-top:.75rem;padding-bottom:.25rem}.nav-compact .nav-link>.right,.nav-compact .nav-link>p>.right{top:.465rem}.text-sm .nav-compact .nav-link>.right,.text-sm .nav-compact .nav-link>p>.right{top:.7rem}[class*=sidebar-dark] .btn-sidebar,[class*=sidebar-dark] .form-control-sidebar{background-color:#3f474e;border:1px solid #56606a;color:#fff}[class*=sidebar-dark] .btn-sidebar:focus,[class*=sidebar-dark] .form-control-sidebar:focus{border:1px solid #7a8793}[class*=sidebar-dark] .btn-sidebar:hover{background-color:#454d55}[class*=sidebar-dark] .btn-sidebar:focus{background-color:#4b545c}[class*=sidebar-dark] .list-group-item{background-color:#454d55;border-color:#56606a;color:#c2c7d0}[class*=sidebar-dark] .list-group-item:hover{background-color:#4b545c}[class*=sidebar-dark] .list-group-item:focus{background-color:#515a63}[class*=sidebar-dark] .list-group-item .search-path{color:#adb5bd}[class*=sidebar-light] .btn-sidebar,[class*=sidebar-light] .form-control-sidebar{background-color:#f2f2f2;border:1px solid #d9d9d9;color:#1f2d3d}[class*=sidebar-light] .btn-sidebar:focus,[class*=sidebar-light] .form-control-sidebar:focus{border:1px solid #b3b3b3}[class*=sidebar-light] .btn-sidebar:hover{background-color:#ececec}[class*=sidebar-light] .btn-sidebar:focus{background-color:#e6e6e6}[class*=sidebar-light] .list-group-item{border-color:#d9d9d9}[class*=sidebar-light] .list-group-item:hover{background-color:#ececec}[class*=sidebar-light] .list-group-item:focus{background-color:#e6e6e6}[class*=sidebar-light] .list-group-item .search-path{color:#6c757d}.sidebar .form-inline .input-group{width:100%;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.sidebar nav .form-inline{margin-bottom:.2rem}.layout-boxed:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs).sidebar-collapse .main-sidebar{margin-left:0}.layout-boxed:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .content-wrapper,.layout-boxed:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .main-footer,.layout-boxed:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .main-header{z-index:9999;position:relative}.layout-boxed:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) .control-sidebar{z-index:9999}.sidebar-collapse .form-control-sidebar,.sidebar-collapse .form-control-sidebar~.input-group-append,.sidebar-collapse .sidebar-search-results{display:none}[data-widget=sidebar-search] input[type=search]::-ms-clear,[data-widget=sidebar-search] input[type=search]::-ms-reveal{display:none;width:0;height:0}[data-widget=sidebar-search] input[type=search]::-webkit-search-cancel-button,[data-widget=sidebar-search] input[type=search]::-webkit-search-decoration,[data-widget=sidebar-search] input[type=search]::-webkit-search-results-button,[data-widget=sidebar-search] input[type=search]::-webkit-search-results-decoration{display:none}.sidebar-search-results{position:relative;display:none;width:100%}.sidebar-search-open .sidebar-search-results{display:inline-block}.sidebar-search-results .search-title{margin-bottom:-.1rem}.sidebar-search-results .list-group{position:absolute;width:100%;z-index:1039}.sidebar-search-results .list-group>.list-group-item{padding:.375rem .75rem}.sidebar-search-results .list-group>.list-group-item:-moz-focusring{margin-top:0;border-left:1px solid transparent;border-top:0;border-bottom:1px solid transparent}.sidebar-search-results .list-group>.list-group-item:first-child{margin-top:0;border-top:0;border-top-left-radius:0;border-top-right-radius:0}.sidebar-search-results .search-path{font-size:80%}.sidebar-search-open .btn,.sidebar-search-open .form-control{border-bottom-right-radius:0;border-bottom-left-radius:0}[class*=sidebar-dark] .sidebar-custom{border-top:1px solid #4f5962}[class*=sidebar-light] .sidebar-custom{border-top:1px solid #dee2e6}.layout-fixed.sidebar-collapse .hide-on-collapse{display:none}.layout-fixed.sidebar-collapse:hover .hide-on-collapse{display:block}.layout-fixed.text-sm .main-sidebar-custom .sidebar{height:calc(100% - ((2.93725rem + 3.8rem) + 1px))}.layout-fixed.text-sm .main-sidebar-custom .sidebar-custom{height:3.8rem;padding:.85rem .5rem}.layout-fixed .main-sidebar-custom{height:-webkit-fill-available;height:-moz-available;height:-ms-stretch;height:stretch}.layout-fixed .main-sidebar-custom .sidebar{height:calc(100% - ((3.5rem + 4rem) + 1px))}.layout-fixed .main-sidebar-custom .sidebar-custom{height:4rem;padding:.85rem .5rem}.layout-fixed .main-sidebar-custom-lg .sidebar{height:calc(100% - ((3.5rem + 6rem) + 1px))}.layout-fixed .main-sidebar-custom-lg .sidebar-custom{height:6rem}.layout-fixed .main-sidebar-custom-xl .sidebar{height:calc(100% - ((3.5rem + 8rem) + 1px))}.layout-fixed .main-sidebar-custom-xl .sidebar-custom{height:8rem}.layout-fixed .main-sidebar-custom .pos-right,.layout-fixed .main-sidebar-custom-lg .pos-right,.layout-fixed .main-sidebar-custom-xl .pos-right{position:absolute;right:.5rem}.sidebar-hidden .main-sidebar,.sidebar-hidden.sidebar-mini.sidebar-collapse .main-sidebar{display:none!important}.sidebar-hidden .content-wrapper,.sidebar-hidden .main-header,.sidebar-hidden.sidebar-mini.sidebar-collapse .content-wrapper,.sidebar-hidden.sidebar-mini.sidebar-collapse .main-header{margin-left:0!important}.dark-mode .sidebar-dark-primary .nav-sidebar>.nav-item>.nav-link.active,.dark-mode .sidebar-light-primary .nav-sidebar>.nav-item>.nav-link.active{background-color:#3f6791;color:#fff}.dark-mode .sidebar-dark-primary .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.dark-mode .sidebar-light-primary .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#3f6791}.dark-mode .sidebar-dark-secondary .nav-sidebar>.nav-item>.nav-link.active,.dark-mode .sidebar-light-secondary .nav-sidebar>.nav-item>.nav-link.active{background-color:#6c757d;color:#fff}.dark-mode .sidebar-dark-secondary .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.dark-mode .sidebar-light-secondary .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#6c757d}.dark-mode .sidebar-dark-success .nav-sidebar>.nav-item>.nav-link.active,.dark-mode .sidebar-light-success .nav-sidebar>.nav-item>.nav-link.active{background-color:#00bc8c;color:#fff}.dark-mode .sidebar-dark-success .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.dark-mode .sidebar-light-success .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#00bc8c}.dark-mode .sidebar-dark-info .nav-sidebar>.nav-item>.nav-link.active,.dark-mode .sidebar-light-info .nav-sidebar>.nav-item>.nav-link.active{background-color:#3498db;color:#fff}.dark-mode .sidebar-dark-info .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.dark-mode .sidebar-light-info .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#3498db}.dark-mode .sidebar-dark-warning .nav-sidebar>.nav-item>.nav-link.active,.dark-mode .sidebar-light-warning .nav-sidebar>.nav-item>.nav-link.active{background-color:#f39c12;color:#1f2d3d}.dark-mode .sidebar-dark-warning .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.dark-mode .sidebar-light-warning .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#f39c12}.dark-mode .sidebar-dark-danger .nav-sidebar>.nav-item>.nav-link.active,.dark-mode .sidebar-light-danger .nav-sidebar>.nav-item>.nav-link.active{background-color:#e74c3c;color:#fff}.dark-mode .sidebar-dark-danger .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.dark-mode .sidebar-light-danger .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#e74c3c}.dark-mode .sidebar-dark-light .nav-sidebar>.nav-item>.nav-link.active,.dark-mode .sidebar-light-light .nav-sidebar>.nav-item>.nav-link.active{background-color:#f8f9fa;color:#1f2d3d}.dark-mode .sidebar-dark-light .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.dark-mode .sidebar-light-light .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#f8f9fa}.dark-mode .sidebar-dark-dark .nav-sidebar>.nav-item>.nav-link.active,.dark-mode .sidebar-light-dark .nav-sidebar>.nav-item>.nav-link.active{background-color:#343a40;color:#fff}.dark-mode .sidebar-dark-dark .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.dark-mode .sidebar-light-dark .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#343a40}.dark-mode .sidebar-dark-lightblue .nav-sidebar>.nav-item>.nav-link.active,.dark-mode .sidebar-light-lightblue .nav-sidebar>.nav-item>.nav-link.active{background-color:#86bad8;color:#1f2d3d}.dark-mode .sidebar-dark-lightblue .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.dark-mode .sidebar-light-lightblue .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#86bad8}.dark-mode .sidebar-dark-navy .nav-sidebar>.nav-item>.nav-link.active,.dark-mode .sidebar-light-navy .nav-sidebar>.nav-item>.nav-link.active{background-color:#002c59;color:#fff}.dark-mode .sidebar-dark-navy .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.dark-mode .sidebar-light-navy .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#002c59}.dark-mode .sidebar-dark-olive .nav-sidebar>.nav-item>.nav-link.active,.dark-mode .sidebar-light-olive .nav-sidebar>.nav-item>.nav-link.active{background-color:#74c8a3;color:#1f2d3d}.dark-mode .sidebar-dark-olive .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.dark-mode .sidebar-light-olive .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#74c8a3}.dark-mode .sidebar-dark-lime .nav-sidebar>.nav-item>.nav-link.active,.dark-mode .sidebar-light-lime .nav-sidebar>.nav-item>.nav-link.active{background-color:#67ffa9;color:#1f2d3d}.dark-mode .sidebar-dark-lime .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.dark-mode .sidebar-light-lime .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#67ffa9}.dark-mode .sidebar-dark-fuchsia .nav-sidebar>.nav-item>.nav-link.active,.dark-mode .sidebar-light-fuchsia .nav-sidebar>.nav-item>.nav-link.active{background-color:#f672d8;color:#1f2d3d}.dark-mode .sidebar-dark-fuchsia .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.dark-mode .sidebar-light-fuchsia .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#f672d8}.dark-mode .sidebar-dark-maroon .nav-sidebar>.nav-item>.nav-link.active,.dark-mode .sidebar-light-maroon .nav-sidebar>.nav-item>.nav-link.active{background-color:#ed6c9b;color:#1f2d3d}.dark-mode .sidebar-dark-maroon .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.dark-mode .sidebar-light-maroon .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#ed6c9b}.dark-mode .sidebar-dark-blue .nav-sidebar>.nav-item>.nav-link.active,.dark-mode .sidebar-light-blue .nav-sidebar>.nav-item>.nav-link.active{background-color:#3f6791;color:#fff}.dark-mode .sidebar-dark-blue .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.dark-mode .sidebar-light-blue .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#3f6791}.dark-mode .sidebar-dark-indigo .nav-sidebar>.nav-item>.nav-link.active,.dark-mode .sidebar-light-indigo .nav-sidebar>.nav-item>.nav-link.active{background-color:#6610f2;color:#fff}.dark-mode .sidebar-dark-indigo .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.dark-mode .sidebar-light-indigo .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#6610f2}.dark-mode .sidebar-dark-purple .nav-sidebar>.nav-item>.nav-link.active,.dark-mode .sidebar-light-purple .nav-sidebar>.nav-item>.nav-link.active{background-color:#6f42c1;color:#fff}.dark-mode .sidebar-dark-purple .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.dark-mode .sidebar-light-purple .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#6f42c1}.dark-mode .sidebar-dark-pink .nav-sidebar>.nav-item>.nav-link.active,.dark-mode .sidebar-light-pink .nav-sidebar>.nav-item>.nav-link.active{background-color:#e83e8c;color:#fff}.dark-mode .sidebar-dark-pink .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.dark-mode .sidebar-light-pink .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#e83e8c}.dark-mode .sidebar-dark-red .nav-sidebar>.nav-item>.nav-link.active,.dark-mode .sidebar-light-red .nav-sidebar>.nav-item>.nav-link.active{background-color:#e74c3c;color:#fff}.dark-mode .sidebar-dark-red .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.dark-mode .sidebar-light-red .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#e74c3c}.dark-mode .sidebar-dark-orange .nav-sidebar>.nav-item>.nav-link.active,.dark-mode .sidebar-light-orange .nav-sidebar>.nav-item>.nav-link.active{background-color:#fd7e14;color:#1f2d3d}.dark-mode .sidebar-dark-orange .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.dark-mode .sidebar-light-orange .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#fd7e14}.dark-mode .sidebar-dark-yellow .nav-sidebar>.nav-item>.nav-link.active,.dark-mode .sidebar-light-yellow .nav-sidebar>.nav-item>.nav-link.active{background-color:#f39c12;color:#1f2d3d}.dark-mode .sidebar-dark-yellow .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.dark-mode .sidebar-light-yellow .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#f39c12}.dark-mode .sidebar-dark-green .nav-sidebar>.nav-item>.nav-link.active,.dark-mode .sidebar-light-green .nav-sidebar>.nav-item>.nav-link.active{background-color:#00bc8c;color:#fff}.dark-mode .sidebar-dark-green .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.dark-mode .sidebar-light-green .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#00bc8c}.dark-mode .sidebar-dark-teal .nav-sidebar>.nav-item>.nav-link.active,.dark-mode .sidebar-light-teal .nav-sidebar>.nav-item>.nav-link.active{background-color:#20c997;color:#fff}.dark-mode .sidebar-dark-teal .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.dark-mode .sidebar-light-teal .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#20c997}.dark-mode .sidebar-dark-cyan .nav-sidebar>.nav-item>.nav-link.active,.dark-mode .sidebar-light-cyan .nav-sidebar>.nav-item>.nav-link.active{background-color:#3498db;color:#fff}.dark-mode .sidebar-dark-cyan .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.dark-mode .sidebar-light-cyan .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#3498db}.dark-mode .sidebar-dark-white .nav-sidebar>.nav-item>.nav-link.active,.dark-mode .sidebar-light-white .nav-sidebar>.nav-item>.nav-link.active{background-color:#fff;color:#1f2d3d}.dark-mode .sidebar-dark-white .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.dark-mode .sidebar-light-white .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#fff}.dark-mode .sidebar-dark-gray .nav-sidebar>.nav-item>.nav-link.active,.dark-mode .sidebar-light-gray .nav-sidebar>.nav-item>.nav-link.active{background-color:#6c757d;color:#fff}.dark-mode .sidebar-dark-gray .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.dark-mode .sidebar-light-gray .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#6c757d}.dark-mode .sidebar-dark-gray-dark .nav-sidebar>.nav-item>.nav-link.active,.dark-mode .sidebar-light-gray-dark .nav-sidebar>.nav-item>.nav-link.active{background-color:#343a40;color:#fff}.dark-mode .sidebar-dark-gray-dark .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,.dark-mode .sidebar-light-gray-dark .nav-sidebar.nav-legacy>.nav-item>.nav-link.active{border-color:#343a40}.dark-mode [class*=sidebar-light-] .sidebar a{color:#343a40}.dark-mode [class*=sidebar-light-] .sidebar a:hover{text-decoration:none}.logo-xl,.logo-xs{opacity:1;position:absolute;visibility:visible}.logo-xl.brand-image-xs,.logo-xs.brand-image-xs{left:18px;top:12px}.logo-xl.brand-image-xl,.logo-xs.brand-image-xl{left:12px;top:6px}.logo-xs{opacity:0;visibility:hidden}.logo-xs.brand-image-xl{left:16px;top:8px}.brand-link.logo-switch::before{content:"\00a0"}@media (min-width:992px){.sidebar-mini .nav-sidebar,.sidebar-mini .nav-sidebar .nav-link,.sidebar-mini .nav-sidebar>.nav-header{white-space:nowrap}.sidebar-mini.sidebar-collapse .d-hidden-mini{display:none}.sidebar-mini.sidebar-collapse .content-wrapper,.sidebar-mini.sidebar-collapse .main-footer,.sidebar-mini.sidebar-collapse .main-header{margin-left:4.6rem!important}.sidebar-mini.sidebar-collapse .nav-sidebar .nav-header{display:none}.sidebar-mini.sidebar-collapse .sidebar .nav-sidebar .nav-link p{width:0;white-space:nowrap}.sidebar-mini.sidebar-collapse .brand-text,.sidebar-mini.sidebar-collapse .sidebar .nav-sidebar .nav-link p,.sidebar-mini.sidebar-collapse .sidebar .user-panel>.info{margin-left:-10px;-webkit-animation-name:fadeOut;animation-name:fadeOut;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;visibility:hidden}.sidebar-mini.sidebar-collapse .logo-xl{-webkit-animation-name:fadeOut;animation-name:fadeOut;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;visibility:hidden}.sidebar-mini.sidebar-collapse .logo-xs{display:inline-block;-webkit-animation-name:fadeIn;animation-name:fadeIn;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;visibility:visible}.sidebar-mini.sidebar-collapse .main-sidebar{overflow-x:hidden}.sidebar-mini.sidebar-collapse .main-sidebar,.sidebar-mini.sidebar-collapse .main-sidebar::before{margin-left:0;width:4.6rem}.sidebar-mini.sidebar-collapse .main-sidebar .user-panel .image{float:none}.sidebar-mini.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused,.sidebar-mini.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover{width:250px}.sidebar-mini.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .brand-link,.sidebar-mini.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .brand-link{width:250px}.sidebar-mini.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .user-panel,.sidebar-mini.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .user-panel{text-align:left}.sidebar-mini.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .user-panel .image,.sidebar-mini.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .user-panel .image{float:left}.sidebar-mini.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .brand-text,.sidebar-mini.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .logo-xl,.sidebar-mini.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .sidebar .nav-sidebar .nav-link p,.sidebar-mini.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .user-panel>.info,.sidebar-mini.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .brand-text,.sidebar-mini.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .logo-xl,.sidebar-mini.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .sidebar .nav-sidebar .nav-link p,.sidebar-mini.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .user-panel>.info{display:inline-block;margin-left:0;-webkit-animation-name:fadeIn;animation-name:fadeIn;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;visibility:visible}.sidebar-mini.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .logo-xs,.sidebar-mini.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .logo-xs{-webkit-animation-name:fadeOut;animation-name:fadeOut;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;visibility:hidden}.sidebar-mini.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .brand-image,.sidebar-mini.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .brand-image{margin-right:.5rem}.sidebar-mini.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .sidebar-form,.sidebar-mini.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .user-panel>.info,.sidebar-mini.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .sidebar-form,.sidebar-mini.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .user-panel>.info{display:block!important;-webkit-transform:translateZ(0);transform:translateZ(0)}.sidebar-mini.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .nav-sidebar>.nav-item>.nav-link>span,.sidebar-mini.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .nav-sidebar>.nav-item>.nav-link>span{display:inline-block!important}.sidebar-mini.sidebar-collapse .visible-sidebar-mini{display:block!important}.sidebar-mini.sidebar-collapse.layout-fixed .main-sidebar:hover .brand-link{width:250px}.sidebar-mini.sidebar-collapse.layout-fixed .brand-link{width:4.6rem}}@media (max-width:991.98px){.sidebar-mini.sidebar-collapse .main-sidebar{box-shadow:none!important}}@media (min-width:768px){.sidebar-mini-md .nav-sidebar,.sidebar-mini-md .nav-sidebar .nav-link,.sidebar-mini-md .nav-sidebar>.nav-header{white-space:nowrap}.sidebar-mini-md.sidebar-collapse .d-hidden-mini{display:none}.sidebar-mini-md.sidebar-collapse .content-wrapper,.sidebar-mini-md.sidebar-collapse .main-footer,.sidebar-mini-md.sidebar-collapse .main-header{margin-left:4.6rem!important}.sidebar-mini-md.sidebar-collapse .nav-sidebar .nav-header{display:none}.sidebar-mini-md.sidebar-collapse .sidebar .nav-sidebar .nav-link p{width:0;white-space:nowrap}.sidebar-mini-md.sidebar-collapse .brand-text,.sidebar-mini-md.sidebar-collapse .sidebar .nav-sidebar .nav-link p,.sidebar-mini-md.sidebar-collapse .sidebar .user-panel>.info{margin-left:-10px;-webkit-animation-name:fadeOut;animation-name:fadeOut;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;visibility:hidden}.sidebar-mini-md.sidebar-collapse .logo-xl{-webkit-animation-name:fadeOut;animation-name:fadeOut;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;visibility:hidden}.sidebar-mini-md.sidebar-collapse .logo-xs{display:inline-block;-webkit-animation-name:fadeIn;animation-name:fadeIn;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;visibility:visible}.sidebar-mini-md.sidebar-collapse .main-sidebar{overflow-x:hidden}.sidebar-mini-md.sidebar-collapse .main-sidebar,.sidebar-mini-md.sidebar-collapse .main-sidebar::before{margin-left:0;width:4.6rem}.sidebar-mini-md.sidebar-collapse .main-sidebar .user-panel .image{float:none}.sidebar-mini-md.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused,.sidebar-mini-md.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover{width:250px}.sidebar-mini-md.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .brand-link,.sidebar-mini-md.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .brand-link{width:250px}.sidebar-mini-md.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .user-panel,.sidebar-mini-md.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .user-panel{text-align:left}.sidebar-mini-md.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .user-panel .image,.sidebar-mini-md.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .user-panel .image{float:left}.sidebar-mini-md.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .brand-text,.sidebar-mini-md.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .logo-xl,.sidebar-mini-md.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .sidebar .nav-sidebar .nav-link p,.sidebar-mini-md.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .user-panel>.info,.sidebar-mini-md.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .brand-text,.sidebar-mini-md.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .logo-xl,.sidebar-mini-md.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .sidebar .nav-sidebar .nav-link p,.sidebar-mini-md.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .user-panel>.info{display:inline-block;margin-left:0;-webkit-animation-name:fadeIn;animation-name:fadeIn;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;visibility:visible}.sidebar-mini-md.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .logo-xs,.sidebar-mini-md.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .logo-xs{-webkit-animation-name:fadeOut;animation-name:fadeOut;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;visibility:hidden}.sidebar-mini-md.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .brand-image,.sidebar-mini-md.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .brand-image{margin-right:.5rem}.sidebar-mini-md.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .sidebar-form,.sidebar-mini-md.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .user-panel>.info,.sidebar-mini-md.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .sidebar-form,.sidebar-mini-md.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .user-panel>.info{display:block!important;-webkit-transform:translateZ(0);transform:translateZ(0)}.sidebar-mini-md.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .nav-sidebar>.nav-item>.nav-link>span,.sidebar-mini-md.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .nav-sidebar>.nav-item>.nav-link>span{display:inline-block!important}.sidebar-mini-md.sidebar-collapse .visible-sidebar-mini{display:block!important}.sidebar-mini-md.sidebar-collapse.layout-fixed .main-sidebar:hover .brand-link{width:250px}.sidebar-mini-md.sidebar-collapse.layout-fixed .brand-link{width:4.6rem}}@media (max-width:767.98px){.sidebar-mini-md.sidebar-collapse .main-sidebar{box-shadow:none!important}}.sidebar-mini-xs .nav-sidebar,.sidebar-mini-xs .nav-sidebar .nav-link,.sidebar-mini-xs .nav-sidebar>.nav-header{white-space:nowrap}.sidebar-mini-xs.sidebar-collapse .d-hidden-mini{display:none}.sidebar-mini-xs.sidebar-collapse .content-wrapper,.sidebar-mini-xs.sidebar-collapse .main-footer,.sidebar-mini-xs.sidebar-collapse .main-header{margin-left:4.6rem!important}.sidebar-mini-xs.sidebar-collapse .nav-sidebar .nav-header{display:none}.sidebar-mini-xs.sidebar-collapse .sidebar .nav-sidebar .nav-link p{width:0;white-space:nowrap}.sidebar-mini-xs.sidebar-collapse .brand-text,.sidebar-mini-xs.sidebar-collapse .sidebar .nav-sidebar .nav-link p,.sidebar-mini-xs.sidebar-collapse .sidebar .user-panel>.info{margin-left:-10px;-webkit-animation-name:fadeOut;animation-name:fadeOut;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;visibility:hidden}.sidebar-mini-xs.sidebar-collapse .logo-xl{-webkit-animation-name:fadeOut;animation-name:fadeOut;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;visibility:hidden}.sidebar-mini-xs.sidebar-collapse .logo-xs{display:inline-block;-webkit-animation-name:fadeIn;animation-name:fadeIn;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;visibility:visible}.sidebar-mini-xs.sidebar-collapse .main-sidebar{overflow-x:hidden}.sidebar-mini-xs.sidebar-collapse .main-sidebar,.sidebar-mini-xs.sidebar-collapse .main-sidebar::before{margin-left:0;width:4.6rem}.sidebar-mini-xs.sidebar-collapse .main-sidebar .user-panel .image{float:none}.sidebar-mini-xs.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused,.sidebar-mini-xs.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover{width:250px}.sidebar-mini-xs.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .brand-link,.sidebar-mini-xs.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .brand-link{width:250px}.sidebar-mini-xs.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .user-panel,.sidebar-mini-xs.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .user-panel{text-align:left}.sidebar-mini-xs.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .user-panel .image,.sidebar-mini-xs.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .user-panel .image{float:left}.sidebar-mini-xs.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .brand-text,.sidebar-mini-xs.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .logo-xl,.sidebar-mini-xs.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .sidebar .nav-sidebar .nav-link p,.sidebar-mini-xs.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .user-panel>.info,.sidebar-mini-xs.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .brand-text,.sidebar-mini-xs.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .logo-xl,.sidebar-mini-xs.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .sidebar .nav-sidebar .nav-link p,.sidebar-mini-xs.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .user-panel>.info{display:inline-block;margin-left:0;-webkit-animation-name:fadeIn;animation-name:fadeIn;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;visibility:visible}.sidebar-mini-xs.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .logo-xs,.sidebar-mini-xs.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .logo-xs{-webkit-animation-name:fadeOut;animation-name:fadeOut;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;visibility:hidden}.sidebar-mini-xs.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .brand-image,.sidebar-mini-xs.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .brand-image{margin-right:.5rem}.sidebar-mini-xs.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .sidebar-form,.sidebar-mini-xs.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .user-panel>.info,.sidebar-mini-xs.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .sidebar-form,.sidebar-mini-xs.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .user-panel>.info{display:block!important;-webkit-transform:translateZ(0);transform:translateZ(0)}.sidebar-mini-xs.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .nav-sidebar>.nav-item>.nav-link>span,.sidebar-mini-xs.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .nav-sidebar>.nav-item>.nav-link>span{display:inline-block!important}.sidebar-mini-xs.sidebar-collapse .visible-sidebar-mini{display:block!important}.sidebar-mini-xs.sidebar-collapse.layout-fixed .main-sidebar:hover .brand-link{width:250px}.sidebar-mini-xs.sidebar-collapse.layout-fixed .brand-link{width:4.6rem}.sidebar-mini .main-sidebar .nav-child-indent .nav-treeview .nav-link,.sidebar-mini-md .main-sidebar .nav-child-indent .nav-treeview .nav-link,.sidebar-mini-xs .main-sidebar .nav-child-indent .nav-treeview .nav-link{width:calc(250px - .5rem * 2 - 1rem)}.sidebar-mini .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-link,.sidebar-mini-md .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-link,.sidebar-mini-xs .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-link{width:calc(250px - .5rem * 2 - 2rem)}.sidebar-mini .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-mini-md .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-mini-xs .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link{width:calc(250px - .5rem * 2 - 3rem)}.sidebar-mini .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-mini-md .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-mini-xs .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link{width:calc(250px - .5rem * 2 - 4rem)}.sidebar-mini .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-mini-md .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-mini-xs .main-sidebar .nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link{width:calc(250px - .5rem * 2 - 5rem)}.sidebar-mini .main-sidebar .nav-legacy .nav-link,.sidebar-mini-md .main-sidebar .nav-legacy .nav-link,.sidebar-mini-xs .main-sidebar .nav-legacy .nav-link{width:250px}.sidebar-mini .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-link,.sidebar-mini-md .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-link,.sidebar-mini-xs .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-link{width:calc(250px - 1rem)}.sidebar-mini .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link,.sidebar-mini-md .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link,.sidebar-mini-xs .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link{width:calc(250px - 1rem - 1rem)}.sidebar-mini .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-mini-md .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-mini-xs .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link{width:calc(250px - 1rem - 2rem)}.sidebar-mini .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-mini-md .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-mini-xs .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link{width:calc(250px - 1rem - 3rem)}.sidebar-mini .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-mini-md .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-mini-xs .main-sidebar .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link{width:calc(250px - 1rem - 4rem)}.sidebar-mini .main-sidebar .nav-flat .nav-link,.sidebar-mini-md .main-sidebar .nav-flat .nav-link,.sidebar-mini-xs .main-sidebar .nav-flat .nav-link{width:250px}.sidebar-mini .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-link,.sidebar-mini-md .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-link,.sidebar-mini-xs .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-link{width:calc(250px)}.sidebar-mini .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link,.sidebar-mini-md .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link,.sidebar-mini-xs .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link{width:calc(250px - .2rem)}.sidebar-mini .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-mini-md .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-mini-xs .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link{width:calc(250px - .2rem * 2)}.sidebar-mini .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-mini-md .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-mini-xs .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link{width:calc(250px - .2rem * 3)}.sidebar-mini .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-mini-md .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-mini-xs .main-sidebar .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link{width:calc(250px - .2rem * 4)}.sidebar-mini .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-link,.sidebar-mini-md .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-link,.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-link{width:calc(250px - .5rem * 2 - .5rem)}.sidebar-mini .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-link,.sidebar-mini-md .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-link,.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-link{width:calc(250px - .5rem * 2 - 1rem)}.sidebar-mini .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-mini-md .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link{width:calc(250px - .5rem * 2 - 1.5rem)}.sidebar-mini .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-mini-md .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link{width:calc(250px - .5rem * 2 - 2rem)}.sidebar-mini .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-mini-md .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link{width:calc(250px - .5rem * 2 - 2.5rem)}.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-link,.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-link,.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-link{width:250px}.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link,.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link,.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link{width:calc(250px - .5rem)}.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link,.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link,.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link{width:calc(250px - .5rem * 2)}.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link{width:calc(250px - .5rem * 3)}.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link{width:calc(250px - .5rem * 4)}.sidebar-mini .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-mini-md .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-mini-xs .main-sidebar .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link{width:calc(250px - .5rem * 5)}.sidebar-mini .main-sidebar .nav-link,.sidebar-mini-md .main-sidebar .nav-link,.sidebar-mini-xs .main-sidebar .nav-link{width:calc(250px - .5rem * 2);transition:width ease-in-out .3s}@media (prefers-reduced-motion:reduce){.sidebar-mini .main-sidebar .nav-link,.sidebar-mini-md .main-sidebar .nav-link,.sidebar-mini-xs .main-sidebar .nav-link{transition:none}}.sidebar-collapse.sidebar-mini .main-sidebar .sidebar-search-results,.sidebar-collapse.sidebar-mini-md .main-sidebar .sidebar-search-results,.sidebar-collapse.sidebar-mini-xs .main-sidebar .sidebar-search-results{display:none}.sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar .nav-link{width:3.6rem}.sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar.nav-flat .nav-link,.sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar.nav-legacy .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar.nav-flat .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar.nav-legacy .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar.nav-flat .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar.nav-legacy .nav-link{width:4.6rem}.sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-treeview,.sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-treeview,.sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-treeview{padding-left:0!important;margin-left:0!important}.sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar.nav-child-indent.nav-compact .nav-link{width:calc(4.6rem - .5rem * 2)}.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused:not(.hide-nav-header-on-hover) .nav-header,.sidebar-collapse.sidebar-mini .main-sidebar:hover:not(.hide-nav-header-on-hover) .nav-header,.sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused:not(.hide-nav-header-on-hover) .nav-header,.sidebar-collapse.sidebar-mini-md .main-sidebar:hover:not(.hide-nav-header-on-hover) .nav-header,.sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused:not(.hide-nav-header-on-hover) .nav-header,.sidebar-collapse.sidebar-mini-xs .main-sidebar:hover:not(.hide-nav-header-on-hover) .nav-header{display:inline-block}.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused:not(.sidebar-no-expand) .nav-link,.sidebar-collapse.sidebar-mini .main-sidebar:hover:not(.sidebar-no-expand) .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused:not(.sidebar-no-expand) .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar:hover:not(.sidebar-no-expand) .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused:not(.sidebar-no-expand) .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar:hover:not(.sidebar-no-expand) .nav-link{width:calc(250px - .5rem * 2)}.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused:not(.sidebar-no-expand) .form-control-sidebar,.sidebar-collapse.sidebar-mini .main-sidebar:hover:not(.sidebar-no-expand) .form-control-sidebar,.sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused:not(.sidebar-no-expand) .form-control-sidebar,.sidebar-collapse.sidebar-mini-md .main-sidebar:hover:not(.sidebar-no-expand) .form-control-sidebar,.sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused:not(.sidebar-no-expand) .form-control-sidebar,.sidebar-collapse.sidebar-mini-xs .main-sidebar:hover:not(.sidebar-no-expand) .form-control-sidebar{display:inline-block}.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused:not(.sidebar-no-expand) .form-control-sidebar~.input-group-append,.sidebar-collapse.sidebar-mini .main-sidebar:hover:not(.sidebar-no-expand) .form-control-sidebar~.input-group-append,.sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused:not(.sidebar-no-expand) .form-control-sidebar~.input-group-append,.sidebar-collapse.sidebar-mini-md .main-sidebar:hover:not(.sidebar-no-expand) .form-control-sidebar~.input-group-append,.sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused:not(.sidebar-no-expand) .form-control-sidebar~.input-group-append,.sidebar-collapse.sidebar-mini-xs .main-sidebar:hover:not(.sidebar-no-expand) .form-control-sidebar~.input-group-append{display:-ms-flexbox;display:flex}.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused:not(.sidebar-no-expand) .sidebar-search-open .sidebar-search-results,.sidebar-collapse.sidebar-mini .main-sidebar:hover:not(.sidebar-no-expand) .sidebar-search-open .sidebar-search-results,.sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused:not(.sidebar-no-expand) .sidebar-search-open .sidebar-search-results,.sidebar-collapse.sidebar-mini-md .main-sidebar:hover:not(.sidebar-no-expand) .sidebar-search-open .sidebar-search-results,.sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused:not(.sidebar-no-expand) .sidebar-search-open .sidebar-search-results,.sidebar-collapse.sidebar-mini-xs .main-sidebar:hover:not(.sidebar-no-expand) .sidebar-search-open .sidebar-search-results{display:inline-block}.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent .nav-link,.sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent .nav-link{width:calc(250px - .5rem * 2)}.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy .nav-link,.sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy .nav-link{width:250px}.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-link{width:calc(250px - 1rem)}.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-link{width:calc(250px - 1rem - 1rem)}.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link{width:calc(250px - 1rem - 2rem)}.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link{width:calc(250px - 1rem - 3rem)}.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-legacy.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link{width:calc(250px - 1rem - 4rem)}.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat .nav-link,.sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat .nav-link{width:250px}.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-link{width:calc(250px)}.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-link{width:calc(250px - .2rem)}.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-link{width:calc(250px - .2rem * 2)}.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link{width:calc(250px - .2rem * 3)}.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-flat.nav-child-indent .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link{width:calc(250px - .2rem * 4)}.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-compact .nav-link,.sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-compact .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-compact .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-compact .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-compact .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-compact .nav-link{width:calc(250px - .5rem * 2)}.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-link,.sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-link{width:250px}.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-link{width:calc(250px - .5rem)}.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-link{width:calc(250px - .5rem * 2)}.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-link{width:calc(250px - .5rem * 3)}.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link{width:calc(250px - .5rem * 4)}.sidebar-collapse.sidebar-mini .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-md .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar.sidebar-focused .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link,.sidebar-collapse.sidebar-mini-xs .main-sidebar:hover .nav-child-indent.nav-legacy.nav-compact .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-treeview .nav-link{width:calc(250px - .5rem * 5)}.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused,.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover,.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused,.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover,.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused,.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover{width:4.6rem}.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .nav-header,.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .nav-header,.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .nav-header,.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .nav-header,.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .nav-header,.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .nav-header{display:none}.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .brand-link,.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .brand-link,.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .brand-link,.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .brand-link,.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .brand-link,.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .brand-link{width:4.6rem!important}.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel .image,.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .user-panel .image,.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel .image,.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .user-panel .image,.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .user-panel .image,.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .user-panel .image{float:none!important}.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xs,.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .logo-xs,.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xs,.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .logo-xs,.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xs,.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .logo-xs{-webkit-animation-name:fadeIn;animation-name:fadeIn;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;visibility:visible}.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xl,.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .logo-xl,.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xl,.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .logo-xl,.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .logo-xl,.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .logo-xl{-webkit-animation-name:fadeOut;animation-name:fadeOut;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;visibility:hidden}.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar.nav-child-indent .nav-treeview,.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .nav-sidebar.nav-child-indent .nav-treeview,.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar.nav-child-indent .nav-treeview,.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .nav-sidebar.nav-child-indent .nav-treeview,.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .nav-sidebar.nav-child-indent .nav-treeview,.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .nav-sidebar.nav-child-indent .nav-treeview{padding-left:0}.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .sidebar .brand-text,.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .sidebar .nav-sidebar .nav-link p,.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .sidebar .user-panel>.info,.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .sidebar .brand-text,.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .sidebar .nav-sidebar .nav-link p,.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .sidebar .user-panel>.info,.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .sidebar .brand-text,.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .sidebar .nav-sidebar .nav-link p,.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .sidebar .user-panel>.info,.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .sidebar .brand-text,.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .sidebar .nav-sidebar .nav-link p,.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .sidebar .user-panel>.info,.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .sidebar .brand-text,.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .sidebar .nav-sidebar .nav-link p,.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .sidebar .user-panel>.info,.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .sidebar .brand-text,.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .sidebar .nav-sidebar .nav-link p,.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .sidebar .user-panel>.info{margin-left:-10px;-webkit-animation-name:fadeOut;animation-name:fadeOut;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;visibility:hidden;display:inline-block;width:0}.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar.sidebar-focused .sidebar .nav-sidebar>.nav-item .nav-icon,.sidebar-collapse.sidebar-mini .sidebar-no-expand.main-sidebar:hover .sidebar .nav-sidebar>.nav-item .nav-icon,.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar.sidebar-focused .sidebar .nav-sidebar>.nav-item .nav-icon,.sidebar-collapse.sidebar-mini-md .sidebar-no-expand.main-sidebar:hover .sidebar .nav-sidebar>.nav-item .nav-icon,.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar.sidebar-focused .sidebar .nav-sidebar>.nav-item .nav-icon,.sidebar-collapse.sidebar-mini-xs .sidebar-no-expand.main-sidebar:hover .sidebar .nav-sidebar>.nav-item .nav-icon{margin-right:0}.nav-sidebar{position:relative}.nav-sidebar:hover{overflow:visible}.nav-sidebar>.nav-header,.sidebar-form{overflow:hidden;text-overflow:clip}.nav-sidebar .nav-item>.nav-link{position:relative}.nav-sidebar .nav-item>.nav-link>.float-right{margin-top:-7px;position:absolute;right:10px;top:50%}.main-sidebar .brand-text,.main-sidebar .logo-xl,.main-sidebar .logo-xs,.sidebar .nav-link p,.sidebar .user-panel .info{transition:margin-left .3s linear,opacity .3s ease,visibility .3s ease}@media (prefers-reduced-motion:reduce){.main-sidebar .brand-text,.main-sidebar .logo-xl,.main-sidebar .logo-xs,.sidebar .nav-link p,.sidebar .user-panel .info{transition:none}}html.control-sidebar-animate{overflow-x:hidden}.control-sidebar{bottom:calc(3.5rem + 1px);position:absolute;top:calc(3.5rem + 1px);z-index:1031}.control-sidebar,.control-sidebar::before{bottom:calc(3.5rem + 1px);display:none;right:-250px;width:250px;transition:right .3s ease-in-out,display .3s ease-in-out}@media (prefers-reduced-motion:reduce){.control-sidebar,.control-sidebar::before{transition:none}}.control-sidebar::before{content:"";display:block;position:fixed;top:0;z-index:-1}body.text-sm .control-sidebar{bottom:calc(2.9365rem + 1px);top:calc(2.93725rem + 1px)}.main-header.text-sm~.control-sidebar{top:calc(2.93725rem + 1px)}.main-footer.text-sm~.control-sidebar{bottom:calc(2.9365rem + 1px)}.control-sidebar-push-slide .content-wrapper,.control-sidebar-push-slide .main-footer{transition:margin-right .3s ease-in-out}@media (prefers-reduced-motion:reduce){.control-sidebar-push-slide .content-wrapper,.control-sidebar-push-slide .main-footer{transition:none}}.control-sidebar-open .control-sidebar{display:block!important}.control-sidebar-open .control-sidebar,.control-sidebar-open .control-sidebar::before{right:0}.control-sidebar-open.control-sidebar-push .content-wrapper,.control-sidebar-open.control-sidebar-push .main-footer,.control-sidebar-open.control-sidebar-push-slide .content-wrapper,.control-sidebar-open.control-sidebar-push-slide .main-footer{margin-right:250px}.control-sidebar-slide-open .control-sidebar{display:block}.control-sidebar-slide-open .control-sidebar,.control-sidebar-slide-open .control-sidebar::before{right:0;transition:right .3s ease-in-out,display .3s ease-in-out}@media (prefers-reduced-motion:reduce){.control-sidebar-slide-open .control-sidebar,.control-sidebar-slide-open .control-sidebar::before{transition:none}}.control-sidebar-slide-open.control-sidebar-push .content-wrapper,.control-sidebar-slide-open.control-sidebar-push .main-footer,.control-sidebar-slide-open.control-sidebar-push-slide .content-wrapper,.control-sidebar-slide-open.control-sidebar-push-slide .main-footer{margin-right:250px}.control-sidebar-dark{background-color:#343a40}.control-sidebar-dark,.control-sidebar-dark .nav-link,.control-sidebar-dark a{color:#c2c7d0}.control-sidebar-dark a:hover{color:#fff}.control-sidebar-dark h1,.control-sidebar-dark h2,.control-sidebar-dark h3,.control-sidebar-dark h4,.control-sidebar-dark h5,.control-sidebar-dark h6,.control-sidebar-dark label{color:#fff}.control-sidebar-dark .nav-tabs{background-color:rgba(255,255,255,.1);border-bottom:0;margin-bottom:5px}.control-sidebar-dark .nav-tabs .nav-item{margin:0}.control-sidebar-dark .nav-tabs .nav-link{border-radius:0;padding:10px 20px;position:relative;text-align:center}.control-sidebar-dark .nav-tabs .nav-link,.control-sidebar-dark .nav-tabs .nav-link.active,.control-sidebar-dark .nav-tabs .nav-link:active,.control-sidebar-dark .nav-tabs .nav-link:focus,.control-sidebar-dark .nav-tabs .nav-link:hover{border:0}.control-sidebar-dark .nav-tabs .nav-link.active,.control-sidebar-dark .nav-tabs .nav-link:active,.control-sidebar-dark .nav-tabs .nav-link:focus,.control-sidebar-dark .nav-tabs .nav-link:hover{border-bottom-color:transparent;border-left-color:transparent;border-top-color:transparent;color:#fff}.control-sidebar-dark .nav-tabs .nav-link.active{background-color:#343a40}.control-sidebar-dark .tab-pane{padding:10px 15px}.control-sidebar-light{color:#4b545c;background-color:#fff;border-left:1px solid #dee2e6}.text-sm .dropdown-menu{font-size:.875rem!important}.text-sm .dropdown-toggle::after{vertical-align:.2rem}.dropdown-item-title{font-size:1rem;margin:0}.dropdown-icon::after{margin-left:0}.dropdown-menu-lg{max-width:300px;min-width:280px;padding:0}.dropdown-menu-lg .dropdown-divider{margin:0}.dropdown-menu-lg .dropdown-item{padding:.5rem 1rem}.dropdown-menu-lg p{margin:0;white-space:normal}.dropdown-submenu{position:relative}.dropdown-submenu>a::after{border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid;float:right;margin-left:.5rem;margin-top:.5rem}.dropdown-submenu>.dropdown-menu{left:100%;margin-left:0;margin-top:0;top:0}.dropdown-hover .dropdown-submenu:hover>.dropdown-menu,.dropdown-hover.dropdown-submenu:hover>.dropdown-menu,.dropdown-hover.nav-item.dropdown:hover>.dropdown-menu,.dropdown-hover:hover>.dropdown-menu{display:block}.dropdown-menu-xl{max-width:420px;min-width:360px;padding:0}.dropdown-menu-xl .dropdown-divider{margin:0}.dropdown-menu-xl .dropdown-item{padding:.5rem 1rem}.dropdown-menu-xl p{margin:0;white-space:normal}.dropdown-footer,.dropdown-header{display:block;font-size:.875rem;padding:.5rem 1rem;text-align:center}.open:not(.dropup)>.animated-dropdown-menu{-webkit-animation:flipInX .7s both;animation:flipInX .7s both;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}.navbar-custom-menu>.navbar-nav>li{position:relative}.navbar-custom-menu>.navbar-nav>li>.dropdown-menu{position:absolute;right:0;left:auto}@media (max-width:767.98px){.navbar-custom-menu>.navbar-nav{float:right}.navbar-custom-menu>.navbar-nav>li{position:static}.navbar-custom-menu>.navbar-nav>li>.dropdown-menu{position:absolute;right:5%;left:auto;border:1px solid #ddd;background-color:#fff}}.navbar-nav>.user-menu>.nav-link::after{content:none}.navbar-nav>.user-menu>.dropdown-menu{border-top-left-radius:0;border-top-right-radius:0;padding:0;width:280px}.navbar-nav>.user-menu>.dropdown-menu,.navbar-nav>.user-menu>.dropdown-menu>.user-body{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.navbar-nav>.user-menu>.dropdown-menu>li.user-header{height:175px;padding:10px;text-align:center}.navbar-nav>.user-menu>.dropdown-menu>li.user-header>img{z-index:5;height:90px;width:90px;border:3px solid;border-color:transparent;border-color:rgba(255,255,255,.2)}.navbar-nav>.user-menu>.dropdown-menu>li.user-header>p{z-index:5;font-size:17px;margin-top:10px}.navbar-nav>.user-menu>.dropdown-menu>li.user-header>p>small{display:block;font-size:12px}.navbar-nav>.user-menu>.dropdown-menu>.user-body{border-bottom:1px solid #495057;border-top:1px solid #dee2e6;padding:15px}.navbar-nav>.user-menu>.dropdown-menu>.user-body::after{display:block;clear:both;content:""}@media (min-width:576px){.navbar-nav>.user-menu>.dropdown-menu>.user-body a{background-color:#fff!important;color:#495057!important}}.navbar-nav>.user-menu>.dropdown-menu>.user-footer{background-color:#f8f9fa;padding:10px}.navbar-nav>.user-menu>.dropdown-menu>.user-footer::after{display:block;clear:both;content:""}.navbar-nav>.user-menu>.dropdown-menu>.user-footer .btn-default{color:#6c757d}@media (min-width:576px){.navbar-nav>.user-menu>.dropdown-menu>.user-footer .btn-default:hover{background-color:#f8f9fa}}.navbar-nav>.user-menu .user-image{border-radius:50%;float:left;height:2.1rem;margin-right:10px;margin-top:-2px;width:2.1rem}@media (min-width:576px){.navbar-nav>.user-menu .user-image{float:none;line-height:10px;margin-right:.4rem;margin-top:-8px}}.dark-mode .dropdown-menu{background-color:#343a40;color:#fff}.dark-mode .dropdown-item{color:#fff}.dark-mode .dropdown-item:focus,.dark-mode .dropdown-item:hover{background-color:#3f474e}.dark-mode .dropdown-divider{border-color:#6c757d}.dark-mode .navbar-nav>.user-menu>.dropdown-menu>.user-footer{background-color:#3a4047;color:#fff}.dark-mode .navbar-nav>.user-menu>.dropdown-menu>.user-footer .btn-default{color:#fff}.dark-mode .navbar-nav>.user-menu>.dropdown-menu>.user-footer .btn-default:focus,.dark-mode .navbar-nav>.user-menu>.dropdown-menu>.user-footer .btn-default:hover{background-color:#3f474e;color:#dee2e6}.dark-mode .navbar-nav>.user-menu>.dropdown-menu>.user-footer .btn-default:focus{background-color:#454d55}.dark-mode .navbar-nav>.user-menu>.dropdown-menu>.user-body{border-color:#6c757d}.dark-mode .navbar-nav>.user-menu>.dropdown-menu>.user-body a{background-color:transparent!important;color:#fff!important}.dark-mode .navbar-nav>.user-menu>.dropdown-menu>.user-body a:focus,.dark-mode .navbar-nav>.user-menu>.dropdown-menu>.user-body a:hover{color:#ced4da!important}.nav-pills .nav-link{color:#6c757d}.nav-pills .nav-link:not(.active):hover{color:#007bff}.nav-pills .nav-item.dropdown.show .nav-link:hover{color:#fff}.nav-tabs.flex-column{border-bottom:0;border-right:1px solid #dee2e6}.nav-tabs.flex-column .nav-link{border-bottom-left-radius:.25rem;border-top-right-radius:0;margin-right:-1px}.nav-tabs.flex-column .nav-link:focus,.nav-tabs.flex-column .nav-link:hover{border-color:#e9ecef transparent #e9ecef #e9ecef}.nav-tabs.flex-column .nav-item.show .nav-link,.nav-tabs.flex-column .nav-link.active{border-color:#dee2e6 transparent #dee2e6 #dee2e6}.nav-tabs.flex-column.nav-tabs-right{border-left:1px solid #dee2e6;border-right:0}.nav-tabs.flex-column.nav-tabs-right .nav-link{border-bottom-left-radius:0;border-bottom-right-radius:.25rem;border-top-left-radius:0;border-top-right-radius:.25rem;margin-left:-1px}.nav-tabs.flex-column.nav-tabs-right .nav-link:focus,.nav-tabs.flex-column.nav-tabs-right .nav-link:hover{border-color:#e9ecef #e9ecef #e9ecef transparent}.nav-tabs.flex-column.nav-tabs-right .nav-item.show .nav-link,.nav-tabs.flex-column.nav-tabs-right .nav-link.active{border-color:#dee2e6 #dee2e6 #dee2e6 transparent}.navbar-no-expand{-ms-flex-direction:row;flex-direction:row}.navbar-no-expand .nav-link{padding-left:1rem;padding-right:1rem}.navbar-no-expand .dropdown-menu{position:absolute}.navbar-light{background-color:#f8f9fa}.navbar-dark{background-color:#343a40;border-color:#4b545c}.navbar-primary{background-color:#007bff;color:#fff}.navbar-primary.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.navbar-primary.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.navbar-primary.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-primary.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-primary.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.navbar-primary.navbar-light .form-control-navbar,.navbar-primary.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#0071eb;border-color:#0065d1;color:rgba(52,58,64,.8)}.navbar-primary.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.navbar-primary.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.navbar-primary.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.navbar-primary.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.navbar-primary.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.navbar-primary.navbar-light .form-control-navbar:focus,.navbar-primary.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#006fe6;border-color:#0065d1!important;color:#343a40}.navbar-primary.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.navbar-primary.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.navbar-primary.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-primary.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-primary.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.navbar-primary.navbar-dark .form-control-navbar,.navbar-primary.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#1486ff;border-color:#2e93ff;color:rgba(255,255,255,.8)}.navbar-primary.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.navbar-primary.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.navbar-primary.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.navbar-primary.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.navbar-primary.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.navbar-primary.navbar-dark .form-control-navbar:focus,.navbar-primary.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#1a88ff;border-color:#2e93ff!important;color:#fff}.navbar-secondary{background-color:#6c757d;color:#fff}.navbar-secondary.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.navbar-secondary.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.navbar-secondary.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-secondary.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-secondary.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.navbar-secondary.navbar-light .form-control-navbar,.navbar-secondary.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#636b72;border-color:#575e64;color:rgba(52,58,64,.8)}.navbar-secondary.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.navbar-secondary.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.navbar-secondary.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.navbar-secondary.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.navbar-secondary.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.navbar-secondary.navbar-light .form-control-navbar:focus,.navbar-secondary.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#60686f;border-color:#575e64!important;color:#343a40}.navbar-secondary.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.navbar-secondary.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.navbar-secondary.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-secondary.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-secondary.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.navbar-secondary.navbar-dark .form-control-navbar,.navbar-secondary.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#757f88;border-color:#838c94;color:rgba(255,255,255,.8)}.navbar-secondary.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.navbar-secondary.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.navbar-secondary.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.navbar-secondary.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.navbar-secondary.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.navbar-secondary.navbar-dark .form-control-navbar:focus,.navbar-secondary.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#78828a;border-color:#838c94!important;color:#fff}.navbar-success{background-color:#28a745;color:#fff}.navbar-success.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.navbar-success.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.navbar-success.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-success.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-success.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.navbar-success.navbar-light .form-control-navbar,.navbar-success.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#24973e;border-color:#1f8236;color:rgba(52,58,64,.8)}.navbar-success.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.navbar-success.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.navbar-success.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.navbar-success.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.navbar-success.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.navbar-success.navbar-light .form-control-navbar:focus,.navbar-success.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#23923d;border-color:#1f8236!important;color:#343a40}.navbar-success.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.navbar-success.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.navbar-success.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-success.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-success.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.navbar-success.navbar-dark .form-control-navbar,.navbar-success.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#2cb74c;border-color:#31cc54;color:rgba(255,255,255,.8)}.navbar-success.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.navbar-success.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.navbar-success.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.navbar-success.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.navbar-success.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.navbar-success.navbar-dark .form-control-navbar:focus,.navbar-success.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#2dbc4e;border-color:#31cc54!important;color:#fff}.navbar-info{background-color:#17a2b8;color:#fff}.navbar-info.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.navbar-info.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.navbar-info.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-info.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-info.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.navbar-info.navbar-light .form-control-navbar,.navbar-info.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#1592a6;border-color:#127e8f;color:rgba(52,58,64,.8)}.navbar-info.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.navbar-info.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.navbar-info.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.navbar-info.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.navbar-info.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.navbar-info.navbar-light .form-control-navbar:focus,.navbar-info.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#148ea1;border-color:#127e8f!important;color:#343a40}.navbar-info.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.navbar-info.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.navbar-info.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-info.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-info.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.navbar-info.navbar-dark .form-control-navbar,.navbar-info.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#19b2ca;border-color:#1cc6e1;color:rgba(255,255,255,.8)}.navbar-info.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.navbar-info.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.navbar-info.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.navbar-info.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.navbar-info.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.navbar-info.navbar-dark .form-control-navbar:focus,.navbar-info.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#1ab6cf;border-color:#1cc6e1!important;color:#fff}.navbar-warning{background-color:#ffc107;color:#1f2d3d}.navbar-warning.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.navbar-warning.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.navbar-warning.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-warning.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-warning.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.navbar-warning.navbar-light .form-control-navbar,.navbar-warning.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#f2b500;border-color:#d8a200;color:rgba(52,58,64,.8)}.navbar-warning.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.navbar-warning.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.navbar-warning.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.navbar-warning.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.navbar-warning.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.navbar-warning.navbar-light .form-control-navbar:focus,.navbar-warning.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#edb100;border-color:#d8a200!important;color:#343a40}.navbar-warning.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.navbar-warning.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.navbar-warning.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-warning.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-warning.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.navbar-warning.navbar-dark .form-control-navbar,.navbar-warning.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#ffc61b;border-color:#ffcc35;color:rgba(255,255,255,.8)}.navbar-warning.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.navbar-warning.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.navbar-warning.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.navbar-warning.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.navbar-warning.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.navbar-warning.navbar-dark .form-control-navbar:focus,.navbar-warning.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#ffc721;border-color:#ffcc35!important;color:#fff}.navbar-danger{background-color:#dc3545;color:#fff}.navbar-danger.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.navbar-danger.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.navbar-danger.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-danger.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-danger.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.navbar-danger.navbar-light .form-control-navbar,.navbar-danger.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#d72536;border-color:#c22231;color:rgba(52,58,64,.8)}.navbar-danger.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.navbar-danger.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.navbar-danger.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.navbar-danger.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.navbar-danger.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.navbar-danger.navbar-light .form-control-navbar:focus,.navbar-danger.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#d32535;border-color:#c22231!important;color:#343a40}.navbar-danger.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.navbar-danger.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.navbar-danger.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-danger.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-danger.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.navbar-danger.navbar-dark .form-control-navbar,.navbar-danger.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#df4655;border-color:#e35c69;color:rgba(255,255,255,.8)}.navbar-danger.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.navbar-danger.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.navbar-danger.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.navbar-danger.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.navbar-danger.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.navbar-danger.navbar-dark .form-control-navbar:focus,.navbar-danger.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#e04b59;border-color:#e35c69!important;color:#fff}.navbar-lightblue{background-color:#3c8dbc;color:#fff}.navbar-lightblue.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.navbar-lightblue.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.navbar-lightblue.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-lightblue.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-lightblue.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.navbar-lightblue.navbar-light .form-control-navbar,.navbar-lightblue.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#3781ad;border-color:#317399;color:rgba(52,58,64,.8)}.navbar-lightblue.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.navbar-lightblue.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.navbar-lightblue.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.navbar-lightblue.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.navbar-lightblue.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.navbar-lightblue.navbar-light .form-control-navbar:focus,.navbar-lightblue.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#367fa9;border-color:#317399!important;color:#343a40}.navbar-lightblue.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.navbar-lightblue.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.navbar-lightblue.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-lightblue.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-lightblue.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.navbar-lightblue.navbar-dark .form-control-navbar,.navbar-lightblue.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#4897c5;border-color:#5ba2cb;color:rgba(255,255,255,.8)}.navbar-lightblue.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.navbar-lightblue.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.navbar-lightblue.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.navbar-lightblue.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.navbar-lightblue.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.navbar-lightblue.navbar-dark .form-control-navbar:focus,.navbar-lightblue.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#4c99c6;border-color:#5ba2cb!important;color:#fff}.navbar-navy{background-color:#001f3f;color:#fff}.navbar-navy.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.navbar-navy.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.navbar-navy.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-navy.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-navy.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.navbar-navy.navbar-light .form-control-navbar,.navbar-navy.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#00152b;border-color:#000811;color:rgba(52,58,64,.8)}.navbar-navy.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.navbar-navy.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.navbar-navy.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.navbar-navy.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.navbar-navy.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.navbar-navy.navbar-light .form-control-navbar:focus,.navbar-navy.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#001226;border-color:#000811!important;color:#343a40}.navbar-navy.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.navbar-navy.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.navbar-navy.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-navy.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-navy.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.navbar-navy.navbar-dark .form-control-navbar,.navbar-navy.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#002953;border-color:#00366d;color:rgba(255,255,255,.8)}.navbar-navy.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.navbar-navy.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.navbar-navy.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.navbar-navy.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.navbar-navy.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.navbar-navy.navbar-dark .form-control-navbar:focus,.navbar-navy.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#002c59;border-color:#00366d!important;color:#fff}.navbar-olive{background-color:#3d9970;color:#fff}.navbar-olive.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.navbar-olive.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.navbar-olive.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-olive.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-olive.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.navbar-olive.navbar-light .form-control-navbar,.navbar-olive.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#378a65;border-color:#307858;color:rgba(52,58,64,.8)}.navbar-olive.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.navbar-olive.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.navbar-olive.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.navbar-olive.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.navbar-olive.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.navbar-olive.navbar-light .form-control-navbar:focus,.navbar-olive.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#368763;border-color:#307858!important;color:#343a40}.navbar-olive.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.navbar-olive.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.navbar-olive.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-olive.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-olive.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.navbar-olive.navbar-dark .form-control-navbar,.navbar-olive.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#43a87b;border-color:#4cb888;color:rgba(255,255,255,.8)}.navbar-olive.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.navbar-olive.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.navbar-olive.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.navbar-olive.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.navbar-olive.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.navbar-olive.navbar-dark .form-control-navbar:focus,.navbar-olive.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#44ab7d;border-color:#4cb888!important;color:#fff}.navbar-lime{background-color:#01ff70;color:#1f2d3d}.navbar-lime.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.navbar-lime.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.navbar-lime.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-lime.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-lime.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.navbar-lime.navbar-light .form-control-navbar,.navbar-lime.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#00ec67;border-color:#00d25c;color:rgba(52,58,64,.8)}.navbar-lime.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.navbar-lime.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.navbar-lime.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.navbar-lime.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.navbar-lime.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.navbar-lime.navbar-light .form-control-navbar:focus,.navbar-lime.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#00e765;border-color:#00d25c!important;color:#343a40}.navbar-lime.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.navbar-lime.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.navbar-lime.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-lime.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-lime.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.navbar-lime.navbar-dark .form-control-navbar,.navbar-lime.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#15ff7b;border-color:#2fff8a;color:rgba(255,255,255,.8)}.navbar-lime.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.navbar-lime.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.navbar-lime.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.navbar-lime.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.navbar-lime.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.navbar-lime.navbar-dark .form-control-navbar:focus,.navbar-lime.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#1bff7e;border-color:#2fff8a!important;color:#fff}.navbar-fuchsia{background-color:#f012be;color:#fff}.navbar-fuchsia.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.navbar-fuchsia.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.navbar-fuchsia.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-fuchsia.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-fuchsia.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.navbar-fuchsia.navbar-light .form-control-navbar,.navbar-fuchsia.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#df0eb0;border-color:#c70d9d;color:rgba(52,58,64,.8)}.navbar-fuchsia.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.navbar-fuchsia.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.navbar-fuchsia.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.navbar-fuchsia.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.navbar-fuchsia.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.navbar-fuchsia.navbar-light .form-control-navbar:focus,.navbar-fuchsia.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#db0ead;border-color:#c70d9d!important;color:#343a40}.navbar-fuchsia.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.navbar-fuchsia.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.navbar-fuchsia.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-fuchsia.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-fuchsia.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.navbar-fuchsia.navbar-dark .form-control-navbar,.navbar-fuchsia.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#f125c3;border-color:#f33dca;color:rgba(255,255,255,.8)}.navbar-fuchsia.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.navbar-fuchsia.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.navbar-fuchsia.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.navbar-fuchsia.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.navbar-fuchsia.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.navbar-fuchsia.navbar-dark .form-control-navbar:focus,.navbar-fuchsia.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#f22ac5;border-color:#f33dca!important;color:#fff}.navbar-maroon{background-color:#d81b60;color:#fff}.navbar-maroon.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.navbar-maroon.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.navbar-maroon.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-maroon.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-maroon.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.navbar-maroon.navbar-light .form-control-navbar,.navbar-maroon.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#c61958;border-color:#af164e;color:rgba(52,58,64,.8)}.navbar-maroon.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.navbar-maroon.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.navbar-maroon.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.navbar-maroon.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.navbar-maroon.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.navbar-maroon.navbar-light .form-control-navbar:focus,.navbar-maroon.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#c11856;border-color:#af164e!important;color:#343a40}.navbar-maroon.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.navbar-maroon.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.navbar-maroon.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-maroon.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-maroon.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.navbar-maroon.navbar-dark .form-control-navbar,.navbar-maroon.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#e4246a;border-color:#e63a79;color:rgba(255,255,255,.8)}.navbar-maroon.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.navbar-maroon.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.navbar-maroon.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.navbar-maroon.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.navbar-maroon.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.navbar-maroon.navbar-dark .form-control-navbar:focus,.navbar-maroon.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#e4286d;border-color:#e63a79!important;color:#fff}.navbar-blue{background-color:#007bff;color:#fff}.navbar-blue.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.navbar-blue.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.navbar-blue.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-blue.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-blue.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.navbar-blue.navbar-light .form-control-navbar,.navbar-blue.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#0071eb;border-color:#0065d1;color:rgba(52,58,64,.8)}.navbar-blue.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.navbar-blue.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.navbar-blue.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.navbar-blue.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.navbar-blue.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.navbar-blue.navbar-light .form-control-navbar:focus,.navbar-blue.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#006fe6;border-color:#0065d1!important;color:#343a40}.navbar-blue.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.navbar-blue.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.navbar-blue.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-blue.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-blue.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.navbar-blue.navbar-dark .form-control-navbar,.navbar-blue.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#1486ff;border-color:#2e93ff;color:rgba(255,255,255,.8)}.navbar-blue.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.navbar-blue.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.navbar-blue.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.navbar-blue.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.navbar-blue.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.navbar-blue.navbar-dark .form-control-navbar:focus,.navbar-blue.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#1a88ff;border-color:#2e93ff!important;color:#fff}.navbar-indigo{background-color:#6610f2;color:#fff}.navbar-indigo.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.navbar-indigo.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.navbar-indigo.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-indigo.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-indigo.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.navbar-indigo.navbar-light .form-control-navbar,.navbar-indigo.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#5d0ce1;border-color:#530bc9;color:rgba(52,58,64,.8)}.navbar-indigo.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.navbar-indigo.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.navbar-indigo.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.navbar-indigo.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.navbar-indigo.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.navbar-indigo.navbar-light .form-control-navbar:focus,.navbar-indigo.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#5b0cdd;border-color:#530bc9!important;color:#343a40}.navbar-indigo.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.navbar-indigo.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.navbar-indigo.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-indigo.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-indigo.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.navbar-indigo.navbar-dark .form-control-navbar,.navbar-indigo.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#7223f3;border-color:#823cf4;color:rgba(255,255,255,.8)}.navbar-indigo.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.navbar-indigo.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.navbar-indigo.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.navbar-indigo.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.navbar-indigo.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.navbar-indigo.navbar-dark .form-control-navbar:focus,.navbar-indigo.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#7528f3;border-color:#823cf4!important;color:#fff}.navbar-purple{background-color:#6f42c1;color:#fff}.navbar-purple.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.navbar-purple.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.navbar-purple.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-purple.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-purple.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.navbar-purple.navbar-light .form-control-navbar,.navbar-purple.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#663bb4;border-color:#5b35a0;color:rgba(52,58,64,.8)}.navbar-purple.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.navbar-purple.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.navbar-purple.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.navbar-purple.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.navbar-purple.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.navbar-purple.navbar-light .form-control-navbar:focus,.navbar-purple.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#643ab0;border-color:#5b35a0!important;color:#343a40}.navbar-purple.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.navbar-purple.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.navbar-purple.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-purple.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-purple.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.navbar-purple.navbar-dark .form-control-navbar,.navbar-purple.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#7b51c6;border-color:#8965cc;color:rgba(255,255,255,.8)}.navbar-purple.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.navbar-purple.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.navbar-purple.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.navbar-purple.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.navbar-purple.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.navbar-purple.navbar-dark .form-control-navbar:focus,.navbar-purple.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#7e55c7;border-color:#8965cc!important;color:#fff}.navbar-pink{background-color:#e83e8c;color:#fff}.navbar-pink.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.navbar-pink.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.navbar-pink.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-pink.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-pink.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.navbar-pink.navbar-light .form-control-navbar,.navbar-pink.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#e62c81;border-color:#de1a74;color:rgba(52,58,64,.8)}.navbar-pink.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.navbar-pink.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.navbar-pink.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.navbar-pink.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.navbar-pink.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.navbar-pink.navbar-light .form-control-navbar:focus,.navbar-pink.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#e5277e;border-color:#de1a74!important;color:#343a40}.navbar-pink.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.navbar-pink.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.navbar-pink.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-pink.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-pink.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.navbar-pink.navbar-dark .form-control-navbar,.navbar-pink.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#ea5097;border-color:#ed67a4;color:rgba(255,255,255,.8)}.navbar-pink.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.navbar-pink.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.navbar-pink.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.navbar-pink.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.navbar-pink.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.navbar-pink.navbar-dark .form-control-navbar:focus,.navbar-pink.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#eb559a;border-color:#ed67a4!important;color:#fff}.navbar-red{background-color:#dc3545;color:#fff}.navbar-red.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.navbar-red.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.navbar-red.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-red.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-red.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.navbar-red.navbar-light .form-control-navbar,.navbar-red.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#d72536;border-color:#c22231;color:rgba(52,58,64,.8)}.navbar-red.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.navbar-red.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.navbar-red.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.navbar-red.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.navbar-red.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.navbar-red.navbar-light .form-control-navbar:focus,.navbar-red.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#d32535;border-color:#c22231!important;color:#343a40}.navbar-red.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.navbar-red.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.navbar-red.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-red.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-red.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.navbar-red.navbar-dark .form-control-navbar,.navbar-red.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#df4655;border-color:#e35c69;color:rgba(255,255,255,.8)}.navbar-red.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.navbar-red.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.navbar-red.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.navbar-red.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.navbar-red.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.navbar-red.navbar-dark .form-control-navbar:focus,.navbar-red.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#e04b59;border-color:#e35c69!important;color:#fff}.navbar-orange{background-color:#fd7e14;color:#1f2d3d}.navbar-orange.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.navbar-orange.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.navbar-orange.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-orange.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-orange.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.navbar-orange.navbar-light .form-control-navbar,.navbar-orange.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#fa7302;border-color:#e16702;color:rgba(52,58,64,.8)}.navbar-orange.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.navbar-orange.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.navbar-orange.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.navbar-orange.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.navbar-orange.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.navbar-orange.navbar-light .form-control-navbar:focus,.navbar-orange.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#f57102;border-color:#e16702!important;color:#343a40}.navbar-orange.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.navbar-orange.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.navbar-orange.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-orange.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-orange.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.navbar-orange.navbar-dark .form-control-navbar,.navbar-orange.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#fd8928;border-color:#fd9742;color:rgba(255,255,255,.8)}.navbar-orange.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.navbar-orange.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.navbar-orange.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.navbar-orange.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.navbar-orange.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.navbar-orange.navbar-dark .form-control-navbar:focus,.navbar-orange.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#fd8c2d;border-color:#fd9742!important;color:#fff}.navbar-yellow{background-color:#ffc107;color:#1f2d3d}.navbar-yellow.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.navbar-yellow.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.navbar-yellow.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-yellow.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-yellow.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.navbar-yellow.navbar-light .form-control-navbar,.navbar-yellow.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#f2b500;border-color:#d8a200;color:rgba(52,58,64,.8)}.navbar-yellow.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.navbar-yellow.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.navbar-yellow.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.navbar-yellow.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.navbar-yellow.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.navbar-yellow.navbar-light .form-control-navbar:focus,.navbar-yellow.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#edb100;border-color:#d8a200!important;color:#343a40}.navbar-yellow.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.navbar-yellow.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.navbar-yellow.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-yellow.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-yellow.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.navbar-yellow.navbar-dark .form-control-navbar,.navbar-yellow.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#ffc61b;border-color:#ffcc35;color:rgba(255,255,255,.8)}.navbar-yellow.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.navbar-yellow.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.navbar-yellow.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.navbar-yellow.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.navbar-yellow.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.navbar-yellow.navbar-dark .form-control-navbar:focus,.navbar-yellow.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#ffc721;border-color:#ffcc35!important;color:#fff}.navbar-green{background-color:#28a745;color:#fff}.navbar-green.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.navbar-green.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.navbar-green.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-green.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-green.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.navbar-green.navbar-light .form-control-navbar,.navbar-green.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#24973e;border-color:#1f8236;color:rgba(52,58,64,.8)}.navbar-green.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.navbar-green.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.navbar-green.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.navbar-green.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.navbar-green.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.navbar-green.navbar-light .form-control-navbar:focus,.navbar-green.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#23923d;border-color:#1f8236!important;color:#343a40}.navbar-green.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.navbar-green.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.navbar-green.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-green.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-green.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.navbar-green.navbar-dark .form-control-navbar,.navbar-green.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#2cb74c;border-color:#31cc54;color:rgba(255,255,255,.8)}.navbar-green.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.navbar-green.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.navbar-green.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.navbar-green.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.navbar-green.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.navbar-green.navbar-dark .form-control-navbar:focus,.navbar-green.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#2dbc4e;border-color:#31cc54!important;color:#fff}.navbar-teal{background-color:#20c997;color:#fff}.navbar-teal.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.navbar-teal.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.navbar-teal.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-teal.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-teal.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.navbar-teal.navbar-light .form-control-navbar,.navbar-teal.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#1db78a;border-color:#1aa179;color:rgba(52,58,64,.8)}.navbar-teal.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.navbar-teal.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.navbar-teal.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.navbar-teal.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.navbar-teal.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.navbar-teal.navbar-light .form-control-navbar:focus,.navbar-teal.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#1cb386;border-color:#1aa179!important;color:#343a40}.navbar-teal.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.navbar-teal.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.navbar-teal.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-teal.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-teal.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.navbar-teal.navbar-dark .form-control-navbar,.navbar-teal.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#23dba4;border-color:#38dfae;color:rgba(255,255,255,.8)}.navbar-teal.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.navbar-teal.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.navbar-teal.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.navbar-teal.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.navbar-teal.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.navbar-teal.navbar-dark .form-control-navbar:focus,.navbar-teal.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#26dca6;border-color:#38dfae!important;color:#fff}.navbar-cyan{background-color:#17a2b8;color:#fff}.navbar-cyan.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.navbar-cyan.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.navbar-cyan.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-cyan.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-cyan.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.navbar-cyan.navbar-light .form-control-navbar,.navbar-cyan.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#1592a6;border-color:#127e8f;color:rgba(52,58,64,.8)}.navbar-cyan.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.navbar-cyan.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.navbar-cyan.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.navbar-cyan.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.navbar-cyan.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.navbar-cyan.navbar-light .form-control-navbar:focus,.navbar-cyan.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#148ea1;border-color:#127e8f!important;color:#343a40}.navbar-cyan.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.navbar-cyan.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.navbar-cyan.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-cyan.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-cyan.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.navbar-cyan.navbar-dark .form-control-navbar,.navbar-cyan.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#19b2ca;border-color:#1cc6e1;color:rgba(255,255,255,.8)}.navbar-cyan.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.navbar-cyan.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.navbar-cyan.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.navbar-cyan.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.navbar-cyan.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.navbar-cyan.navbar-dark .form-control-navbar:focus,.navbar-cyan.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#1ab6cf;border-color:#1cc6e1!important;color:#fff}.navbar-white{background-color:#fff;color:#1f2d3d}.navbar-white.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.navbar-white.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.navbar-white.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-white.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-white.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.navbar-white.navbar-light .form-control-navbar,.navbar-white.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#f5f5f5;border-color:#e8e8e8;color:rgba(52,58,64,.8)}.navbar-white.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.navbar-white.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.navbar-white.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.navbar-white.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.navbar-white.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.navbar-white.navbar-light .form-control-navbar:focus,.navbar-white.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#f2f2f2;border-color:#e8e8e8!important;color:#343a40}.navbar-white.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.navbar-white.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.navbar-white.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-white.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-white.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.navbar-white.navbar-dark .form-control-navbar,.navbar-white.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#fff;border-color:#fff;color:rgba(255,255,255,.8)}.navbar-white.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.navbar-white.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.navbar-white.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.navbar-white.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.navbar-white.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.navbar-white.navbar-dark .form-control-navbar:focus,.navbar-white.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#fff;border-color:#fff!important;color:#fff}.navbar-gray{background-color:#6c757d;color:#fff}.navbar-gray.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.navbar-gray.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.navbar-gray.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-gray.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-gray.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.navbar-gray.navbar-light .form-control-navbar,.navbar-gray.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#636b72;border-color:#575e64;color:rgba(52,58,64,.8)}.navbar-gray.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.navbar-gray.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.navbar-gray.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.navbar-gray.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.navbar-gray.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.navbar-gray.navbar-light .form-control-navbar:focus,.navbar-gray.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#60686f;border-color:#575e64!important;color:#343a40}.navbar-gray.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.navbar-gray.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.navbar-gray.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-gray.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-gray.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.navbar-gray.navbar-dark .form-control-navbar,.navbar-gray.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#757f88;border-color:#838c94;color:rgba(255,255,255,.8)}.navbar-gray.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.navbar-gray.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.navbar-gray.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.navbar-gray.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.navbar-gray.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.navbar-gray.navbar-dark .form-control-navbar:focus,.navbar-gray.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#78828a;border-color:#838c94!important;color:#fff}.navbar-gray-dark{background-color:#343a40;color:#fff}.navbar-gray-dark.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.navbar-gray-dark.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.navbar-gray-dark.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-gray-dark.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.navbar-gray-dark.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.navbar-gray-dark.navbar-light .form-control-navbar,.navbar-gray-dark.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#2b3035;border-color:#1f2327;color:rgba(52,58,64,.8)}.navbar-gray-dark.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.navbar-gray-dark.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.navbar-gray-dark.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.navbar-gray-dark.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.navbar-gray-dark.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.navbar-gray-dark.navbar-light .form-control-navbar:focus,.navbar-gray-dark.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#292d32;border-color:#1f2327!important;color:#343a40}.navbar-gray-dark.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.navbar-gray-dark.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.navbar-gray-dark.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-gray-dark.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.navbar-gray-dark.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.navbar-gray-dark.navbar-dark .form-control-navbar,.navbar-gray-dark.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#3d444b;border-color:#495159;color:rgba(255,255,255,.8)}.navbar-gray-dark.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.navbar-gray-dark.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.navbar-gray-dark.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.navbar-gray-dark.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.navbar-gray-dark.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.navbar-gray-dark.navbar-dark .form-control-navbar:focus,.navbar-gray-dark.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#3f474e;border-color:#495159!important;color:#fff}.navbar-nav-not-expanded{-ms-flex-direction:row;flex-direction:row}.navbar-nav-not-expanded .dropdown-menu{position:absolute}.navbar-nav-not-expanded .nav-link{padding-right:1rem;padding-left:1rem}.dark-mode .nav-pills .nav-link{color:#ced4da}.dark-mode .nav-tabs{border-color:#56606a}.dark-mode .nav-tabs .nav-link:focus,.dark-mode .nav-tabs .nav-link:hover{border-color:#56606a}.dark-mode .nav-tabs .nav-item.show .nav-link,.dark-mode .nav-tabs .nav-link.active{background-color:#343a40;border-color:#56606a #56606a transparent #56606a;color:#fff}.dark-mode .nav-tabs.flex-column .nav-item.show .nav-link.active,.dark-mode .nav-tabs.flex-column .nav-item.show .nav-link:focus,.dark-mode .nav-tabs.flex-column .nav-item.show .nav-link:hover,.dark-mode .nav-tabs.flex-column .nav-link.active,.dark-mode .nav-tabs.flex-column .nav-link:focus,.dark-mode .nav-tabs.flex-column .nav-link:hover{border-color:#56606a transparent #56606a #56606a}.dark-mode .nav-tabs.flex-column .nav-item.show .nav-link:focus,.dark-mode .nav-tabs.flex-column .nav-item.show .nav-link:hover,.dark-mode .nav-tabs.flex-column .nav-link:focus,.dark-mode .nav-tabs.flex-column .nav-link:hover{background-color:#3f474e}.dark-mode .nav-tabs.flex-column.nav-tabs-right{border-color:#56606a}.dark-mode .nav-tabs.flex-column.nav-tabs-right .nav-link.active,.dark-mode .nav-tabs.flex-column.nav-tabs-right .nav-link:focus,.dark-mode .nav-tabs.flex-column.nav-tabs-right .nav-link:hover{border-color:#56606a #56606a #56606a transparent}.dark-mode .navbar-light{background-color:#f8f9fa}.dark-mode .navbar-dark{background-color:#343a40;border-color:#4b545c}.dark-mode .navbar-primary{background-color:#3f6791;color:#fff}.dark-mode .navbar-primary.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-primary.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-primary.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-primary.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-primary.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-primary.navbar-light .form-control-navbar,.dark-mode .navbar-primary.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#395d83;border-color:#315071;color:rgba(52,58,64,.8)}.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus,.dark-mode .navbar-primary.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#375a7f;border-color:#315071!important;color:#343a40}.dark-mode .navbar-primary.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-primary.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-primary.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-primary.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-primary.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-primary.navbar-dark .form-control-navbar,.dark-mode .navbar-primary.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#45719f;border-color:#4d7eb1;color:rgba(255,255,255,.8)}.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus,.dark-mode .navbar-primary.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#4774a3;border-color:#4d7eb1!important;color:#fff}.dark-mode .navbar-secondary{background-color:#6c757d;color:#fff}.dark-mode .navbar-secondary.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-secondary.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-secondary.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-secondary.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-secondary.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-secondary.navbar-light .form-control-navbar,.dark-mode .navbar-secondary.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#636b72;border-color:#575e64;color:rgba(52,58,64,.8)}.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus,.dark-mode .navbar-secondary.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#60686f;border-color:#575e64!important;color:#343a40}.dark-mode .navbar-secondary.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-secondary.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-secondary.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-secondary.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-secondary.navbar-dark .form-control-navbar,.dark-mode .navbar-secondary.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#757f88;border-color:#838c94;color:rgba(255,255,255,.8)}.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus,.dark-mode .navbar-secondary.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#78828a;border-color:#838c94!important;color:#fff}.dark-mode .navbar-success{background-color:#00bc8c;color:#fff}.dark-mode .navbar-success.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-success.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-success.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-success.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-success.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-success.navbar-light .form-control-navbar,.dark-mode .navbar-success.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#00a87d;border-color:#008e6a;color:rgba(52,58,64,.8)}.dark-mode .navbar-success.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.dark-mode .navbar-success.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.dark-mode .navbar-success.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.dark-mode .navbar-success.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.dark-mode .navbar-success.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.dark-mode .navbar-success.navbar-light .form-control-navbar:focus,.dark-mode .navbar-success.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#00a379;border-color:#008e6a!important;color:#343a40}.dark-mode .navbar-success.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-success.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-success.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-success.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-success.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-success.navbar-dark .form-control-navbar,.dark-mode .navbar-success.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#00d09b;border-color:#00eaae;color:rgba(255,255,255,.8)}.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus,.dark-mode .navbar-success.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#00d69f;border-color:#00eaae!important;color:#fff}.dark-mode .navbar-info{background-color:#3498db;color:#fff}.dark-mode .navbar-info.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-info.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-info.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-info.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-info.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-info.navbar-light .form-control-navbar,.dark-mode .navbar-info.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#268fd5;border-color:#2280bf;color:rgba(52,58,64,.8)}.dark-mode .navbar-info.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.dark-mode .navbar-info.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.dark-mode .navbar-info.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.dark-mode .navbar-info.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.dark-mode .navbar-info.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.dark-mode .navbar-info.navbar-light .form-control-navbar:focus,.dark-mode .navbar-info.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#258cd1;border-color:#2280bf!important;color:#343a40}.dark-mode .navbar-info.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-info.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-info.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-info.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-info.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-info.navbar-dark .form-control-navbar,.dark-mode .navbar-info.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#45a1de;border-color:#5bace2;color:rgba(255,255,255,.8)}.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus,.dark-mode .navbar-info.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#4aa3df;border-color:#5bace2!important;color:#fff}.dark-mode .navbar-warning{background-color:#f39c12;color:#1f2d3d}.dark-mode .navbar-warning.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-warning.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-warning.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-warning.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-warning.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-warning.navbar-light .form-control-navbar,.dark-mode .navbar-warning.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#e5910c;border-color:#cd820a;color:rgba(52,58,64,.8)}.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus,.dark-mode .navbar-warning.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#e08e0b;border-color:#cd820a!important;color:#343a40}.dark-mode .navbar-warning.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-warning.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-warning.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-warning.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-warning.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-warning.navbar-dark .form-control-navbar,.dark-mode .navbar-warning.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#f4a425;border-color:#f5ae3e;color:rgba(255,255,255,.8)}.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus,.dark-mode .navbar-warning.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#f4a62a;border-color:#f5ae3e!important;color:#fff}.dark-mode .navbar-danger{background-color:#e74c3c;color:#fff}.dark-mode .navbar-danger.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-danger.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-danger.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-danger.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-danger.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-danger.navbar-light .form-control-navbar,.dark-mode .navbar-danger.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#e53b2a;border-color:#da2d1b;color:rgba(52,58,64,.8)}.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus,.dark-mode .navbar-danger.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#e43725;border-color:#da2d1b!important;color:#343a40}.dark-mode .navbar-danger.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-danger.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-danger.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-danger.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-danger.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-danger.navbar-dark .form-control-navbar,.dark-mode .navbar-danger.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#e95d4e;border-color:#ec7265;color:rgba(255,255,255,.8)}.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus,.dark-mode .navbar-danger.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#ea6153;border-color:#ec7265!important;color:#fff}.dark-mode .navbar-lightblue{background-color:#86bad8;color:#1f2d3d}.dark-mode .navbar-lightblue.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-lightblue.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-lightblue.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-lightblue.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-lightblue.navbar-light .form-control-navbar,.dark-mode .navbar-lightblue.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#76b1d3;border-color:#63a6cd;color:rgba(52,58,64,.8)}.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus,.dark-mode .navbar-lightblue.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#72afd2;border-color:#63a6cd!important;color:#343a40}.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar,.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#95c3dd;border-color:#a9cee3;color:rgba(255,255,255,.8)}.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus,.dark-mode .navbar-lightblue.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#99c5de;border-color:#a9cee3!important;color:#fff}.dark-mode .navbar-navy{background-color:#002c59;color:#fff}.dark-mode .navbar-navy.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-navy.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-navy.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-navy.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-navy.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-navy.navbar-light .form-control-navbar,.dark-mode .navbar-navy.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#024;border-color:#00152b;color:rgba(52,58,64,.8)}.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus,.dark-mode .navbar-navy.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#001f3f;border-color:#00152b!important;color:#343a40}.dark-mode .navbar-navy.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-navy.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-navy.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-navy.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-navy.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-navy.navbar-dark .form-control-navbar,.dark-mode .navbar-navy.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#00366d;border-color:#004286;color:rgba(255,255,255,.8)}.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus,.dark-mode .navbar-navy.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#003872;border-color:#004286!important;color:#fff}.dark-mode .navbar-olive{background-color:#74c8a3;color:#1f2d3d}.dark-mode .navbar-olive.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-olive.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-olive.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-olive.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-olive.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-olive.navbar-light .form-control-navbar,.dark-mode .navbar-olive.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#66c299;border-color:#53bb8d;color:rgba(52,58,64,.8)}.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus,.dark-mode .navbar-olive.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#62c096;border-color:#53bb8d!important;color:#343a40}.dark-mode .navbar-olive.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-olive.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-olive.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-olive.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-olive.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-olive.navbar-dark .form-control-navbar,.dark-mode .navbar-olive.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#83ceac;border-color:#95d5b8;color:rgba(255,255,255,.8)}.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus,.dark-mode .navbar-olive.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#87cfaf;border-color:#95d5b8!important;color:#fff}.dark-mode .navbar-lime{background-color:#67ffa9;color:#1f2d3d}.dark-mode .navbar-lime.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-lime.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-lime.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-lime.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-lime.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-lime.navbar-light .form-control-navbar,.dark-mode .navbar-lime.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#53ff9e;border-color:#39ff90;color:rgba(52,58,64,.8)}.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus,.dark-mode .navbar-lime.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#4eff9b;border-color:#39ff90!important;color:#343a40}.dark-mode .navbar-lime.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-lime.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-lime.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-lime.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-lime.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-lime.navbar-dark .form-control-navbar,.dark-mode .navbar-lime.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#7bffb5;border-color:#95ffc3;color:rgba(255,255,255,.8)}.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus,.dark-mode .navbar-lime.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#81ffb8;border-color:#95ffc3!important;color:#fff}.dark-mode .navbar-fuchsia{background-color:#f672d8;color:#1f2d3d}.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar,.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#f55fd3;border-color:#f347cc;color:rgba(52,58,64,.8)}.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus,.dark-mode .navbar-fuchsia.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#f55ad2;border-color:#f347cc!important;color:#343a40}.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar,.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#f785de;border-color:#f99de4;color:rgba(255,255,255,.8)}.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus,.dark-mode .navbar-fuchsia.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#f88adf;border-color:#f99de4!important;color:#fff}.dark-mode .navbar-maroon{background-color:#ed6c9b;color:#1f2d3d}.dark-mode .navbar-maroon.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-maroon.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-maroon.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-maroon.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-maroon.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-maroon.navbar-light .form-control-navbar,.dark-mode .navbar-maroon.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#ea5a8f;border-color:#e8447f;color:rgba(52,58,64,.8)}.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus,.dark-mode .navbar-maroon.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#ea568c;border-color:#e8447f!important;color:#343a40}.dark-mode .navbar-maroon.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-maroon.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-maroon.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-maroon.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-maroon.navbar-dark .form-control-navbar,.dark-mode .navbar-maroon.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#ef7ea8;border-color:#f295b7;color:rgba(255,255,255,.8)}.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus,.dark-mode .navbar-maroon.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#f083ab;border-color:#f295b7!important;color:#fff}.dark-mode .navbar-blue{background-color:#3f6791;color:#fff}.dark-mode .navbar-blue.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-blue.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-blue.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-blue.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-blue.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-blue.navbar-light .form-control-navbar,.dark-mode .navbar-blue.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#395d83;border-color:#315071;color:rgba(52,58,64,.8)}.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus,.dark-mode .navbar-blue.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#375a7f;border-color:#315071!important;color:#343a40}.dark-mode .navbar-blue.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-blue.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-blue.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-blue.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-blue.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-blue.navbar-dark .form-control-navbar,.dark-mode .navbar-blue.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#45719f;border-color:#4d7eb1;color:rgba(255,255,255,.8)}.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus,.dark-mode .navbar-blue.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#4774a3;border-color:#4d7eb1!important;color:#fff}.dark-mode .navbar-indigo{background-color:#6610f2;color:#fff}.dark-mode .navbar-indigo.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-indigo.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-indigo.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-indigo.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-indigo.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-indigo.navbar-light .form-control-navbar,.dark-mode .navbar-indigo.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#5d0ce1;border-color:#530bc9;color:rgba(52,58,64,.8)}.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus,.dark-mode .navbar-indigo.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#5b0cdd;border-color:#530bc9!important;color:#343a40}.dark-mode .navbar-indigo.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-indigo.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-indigo.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-indigo.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-indigo.navbar-dark .form-control-navbar,.dark-mode .navbar-indigo.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#7223f3;border-color:#823cf4;color:rgba(255,255,255,.8)}.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus,.dark-mode .navbar-indigo.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#7528f3;border-color:#823cf4!important;color:#fff}.dark-mode .navbar-purple{background-color:#6f42c1;color:#fff}.dark-mode .navbar-purple.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-purple.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-purple.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-purple.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-purple.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-purple.navbar-light .form-control-navbar,.dark-mode .navbar-purple.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#663bb4;border-color:#5b35a0;color:rgba(52,58,64,.8)}.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus,.dark-mode .navbar-purple.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#643ab0;border-color:#5b35a0!important;color:#343a40}.dark-mode .navbar-purple.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-purple.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-purple.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-purple.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-purple.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-purple.navbar-dark .form-control-navbar,.dark-mode .navbar-purple.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#7b51c6;border-color:#8965cc;color:rgba(255,255,255,.8)}.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus,.dark-mode .navbar-purple.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#7e55c7;border-color:#8965cc!important;color:#fff}.dark-mode .navbar-pink{background-color:#e83e8c;color:#fff}.dark-mode .navbar-pink.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-pink.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-pink.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-pink.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-pink.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-pink.navbar-light .form-control-navbar,.dark-mode .navbar-pink.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#e62c81;border-color:#de1a74;color:rgba(52,58,64,.8)}.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus,.dark-mode .navbar-pink.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#e5277e;border-color:#de1a74!important;color:#343a40}.dark-mode .navbar-pink.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-pink.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-pink.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-pink.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-pink.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-pink.navbar-dark .form-control-navbar,.dark-mode .navbar-pink.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#ea5097;border-color:#ed67a4;color:rgba(255,255,255,.8)}.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus,.dark-mode .navbar-pink.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#eb559a;border-color:#ed67a4!important;color:#fff}.dark-mode .navbar-red{background-color:#e74c3c;color:#fff}.dark-mode .navbar-red.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-red.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-red.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-red.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-red.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-red.navbar-light .form-control-navbar,.dark-mode .navbar-red.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#e53b2a;border-color:#da2d1b;color:rgba(52,58,64,.8)}.dark-mode .navbar-red.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.dark-mode .navbar-red.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.dark-mode .navbar-red.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.dark-mode .navbar-red.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.dark-mode .navbar-red.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.dark-mode .navbar-red.navbar-light .form-control-navbar:focus,.dark-mode .navbar-red.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#e43725;border-color:#da2d1b!important;color:#343a40}.dark-mode .navbar-red.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-red.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-red.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-red.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-red.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-red.navbar-dark .form-control-navbar,.dark-mode .navbar-red.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#e95d4e;border-color:#ec7265;color:rgba(255,255,255,.8)}.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus,.dark-mode .navbar-red.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#ea6153;border-color:#ec7265!important;color:#fff}.dark-mode .navbar-orange{background-color:#fd7e14;color:#1f2d3d}.dark-mode .navbar-orange.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-orange.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-orange.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-orange.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-orange.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-orange.navbar-light .form-control-navbar,.dark-mode .navbar-orange.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#fa7302;border-color:#e16702;color:rgba(52,58,64,.8)}.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus,.dark-mode .navbar-orange.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#f57102;border-color:#e16702!important;color:#343a40}.dark-mode .navbar-orange.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-orange.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-orange.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-orange.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-orange.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-orange.navbar-dark .form-control-navbar,.dark-mode .navbar-orange.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#fd8928;border-color:#fd9742;color:rgba(255,255,255,.8)}.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus,.dark-mode .navbar-orange.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#fd8c2d;border-color:#fd9742!important;color:#fff}.dark-mode .navbar-yellow{background-color:#f39c12;color:#1f2d3d}.dark-mode .navbar-yellow.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-yellow.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-yellow.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-yellow.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-yellow.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-yellow.navbar-light .form-control-navbar,.dark-mode .navbar-yellow.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#e5910c;border-color:#cd820a;color:rgba(52,58,64,.8)}.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus,.dark-mode .navbar-yellow.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#e08e0b;border-color:#cd820a!important;color:#343a40}.dark-mode .navbar-yellow.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-yellow.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-yellow.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-yellow.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-yellow.navbar-dark .form-control-navbar,.dark-mode .navbar-yellow.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#f4a425;border-color:#f5ae3e;color:rgba(255,255,255,.8)}.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus,.dark-mode .navbar-yellow.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#f4a62a;border-color:#f5ae3e!important;color:#fff}.dark-mode .navbar-green{background-color:#00bc8c;color:#fff}.dark-mode .navbar-green.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-green.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-green.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-green.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-green.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-green.navbar-light .form-control-navbar,.dark-mode .navbar-green.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#00a87d;border-color:#008e6a;color:rgba(52,58,64,.8)}.dark-mode .navbar-green.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.dark-mode .navbar-green.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.dark-mode .navbar-green.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.dark-mode .navbar-green.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.dark-mode .navbar-green.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.dark-mode .navbar-green.navbar-light .form-control-navbar:focus,.dark-mode .navbar-green.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#00a379;border-color:#008e6a!important;color:#343a40}.dark-mode .navbar-green.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-green.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-green.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-green.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-green.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-green.navbar-dark .form-control-navbar,.dark-mode .navbar-green.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#00d09b;border-color:#00eaae;color:rgba(255,255,255,.8)}.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus,.dark-mode .navbar-green.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#00d69f;border-color:#00eaae!important;color:#fff}.dark-mode .navbar-teal{background-color:#20c997;color:#fff}.dark-mode .navbar-teal.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-teal.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-teal.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-teal.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-teal.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-teal.navbar-light .form-control-navbar,.dark-mode .navbar-teal.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#1db78a;border-color:#1aa179;color:rgba(52,58,64,.8)}.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus,.dark-mode .navbar-teal.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#1cb386;border-color:#1aa179!important;color:#343a40}.dark-mode .navbar-teal.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-teal.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-teal.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-teal.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-teal.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-teal.navbar-dark .form-control-navbar,.dark-mode .navbar-teal.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#23dba4;border-color:#38dfae;color:rgba(255,255,255,.8)}.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus,.dark-mode .navbar-teal.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#26dca6;border-color:#38dfae!important;color:#fff}.dark-mode .navbar-cyan{background-color:#3498db;color:#fff}.dark-mode .navbar-cyan.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-cyan.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-cyan.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-cyan.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-cyan.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-cyan.navbar-light .form-control-navbar,.dark-mode .navbar-cyan.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#268fd5;border-color:#2280bf;color:rgba(52,58,64,.8)}.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus,.dark-mode .navbar-cyan.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#258cd1;border-color:#2280bf!important;color:#343a40}.dark-mode .navbar-cyan.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-cyan.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-cyan.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-cyan.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-cyan.navbar-dark .form-control-navbar,.dark-mode .navbar-cyan.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#45a1de;border-color:#5bace2;color:rgba(255,255,255,.8)}.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus,.dark-mode .navbar-cyan.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#4aa3df;border-color:#5bace2!important;color:#fff}.dark-mode .navbar-white{background-color:#fff;color:#1f2d3d}.dark-mode .navbar-white.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-white.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-white.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-white.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-white.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-white.navbar-light .form-control-navbar,.dark-mode .navbar-white.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#f5f5f5;border-color:#e8e8e8;color:rgba(52,58,64,.8)}.dark-mode .navbar-white.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.dark-mode .navbar-white.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.dark-mode .navbar-white.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.dark-mode .navbar-white.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.dark-mode .navbar-white.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.dark-mode .navbar-white.navbar-light .form-control-navbar:focus,.dark-mode .navbar-white.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#f2f2f2;border-color:#e8e8e8!important;color:#343a40}.dark-mode .navbar-white.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-white.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-white.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-white.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-white.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-white.navbar-dark .form-control-navbar,.dark-mode .navbar-white.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#fff;border-color:#fff;color:rgba(255,255,255,.8)}.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus,.dark-mode .navbar-white.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#fff;border-color:#fff!important;color:#fff}.dark-mode .navbar-gray{background-color:#6c757d;color:#fff}.dark-mode .navbar-gray.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-gray.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-gray.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-gray.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-gray.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-gray.navbar-light .form-control-navbar,.dark-mode .navbar-gray.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#636b72;border-color:#575e64;color:rgba(52,58,64,.8)}.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus,.dark-mode .navbar-gray.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#60686f;border-color:#575e64!important;color:#343a40}.dark-mode .navbar-gray.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-gray.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-gray.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-gray.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-gray.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-gray.navbar-dark .form-control-navbar,.dark-mode .navbar-gray.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#757f88;border-color:#838c94;color:rgba(255,255,255,.8)}.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus,.dark-mode .navbar-gray.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#78828a;border-color:#838c94!important;color:#fff}.dark-mode .navbar-gray-dark{background-color:#343a40;color:#fff}.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar::-webkit-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar::-moz-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar::-ms-input-placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar::placeholder{color:rgba(52,58,64,.8)}.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar,.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar+.input-group-append>.btn-navbar{background-color:#2b3035;border-color:#1f2327;color:rgba(52,58,64,.8)}.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus::-webkit-input-placeholder{color:#343a40}.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus::-moz-placeholder{color:#343a40}.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus:-ms-input-placeholder{color:#343a40}.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus::-ms-input-placeholder{color:#343a40}.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus::placeholder{color:#343a40}.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus,.dark-mode .navbar-gray-dark.navbar-light .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#292d32;border-color:#1f2327!important;color:#343a40}.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar::-webkit-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar::-moz-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar::-ms-input-placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar::placeholder{color:rgba(255,255,255,.8)}.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar,.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar{background-color:#3d444b;border-color:#495159;color:rgba(255,255,255,.8)}.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus::-webkit-input-placeholder{color:#fff}.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus::-moz-placeholder{color:#fff}.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus:-ms-input-placeholder{color:#fff}.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus::-ms-input-placeholder{color:#fff}.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus::placeholder{color:#fff}.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus,.dark-mode .navbar-gray-dark.navbar-dark .form-control-navbar:focus+.input-group-append .btn-navbar{background-color:#3f474e;border-color:#495159!important;color:#fff}.pagination-month .page-item{justify-self:stretch}.pagination-month .page-item .page-link{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;-ms-flex-direction:column;flex-direction:column;box-shadow:none}.pagination-month .page-item:first-child .page-link,.pagination-month .page-item:last-child .page-link{height:100%;font-size:1.25rem}.pagination-month .page-item .page-month{margin-bottom:0;font-size:1.25rem;font-weight:700}.pagination-month .page-item .page-year{margin-bottom:0}.pagination-month.pagination-lg .page-month{font-size:1.5625rem}.pagination-month.pagination-sm .page-month{font-size:1rem}.dark-mode .page-item.disabled .page-link,.dark-mode .page-item.disabled a{background-color:#3a4047!important;border-color:#6c757d!important;color:#6c757d}.dark-mode .page-item .page-link{color:#3f6791}.dark-mode .page-item.active .page-link{background-color:#3f6791;border-color:#3f6791;color:#fff}.dark-mode .page-item.active .page-link:focus,.dark-mode .page-item.active .page-link:hover{color:#ced4da!important}.dark-mode .page-item:not(.active) .page-link{background-color:#343a40;border-color:#6c757d}.dark-mode .page-item:not(.active) .page-link:focus,.dark-mode .page-item:not(.active) .page-link:hover{color:#4774a3;background-color:#3f474e}.border-transparent{border-color:transparent!important}.description-block{display:block;margin:10px 0;text-align:center}.description-block.margin-bottom{margin-bottom:25px}.description-block>.description-header{font-size:16px;font-weight:600;margin:0;padding:0}.description-block>.description-text{text-transform:uppercase}.description-block .description-icon{font-size:16px}.list-group-unbordered>.list-group-item{border-left:0;border-radius:0;border-right:0;padding-left:0;padding-right:0}.list-header{color:#6c757d;font-size:15px;font-weight:700;padding:10px 4px}.list-seperator{background-color:rgba(0,0,0,.125);height:1px;margin:15px 0 9px}.list-link>a{color:#6c757d;padding:4px}.list-link>a:hover{color:#212529}.user-block{float:left}.user-block img{float:left;height:40px;width:40px}.user-block .comment,.user-block .description,.user-block .username{display:block;margin-left:50px}.user-block .username{font-size:16px;font-weight:600;margin-top:-1px}.user-block .description{color:#6c757d;font-size:13px;margin-top:-3px}.user-block.user-block-sm img{width:1.875rem;height:1.875rem}.user-block.user-block-sm .comment,.user-block.user-block-sm .description,.user-block.user-block-sm .username{margin-left:40px}.user-block.user-block-sm .username{font-size:14px}.img-lg,.img-md,.img-sm{float:left}.img-sm{height:1.875rem;width:1.875rem}.img-sm+.img-push{margin-left:2.5rem}.img-md{width:3.75rem;height:3.75rem}.img-md+.img-push{margin-left:4.375rem}.img-lg{width:6.25rem;height:6.25rem}.img-lg+.img-push{margin-left:6.875rem}.img-bordered{border:3px solid #adb5bd;padding:3px}.img-bordered-sm{border:2px solid #adb5bd;padding:2px}.img-rounded{border-radius:.25rem}.img-circle{border-radius:50%}.img-size-32,.img-size-50,.img-size-64{height:auto}.img-size-64{width:64px}.img-size-50{width:50px}.img-size-32{width:32px}.size-32,.size-40,.size-50{display:block;text-align:center}.size-32{height:32px;line-height:32px;width:32px}.size-40{height:40px;line-height:40px;width:40px}.size-50{height:50px;line-height:50px;width:50px}.attachment-block{background-color:#f8f9fa;border:1px solid rgba(0,0,0,.125);margin-bottom:10px;padding:5px}.attachment-block .attachment-img{float:left;height:auto;max-height:100px;max-width:100px}.attachment-block .attachment-pushed{margin-left:110px}.attachment-block .attachment-heading{margin:0}.attachment-block .attachment-text{color:#495057}.card>.loading-img,.card>.overlay,.info-box>.loading-img,.info-box>.overlay,.overlay-wrapper>.loading-img,.overlay-wrapper>.overlay,.small-box>.loading-img,.small-box>.overlay{height:100%;left:0;position:absolute;top:0;width:100%}.card .overlay,.info-box .overlay,.overlay-wrapper .overlay,.small-box .overlay{border-radius:.25rem;-ms-flex-align:center;align-items:center;background-color:rgba(255,255,255,.7);display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;z-index:50}.card .overlay>.fa,.card .overlay>.fab,.card .overlay>.fad,.card .overlay>.fal,.card .overlay>.far,.card .overlay>.fas,.card .overlay>.ion,.card .overlay>.svg-inline--fa,.info-box .overlay>.fa,.info-box .overlay>.fab,.info-box .overlay>.fad,.info-box .overlay>.fal,.info-box .overlay>.far,.info-box .overlay>.fas,.info-box .overlay>.ion,.info-box .overlay>.svg-inline--fa,.overlay-wrapper .overlay>.fa,.overlay-wrapper .overlay>.fab,.overlay-wrapper .overlay>.fad,.overlay-wrapper .overlay>.fal,.overlay-wrapper .overlay>.far,.overlay-wrapper .overlay>.fas,.overlay-wrapper .overlay>.ion,.overlay-wrapper .overlay>.svg-inline--fa,.small-box .overlay>.fa,.small-box .overlay>.fab,.small-box .overlay>.fad,.small-box .overlay>.fal,.small-box .overlay>.far,.small-box .overlay>.fas,.small-box .overlay>.ion,.small-box .overlay>.svg-inline--fa{color:#343a40}.card .overlay.dark,.info-box .overlay.dark,.overlay-wrapper .overlay.dark,.small-box .overlay.dark{background-color:rgba(0,0,0,.5)}.card .overlay.dark>.fa,.card .overlay.dark>.fab,.card .overlay.dark>.fad,.card .overlay.dark>.fal,.card .overlay.dark>.far,.card .overlay.dark>.fas,.card .overlay.dark>.ion,.card .overlay.dark>.svg-inline--fa,.info-box .overlay.dark>.fa,.info-box .overlay.dark>.fab,.info-box .overlay.dark>.fad,.info-box .overlay.dark>.fal,.info-box .overlay.dark>.far,.info-box .overlay.dark>.fas,.info-box .overlay.dark>.ion,.info-box .overlay.dark>.svg-inline--fa,.overlay-wrapper .overlay.dark>.fa,.overlay-wrapper .overlay.dark>.fab,.overlay-wrapper .overlay.dark>.fad,.overlay-wrapper .overlay.dark>.fal,.overlay-wrapper .overlay.dark>.far,.overlay-wrapper .overlay.dark>.fas,.overlay-wrapper .overlay.dark>.ion,.overlay-wrapper .overlay.dark>.svg-inline--fa,.small-box .overlay.dark>.fa,.small-box .overlay.dark>.fab,.small-box .overlay.dark>.fad,.small-box .overlay.dark>.fal,.small-box .overlay.dark>.far,.small-box .overlay.dark>.fas,.small-box .overlay.dark>.ion,.small-box .overlay.dark>.svg-inline--fa{color:#ced4da}.tab-pane>.overlay-wrapper{position:relative}.tab-pane>.overlay-wrapper>.overlay{border-top-left-radius:0;border-top-right-radius:0;-ms-flex-direction:column;flex-direction:column;margin-top:-1.25rem;margin-left:-1.25rem;height:calc(100% + 2 * 1.25rem);width:calc(100% + 2 * 1.25rem)}.tab-pane>.overlay-wrapper>.overlay.dark{color:#fff}.ribbon-wrapper{height:70px;overflow:hidden;position:absolute;right:-2px;top:-2px;width:70px;z-index:10}.ribbon-wrapper.ribbon-lg{height:120px;width:120px}.ribbon-wrapper.ribbon-lg .ribbon{right:0;top:26px;width:160px}.ribbon-wrapper.ribbon-xl{height:180px;width:180px}.ribbon-wrapper.ribbon-xl .ribbon{right:4px;top:47px;width:240px}.ribbon-wrapper .ribbon{box-shadow:0 0 3px rgba(0,0,0,.3);font-size:.8rem;line-height:100%;padding:.375rem 0;position:relative;right:-2px;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,.4);text-transform:uppercase;top:10px;-webkit-transform:rotate(45deg);transform:rotate(45deg);width:90px}.ribbon-wrapper .ribbon::after,.ribbon-wrapper .ribbon::before{border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #9e9e9e;bottom:-3px;content:"";position:absolute}.ribbon-wrapper .ribbon::before{left:0}.ribbon-wrapper .ribbon::after{right:0}.back-to-top{bottom:1.25rem;position:fixed;right:1.25rem;z-index:1032}.back-to-top:focus{box-shadow:none}pre{padding:.75rem}blockquote{background-color:#fff;border-left:.7rem solid #007bff;margin:1.5em .7rem;padding:.5em .7rem}.box blockquote{background-color:#e9ecef}blockquote p:last-child{margin-bottom:0}blockquote h1,blockquote h2,blockquote h3,blockquote h4,blockquote h5,blockquote h6{color:#007bff;font-size:1.25rem;font-weight:600}blockquote.quote-primary{border-color:#007bff}blockquote.quote-primary h1,blockquote.quote-primary h2,blockquote.quote-primary h3,blockquote.quote-primary h4,blockquote.quote-primary h5,blockquote.quote-primary h6{color:#007bff}blockquote.quote-secondary{border-color:#6c757d}blockquote.quote-secondary h1,blockquote.quote-secondary h2,blockquote.quote-secondary h3,blockquote.quote-secondary h4,blockquote.quote-secondary h5,blockquote.quote-secondary h6{color:#6c757d}blockquote.quote-success{border-color:#28a745}blockquote.quote-success h1,blockquote.quote-success h2,blockquote.quote-success h3,blockquote.quote-success h4,blockquote.quote-success h5,blockquote.quote-success h6{color:#28a745}blockquote.quote-info{border-color:#17a2b8}blockquote.quote-info h1,blockquote.quote-info h2,blockquote.quote-info h3,blockquote.quote-info h4,blockquote.quote-info h5,blockquote.quote-info h6{color:#17a2b8}blockquote.quote-warning{border-color:#ffc107}blockquote.quote-warning h1,blockquote.quote-warning h2,blockquote.quote-warning h3,blockquote.quote-warning h4,blockquote.quote-warning h5,blockquote.quote-warning h6{color:#ffc107}blockquote.quote-danger{border-color:#dc3545}blockquote.quote-danger h1,blockquote.quote-danger h2,blockquote.quote-danger h3,blockquote.quote-danger h4,blockquote.quote-danger h5,blockquote.quote-danger h6{color:#dc3545}blockquote.quote-light{border-color:#f8f9fa}blockquote.quote-light h1,blockquote.quote-light h2,blockquote.quote-light h3,blockquote.quote-light h4,blockquote.quote-light h5,blockquote.quote-light h6{color:#f8f9fa}blockquote.quote-dark{border-color:#343a40}blockquote.quote-dark h1,blockquote.quote-dark h2,blockquote.quote-dark h3,blockquote.quote-dark h4,blockquote.quote-dark h5,blockquote.quote-dark h6{color:#343a40}blockquote.quote-lightblue{border-color:#3c8dbc}blockquote.quote-lightblue h1,blockquote.quote-lightblue h2,blockquote.quote-lightblue h3,blockquote.quote-lightblue h4,blockquote.quote-lightblue h5,blockquote.quote-lightblue h6{color:#3c8dbc}blockquote.quote-navy{border-color:#001f3f}blockquote.quote-navy h1,blockquote.quote-navy h2,blockquote.quote-navy h3,blockquote.quote-navy h4,blockquote.quote-navy h5,blockquote.quote-navy h6{color:#001f3f}blockquote.quote-olive{border-color:#3d9970}blockquote.quote-olive h1,blockquote.quote-olive h2,blockquote.quote-olive h3,blockquote.quote-olive h4,blockquote.quote-olive h5,blockquote.quote-olive h6{color:#3d9970}blockquote.quote-lime{border-color:#01ff70}blockquote.quote-lime h1,blockquote.quote-lime h2,blockquote.quote-lime h3,blockquote.quote-lime h4,blockquote.quote-lime h5,blockquote.quote-lime h6{color:#01ff70}blockquote.quote-fuchsia{border-color:#f012be}blockquote.quote-fuchsia h1,blockquote.quote-fuchsia h2,blockquote.quote-fuchsia h3,blockquote.quote-fuchsia h4,blockquote.quote-fuchsia h5,blockquote.quote-fuchsia h6{color:#f012be}blockquote.quote-maroon{border-color:#d81b60}blockquote.quote-maroon h1,blockquote.quote-maroon h2,blockquote.quote-maroon h3,blockquote.quote-maroon h4,blockquote.quote-maroon h5,blockquote.quote-maroon h6{color:#d81b60}blockquote.quote-blue{border-color:#007bff}blockquote.quote-blue h1,blockquote.quote-blue h2,blockquote.quote-blue h3,blockquote.quote-blue h4,blockquote.quote-blue h5,blockquote.quote-blue h6{color:#007bff}blockquote.quote-indigo{border-color:#6610f2}blockquote.quote-indigo h1,blockquote.quote-indigo h2,blockquote.quote-indigo h3,blockquote.quote-indigo h4,blockquote.quote-indigo h5,blockquote.quote-indigo h6{color:#6610f2}blockquote.quote-purple{border-color:#6f42c1}blockquote.quote-purple h1,blockquote.quote-purple h2,blockquote.quote-purple h3,blockquote.quote-purple h4,blockquote.quote-purple h5,blockquote.quote-purple h6{color:#6f42c1}blockquote.quote-pink{border-color:#e83e8c}blockquote.quote-pink h1,blockquote.quote-pink h2,blockquote.quote-pink h3,blockquote.quote-pink h4,blockquote.quote-pink h5,blockquote.quote-pink h6{color:#e83e8c}blockquote.quote-red{border-color:#dc3545}blockquote.quote-red h1,blockquote.quote-red h2,blockquote.quote-red h3,blockquote.quote-red h4,blockquote.quote-red h5,blockquote.quote-red h6{color:#dc3545}blockquote.quote-orange{border-color:#fd7e14}blockquote.quote-orange h1,blockquote.quote-orange h2,blockquote.quote-orange h3,blockquote.quote-orange h4,blockquote.quote-orange h5,blockquote.quote-orange h6{color:#fd7e14}blockquote.quote-yellow{border-color:#ffc107}blockquote.quote-yellow h1,blockquote.quote-yellow h2,blockquote.quote-yellow h3,blockquote.quote-yellow h4,blockquote.quote-yellow h5,blockquote.quote-yellow h6{color:#ffc107}blockquote.quote-green{border-color:#28a745}blockquote.quote-green h1,blockquote.quote-green h2,blockquote.quote-green h3,blockquote.quote-green h4,blockquote.quote-green h5,blockquote.quote-green h6{color:#28a745}blockquote.quote-teal{border-color:#20c997}blockquote.quote-teal h1,blockquote.quote-teal h2,blockquote.quote-teal h3,blockquote.quote-teal h4,blockquote.quote-teal h5,blockquote.quote-teal h6{color:#20c997}blockquote.quote-cyan{border-color:#17a2b8}blockquote.quote-cyan h1,blockquote.quote-cyan h2,blockquote.quote-cyan h3,blockquote.quote-cyan h4,blockquote.quote-cyan h5,blockquote.quote-cyan h6{color:#17a2b8}blockquote.quote-white{border-color:#fff}blockquote.quote-white h1,blockquote.quote-white h2,blockquote.quote-white h3,blockquote.quote-white h4,blockquote.quote-white h5,blockquote.quote-white h6{color:#fff}blockquote.quote-gray{border-color:#6c757d}blockquote.quote-gray h1,blockquote.quote-gray h2,blockquote.quote-gray h3,blockquote.quote-gray h4,blockquote.quote-gray h5,blockquote.quote-gray h6{color:#6c757d}blockquote.quote-gray-dark{border-color:#343a40}blockquote.quote-gray-dark h1,blockquote.quote-gray-dark h2,blockquote.quote-gray-dark h3,blockquote.quote-gray-dark h4,blockquote.quote-gray-dark h5,blockquote.quote-gray-dark h6{color:#343a40}.tab-custom-content{border-top:1px solid #dee2e6;margin-top:.5rem;padding-top:.5rem}.nav+.tab-custom-content{border-top:none;border-bottom:1px solid #dee2e6;margin-top:0;margin-bottom:.5rem;padding-bottom:.5rem}.badge-btn{border-radius:.15rem;font-size:.75rem;font-weight:400;padding:.25rem .5rem}.badge-btn.badge-pill{padding:.375rem .6rem}.dark-mode a:not(.btn):hover{color:#3395ff}.dark-mode .attachment-block{background-color:#3d444b}.dark-mode .attachment-block .attachment-text{color:#ced4da}.dark-mode blockquote{background-color:#3f474e}.dark-mode blockquote.quote-primary{border-color:#007bff}.dark-mode blockquote.quote-primary h1,.dark-mode blockquote.quote-primary h2,.dark-mode blockquote.quote-primary h3,.dark-mode blockquote.quote-primary h4,.dark-mode blockquote.quote-primary h5,.dark-mode blockquote.quote-primary h6{color:#007bff}.dark-mode blockquote.quote-secondary{border-color:#6c757d}.dark-mode blockquote.quote-secondary h1,.dark-mode blockquote.quote-secondary h2,.dark-mode blockquote.quote-secondary h3,.dark-mode blockquote.quote-secondary h4,.dark-mode blockquote.quote-secondary h5,.dark-mode blockquote.quote-secondary h6{color:#6c757d}.dark-mode blockquote.quote-success{border-color:#28a745}.dark-mode blockquote.quote-success h1,.dark-mode blockquote.quote-success h2,.dark-mode blockquote.quote-success h3,.dark-mode blockquote.quote-success h4,.dark-mode blockquote.quote-success h5,.dark-mode blockquote.quote-success h6{color:#28a745}.dark-mode blockquote.quote-info{border-color:#17a2b8}.dark-mode blockquote.quote-info h1,.dark-mode blockquote.quote-info h2,.dark-mode blockquote.quote-info h3,.dark-mode blockquote.quote-info h4,.dark-mode blockquote.quote-info h5,.dark-mode blockquote.quote-info h6{color:#17a2b8}.dark-mode blockquote.quote-warning{border-color:#ffc107}.dark-mode blockquote.quote-warning h1,.dark-mode blockquote.quote-warning h2,.dark-mode blockquote.quote-warning h3,.dark-mode blockquote.quote-warning h4,.dark-mode blockquote.quote-warning h5,.dark-mode blockquote.quote-warning h6{color:#ffc107}.dark-mode blockquote.quote-danger{border-color:#dc3545}.dark-mode blockquote.quote-danger h1,.dark-mode blockquote.quote-danger h2,.dark-mode blockquote.quote-danger h3,.dark-mode blockquote.quote-danger h4,.dark-mode blockquote.quote-danger h5,.dark-mode blockquote.quote-danger h6{color:#dc3545}.dark-mode blockquote.quote-light{border-color:#f8f9fa}.dark-mode blockquote.quote-light h1,.dark-mode blockquote.quote-light h2,.dark-mode blockquote.quote-light h3,.dark-mode blockquote.quote-light h4,.dark-mode blockquote.quote-light h5,.dark-mode blockquote.quote-light h6{color:#f8f9fa}.dark-mode blockquote.quote-dark{border-color:#343a40}.dark-mode blockquote.quote-dark h1,.dark-mode blockquote.quote-dark h2,.dark-mode blockquote.quote-dark h3,.dark-mode blockquote.quote-dark h4,.dark-mode blockquote.quote-dark h5,.dark-mode blockquote.quote-dark h6{color:#343a40}.dark-mode blockquote.quote-lightblue{border-color:#3c8dbc}.dark-mode blockquote.quote-lightblue h1,.dark-mode blockquote.quote-lightblue h2,.dark-mode blockquote.quote-lightblue h3,.dark-mode blockquote.quote-lightblue h4,.dark-mode blockquote.quote-lightblue h5,.dark-mode blockquote.quote-lightblue h6{color:#3c8dbc}.dark-mode blockquote.quote-navy{border-color:#001f3f}.dark-mode blockquote.quote-navy h1,.dark-mode blockquote.quote-navy h2,.dark-mode blockquote.quote-navy h3,.dark-mode blockquote.quote-navy h4,.dark-mode blockquote.quote-navy h5,.dark-mode blockquote.quote-navy h6{color:#001f3f}.dark-mode blockquote.quote-olive{border-color:#3d9970}.dark-mode blockquote.quote-olive h1,.dark-mode blockquote.quote-olive h2,.dark-mode blockquote.quote-olive h3,.dark-mode blockquote.quote-olive h4,.dark-mode blockquote.quote-olive h5,.dark-mode blockquote.quote-olive h6{color:#3d9970}.dark-mode blockquote.quote-lime{border-color:#01ff70}.dark-mode blockquote.quote-lime h1,.dark-mode blockquote.quote-lime h2,.dark-mode blockquote.quote-lime h3,.dark-mode blockquote.quote-lime h4,.dark-mode blockquote.quote-lime h5,.dark-mode blockquote.quote-lime h6{color:#01ff70}.dark-mode blockquote.quote-fuchsia{border-color:#f012be}.dark-mode blockquote.quote-fuchsia h1,.dark-mode blockquote.quote-fuchsia h2,.dark-mode blockquote.quote-fuchsia h3,.dark-mode blockquote.quote-fuchsia h4,.dark-mode blockquote.quote-fuchsia h5,.dark-mode blockquote.quote-fuchsia h6{color:#f012be}.dark-mode blockquote.quote-maroon{border-color:#d81b60}.dark-mode blockquote.quote-maroon h1,.dark-mode blockquote.quote-maroon h2,.dark-mode blockquote.quote-maroon h3,.dark-mode blockquote.quote-maroon h4,.dark-mode blockquote.quote-maroon h5,.dark-mode blockquote.quote-maroon h6{color:#d81b60}.dark-mode blockquote.quote-blue{border-color:#007bff}.dark-mode blockquote.quote-blue h1,.dark-mode blockquote.quote-blue h2,.dark-mode blockquote.quote-blue h3,.dark-mode blockquote.quote-blue h4,.dark-mode blockquote.quote-blue h5,.dark-mode blockquote.quote-blue h6{color:#007bff}.dark-mode blockquote.quote-indigo{border-color:#6610f2}.dark-mode blockquote.quote-indigo h1,.dark-mode blockquote.quote-indigo h2,.dark-mode blockquote.quote-indigo h3,.dark-mode blockquote.quote-indigo h4,.dark-mode blockquote.quote-indigo h5,.dark-mode blockquote.quote-indigo h6{color:#6610f2}.dark-mode blockquote.quote-purple{border-color:#6f42c1}.dark-mode blockquote.quote-purple h1,.dark-mode blockquote.quote-purple h2,.dark-mode blockquote.quote-purple h3,.dark-mode blockquote.quote-purple h4,.dark-mode blockquote.quote-purple h5,.dark-mode blockquote.quote-purple h6{color:#6f42c1}.dark-mode blockquote.quote-pink{border-color:#e83e8c}.dark-mode blockquote.quote-pink h1,.dark-mode blockquote.quote-pink h2,.dark-mode blockquote.quote-pink h3,.dark-mode blockquote.quote-pink h4,.dark-mode blockquote.quote-pink h5,.dark-mode blockquote.quote-pink h6{color:#e83e8c}.dark-mode blockquote.quote-red{border-color:#dc3545}.dark-mode blockquote.quote-red h1,.dark-mode blockquote.quote-red h2,.dark-mode blockquote.quote-red h3,.dark-mode blockquote.quote-red h4,.dark-mode blockquote.quote-red h5,.dark-mode blockquote.quote-red h6{color:#dc3545}.dark-mode blockquote.quote-orange{border-color:#fd7e14}.dark-mode blockquote.quote-orange h1,.dark-mode blockquote.quote-orange h2,.dark-mode blockquote.quote-orange h3,.dark-mode blockquote.quote-orange h4,.dark-mode blockquote.quote-orange h5,.dark-mode blockquote.quote-orange h6{color:#fd7e14}.dark-mode blockquote.quote-yellow{border-color:#ffc107}.dark-mode blockquote.quote-yellow h1,.dark-mode blockquote.quote-yellow h2,.dark-mode blockquote.quote-yellow h3,.dark-mode blockquote.quote-yellow h4,.dark-mode blockquote.quote-yellow h5,.dark-mode blockquote.quote-yellow h6{color:#ffc107}.dark-mode blockquote.quote-green{border-color:#28a745}.dark-mode blockquote.quote-green h1,.dark-mode blockquote.quote-green h2,.dark-mode blockquote.quote-green h3,.dark-mode blockquote.quote-green h4,.dark-mode blockquote.quote-green h5,.dark-mode blockquote.quote-green h6{color:#28a745}.dark-mode blockquote.quote-teal{border-color:#20c997}.dark-mode blockquote.quote-teal h1,.dark-mode blockquote.quote-teal h2,.dark-mode blockquote.quote-teal h3,.dark-mode blockquote.quote-teal h4,.dark-mode blockquote.quote-teal h5,.dark-mode blockquote.quote-teal h6{color:#20c997}.dark-mode blockquote.quote-cyan{border-color:#17a2b8}.dark-mode blockquote.quote-cyan h1,.dark-mode blockquote.quote-cyan h2,.dark-mode blockquote.quote-cyan h3,.dark-mode blockquote.quote-cyan h4,.dark-mode blockquote.quote-cyan h5,.dark-mode blockquote.quote-cyan h6{color:#17a2b8}.dark-mode blockquote.quote-white{border-color:#fff}.dark-mode blockquote.quote-white h1,.dark-mode blockquote.quote-white h2,.dark-mode blockquote.quote-white h3,.dark-mode blockquote.quote-white h4,.dark-mode blockquote.quote-white h5,.dark-mode blockquote.quote-white h6{color:#fff}.dark-mode blockquote.quote-gray{border-color:#6c757d}.dark-mode blockquote.quote-gray h1,.dark-mode blockquote.quote-gray h2,.dark-mode blockquote.quote-gray h3,.dark-mode blockquote.quote-gray h4,.dark-mode blockquote.quote-gray h5,.dark-mode blockquote.quote-gray h6{color:#6c757d}.dark-mode blockquote.quote-gray-dark{border-color:#343a40}.dark-mode blockquote.quote-gray-dark h1,.dark-mode blockquote.quote-gray-dark h2,.dark-mode blockquote.quote-gray-dark h3,.dark-mode blockquote.quote-gray-dark h4,.dark-mode blockquote.quote-gray-dark h5,.dark-mode blockquote.quote-gray-dark h6{color:#343a40}.dark-mode .close,.dark-mode .mailbox-attachment-close{color:#adb5bd;text-shadow:0 1px 0 #495057}.dark-mode .tab-custom-content{border-color:#6c757d}.dark-mode .list-group-item{background-color:#343a40;border-color:#6c757d}@media print{.content-header,.main-header,.main-sidebar,.no-print{display:none!important}.content-wrapper,.main-footer{-webkit-transform:translate(0,0);transform:translate(0,0);margin-left:0!important;min-height:0!important}.layout-fixed .content-wrapper{padding-top:0!important}.invoice{border:0;margin:0;padding:0;width:100%}.invoice-col{float:left;width:33.3333333%}.table-responsive{overflow:auto}.table-responsive>.table tr td,.table-responsive>.table tr th{white-space:normal!important}}.text-bold,.text-bold.table td,.text-bold.table th{font-weight:700}.text-xs{font-size:.75rem!important}.text-sm{font-size:.875rem!important}.text-md{font-size:1rem!important}.text-lg{font-size:1.25rem!important}.text-xl{font-size:2rem!important}.text-lightblue{color:#3c8dbc!important}.text-navy{color:#001f3f!important}.text-olive{color:#3d9970!important}.text-lime{color:#01ff70!important}.text-fuchsia{color:#f012be!important}.text-maroon{color:#d81b60!important}.text-blue{color:#007bff!important}.text-indigo{color:#6610f2!important}.text-purple{color:#6f42c1!important}.text-pink{color:#e83e8c!important}.text-red{color:#dc3545!important}.text-orange{color:#fd7e14!important}.text-yellow{color:#ffc107!important}.text-green{color:#28a745!important}.text-teal{color:#20c997!important}.text-cyan{color:#17a2b8!important}.text-white{color:#fff!important}.text-gray{color:#6c757d!important}.text-gray-dark{color:#343a40!important}.dark-mode .text-muted{color:#adb5bd!important}.dark-mode .text-lightblue{color:#86bad8!important}.dark-mode .text-navy{color:#002c59!important}.dark-mode .text-olive{color:#74c8a3!important}.dark-mode .text-lime{color:#67ffa9!important}.dark-mode .text-fuchsia{color:#f672d8!important}.dark-mode .text-maroon{color:#ed6c9b!important}.dark-mode .text-blue{color:#3f6791!important}.dark-mode .text-indigo{color:#6610f2!important}.dark-mode .text-purple{color:#6f42c1!important}.dark-mode .text-pink{color:#e83e8c!important}.dark-mode .text-red{color:#e74c3c!important}.dark-mode .text-orange{color:#fd7e14!important}.dark-mode .text-yellow{color:#f39c12!important}.dark-mode .text-green{color:#00bc8c!important}.dark-mode .text-teal{color:#20c997!important}.dark-mode .text-cyan{color:#3498db!important}.dark-mode .text-white{color:#fff!important}.dark-mode .text-gray{color:#6c757d!important}.dark-mode .text-gray-dark{color:#343a40!important}.elevation-0{box-shadow:none!important}.elevation-1{box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24)!important}.elevation-2{box-shadow:0 3px 6px rgba(0,0,0,.16),0 3px 6px rgba(0,0,0,.23)!important}.elevation-3{box-shadow:0 10px 20px rgba(0,0,0,.19),0 6px 6px rgba(0,0,0,.23)!important}.elevation-4{box-shadow:0 14px 28px rgba(0,0,0,.25),0 10px 10px rgba(0,0,0,.22)!important}.elevation-5{box-shadow:0 19px 38px rgba(0,0,0,.3),0 15px 12px rgba(0,0,0,.22)!important}.bg-primary{background-color:#007bff!important}.bg-primary,.bg-primary>a{color:#fff!important}.bg-primary.btn:hover{border-color:#0062cc;color:#ececec}.bg-primary.btn.active,.bg-primary.btn:active,.bg-primary.btn:not(:disabled):not(.disabled).active,.bg-primary.btn:not(:disabled):not(.disabled):active{background-color:#0062cc!important;border-color:#005cbf;color:#fff}.bg-secondary{background-color:#6c757d!important}.bg-secondary,.bg-secondary>a{color:#fff!important}.bg-secondary.btn:hover{border-color:#545b62;color:#ececec}.bg-secondary.btn.active,.bg-secondary.btn:active,.bg-secondary.btn:not(:disabled):not(.disabled).active,.bg-secondary.btn:not(:disabled):not(.disabled):active{background-color:#545b62!important;border-color:#4e555b;color:#fff}.bg-success{background-color:#28a745!important}.bg-success,.bg-success>a{color:#fff!important}.bg-success.btn:hover{border-color:#1e7e34;color:#ececec}.bg-success.btn.active,.bg-success.btn:active,.bg-success.btn:not(:disabled):not(.disabled).active,.bg-success.btn:not(:disabled):not(.disabled):active{background-color:#1e7e34!important;border-color:#1c7430;color:#fff}.bg-info{background-color:#17a2b8!important}.bg-info,.bg-info>a{color:#fff!important}.bg-info.btn:hover{border-color:#117a8b;color:#ececec}.bg-info.btn.active,.bg-info.btn:active,.bg-info.btn:not(:disabled):not(.disabled).active,.bg-info.btn:not(:disabled):not(.disabled):active{background-color:#117a8b!important;border-color:#10707f;color:#fff}.bg-warning{background-color:#ffc107!important}.bg-warning,.bg-warning>a{color:#1f2d3d!important}.bg-warning.btn:hover{border-color:#d39e00;color:#121a24}.bg-warning.btn.active,.bg-warning.btn:active,.bg-warning.btn:not(:disabled):not(.disabled).active,.bg-warning.btn:not(:disabled):not(.disabled):active{background-color:#d39e00!important;border-color:#c69500;color:#1f2d3d}.bg-danger{background-color:#dc3545!important}.bg-danger,.bg-danger>a{color:#fff!important}.bg-danger.btn:hover{border-color:#bd2130;color:#ececec}.bg-danger.btn.active,.bg-danger.btn:active,.bg-danger.btn:not(:disabled):not(.disabled).active,.bg-danger.btn:not(:disabled):not(.disabled):active{background-color:#bd2130!important;border-color:#b21f2d;color:#fff}.bg-light{background-color:#f8f9fa!important}.bg-light,.bg-light>a{color:#1f2d3d!important}.bg-light.btn:hover{border-color:#dae0e5;color:#121a24}.bg-light.btn.active,.bg-light.btn:active,.bg-light.btn:not(:disabled):not(.disabled).active,.bg-light.btn:not(:disabled):not(.disabled):active{background-color:#dae0e5!important;border-color:#d3d9df;color:#1f2d3d}.bg-dark{background-color:#343a40!important}.bg-dark,.bg-dark>a{color:#fff!important}.bg-dark.btn:hover{border-color:#1d2124;color:#ececec}.bg-dark.btn.active,.bg-dark.btn:active,.bg-dark.btn:not(:disabled):not(.disabled).active,.bg-dark.btn:not(:disabled):not(.disabled):active{background-color:#1d2124!important;border-color:#171a1d;color:#fff}.bg-lightblue{background-color:#3c8dbc!important}.bg-lightblue,.bg-lightblue>a{color:#fff!important}.bg-lightblue.btn:hover{border-color:#307095;color:#ececec}.bg-lightblue.btn.active,.bg-lightblue.btn:active,.bg-lightblue.btn:not(:disabled):not(.disabled).active,.bg-lightblue.btn:not(:disabled):not(.disabled):active{background-color:#307095!important;border-color:#2d698c;color:#fff}.bg-navy{background-color:#001f3f!important}.bg-navy,.bg-navy>a{color:#fff!important}.bg-navy.btn:hover{border-color:#00060c;color:#ececec}.bg-navy.btn.active,.bg-navy.btn:active,.bg-navy.btn:not(:disabled):not(.disabled).active,.bg-navy.btn:not(:disabled):not(.disabled):active{background-color:#00060c!important;border-color:#000;color:#fff}.bg-olive{background-color:#3d9970!important}.bg-olive,.bg-olive>a{color:#fff!important}.bg-olive.btn:hover{border-color:#2e7555;color:#ececec}.bg-olive.btn.active,.bg-olive.btn:active,.bg-olive.btn:not(:disabled):not(.disabled).active,.bg-olive.btn:not(:disabled):not(.disabled):active{background-color:#2e7555!important;border-color:#2b6b4f;color:#fff}.bg-lime{background-color:#01ff70!important}.bg-lime,.bg-lime>a{color:#1f2d3d!important}.bg-lime.btn:hover{border-color:#00cd5a;color:#121a24}.bg-lime.btn.active,.bg-lime.btn:active,.bg-lime.btn:not(:disabled):not(.disabled).active,.bg-lime.btn:not(:disabled):not(.disabled):active{background-color:#00cd5a!important;border-color:#00c054;color:#fff}.bg-fuchsia{background-color:#f012be!important}.bg-fuchsia,.bg-fuchsia>a{color:#fff!important}.bg-fuchsia.btn:hover{border-color:#c30c9a;color:#ececec}.bg-fuchsia.btn.active,.bg-fuchsia.btn:active,.bg-fuchsia.btn:not(:disabled):not(.disabled).active,.bg-fuchsia.btn:not(:disabled):not(.disabled):active{background-color:#c30c9a!important;border-color:#b70c90;color:#fff}.bg-maroon{background-color:#d81b60!important}.bg-maroon,.bg-maroon>a{color:#fff!important}.bg-maroon.btn:hover{border-color:#ab154c;color:#ececec}.bg-maroon.btn.active,.bg-maroon.btn:active,.bg-maroon.btn:not(:disabled):not(.disabled).active,.bg-maroon.btn:not(:disabled):not(.disabled):active{background-color:#ab154c!important;border-color:#9f1447;color:#fff}.bg-blue{background-color:#007bff!important}.bg-blue,.bg-blue>a{color:#fff!important}.bg-blue.btn:hover{border-color:#0062cc;color:#ececec}.bg-blue.btn.active,.bg-blue.btn:active,.bg-blue.btn:not(:disabled):not(.disabled).active,.bg-blue.btn:not(:disabled):not(.disabled):active{background-color:#0062cc!important;border-color:#005cbf;color:#fff}.bg-indigo{background-color:#6610f2!important}.bg-indigo,.bg-indigo>a{color:#fff!important}.bg-indigo.btn:hover{border-color:#510bc4;color:#ececec}.bg-indigo.btn.active,.bg-indigo.btn:active,.bg-indigo.btn:not(:disabled):not(.disabled).active,.bg-indigo.btn:not(:disabled):not(.disabled):active{background-color:#510bc4!important;border-color:#4c0ab8;color:#fff}.bg-purple{background-color:#6f42c1!important}.bg-purple,.bg-purple>a{color:#fff!important}.bg-purple.btn:hover{border-color:#59339d;color:#ececec}.bg-purple.btn.active,.bg-purple.btn:active,.bg-purple.btn:not(:disabled):not(.disabled).active,.bg-purple.btn:not(:disabled):not(.disabled):active{background-color:#59339d!important;border-color:#533093;color:#fff}.bg-pink{background-color:#e83e8c!important}.bg-pink,.bg-pink>a{color:#fff!important}.bg-pink.btn:hover{border-color:#d91a72;color:#ececec}.bg-pink.btn.active,.bg-pink.btn:active,.bg-pink.btn:not(:disabled):not(.disabled).active,.bg-pink.btn:not(:disabled):not(.disabled):active{background-color:#d91a72!important;border-color:#ce196c;color:#fff}.bg-red{background-color:#dc3545!important}.bg-red,.bg-red>a{color:#fff!important}.bg-red.btn:hover{border-color:#bd2130;color:#ececec}.bg-red.btn.active,.bg-red.btn:active,.bg-red.btn:not(:disabled):not(.disabled).active,.bg-red.btn:not(:disabled):not(.disabled):active{background-color:#bd2130!important;border-color:#b21f2d;color:#fff}.bg-orange{background-color:#fd7e14!important}.bg-orange,.bg-orange>a{color:#1f2d3d!important}.bg-orange.btn:hover{border-color:#dc6502;color:#121a24}.bg-orange.btn.active,.bg-orange.btn:active,.bg-orange.btn:not(:disabled):not(.disabled).active,.bg-orange.btn:not(:disabled):not(.disabled):active{background-color:#dc6502!important;border-color:#cf5f02;color:#fff}.bg-yellow{background-color:#ffc107!important}.bg-yellow,.bg-yellow>a{color:#1f2d3d!important}.bg-yellow.btn:hover{border-color:#d39e00;color:#121a24}.bg-yellow.btn.active,.bg-yellow.btn:active,.bg-yellow.btn:not(:disabled):not(.disabled).active,.bg-yellow.btn:not(:disabled):not(.disabled):active{background-color:#d39e00!important;border-color:#c69500;color:#1f2d3d}.bg-green{background-color:#28a745!important}.bg-green,.bg-green>a{color:#fff!important}.bg-green.btn:hover{border-color:#1e7e34;color:#ececec}.bg-green.btn.active,.bg-green.btn:active,.bg-green.btn:not(:disabled):not(.disabled).active,.bg-green.btn:not(:disabled):not(.disabled):active{background-color:#1e7e34!important;border-color:#1c7430;color:#fff}.bg-teal{background-color:#20c997!important}.bg-teal,.bg-teal>a{color:#fff!important}.bg-teal.btn:hover{border-color:#199d76;color:#ececec}.bg-teal.btn.active,.bg-teal.btn:active,.bg-teal.btn:not(:disabled):not(.disabled).active,.bg-teal.btn:not(:disabled):not(.disabled):active{background-color:#199d76!important;border-color:#17926e;color:#fff}.bg-cyan{background-color:#17a2b8!important}.bg-cyan,.bg-cyan>a{color:#fff!important}.bg-cyan.btn:hover{border-color:#117a8b;color:#ececec}.bg-cyan.btn.active,.bg-cyan.btn:active,.bg-cyan.btn:not(:disabled):not(.disabled).active,.bg-cyan.btn:not(:disabled):not(.disabled):active{background-color:#117a8b!important;border-color:#10707f;color:#fff}.bg-white{background-color:#fff!important}.bg-white,.bg-white>a{color:#1f2d3d!important}.bg-white.btn:hover{border-color:#e6e6e6;color:#121a24}.bg-white.btn.active,.bg-white.btn:active,.bg-white.btn:not(:disabled):not(.disabled).active,.bg-white.btn:not(:disabled):not(.disabled):active{background-color:#e6e6e6!important;border-color:#dfdfdf;color:#1f2d3d}.bg-gray{background-color:#6c757d!important}.bg-gray,.bg-gray>a{color:#fff!important}.bg-gray.btn:hover{border-color:#545b62;color:#ececec}.bg-gray.btn.active,.bg-gray.btn:active,.bg-gray.btn:not(:disabled):not(.disabled).active,.bg-gray.btn:not(:disabled):not(.disabled):active{background-color:#545b62!important;border-color:#4e555b;color:#fff}.bg-gray-dark{background-color:#343a40!important}.bg-gray-dark,.bg-gray-dark>a{color:#fff!important}.bg-gray-dark.btn:hover{border-color:#1d2124;color:#ececec}.bg-gray-dark.btn.active,.bg-gray-dark.btn:active,.bg-gray-dark.btn:not(:disabled):not(.disabled).active,.bg-gray-dark.btn:not(:disabled):not(.disabled):active{background-color:#1d2124!important;border-color:#171a1d;color:#fff}@media print{.table td.bg-primary,.table th.bg-primary{background-color:#007bff!important}.table td.bg-primary,.table td.bg-primary>a,.table th.bg-primary,.table th.bg-primary>a{color:#fff!important}.table td.bg-primary.btn:hover,.table th.bg-primary.btn:hover{border-color:#0062cc;color:#ececec}.table td.bg-primary.btn.active,.table td.bg-primary.btn:active,.table td.bg-primary.btn:not(:disabled):not(.disabled).active,.table td.bg-primary.btn:not(:disabled):not(.disabled):active,.table th.bg-primary.btn.active,.table th.bg-primary.btn:active,.table th.bg-primary.btn:not(:disabled):not(.disabled).active,.table th.bg-primary.btn:not(:disabled):not(.disabled):active{background-color:#0062cc!important;border-color:#005cbf;color:#fff}.table td.bg-secondary,.table th.bg-secondary{background-color:#6c757d!important}.table td.bg-secondary,.table td.bg-secondary>a,.table th.bg-secondary,.table th.bg-secondary>a{color:#fff!important}.table td.bg-secondary.btn:hover,.table th.bg-secondary.btn:hover{border-color:#545b62;color:#ececec}.table td.bg-secondary.btn.active,.table td.bg-secondary.btn:active,.table td.bg-secondary.btn:not(:disabled):not(.disabled).active,.table td.bg-secondary.btn:not(:disabled):not(.disabled):active,.table th.bg-secondary.btn.active,.table th.bg-secondary.btn:active,.table th.bg-secondary.btn:not(:disabled):not(.disabled).active,.table th.bg-secondary.btn:not(:disabled):not(.disabled):active{background-color:#545b62!important;border-color:#4e555b;color:#fff}.table td.bg-success,.table th.bg-success{background-color:#28a745!important}.table td.bg-success,.table td.bg-success>a,.table th.bg-success,.table th.bg-success>a{color:#fff!important}.table td.bg-success.btn:hover,.table th.bg-success.btn:hover{border-color:#1e7e34;color:#ececec}.table td.bg-success.btn.active,.table td.bg-success.btn:active,.table td.bg-success.btn:not(:disabled):not(.disabled).active,.table td.bg-success.btn:not(:disabled):not(.disabled):active,.table th.bg-success.btn.active,.table th.bg-success.btn:active,.table th.bg-success.btn:not(:disabled):not(.disabled).active,.table th.bg-success.btn:not(:disabled):not(.disabled):active{background-color:#1e7e34!important;border-color:#1c7430;color:#fff}.table td.bg-info,.table th.bg-info{background-color:#17a2b8!important}.table td.bg-info,.table td.bg-info>a,.table th.bg-info,.table th.bg-info>a{color:#fff!important}.table td.bg-info.btn:hover,.table th.bg-info.btn:hover{border-color:#117a8b;color:#ececec}.table td.bg-info.btn.active,.table td.bg-info.btn:active,.table td.bg-info.btn:not(:disabled):not(.disabled).active,.table td.bg-info.btn:not(:disabled):not(.disabled):active,.table th.bg-info.btn.active,.table th.bg-info.btn:active,.table th.bg-info.btn:not(:disabled):not(.disabled).active,.table th.bg-info.btn:not(:disabled):not(.disabled):active{background-color:#117a8b!important;border-color:#10707f;color:#fff}.table td.bg-warning,.table th.bg-warning{background-color:#ffc107!important}.table td.bg-warning,.table td.bg-warning>a,.table th.bg-warning,.table th.bg-warning>a{color:#1f2d3d!important}.table td.bg-warning.btn:hover,.table th.bg-warning.btn:hover{border-color:#d39e00;color:#121a24}.table td.bg-warning.btn.active,.table td.bg-warning.btn:active,.table td.bg-warning.btn:not(:disabled):not(.disabled).active,.table td.bg-warning.btn:not(:disabled):not(.disabled):active,.table th.bg-warning.btn.active,.table th.bg-warning.btn:active,.table th.bg-warning.btn:not(:disabled):not(.disabled).active,.table th.bg-warning.btn:not(:disabled):not(.disabled):active{background-color:#d39e00!important;border-color:#c69500;color:#1f2d3d}.table td.bg-danger,.table th.bg-danger{background-color:#dc3545!important}.table td.bg-danger,.table td.bg-danger>a,.table th.bg-danger,.table th.bg-danger>a{color:#fff!important}.table td.bg-danger.btn:hover,.table th.bg-danger.btn:hover{border-color:#bd2130;color:#ececec}.table td.bg-danger.btn.active,.table td.bg-danger.btn:active,.table td.bg-danger.btn:not(:disabled):not(.disabled).active,.table td.bg-danger.btn:not(:disabled):not(.disabled):active,.table th.bg-danger.btn.active,.table th.bg-danger.btn:active,.table th.bg-danger.btn:not(:disabled):not(.disabled).active,.table th.bg-danger.btn:not(:disabled):not(.disabled):active{background-color:#bd2130!important;border-color:#b21f2d;color:#fff}.table td.bg-light,.table th.bg-light{background-color:#f8f9fa!important}.table td.bg-light,.table td.bg-light>a,.table th.bg-light,.table th.bg-light>a{color:#1f2d3d!important}.table td.bg-light.btn:hover,.table th.bg-light.btn:hover{border-color:#dae0e5;color:#121a24}.table td.bg-light.btn.active,.table td.bg-light.btn:active,.table td.bg-light.btn:not(:disabled):not(.disabled).active,.table td.bg-light.btn:not(:disabled):not(.disabled):active,.table th.bg-light.btn.active,.table th.bg-light.btn:active,.table th.bg-light.btn:not(:disabled):not(.disabled).active,.table th.bg-light.btn:not(:disabled):not(.disabled):active{background-color:#dae0e5!important;border-color:#d3d9df;color:#1f2d3d}.table td.bg-dark,.table th.bg-dark{background-color:#343a40!important}.table td.bg-dark,.table td.bg-dark>a,.table th.bg-dark,.table th.bg-dark>a{color:#fff!important}.table td.bg-dark.btn:hover,.table th.bg-dark.btn:hover{border-color:#1d2124;color:#ececec}.table td.bg-dark.btn.active,.table td.bg-dark.btn:active,.table td.bg-dark.btn:not(:disabled):not(.disabled).active,.table td.bg-dark.btn:not(:disabled):not(.disabled):active,.table th.bg-dark.btn.active,.table th.bg-dark.btn:active,.table th.bg-dark.btn:not(:disabled):not(.disabled).active,.table th.bg-dark.btn:not(:disabled):not(.disabled):active{background-color:#1d2124!important;border-color:#171a1d;color:#fff}.table td.bg-lightblue,.table th.bg-lightblue{background-color:#3c8dbc!important}.table td.bg-lightblue,.table td.bg-lightblue>a,.table th.bg-lightblue,.table th.bg-lightblue>a{color:#fff!important}.table td.bg-lightblue.btn:hover,.table th.bg-lightblue.btn:hover{border-color:#307095;color:#ececec}.table td.bg-lightblue.btn.active,.table td.bg-lightblue.btn:active,.table td.bg-lightblue.btn:not(:disabled):not(.disabled).active,.table td.bg-lightblue.btn:not(:disabled):not(.disabled):active,.table th.bg-lightblue.btn.active,.table th.bg-lightblue.btn:active,.table th.bg-lightblue.btn:not(:disabled):not(.disabled).active,.table th.bg-lightblue.btn:not(:disabled):not(.disabled):active{background-color:#307095!important;border-color:#2d698c;color:#fff}.table td.bg-navy,.table th.bg-navy{background-color:#001f3f!important}.table td.bg-navy,.table td.bg-navy>a,.table th.bg-navy,.table th.bg-navy>a{color:#fff!important}.table td.bg-navy.btn:hover,.table th.bg-navy.btn:hover{border-color:#00060c;color:#ececec}.table td.bg-navy.btn.active,.table td.bg-navy.btn:active,.table td.bg-navy.btn:not(:disabled):not(.disabled).active,.table td.bg-navy.btn:not(:disabled):not(.disabled):active,.table th.bg-navy.btn.active,.table th.bg-navy.btn:active,.table th.bg-navy.btn:not(:disabled):not(.disabled).active,.table th.bg-navy.btn:not(:disabled):not(.disabled):active{background-color:#00060c!important;border-color:#000;color:#fff}.table td.bg-olive,.table th.bg-olive{background-color:#3d9970!important}.table td.bg-olive,.table td.bg-olive>a,.table th.bg-olive,.table th.bg-olive>a{color:#fff!important}.table td.bg-olive.btn:hover,.table th.bg-olive.btn:hover{border-color:#2e7555;color:#ececec}.table td.bg-olive.btn.active,.table td.bg-olive.btn:active,.table td.bg-olive.btn:not(:disabled):not(.disabled).active,.table td.bg-olive.btn:not(:disabled):not(.disabled):active,.table th.bg-olive.btn.active,.table th.bg-olive.btn:active,.table th.bg-olive.btn:not(:disabled):not(.disabled).active,.table th.bg-olive.btn:not(:disabled):not(.disabled):active{background-color:#2e7555!important;border-color:#2b6b4f;color:#fff}.table td.bg-lime,.table th.bg-lime{background-color:#01ff70!important}.table td.bg-lime,.table td.bg-lime>a,.table th.bg-lime,.table th.bg-lime>a{color:#1f2d3d!important}.table td.bg-lime.btn:hover,.table th.bg-lime.btn:hover{border-color:#00cd5a;color:#121a24}.table td.bg-lime.btn.active,.table td.bg-lime.btn:active,.table td.bg-lime.btn:not(:disabled):not(.disabled).active,.table td.bg-lime.btn:not(:disabled):not(.disabled):active,.table th.bg-lime.btn.active,.table th.bg-lime.btn:active,.table th.bg-lime.btn:not(:disabled):not(.disabled).active,.table th.bg-lime.btn:not(:disabled):not(.disabled):active{background-color:#00cd5a!important;border-color:#00c054;color:#fff}.table td.bg-fuchsia,.table th.bg-fuchsia{background-color:#f012be!important}.table td.bg-fuchsia,.table td.bg-fuchsia>a,.table th.bg-fuchsia,.table th.bg-fuchsia>a{color:#fff!important}.table td.bg-fuchsia.btn:hover,.table th.bg-fuchsia.btn:hover{border-color:#c30c9a;color:#ececec}.table td.bg-fuchsia.btn.active,.table td.bg-fuchsia.btn:active,.table td.bg-fuchsia.btn:not(:disabled):not(.disabled).active,.table td.bg-fuchsia.btn:not(:disabled):not(.disabled):active,.table th.bg-fuchsia.btn.active,.table th.bg-fuchsia.btn:active,.table th.bg-fuchsia.btn:not(:disabled):not(.disabled).active,.table th.bg-fuchsia.btn:not(:disabled):not(.disabled):active{background-color:#c30c9a!important;border-color:#b70c90;color:#fff}.table td.bg-maroon,.table th.bg-maroon{background-color:#d81b60!important}.table td.bg-maroon,.table td.bg-maroon>a,.table th.bg-maroon,.table th.bg-maroon>a{color:#fff!important}.table td.bg-maroon.btn:hover,.table th.bg-maroon.btn:hover{border-color:#ab154c;color:#ececec}.table td.bg-maroon.btn.active,.table td.bg-maroon.btn:active,.table td.bg-maroon.btn:not(:disabled):not(.disabled).active,.table td.bg-maroon.btn:not(:disabled):not(.disabled):active,.table th.bg-maroon.btn.active,.table th.bg-maroon.btn:active,.table th.bg-maroon.btn:not(:disabled):not(.disabled).active,.table th.bg-maroon.btn:not(:disabled):not(.disabled):active{background-color:#ab154c!important;border-color:#9f1447;color:#fff}.table td.bg-blue,.table th.bg-blue{background-color:#007bff!important}.table td.bg-blue,.table td.bg-blue>a,.table th.bg-blue,.table th.bg-blue>a{color:#fff!important}.table td.bg-blue.btn:hover,.table th.bg-blue.btn:hover{border-color:#0062cc;color:#ececec}.table td.bg-blue.btn.active,.table td.bg-blue.btn:active,.table td.bg-blue.btn:not(:disabled):not(.disabled).active,.table td.bg-blue.btn:not(:disabled):not(.disabled):active,.table th.bg-blue.btn.active,.table th.bg-blue.btn:active,.table th.bg-blue.btn:not(:disabled):not(.disabled).active,.table th.bg-blue.btn:not(:disabled):not(.disabled):active{background-color:#0062cc!important;border-color:#005cbf;color:#fff}.table td.bg-indigo,.table th.bg-indigo{background-color:#6610f2!important}.table td.bg-indigo,.table td.bg-indigo>a,.table th.bg-indigo,.table th.bg-indigo>a{color:#fff!important}.table td.bg-indigo.btn:hover,.table th.bg-indigo.btn:hover{border-color:#510bc4;color:#ececec}.table td.bg-indigo.btn.active,.table td.bg-indigo.btn:active,.table td.bg-indigo.btn:not(:disabled):not(.disabled).active,.table td.bg-indigo.btn:not(:disabled):not(.disabled):active,.table th.bg-indigo.btn.active,.table th.bg-indigo.btn:active,.table th.bg-indigo.btn:not(:disabled):not(.disabled).active,.table th.bg-indigo.btn:not(:disabled):not(.disabled):active{background-color:#510bc4!important;border-color:#4c0ab8;color:#fff}.table td.bg-purple,.table th.bg-purple{background-color:#6f42c1!important}.table td.bg-purple,.table td.bg-purple>a,.table th.bg-purple,.table th.bg-purple>a{color:#fff!important}.table td.bg-purple.btn:hover,.table th.bg-purple.btn:hover{border-color:#59339d;color:#ececec}.table td.bg-purple.btn.active,.table td.bg-purple.btn:active,.table td.bg-purple.btn:not(:disabled):not(.disabled).active,.table td.bg-purple.btn:not(:disabled):not(.disabled):active,.table th.bg-purple.btn.active,.table th.bg-purple.btn:active,.table th.bg-purple.btn:not(:disabled):not(.disabled).active,.table th.bg-purple.btn:not(:disabled):not(.disabled):active{background-color:#59339d!important;border-color:#533093;color:#fff}.table td.bg-pink,.table th.bg-pink{background-color:#e83e8c!important}.table td.bg-pink,.table td.bg-pink>a,.table th.bg-pink,.table th.bg-pink>a{color:#fff!important}.table td.bg-pink.btn:hover,.table th.bg-pink.btn:hover{border-color:#d91a72;color:#ececec}.table td.bg-pink.btn.active,.table td.bg-pink.btn:active,.table td.bg-pink.btn:not(:disabled):not(.disabled).active,.table td.bg-pink.btn:not(:disabled):not(.disabled):active,.table th.bg-pink.btn.active,.table th.bg-pink.btn:active,.table th.bg-pink.btn:not(:disabled):not(.disabled).active,.table th.bg-pink.btn:not(:disabled):not(.disabled):active{background-color:#d91a72!important;border-color:#ce196c;color:#fff}.table td.bg-red,.table th.bg-red{background-color:#dc3545!important}.table td.bg-red,.table td.bg-red>a,.table th.bg-red,.table th.bg-red>a{color:#fff!important}.table td.bg-red.btn:hover,.table th.bg-red.btn:hover{border-color:#bd2130;color:#ececec}.table td.bg-red.btn.active,.table td.bg-red.btn:active,.table td.bg-red.btn:not(:disabled):not(.disabled).active,.table td.bg-red.btn:not(:disabled):not(.disabled):active,.table th.bg-red.btn.active,.table th.bg-red.btn:active,.table th.bg-red.btn:not(:disabled):not(.disabled).active,.table th.bg-red.btn:not(:disabled):not(.disabled):active{background-color:#bd2130!important;border-color:#b21f2d;color:#fff}.table td.bg-orange,.table th.bg-orange{background-color:#fd7e14!important}.table td.bg-orange,.table td.bg-orange>a,.table th.bg-orange,.table th.bg-orange>a{color:#1f2d3d!important}.table td.bg-orange.btn:hover,.table th.bg-orange.btn:hover{border-color:#dc6502;color:#121a24}.table td.bg-orange.btn.active,.table td.bg-orange.btn:active,.table td.bg-orange.btn:not(:disabled):not(.disabled).active,.table td.bg-orange.btn:not(:disabled):not(.disabled):active,.table th.bg-orange.btn.active,.table th.bg-orange.btn:active,.table th.bg-orange.btn:not(:disabled):not(.disabled).active,.table th.bg-orange.btn:not(:disabled):not(.disabled):active{background-color:#dc6502!important;border-color:#cf5f02;color:#fff}.table td.bg-yellow,.table th.bg-yellow{background-color:#ffc107!important}.table td.bg-yellow,.table td.bg-yellow>a,.table th.bg-yellow,.table th.bg-yellow>a{color:#1f2d3d!important}.table td.bg-yellow.btn:hover,.table th.bg-yellow.btn:hover{border-color:#d39e00;color:#121a24}.table td.bg-yellow.btn.active,.table td.bg-yellow.btn:active,.table td.bg-yellow.btn:not(:disabled):not(.disabled).active,.table td.bg-yellow.btn:not(:disabled):not(.disabled):active,.table th.bg-yellow.btn.active,.table th.bg-yellow.btn:active,.table th.bg-yellow.btn:not(:disabled):not(.disabled).active,.table th.bg-yellow.btn:not(:disabled):not(.disabled):active{background-color:#d39e00!important;border-color:#c69500;color:#1f2d3d}.table td.bg-green,.table th.bg-green{background-color:#28a745!important}.table td.bg-green,.table td.bg-green>a,.table th.bg-green,.table th.bg-green>a{color:#fff!important}.table td.bg-green.btn:hover,.table th.bg-green.btn:hover{border-color:#1e7e34;color:#ececec}.table td.bg-green.btn.active,.table td.bg-green.btn:active,.table td.bg-green.btn:not(:disabled):not(.disabled).active,.table td.bg-green.btn:not(:disabled):not(.disabled):active,.table th.bg-green.btn.active,.table th.bg-green.btn:active,.table th.bg-green.btn:not(:disabled):not(.disabled).active,.table th.bg-green.btn:not(:disabled):not(.disabled):active{background-color:#1e7e34!important;border-color:#1c7430;color:#fff}.table td.bg-teal,.table th.bg-teal{background-color:#20c997!important}.table td.bg-teal,.table td.bg-teal>a,.table th.bg-teal,.table th.bg-teal>a{color:#fff!important}.table td.bg-teal.btn:hover,.table th.bg-teal.btn:hover{border-color:#199d76;color:#ececec}.table td.bg-teal.btn.active,.table td.bg-teal.btn:active,.table td.bg-teal.btn:not(:disabled):not(.disabled).active,.table td.bg-teal.btn:not(:disabled):not(.disabled):active,.table th.bg-teal.btn.active,.table th.bg-teal.btn:active,.table th.bg-teal.btn:not(:disabled):not(.disabled).active,.table th.bg-teal.btn:not(:disabled):not(.disabled):active{background-color:#199d76!important;border-color:#17926e;color:#fff}.table td.bg-cyan,.table th.bg-cyan{background-color:#17a2b8!important}.table td.bg-cyan,.table td.bg-cyan>a,.table th.bg-cyan,.table th.bg-cyan>a{color:#fff!important}.table td.bg-cyan.btn:hover,.table th.bg-cyan.btn:hover{border-color:#117a8b;color:#ececec}.table td.bg-cyan.btn.active,.table td.bg-cyan.btn:active,.table td.bg-cyan.btn:not(:disabled):not(.disabled).active,.table td.bg-cyan.btn:not(:disabled):not(.disabled):active,.table th.bg-cyan.btn.active,.table th.bg-cyan.btn:active,.table th.bg-cyan.btn:not(:disabled):not(.disabled).active,.table th.bg-cyan.btn:not(:disabled):not(.disabled):active{background-color:#117a8b!important;border-color:#10707f;color:#fff}.table td.bg-white,.table th.bg-white{background-color:#fff!important}.table td.bg-white,.table td.bg-white>a,.table th.bg-white,.table th.bg-white>a{color:#1f2d3d!important}.table td.bg-white.btn:hover,.table th.bg-white.btn:hover{border-color:#e6e6e6;color:#121a24}.table td.bg-white.btn.active,.table td.bg-white.btn:active,.table td.bg-white.btn:not(:disabled):not(.disabled).active,.table td.bg-white.btn:not(:disabled):not(.disabled):active,.table th.bg-white.btn.active,.table th.bg-white.btn:active,.table th.bg-white.btn:not(:disabled):not(.disabled).active,.table th.bg-white.btn:not(:disabled):not(.disabled):active{background-color:#e6e6e6!important;border-color:#dfdfdf;color:#1f2d3d}.table td.bg-gray,.table th.bg-gray{background-color:#6c757d!important}.table td.bg-gray,.table td.bg-gray>a,.table th.bg-gray,.table th.bg-gray>a{color:#fff!important}.table td.bg-gray.btn:hover,.table th.bg-gray.btn:hover{border-color:#545b62;color:#ececec}.table td.bg-gray.btn.active,.table td.bg-gray.btn:active,.table td.bg-gray.btn:not(:disabled):not(.disabled).active,.table td.bg-gray.btn:not(:disabled):not(.disabled):active,.table th.bg-gray.btn.active,.table th.bg-gray.btn:active,.table th.bg-gray.btn:not(:disabled):not(.disabled).active,.table th.bg-gray.btn:not(:disabled):not(.disabled):active{background-color:#545b62!important;border-color:#4e555b;color:#fff}.table td.bg-gray-dark,.table th.bg-gray-dark{background-color:#343a40!important}.table td.bg-gray-dark,.table td.bg-gray-dark>a,.table th.bg-gray-dark,.table th.bg-gray-dark>a{color:#fff!important}.table td.bg-gray-dark.btn:hover,.table th.bg-gray-dark.btn:hover{border-color:#1d2124;color:#ececec}.table td.bg-gray-dark.btn.active,.table td.bg-gray-dark.btn:active,.table td.bg-gray-dark.btn:not(:disabled):not(.disabled).active,.table td.bg-gray-dark.btn:not(:disabled):not(.disabled):active,.table th.bg-gray-dark.btn.active,.table th.bg-gray-dark.btn:active,.table th.bg-gray-dark.btn:not(:disabled):not(.disabled).active,.table th.bg-gray-dark.btn:not(:disabled):not(.disabled):active{background-color:#1d2124!important;border-color:#171a1d;color:#fff}}.bg-gray{background-color:#adb5bd;color:#1f2d3d}.bg-gray-light{background-color:#f2f4f5;color:#1f2d3d!important}.bg-black{background-color:#000;color:#fff!important}.bg-white{background-color:#fff;color:#1f2d3d!important}.bg-gradient-primary{background:#007bff linear-gradient(180deg,#268fff,#007bff) repeat-x!important;color:#fff}.bg-gradient-primary.btn:not(:disabled):not(.disabled).active,.bg-gradient-primary.btn:not(:disabled):not(.disabled):active,.show>.bg-gradient-primary.btn.dropdown-toggle{background-image:none!important}.bg-gradient-primary.btn:hover{background:#007bff linear-gradient(180deg,#267fde,#0069d9) repeat-x!important;border-color:#0062cc;color:#ececec}.bg-gradient-primary.btn.active,.bg-gradient-primary.btn:active,.bg-gradient-primary.btn:not(:disabled):not(.disabled).active,.bg-gradient-primary.btn:not(:disabled):not(.disabled):active{background:#007bff linear-gradient(180deg,#267ad4,#0062cc) repeat-x!important;border-color:#005cbf;color:#fff}.bg-gradient-primary.btn.disabled,.bg-gradient-primary.btn:disabled{background-image:none!important;border-color:#007bff;color:#fff}.bg-gradient-secondary{background:#6c757d linear-gradient(180deg,#828a91,#6c757d) repeat-x!important;color:#fff}.bg-gradient-secondary.btn:not(:disabled):not(.disabled).active,.bg-gradient-secondary.btn:not(:disabled):not(.disabled):active,.show>.bg-gradient-secondary.btn.dropdown-toggle{background-image:none!important}.bg-gradient-secondary.btn:hover{background:#6c757d linear-gradient(180deg,#73797f,#5a6268) repeat-x!important;border-color:#545b62;color:#ececec}.bg-gradient-secondary.btn.active,.bg-gradient-secondary.btn:active,.bg-gradient-secondary.btn:not(:disabled):not(.disabled).active,.bg-gradient-secondary.btn:not(:disabled):not(.disabled):active{background:#6c757d linear-gradient(180deg,#6e7479,#545b62) repeat-x!important;border-color:#4e555b;color:#fff}.bg-gradient-secondary.btn.disabled,.bg-gradient-secondary.btn:disabled{background-image:none!important;border-color:#6c757d;color:#fff}.bg-gradient-success{background:#28a745 linear-gradient(180deg,#48b461,#28a745) repeat-x!important;color:#fff}.bg-gradient-success.btn:not(:disabled):not(.disabled).active,.bg-gradient-success.btn:not(:disabled):not(.disabled):active,.show>.bg-gradient-success.btn.dropdown-toggle{background-image:none!important}.bg-gradient-success.btn:hover{background:#28a745 linear-gradient(180deg,#429a56,#218838) repeat-x!important;border-color:#1e7e34;color:#ececec}.bg-gradient-success.btn.active,.bg-gradient-success.btn:active,.bg-gradient-success.btn:not(:disabled):not(.disabled).active,.bg-gradient-success.btn:not(:disabled):not(.disabled):active{background:#28a745 linear-gradient(180deg,#409152,#1e7e34) repeat-x!important;border-color:#1c7430;color:#fff}.bg-gradient-success.btn.disabled,.bg-gradient-success.btn:disabled{background-image:none!important;border-color:#28a745;color:#fff}.bg-gradient-info{background:#17a2b8 linear-gradient(180deg,#3ab0c3,#17a2b8) repeat-x!important;color:#fff}.bg-gradient-info.btn:not(:disabled):not(.disabled).active,.bg-gradient-info.btn:not(:disabled):not(.disabled):active,.show>.bg-gradient-info.btn.dropdown-toggle{background-image:none!important}.bg-gradient-info.btn:hover{background:#17a2b8 linear-gradient(180deg,#3697a6,#138496) repeat-x!important;border-color:#117a8b;color:#ececec}.bg-gradient-info.btn.active,.bg-gradient-info.btn:active,.bg-gradient-info.btn:not(:disabled):not(.disabled).active,.bg-gradient-info.btn:not(:disabled):not(.disabled):active{background:#17a2b8 linear-gradient(180deg,#358e9c,#117a8b) repeat-x!important;border-color:#10707f;color:#fff}.bg-gradient-info.btn.disabled,.bg-gradient-info.btn:disabled{background-image:none!important;border-color:#17a2b8;color:#fff}.bg-gradient-warning{background:#ffc107 linear-gradient(180deg,#ffca2c,#ffc107) repeat-x!important;color:#1f2d3d}.bg-gradient-warning.btn:not(:disabled):not(.disabled).active,.bg-gradient-warning.btn:not(:disabled):not(.disabled):active,.show>.bg-gradient-warning.btn.dropdown-toggle{background-image:none!important}.bg-gradient-warning.btn:hover{background:#ffc107 linear-gradient(180deg,#e4b526,#e0a800) repeat-x!important;border-color:#d39e00;color:#121a24}.bg-gradient-warning.btn.active,.bg-gradient-warning.btn:active,.bg-gradient-warning.btn:not(:disabled):not(.disabled).active,.bg-gradient-warning.btn:not(:disabled):not(.disabled):active{background:#ffc107 linear-gradient(180deg,#daad26,#d39e00) repeat-x!important;border-color:#c69500;color:#1f2d3d}.bg-gradient-warning.btn.disabled,.bg-gradient-warning.btn:disabled{background-image:none!important;border-color:#ffc107;color:#1f2d3d}.bg-gradient-danger{background:#dc3545 linear-gradient(180deg,#e15361,#dc3545) repeat-x!important;color:#fff}.bg-gradient-danger.btn:not(:disabled):not(.disabled).active,.bg-gradient-danger.btn:not(:disabled):not(.disabled):active,.show>.bg-gradient-danger.btn.dropdown-toggle{background-image:none!important}.bg-gradient-danger.btn:hover{background:#dc3545 linear-gradient(180deg,#d04451,#c82333) repeat-x!important;border-color:#bd2130;color:#ececec}.bg-gradient-danger.btn.active,.bg-gradient-danger.btn:active,.bg-gradient-danger.btn:not(:disabled):not(.disabled).active,.bg-gradient-danger.btn:not(:disabled):not(.disabled):active{background:#dc3545 linear-gradient(180deg,#c7424f,#bd2130) repeat-x!important;border-color:#b21f2d;color:#fff}.bg-gradient-danger.btn.disabled,.bg-gradient-danger.btn:disabled{background-image:none!important;border-color:#dc3545;color:#fff}.bg-gradient-light{background:#f8f9fa linear-gradient(180deg,#f9fafb,#f8f9fa) repeat-x!important;color:#1f2d3d}.bg-gradient-light.btn:not(:disabled):not(.disabled).active,.bg-gradient-light.btn:not(:disabled):not(.disabled):active,.show>.bg-gradient-light.btn.dropdown-toggle{background-image:none!important}.bg-gradient-light.btn:hover{background:#f8f9fa linear-gradient(180deg,#e6eaed,#e2e6ea) repeat-x!important;border-color:#dae0e5;color:#121a24}.bg-gradient-light.btn.active,.bg-gradient-light.btn:active,.bg-gradient-light.btn:not(:disabled):not(.disabled).active,.bg-gradient-light.btn:not(:disabled):not(.disabled):active{background:#f8f9fa linear-gradient(180deg,#e0e4e9,#dae0e5) repeat-x!important;border-color:#d3d9df;color:#1f2d3d}.bg-gradient-light.btn.disabled,.bg-gradient-light.btn:disabled{background-image:none!important;border-color:#f8f9fa;color:#1f2d3d}.bg-gradient-dark{background:#343a40 linear-gradient(180deg,#52585d,#343a40) repeat-x!important;color:#fff}.bg-gradient-dark.btn:not(:disabled):not(.disabled).active,.bg-gradient-dark.btn:not(:disabled):not(.disabled):active,.show>.bg-gradient-dark.btn.dropdown-toggle{background-image:none!important}.bg-gradient-dark.btn:hover{background:#343a40 linear-gradient(180deg,#44474b,#23272b) repeat-x!important;border-color:#1d2124;color:#ececec}.bg-gradient-dark.btn.active,.bg-gradient-dark.btn:active,.bg-gradient-dark.btn:not(:disabled):not(.disabled).active,.bg-gradient-dark.btn:not(:disabled):not(.disabled):active{background:#343a40 linear-gradient(180deg,#3f4245,#1d2124) repeat-x!important;border-color:#171a1d;color:#fff}.bg-gradient-dark.btn.disabled,.bg-gradient-dark.btn:disabled{background-image:none!important;border-color:#343a40;color:#fff}.bg-gradient-lightblue{background:#3c8dbc linear-gradient(180deg,#599ec6,#3c8dbc) repeat-x!important;color:#fff}.bg-gradient-lightblue.btn:not(:disabled):not(.disabled).active,.bg-gradient-lightblue.btn:not(:disabled):not(.disabled):active,.show>.bg-gradient-lightblue.btn.dropdown-toggle{background-image:none!important}.bg-gradient-lightblue.btn:hover{background:#3c8dbc linear-gradient(180deg,#518cad,#33779f) repeat-x!important;border-color:#307095;color:#ececec}.bg-gradient-lightblue.btn.active,.bg-gradient-lightblue.btn:active,.bg-gradient-lightblue.btn:not(:disabled):not(.disabled).active,.bg-gradient-lightblue.btn:not(:disabled):not(.disabled):active{background:#3c8dbc linear-gradient(180deg,#4f85a5,#307095) repeat-x!important;border-color:#2d698c;color:#fff}.bg-gradient-lightblue.btn.disabled,.bg-gradient-lightblue.btn:disabled{background-image:none!important;border-color:#3c8dbc;color:#fff}.bg-gradient-navy{background:#001f3f linear-gradient(180deg,#26415c,#001f3f) repeat-x!important;color:#fff}.bg-gradient-navy.btn:not(:disabled):not(.disabled).active,.bg-gradient-navy.btn:not(:disabled):not(.disabled):active,.show>.bg-gradient-navy.btn.dropdown-toggle{background-image:none!important}.bg-gradient-navy.btn:hover{background:#001f3f linear-gradient(180deg,#26313b,#000c19) repeat-x!important;border-color:#00060c;color:#ececec}.bg-gradient-navy.btn.active,.bg-gradient-navy.btn:active,.bg-gradient-navy.btn:not(:disabled):not(.disabled).active,.bg-gradient-navy.btn:not(:disabled):not(.disabled):active{background:#001f3f linear-gradient(180deg,#262b30,#00060c) repeat-x!important;border-color:#000;color:#fff}.bg-gradient-navy.btn.disabled,.bg-gradient-navy.btn:disabled{background-image:none!important;border-color:#001f3f;color:#fff}.bg-gradient-olive{background:#3d9970 linear-gradient(180deg,#5aa885,#3d9970) repeat-x!important;color:#fff}.bg-gradient-olive.btn:not(:disabled):not(.disabled).active,.bg-gradient-olive.btn:not(:disabled):not(.disabled):active,.show>.bg-gradient-olive.btn.dropdown-toggle{background-image:none!important}.bg-gradient-olive.btn:hover{background:#3d9970 linear-gradient(180deg,#519174,#327e5c) repeat-x!important;border-color:#2e7555;color:#ececec}.bg-gradient-olive.btn.active,.bg-gradient-olive.btn:active,.bg-gradient-olive.btn:not(:disabled):not(.disabled).active,.bg-gradient-olive.btn:not(:disabled):not(.disabled):active{background:#3d9970 linear-gradient(180deg,#4e896f,#2e7555) repeat-x!important;border-color:#2b6b4f;color:#fff}.bg-gradient-olive.btn.disabled,.bg-gradient-olive.btn:disabled{background-image:none!important;border-color:#3d9970;color:#fff}.bg-gradient-lime{background:#01ff70 linear-gradient(180deg,#27ff85,#01ff70) repeat-x!important;color:#1f2d3d}.bg-gradient-lime.btn:not(:disabled):not(.disabled).active,.bg-gradient-lime.btn:not(:disabled):not(.disabled):active,.show>.bg-gradient-lime.btn.dropdown-toggle{background-image:none!important}.bg-gradient-lime.btn:hover{background:#01ff70 linear-gradient(180deg,#26df77,#00da5f) repeat-x!important;border-color:#00cd5a;color:#121a24}.bg-gradient-lime.btn.active,.bg-gradient-lime.btn:active,.bg-gradient-lime.btn:not(:disabled):not(.disabled).active,.bg-gradient-lime.btn:not(:disabled):not(.disabled):active{background:#01ff70 linear-gradient(180deg,#26d572,#00cd5a) repeat-x!important;border-color:#00c054;color:#fff}.bg-gradient-lime.btn.disabled,.bg-gradient-lime.btn:disabled{background-image:none!important;border-color:#01ff70;color:#1f2d3d}.bg-gradient-fuchsia{background:#f012be linear-gradient(180deg,#f236c8,#f012be) repeat-x!important;color:#fff}.bg-gradient-fuchsia.btn:not(:disabled):not(.disabled).active,.bg-gradient-fuchsia.btn:not(:disabled):not(.disabled):active,.show>.bg-gradient-fuchsia.btn.dropdown-toggle{background-image:none!important}.bg-gradient-fuchsia.btn:hover{background:#f012be linear-gradient(180deg,#d631b1,#cf0da3) repeat-x!important;border-color:#c30c9a;color:#ececec}.bg-gradient-fuchsia.btn.active,.bg-gradient-fuchsia.btn:active,.bg-gradient-fuchsia.btn:not(:disabled):not(.disabled).active,.bg-gradient-fuchsia.btn:not(:disabled):not(.disabled):active{background:#f012be linear-gradient(180deg,#cc31a9,#c30c9a) repeat-x!important;border-color:#b70c90;color:#fff}.bg-gradient-fuchsia.btn.disabled,.bg-gradient-fuchsia.btn:disabled{background-image:none!important;border-color:#f012be;color:#fff}.bg-gradient-maroon{background:#d81b60 linear-gradient(180deg,#de3d78,#d81b60) repeat-x!important;color:#fff}.bg-gradient-maroon.btn:not(:disabled):not(.disabled).active,.bg-gradient-maroon.btn:not(:disabled):not(.disabled):active,.show>.bg-gradient-maroon.btn.dropdown-toggle{background-image:none!important}.bg-gradient-maroon.btn:hover{background:#d81b60 linear-gradient(180deg,#c13a6b,#b61751) repeat-x!important;border-color:#ab154c;color:#ececec}.bg-gradient-maroon.btn.active,.bg-gradient-maroon.btn:active,.bg-gradient-maroon.btn:not(:disabled):not(.disabled).active,.bg-gradient-maroon.btn:not(:disabled):not(.disabled):active{background:#d81b60 linear-gradient(180deg,#b73867,#ab154c) repeat-x!important;border-color:#9f1447;color:#fff}.bg-gradient-maroon.btn.disabled,.bg-gradient-maroon.btn:disabled{background-image:none!important;border-color:#d81b60;color:#fff}.bg-gradient-blue{background:#007bff linear-gradient(180deg,#268fff,#007bff) repeat-x!important;color:#fff}.bg-gradient-blue.btn:not(:disabled):not(.disabled).active,.bg-gradient-blue.btn:not(:disabled):not(.disabled):active,.show>.bg-gradient-blue.btn.dropdown-toggle{background-image:none!important}.bg-gradient-blue.btn:hover{background:#007bff linear-gradient(180deg,#267fde,#0069d9) repeat-x!important;border-color:#0062cc;color:#ececec}.bg-gradient-blue.btn.active,.bg-gradient-blue.btn:active,.bg-gradient-blue.btn:not(:disabled):not(.disabled).active,.bg-gradient-blue.btn:not(:disabled):not(.disabled):active{background:#007bff linear-gradient(180deg,#267ad4,#0062cc) repeat-x!important;border-color:#005cbf;color:#fff}.bg-gradient-blue.btn.disabled,.bg-gradient-blue.btn:disabled{background-image:none!important;border-color:#007bff;color:#fff}.bg-gradient-indigo{background:#6610f2 linear-gradient(180deg,#7d34f4,#6610f2) repeat-x!important;color:#fff}.bg-gradient-indigo.btn:not(:disabled):not(.disabled).active,.bg-gradient-indigo.btn:not(:disabled):not(.disabled):active,.show>.bg-gradient-indigo.btn.dropdown-toggle{background-image:none!important}.bg-gradient-indigo.btn:hover{background:#6610f2 linear-gradient(180deg,#7030d7,#560bd0) repeat-x!important;border-color:#510bc4;color:#ececec}.bg-gradient-indigo.btn.active,.bg-gradient-indigo.btn:active,.bg-gradient-indigo.btn:not(:disabled):not(.disabled).active,.bg-gradient-indigo.btn:not(:disabled):not(.disabled):active{background:#6610f2 linear-gradient(180deg,#6b2fcd,#510bc4) repeat-x!important;border-color:#4c0ab8;color:#fff}.bg-gradient-indigo.btn.disabled,.bg-gradient-indigo.btn:disabled{background-image:none!important;border-color:#6610f2;color:#fff}.bg-gradient-purple{background:#6f42c1 linear-gradient(180deg,#855eca,#6f42c1) repeat-x!important;color:#fff}.bg-gradient-purple.btn:not(:disabled):not(.disabled).active,.bg-gradient-purple.btn:not(:disabled):not(.disabled):active,.show>.bg-gradient-purple.btn.dropdown-toggle{background-image:none!important}.bg-gradient-purple.btn:hover{background:#6f42c1 linear-gradient(180deg,#7655b4,#5e37a6) repeat-x!important;border-color:#59339d;color:#ececec}.bg-gradient-purple.btn.active,.bg-gradient-purple.btn:active,.bg-gradient-purple.btn:not(:disabled):not(.disabled).active,.bg-gradient-purple.btn:not(:disabled):not(.disabled):active{background:#6f42c1 linear-gradient(180deg,#7252ab,#59339d) repeat-x!important;border-color:#533093;color:#fff}.bg-gradient-purple.btn.disabled,.bg-gradient-purple.btn:disabled{background-image:none!important;border-color:#6f42c1;color:#fff}.bg-gradient-pink{background:#e83e8c linear-gradient(180deg,#eb5b9d,#e83e8c) repeat-x!important;color:#fff}.bg-gradient-pink.btn:not(:disabled):not(.disabled).active,.bg-gradient-pink.btn:not(:disabled):not(.disabled):active,.show>.bg-gradient-pink.btn.dropdown-toggle{background-image:none!important}.bg-gradient-pink.btn:hover{background:#e83e8c linear-gradient(180deg,#e83e8c,#e41c78) repeat-x!important;border-color:#d91a72;color:#ececec}.bg-gradient-pink.btn.active,.bg-gradient-pink.btn:active,.bg-gradient-pink.btn:not(:disabled):not(.disabled).active,.bg-gradient-pink.btn:not(:disabled):not(.disabled):active{background:#e83e8c linear-gradient(180deg,#df3c87,#d91a72) repeat-x!important;border-color:#ce196c;color:#fff}.bg-gradient-pink.btn.disabled,.bg-gradient-pink.btn:disabled{background-image:none!important;border-color:#e83e8c;color:#fff}.bg-gradient-red{background:#dc3545 linear-gradient(180deg,#e15361,#dc3545) repeat-x!important;color:#fff}.bg-gradient-red.btn:not(:disabled):not(.disabled).active,.bg-gradient-red.btn:not(:disabled):not(.disabled):active,.show>.bg-gradient-red.btn.dropdown-toggle{background-image:none!important}.bg-gradient-red.btn:hover{background:#dc3545 linear-gradient(180deg,#d04451,#c82333) repeat-x!important;border-color:#bd2130;color:#ececec}.bg-gradient-red.btn.active,.bg-gradient-red.btn:active,.bg-gradient-red.btn:not(:disabled):not(.disabled).active,.bg-gradient-red.btn:not(:disabled):not(.disabled):active{background:#dc3545 linear-gradient(180deg,#c7424f,#bd2130) repeat-x!important;border-color:#b21f2d;color:#fff}.bg-gradient-red.btn.disabled,.bg-gradient-red.btn:disabled{background-image:none!important;border-color:#dc3545;color:#fff}.bg-gradient-orange{background:#fd7e14 linear-gradient(180deg,#fd9137,#fd7e14) repeat-x!important;color:#1f2d3d}.bg-gradient-orange.btn:not(:disabled):not(.disabled).active,.bg-gradient-orange.btn:not(:disabled):not(.disabled):active,.show>.bg-gradient-orange.btn.dropdown-toggle{background-image:none!important}.bg-gradient-orange.btn:hover{background:#fd7e14 linear-gradient(180deg,#ec8128,#e96b02) repeat-x!important;border-color:#dc6502;color:#121a24}.bg-gradient-orange.btn.active,.bg-gradient-orange.btn:active,.bg-gradient-orange.btn:not(:disabled):not(.disabled).active,.bg-gradient-orange.btn:not(:disabled):not(.disabled):active{background:#fd7e14 linear-gradient(180deg,#e17c28,#dc6502) repeat-x!important;border-color:#cf5f02;color:#fff}.bg-gradient-orange.btn.disabled,.bg-gradient-orange.btn:disabled{background-image:none!important;border-color:#fd7e14;color:#1f2d3d}.bg-gradient-yellow{background:#ffc107 linear-gradient(180deg,#ffca2c,#ffc107) repeat-x!important;color:#1f2d3d}.bg-gradient-yellow.btn:not(:disabled):not(.disabled).active,.bg-gradient-yellow.btn:not(:disabled):not(.disabled):active,.show>.bg-gradient-yellow.btn.dropdown-toggle{background-image:none!important}.bg-gradient-yellow.btn:hover{background:#ffc107 linear-gradient(180deg,#e4b526,#e0a800) repeat-x!important;border-color:#d39e00;color:#121a24}.bg-gradient-yellow.btn.active,.bg-gradient-yellow.btn:active,.bg-gradient-yellow.btn:not(:disabled):not(.disabled).active,.bg-gradient-yellow.btn:not(:disabled):not(.disabled):active{background:#ffc107 linear-gradient(180deg,#daad26,#d39e00) repeat-x!important;border-color:#c69500;color:#1f2d3d}.bg-gradient-yellow.btn.disabled,.bg-gradient-yellow.btn:disabled{background-image:none!important;border-color:#ffc107;color:#1f2d3d}.bg-gradient-green{background:#28a745 linear-gradient(180deg,#48b461,#28a745) repeat-x!important;color:#fff}.bg-gradient-green.btn:not(:disabled):not(.disabled).active,.bg-gradient-green.btn:not(:disabled):not(.disabled):active,.show>.bg-gradient-green.btn.dropdown-toggle{background-image:none!important}.bg-gradient-green.btn:hover{background:#28a745 linear-gradient(180deg,#429a56,#218838) repeat-x!important;border-color:#1e7e34;color:#ececec}.bg-gradient-green.btn.active,.bg-gradient-green.btn:active,.bg-gradient-green.btn:not(:disabled):not(.disabled).active,.bg-gradient-green.btn:not(:disabled):not(.disabled):active{background:#28a745 linear-gradient(180deg,#409152,#1e7e34) repeat-x!important;border-color:#1c7430;color:#fff}.bg-gradient-green.btn.disabled,.bg-gradient-green.btn:disabled{background-image:none!important;border-color:#28a745;color:#fff}.bg-gradient-teal{background:#20c997 linear-gradient(180deg,#41d1a7,#20c997) repeat-x!important;color:#fff}.bg-gradient-teal.btn:not(:disabled):not(.disabled).active,.bg-gradient-teal.btn:not(:disabled):not(.disabled):active,.show>.bg-gradient-teal.btn.dropdown-toggle{background-image:none!important}.bg-gradient-teal.btn:hover{background:#20c997 linear-gradient(180deg,#3db592,#1ba87e) repeat-x!important;border-color:#199d76;color:#ececec}.bg-gradient-teal.btn.active,.bg-gradient-teal.btn:active,.bg-gradient-teal.btn:not(:disabled):not(.disabled).active,.bg-gradient-teal.btn:not(:disabled):not(.disabled):active{background:#20c997 linear-gradient(180deg,#3bac8b,#199d76) repeat-x!important;border-color:#17926e;color:#fff}.bg-gradient-teal.btn.disabled,.bg-gradient-teal.btn:disabled{background-image:none!important;border-color:#20c997;color:#fff}.bg-gradient-cyan{background:#17a2b8 linear-gradient(180deg,#3ab0c3,#17a2b8) repeat-x!important;color:#fff}.bg-gradient-cyan.btn:not(:disabled):not(.disabled).active,.bg-gradient-cyan.btn:not(:disabled):not(.disabled):active,.show>.bg-gradient-cyan.btn.dropdown-toggle{background-image:none!important}.bg-gradient-cyan.btn:hover{background:#17a2b8 linear-gradient(180deg,#3697a6,#138496) repeat-x!important;border-color:#117a8b;color:#ececec}.bg-gradient-cyan.btn.active,.bg-gradient-cyan.btn:active,.bg-gradient-cyan.btn:not(:disabled):not(.disabled).active,.bg-gradient-cyan.btn:not(:disabled):not(.disabled):active{background:#17a2b8 linear-gradient(180deg,#358e9c,#117a8b) repeat-x!important;border-color:#10707f;color:#fff}.bg-gradient-cyan.btn.disabled,.bg-gradient-cyan.btn:disabled{background-image:none!important;border-color:#17a2b8;color:#fff}.bg-gradient-white{background:#fff linear-gradient(180deg,#fff,#fff) repeat-x!important;color:#1f2d3d}.bg-gradient-white.btn:not(:disabled):not(.disabled).active,.bg-gradient-white.btn:not(:disabled):not(.disabled):active,.show>.bg-gradient-white.btn.dropdown-toggle{background-image:none!important}.bg-gradient-white.btn:hover{background:#fff linear-gradient(180deg,#efefef,#ececec) repeat-x!important;border-color:#e6e6e6;color:#121a24}.bg-gradient-white.btn.active,.bg-gradient-white.btn:active,.bg-gradient-white.btn:not(:disabled):not(.disabled).active,.bg-gradient-white.btn:not(:disabled):not(.disabled):active{background:#fff linear-gradient(180deg,#e9e9e9,#e6e6e6) repeat-x!important;border-color:#dfdfdf;color:#1f2d3d}.bg-gradient-white.btn.disabled,.bg-gradient-white.btn:disabled{background-image:none!important;border-color:#fff;color:#1f2d3d}.bg-gradient-gray{background:#6c757d linear-gradient(180deg,#828a91,#6c757d) repeat-x!important;color:#fff}.bg-gradient-gray.btn:not(:disabled):not(.disabled).active,.bg-gradient-gray.btn:not(:disabled):not(.disabled):active,.show>.bg-gradient-gray.btn.dropdown-toggle{background-image:none!important}.bg-gradient-gray.btn:hover{background:#6c757d linear-gradient(180deg,#73797f,#5a6268) repeat-x!important;border-color:#545b62;color:#ececec}.bg-gradient-gray.btn.active,.bg-gradient-gray.btn:active,.bg-gradient-gray.btn:not(:disabled):not(.disabled).active,.bg-gradient-gray.btn:not(:disabled):not(.disabled):active{background:#6c757d linear-gradient(180deg,#6e7479,#545b62) repeat-x!important;border-color:#4e555b;color:#fff}.bg-gradient-gray.btn.disabled,.bg-gradient-gray.btn:disabled{background-image:none!important;border-color:#6c757d;color:#fff}.bg-gradient-gray-dark{background:#343a40 linear-gradient(180deg,#52585d,#343a40) repeat-x!important;color:#fff}.bg-gradient-gray-dark.btn:not(:disabled):not(.disabled).active,.bg-gradient-gray-dark.btn:not(:disabled):not(.disabled):active,.show>.bg-gradient-gray-dark.btn.dropdown-toggle{background-image:none!important}.bg-gradient-gray-dark.btn:hover{background:#343a40 linear-gradient(180deg,#44474b,#23272b) repeat-x!important;border-color:#1d2124;color:#ececec}.bg-gradient-gray-dark.btn.active,.bg-gradient-gray-dark.btn:active,.bg-gradient-gray-dark.btn:not(:disabled):not(.disabled).active,.bg-gradient-gray-dark.btn:not(:disabled):not(.disabled):active{background:#343a40 linear-gradient(180deg,#3f4245,#1d2124) repeat-x!important;border-color:#171a1d;color:#fff}.bg-gradient-gray-dark.btn.disabled,.bg-gradient-gray-dark.btn:disabled{background-image:none!important;border-color:#343a40;color:#fff}[class^=bg-].disabled{opacity:.65}a.text-muted:hover{color:#007bff!important}.link-muted{color:#5d6974}.link-muted:focus,.link-muted:hover{color:#464f58}.link-black{color:#6c757d}.link-black:focus,.link-black:hover{color:#e6e8ea}.accent-primary .btn-link,.accent-primary .nav-tabs .nav-link,.accent-primary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#007bff}.accent-primary .btn-link:hover,.accent-primary .nav-tabs .nav-link:hover,.accent-primary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#0056b3}.accent-primary .dropdown-item.active,.accent-primary .dropdown-item:active{background-color:#007bff;color:#fff}.accent-primary .custom-control-input:checked~.custom-control-label::before{background-color:#007bff;border-color:#004a99}.accent-primary .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.accent-primary .custom-control-input:focus:not(:checked)~.custom-control-label::before,.accent-primary .custom-file-input:focus~.custom-file-label,.accent-primary .custom-select:focus,.accent-primary .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#80bdff}.accent-primary .page-item .page-link{color:#007bff}.accent-primary .page-item.active .page-link,.accent-primary .page-item.active a{background-color:#007bff;border-color:#007bff;color:#fff}.accent-primary .page-item.disabled .page-link,.accent-primary .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.accent-primary [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.accent-primary [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.accent-primary [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.accent-primary [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode.accent-primary .page-item .page-link:focus,.dark-mode.accent-primary .page-item .page-link:hover{color:#1a88ff}.accent-secondary .btn-link,.accent-secondary .nav-tabs .nav-link,.accent-secondary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#6c757d}.accent-secondary .btn-link:hover,.accent-secondary .nav-tabs .nav-link:hover,.accent-secondary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#494f54}.accent-secondary .dropdown-item.active,.accent-secondary .dropdown-item:active{background-color:#6c757d;color:#fff}.accent-secondary .custom-control-input:checked~.custom-control-label::before{background-color:#6c757d;border-color:#3d4246}.accent-secondary .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.accent-secondary .custom-control-input:focus:not(:checked)~.custom-control-label::before,.accent-secondary .custom-file-input:focus~.custom-file-label,.accent-secondary .custom-select:focus,.accent-secondary .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#afb5ba}.accent-secondary .page-item .page-link{color:#6c757d}.accent-secondary .page-item.active .page-link,.accent-secondary .page-item.active a{background-color:#6c757d;border-color:#6c757d;color:#fff}.accent-secondary .page-item.disabled .page-link,.accent-secondary .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.accent-secondary [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.accent-secondary [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.accent-secondary [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.accent-secondary [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode.accent-secondary .page-item .page-link:focus,.dark-mode.accent-secondary .page-item .page-link:hover{color:#78828a}.accent-success .btn-link,.accent-success .nav-tabs .nav-link,.accent-success a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#28a745}.accent-success .btn-link:hover,.accent-success .nav-tabs .nav-link:hover,.accent-success a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#19692c}.accent-success .dropdown-item.active,.accent-success .dropdown-item:active{background-color:#28a745;color:#fff}.accent-success .custom-control-input:checked~.custom-control-label::before{background-color:#28a745;border-color:#145523}.accent-success .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.accent-success .custom-control-input:focus:not(:checked)~.custom-control-label::before,.accent-success .custom-file-input:focus~.custom-file-label,.accent-success .custom-select:focus,.accent-success .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#71dd8a}.accent-success .page-item .page-link{color:#28a745}.accent-success .page-item.active .page-link,.accent-success .page-item.active a{background-color:#28a745;border-color:#28a745;color:#fff}.accent-success .page-item.disabled .page-link,.accent-success .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.accent-success [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.accent-success [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.accent-success [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.accent-success [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode.accent-success .page-item .page-link:focus,.dark-mode.accent-success .page-item .page-link:hover{color:#2dbc4e}.accent-info .btn-link,.accent-info .nav-tabs .nav-link,.accent-info a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#17a2b8}.accent-info .btn-link:hover,.accent-info .nav-tabs .nav-link:hover,.accent-info a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#0f6674}.accent-info .dropdown-item.active,.accent-info .dropdown-item:active{background-color:#17a2b8;color:#fff}.accent-info .custom-control-input:checked~.custom-control-label::before{background-color:#17a2b8;border-color:#0c525d}.accent-info .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.accent-info .custom-control-input:focus:not(:checked)~.custom-control-label::before,.accent-info .custom-file-input:focus~.custom-file-label,.accent-info .custom-select:focus,.accent-info .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#63d9ec}.accent-info .page-item .page-link{color:#17a2b8}.accent-info .page-item.active .page-link,.accent-info .page-item.active a{background-color:#17a2b8;border-color:#17a2b8;color:#fff}.accent-info .page-item.disabled .page-link,.accent-info .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.accent-info [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.accent-info [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.accent-info [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.accent-info [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode.accent-info .page-item .page-link:focus,.dark-mode.accent-info .page-item .page-link:hover{color:#1ab6cf}.accent-warning .btn-link,.accent-warning .nav-tabs .nav-link,.accent-warning a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#ffc107}.accent-warning .btn-link:hover,.accent-warning .nav-tabs .nav-link:hover,.accent-warning a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#ba8b00}.accent-warning .dropdown-item.active,.accent-warning .dropdown-item:active{background-color:#ffc107;color:#1f2d3d}.accent-warning .custom-control-input:checked~.custom-control-label::before{background-color:#ffc107;border-color:#a07800}.accent-warning .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.accent-warning .custom-control-input:focus:not(:checked)~.custom-control-label::before,.accent-warning .custom-file-input:focus~.custom-file-label,.accent-warning .custom-select:focus,.accent-warning .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#ffe187}.accent-warning .page-item .page-link{color:#ffc107}.accent-warning .page-item.active .page-link,.accent-warning .page-item.active a{background-color:#ffc107;border-color:#ffc107;color:#fff}.accent-warning .page-item.disabled .page-link,.accent-warning .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.accent-warning [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.accent-warning [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.accent-warning [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.accent-warning [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode.accent-warning .page-item .page-link:focus,.dark-mode.accent-warning .page-item .page-link:hover{color:#ffc721}.accent-danger .btn-link,.accent-danger .nav-tabs .nav-link,.accent-danger a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#dc3545}.accent-danger .btn-link:hover,.accent-danger .nav-tabs .nav-link:hover,.accent-danger a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#a71d2a}.accent-danger .dropdown-item.active,.accent-danger .dropdown-item:active{background-color:#dc3545;color:#fff}.accent-danger .custom-control-input:checked~.custom-control-label::before{background-color:#dc3545;border-color:#921925}.accent-danger .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.accent-danger .custom-control-input:focus:not(:checked)~.custom-control-label::before,.accent-danger .custom-file-input:focus~.custom-file-label,.accent-danger .custom-select:focus,.accent-danger .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#efa2a9}.accent-danger .page-item .page-link{color:#dc3545}.accent-danger .page-item.active .page-link,.accent-danger .page-item.active a{background-color:#dc3545;border-color:#dc3545;color:#fff}.accent-danger .page-item.disabled .page-link,.accent-danger .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.accent-danger [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.accent-danger [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.accent-danger [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.accent-danger [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode.accent-danger .page-item .page-link:focus,.dark-mode.accent-danger .page-item .page-link:hover{color:#e04b59}.accent-light .btn-link,.accent-light .nav-tabs .nav-link,.accent-light a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#f8f9fa}.accent-light .btn-link:hover,.accent-light .nav-tabs .nav-link:hover,.accent-light a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#cbd3da}.accent-light .dropdown-item.active,.accent-light .dropdown-item:active{background-color:#f8f9fa;color:#1f2d3d}.accent-light .custom-control-input:checked~.custom-control-label::before{background-color:#f8f9fa;border-color:#bdc6d0}.accent-light .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.accent-light .custom-control-input:focus:not(:checked)~.custom-control-label::before,.accent-light .custom-file-input:focus~.custom-file-label,.accent-light .custom-select:focus,.accent-light .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#fff}.accent-light .page-item .page-link{color:#f8f9fa}.accent-light .page-item.active .page-link,.accent-light .page-item.active a{background-color:#f8f9fa;border-color:#f8f9fa;color:#fff}.accent-light .page-item.disabled .page-link,.accent-light .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.accent-light [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.accent-light [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.accent-light [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.accent-light [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode.accent-light .page-item .page-link:focus,.dark-mode.accent-light .page-item .page-link:hover{color:#fff}.accent-dark .btn-link,.accent-dark .nav-tabs .nav-link,.accent-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#343a40}.accent-dark .btn-link:hover,.accent-dark .nav-tabs .nav-link:hover,.accent-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#121416}.accent-dark .dropdown-item.active,.accent-dark .dropdown-item:active{background-color:#343a40;color:#fff}.accent-dark .custom-control-input:checked~.custom-control-label::before{background-color:#343a40;border-color:#060708}.accent-dark .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.accent-dark .custom-control-input:focus:not(:checked)~.custom-control-label::before,.accent-dark .custom-file-input:focus~.custom-file-label,.accent-dark .custom-select:focus,.accent-dark .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#6d7a86}.accent-dark .page-item .page-link{color:#343a40}.accent-dark .page-item.active .page-link,.accent-dark .page-item.active a{background-color:#343a40;border-color:#343a40;color:#fff}.accent-dark .page-item.disabled .page-link,.accent-dark .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.accent-dark [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.accent-dark [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.accent-dark [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.accent-dark [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode.accent-dark .page-item .page-link:focus,.dark-mode.accent-dark .page-item .page-link:hover{color:#3f474e}.accent-lightblue .btn-link,.accent-lightblue .nav-tabs .nav-link,.accent-lightblue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#3c8dbc}.accent-lightblue .btn-link:hover,.accent-lightblue .nav-tabs .nav-link:hover,.accent-lightblue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#296282}.accent-lightblue .dropdown-item.active,.accent-lightblue .dropdown-item:active{background-color:#3c8dbc;color:#fff}.accent-lightblue .custom-control-input:checked~.custom-control-label::before{background-color:#3c8dbc;border-color:#23536f}.accent-lightblue .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.accent-lightblue .custom-control-input:focus:not(:checked)~.custom-control-label::before,.accent-lightblue .custom-file-input:focus~.custom-file-label,.accent-lightblue .custom-select:focus,.accent-lightblue .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#99c5de}.accent-lightblue .page-item .page-link{color:#3c8dbc}.accent-lightblue .page-item.active .page-link,.accent-lightblue .page-item.active a{background-color:#3c8dbc;border-color:#3c8dbc;color:#fff}.accent-lightblue .page-item.disabled .page-link,.accent-lightblue .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.accent-lightblue [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.accent-lightblue [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.accent-lightblue [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.accent-lightblue [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode.accent-lightblue .page-item .page-link:focus,.dark-mode.accent-lightblue .page-item .page-link:hover{color:#4c99c6}.accent-navy .btn-link,.accent-navy .nav-tabs .nav-link,.accent-navy a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#001f3f}.accent-navy .btn-link:hover,.accent-navy .nav-tabs .nav-link:hover,.accent-navy a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#000}.accent-navy .dropdown-item.active,.accent-navy .dropdown-item:active{background-color:#001f3f;color:#fff}.accent-navy .custom-control-input:checked~.custom-control-label::before{background-color:#001f3f;border-color:#000}.accent-navy .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.accent-navy .custom-control-input:focus:not(:checked)~.custom-control-label::before,.accent-navy .custom-file-input:focus~.custom-file-label,.accent-navy .custom-select:focus,.accent-navy .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#005ebf}.accent-navy .page-item .page-link{color:#001f3f}.accent-navy .page-item.active .page-link,.accent-navy .page-item.active a{background-color:#001f3f;border-color:#001f3f;color:#fff}.accent-navy .page-item.disabled .page-link,.accent-navy .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.accent-navy [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.accent-navy [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.accent-navy [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.accent-navy [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode.accent-navy .page-item .page-link:focus,.dark-mode.accent-navy .page-item .page-link:hover{color:#002c59}.accent-olive .btn-link,.accent-olive .nav-tabs .nav-link,.accent-olive a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#3d9970}.accent-olive .btn-link:hover,.accent-olive .nav-tabs .nav-link:hover,.accent-olive a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#276248}.accent-olive .dropdown-item.active,.accent-olive .dropdown-item:active{background-color:#3d9970;color:#fff}.accent-olive .custom-control-input:checked~.custom-control-label::before{background-color:#3d9970;border-color:#20503b}.accent-olive .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.accent-olive .custom-control-input:focus:not(:checked)~.custom-control-label::before,.accent-olive .custom-file-input:focus~.custom-file-label,.accent-olive .custom-select:focus,.accent-olive .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#87cfaf}.accent-olive .page-item .page-link{color:#3d9970}.accent-olive .page-item.active .page-link,.accent-olive .page-item.active a{background-color:#3d9970;border-color:#3d9970;color:#fff}.accent-olive .page-item.disabled .page-link,.accent-olive .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.accent-olive [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.accent-olive [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.accent-olive [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.accent-olive [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode.accent-olive .page-item .page-link:focus,.dark-mode.accent-olive .page-item .page-link:hover{color:#44ab7d}.accent-lime .btn-link,.accent-lime .nav-tabs .nav-link,.accent-lime a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#01ff70}.accent-lime .btn-link:hover,.accent-lime .nav-tabs .nav-link:hover,.accent-lime a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#00b44e}.accent-lime .dropdown-item.active,.accent-lime .dropdown-item:active{background-color:#01ff70;color:#1f2d3d}.accent-lime .custom-control-input:checked~.custom-control-label::before{background-color:#01ff70;border-color:#009a43}.accent-lime .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.accent-lime .custom-control-input:focus:not(:checked)~.custom-control-label::before,.accent-lime .custom-file-input:focus~.custom-file-label,.accent-lime .custom-select:focus,.accent-lime .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#81ffb8}.accent-lime .page-item .page-link{color:#01ff70}.accent-lime .page-item.active .page-link,.accent-lime .page-item.active a{background-color:#01ff70;border-color:#01ff70;color:#fff}.accent-lime .page-item.disabled .page-link,.accent-lime .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.accent-lime [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.accent-lime [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.accent-lime [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.accent-lime [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode.accent-lime .page-item .page-link:focus,.dark-mode.accent-lime .page-item .page-link:hover{color:#1bff7e}.accent-fuchsia .btn-link,.accent-fuchsia .nav-tabs .nav-link,.accent-fuchsia a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#f012be}.accent-fuchsia .btn-link:hover,.accent-fuchsia .nav-tabs .nav-link:hover,.accent-fuchsia a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#ab0b87}.accent-fuchsia .dropdown-item.active,.accent-fuchsia .dropdown-item:active{background-color:#f012be;color:#fff}.accent-fuchsia .custom-control-input:checked~.custom-control-label::before{background-color:#f012be;border-color:#930974}.accent-fuchsia .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.accent-fuchsia .custom-control-input:focus:not(:checked)~.custom-control-label::before,.accent-fuchsia .custom-file-input:focus~.custom-file-label,.accent-fuchsia .custom-select:focus,.accent-fuchsia .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#f88adf}.accent-fuchsia .page-item .page-link{color:#f012be}.accent-fuchsia .page-item.active .page-link,.accent-fuchsia .page-item.active a{background-color:#f012be;border-color:#f012be;color:#fff}.accent-fuchsia .page-item.disabled .page-link,.accent-fuchsia .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.accent-fuchsia [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.accent-fuchsia [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.accent-fuchsia [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.accent-fuchsia [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode.accent-fuchsia .page-item .page-link:focus,.dark-mode.accent-fuchsia .page-item .page-link:hover{color:#f22ac5}.accent-maroon .btn-link,.accent-maroon .nav-tabs .nav-link,.accent-maroon a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#d81b60}.accent-maroon .btn-link:hover,.accent-maroon .nav-tabs .nav-link:hover,.accent-maroon a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#941342}.accent-maroon .dropdown-item.active,.accent-maroon .dropdown-item:active{background-color:#d81b60;color:#fff}.accent-maroon .custom-control-input:checked~.custom-control-label::before{background-color:#d81b60;border-color:#7d1038}.accent-maroon .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.accent-maroon .custom-control-input:focus:not(:checked)~.custom-control-label::before,.accent-maroon .custom-file-input:focus~.custom-file-label,.accent-maroon .custom-select:focus,.accent-maroon .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#f083ab}.accent-maroon .page-item .page-link{color:#d81b60}.accent-maroon .page-item.active .page-link,.accent-maroon .page-item.active a{background-color:#d81b60;border-color:#d81b60;color:#fff}.accent-maroon .page-item.disabled .page-link,.accent-maroon .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.accent-maroon [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.accent-maroon [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.accent-maroon [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.accent-maroon [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode.accent-maroon .page-item .page-link:focus,.dark-mode.accent-maroon .page-item .page-link:hover{color:#e4286d}.accent-blue .btn-link,.accent-blue .nav-tabs .nav-link,.accent-blue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#007bff}.accent-blue .btn-link:hover,.accent-blue .nav-tabs .nav-link:hover,.accent-blue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#0056b3}.accent-blue .dropdown-item.active,.accent-blue .dropdown-item:active{background-color:#007bff;color:#fff}.accent-blue .custom-control-input:checked~.custom-control-label::before{background-color:#007bff;border-color:#004a99}.accent-blue .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.accent-blue .custom-control-input:focus:not(:checked)~.custom-control-label::before,.accent-blue .custom-file-input:focus~.custom-file-label,.accent-blue .custom-select:focus,.accent-blue .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#80bdff}.accent-blue .page-item .page-link{color:#007bff}.accent-blue .page-item.active .page-link,.accent-blue .page-item.active a{background-color:#007bff;border-color:#007bff;color:#fff}.accent-blue .page-item.disabled .page-link,.accent-blue .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.accent-blue [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.accent-blue [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.accent-blue [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.accent-blue [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode.accent-blue .page-item .page-link:focus,.dark-mode.accent-blue .page-item .page-link:hover{color:#1a88ff}.accent-indigo .btn-link,.accent-indigo .nav-tabs .nav-link,.accent-indigo a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#6610f2}.accent-indigo .btn-link:hover,.accent-indigo .nav-tabs .nav-link:hover,.accent-indigo a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#4709ac}.accent-indigo .dropdown-item.active,.accent-indigo .dropdown-item:active{background-color:#6610f2;color:#fff}.accent-indigo .custom-control-input:checked~.custom-control-label::before{background-color:#6610f2;border-color:#3d0894}.accent-indigo .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.accent-indigo .custom-control-input:focus:not(:checked)~.custom-control-label::before,.accent-indigo .custom-file-input:focus~.custom-file-label,.accent-indigo .custom-select:focus,.accent-indigo .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#b389f9}.accent-indigo .page-item .page-link{color:#6610f2}.accent-indigo .page-item.active .page-link,.accent-indigo .page-item.active a{background-color:#6610f2;border-color:#6610f2;color:#fff}.accent-indigo .page-item.disabled .page-link,.accent-indigo .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.accent-indigo [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.accent-indigo [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.accent-indigo [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.accent-indigo [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode.accent-indigo .page-item .page-link:focus,.dark-mode.accent-indigo .page-item .page-link:hover{color:#7528f3}.accent-purple .btn-link,.accent-purple .nav-tabs .nav-link,.accent-purple a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#6f42c1}.accent-purple .btn-link:hover,.accent-purple .nav-tabs .nav-link:hover,.accent-purple a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#4e2d89}.accent-purple .dropdown-item.active,.accent-purple .dropdown-item:active{background-color:#6f42c1;color:#fff}.accent-purple .custom-control-input:checked~.custom-control-label::before{background-color:#6f42c1;border-color:#432776}.accent-purple .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.accent-purple .custom-control-input:focus:not(:checked)~.custom-control-label::before,.accent-purple .custom-file-input:focus~.custom-file-label,.accent-purple .custom-select:focus,.accent-purple .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#b8a2e0}.accent-purple .page-item .page-link{color:#6f42c1}.accent-purple .page-item.active .page-link,.accent-purple .page-item.active a{background-color:#6f42c1;border-color:#6f42c1;color:#fff}.accent-purple .page-item.disabled .page-link,.accent-purple .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.accent-purple [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.accent-purple [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.accent-purple [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.accent-purple [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode.accent-purple .page-item .page-link:focus,.dark-mode.accent-purple .page-item .page-link:hover{color:#7e55c7}.accent-pink .btn-link,.accent-pink .nav-tabs .nav-link,.accent-pink a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#e83e8c}.accent-pink .btn-link:hover,.accent-pink .nav-tabs .nav-link:hover,.accent-pink a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#c21766}.accent-pink .dropdown-item.active,.accent-pink .dropdown-item:active{background-color:#e83e8c;color:#fff}.accent-pink .custom-control-input:checked~.custom-control-label::before{background-color:#e83e8c;border-color:#ac145a}.accent-pink .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.accent-pink .custom-control-input:focus:not(:checked)~.custom-control-label::before,.accent-pink .custom-file-input:focus~.custom-file-label,.accent-pink .custom-select:focus,.accent-pink .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#f6b0d0}.accent-pink .page-item .page-link{color:#e83e8c}.accent-pink .page-item.active .page-link,.accent-pink .page-item.active a{background-color:#e83e8c;border-color:#e83e8c;color:#fff}.accent-pink .page-item.disabled .page-link,.accent-pink .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.accent-pink [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.accent-pink [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.accent-pink [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.accent-pink [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode.accent-pink .page-item .page-link:focus,.dark-mode.accent-pink .page-item .page-link:hover{color:#eb559a}.accent-red .btn-link,.accent-red .nav-tabs .nav-link,.accent-red a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#dc3545}.accent-red .btn-link:hover,.accent-red .nav-tabs .nav-link:hover,.accent-red a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#a71d2a}.accent-red .dropdown-item.active,.accent-red .dropdown-item:active{background-color:#dc3545;color:#fff}.accent-red .custom-control-input:checked~.custom-control-label::before{background-color:#dc3545;border-color:#921925}.accent-red .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.accent-red .custom-control-input:focus:not(:checked)~.custom-control-label::before,.accent-red .custom-file-input:focus~.custom-file-label,.accent-red .custom-select:focus,.accent-red .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#efa2a9}.accent-red .page-item .page-link{color:#dc3545}.accent-red .page-item.active .page-link,.accent-red .page-item.active a{background-color:#dc3545;border-color:#dc3545;color:#fff}.accent-red .page-item.disabled .page-link,.accent-red .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.accent-red [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.accent-red [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.accent-red [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.accent-red [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode.accent-red .page-item .page-link:focus,.dark-mode.accent-red .page-item .page-link:hover{color:#e04b59}.accent-orange .btn-link,.accent-orange .nav-tabs .nav-link,.accent-orange a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#fd7e14}.accent-orange .btn-link:hover,.accent-orange .nav-tabs .nav-link:hover,.accent-orange a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#c35a02}.accent-orange .dropdown-item.active,.accent-orange .dropdown-item:active{background-color:#fd7e14;color:#1f2d3d}.accent-orange .custom-control-input:checked~.custom-control-label::before{background-color:#fd7e14;border-color:#aa4e01}.accent-orange .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.accent-orange .custom-control-input:focus:not(:checked)~.custom-control-label::before,.accent-orange .custom-file-input:focus~.custom-file-label,.accent-orange .custom-select:focus,.accent-orange .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#fec392}.accent-orange .page-item .page-link{color:#fd7e14}.accent-orange .page-item.active .page-link,.accent-orange .page-item.active a{background-color:#fd7e14;border-color:#fd7e14;color:#fff}.accent-orange .page-item.disabled .page-link,.accent-orange .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.accent-orange [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.accent-orange [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.accent-orange [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.accent-orange [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode.accent-orange .page-item .page-link:focus,.dark-mode.accent-orange .page-item .page-link:hover{color:#fd8c2d}.accent-yellow .btn-link,.accent-yellow .nav-tabs .nav-link,.accent-yellow a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#ffc107}.accent-yellow .btn-link:hover,.accent-yellow .nav-tabs .nav-link:hover,.accent-yellow a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#ba8b00}.accent-yellow .dropdown-item.active,.accent-yellow .dropdown-item:active{background-color:#ffc107;color:#1f2d3d}.accent-yellow .custom-control-input:checked~.custom-control-label::before{background-color:#ffc107;border-color:#a07800}.accent-yellow .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.accent-yellow .custom-control-input:focus:not(:checked)~.custom-control-label::before,.accent-yellow .custom-file-input:focus~.custom-file-label,.accent-yellow .custom-select:focus,.accent-yellow .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#ffe187}.accent-yellow .page-item .page-link{color:#ffc107}.accent-yellow .page-item.active .page-link,.accent-yellow .page-item.active a{background-color:#ffc107;border-color:#ffc107;color:#fff}.accent-yellow .page-item.disabled .page-link,.accent-yellow .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.accent-yellow [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.accent-yellow [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.accent-yellow [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.accent-yellow [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode.accent-yellow .page-item .page-link:focus,.dark-mode.accent-yellow .page-item .page-link:hover{color:#ffc721}.accent-green .btn-link,.accent-green .nav-tabs .nav-link,.accent-green a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#28a745}.accent-green .btn-link:hover,.accent-green .nav-tabs .nav-link:hover,.accent-green a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#19692c}.accent-green .dropdown-item.active,.accent-green .dropdown-item:active{background-color:#28a745;color:#fff}.accent-green .custom-control-input:checked~.custom-control-label::before{background-color:#28a745;border-color:#145523}.accent-green .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.accent-green .custom-control-input:focus:not(:checked)~.custom-control-label::before,.accent-green .custom-file-input:focus~.custom-file-label,.accent-green .custom-select:focus,.accent-green .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#71dd8a}.accent-green .page-item .page-link{color:#28a745}.accent-green .page-item.active .page-link,.accent-green .page-item.active a{background-color:#28a745;border-color:#28a745;color:#fff}.accent-green .page-item.disabled .page-link,.accent-green .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.accent-green [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.accent-green [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.accent-green [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.accent-green [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode.accent-green .page-item .page-link:focus,.dark-mode.accent-green .page-item .page-link:hover{color:#2dbc4e}.accent-teal .btn-link,.accent-teal .nav-tabs .nav-link,.accent-teal a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#20c997}.accent-teal .btn-link:hover,.accent-teal .nav-tabs .nav-link:hover,.accent-teal a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#158765}.accent-teal .dropdown-item.active,.accent-teal .dropdown-item:active{background-color:#20c997;color:#fff}.accent-teal .custom-control-input:checked~.custom-control-label::before{background-color:#20c997;border-color:#127155}.accent-teal .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.accent-teal .custom-control-input:focus:not(:checked)~.custom-control-label::before,.accent-teal .custom-file-input:focus~.custom-file-label,.accent-teal .custom-select:focus,.accent-teal .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#7eeaca}.accent-teal .page-item .page-link{color:#20c997}.accent-teal .page-item.active .page-link,.accent-teal .page-item.active a{background-color:#20c997;border-color:#20c997;color:#fff}.accent-teal .page-item.disabled .page-link,.accent-teal .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.accent-teal [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.accent-teal [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.accent-teal [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.accent-teal [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode.accent-teal .page-item .page-link:focus,.dark-mode.accent-teal .page-item .page-link:hover{color:#26dca6}.accent-cyan .btn-link,.accent-cyan .nav-tabs .nav-link,.accent-cyan a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#17a2b8}.accent-cyan .btn-link:hover,.accent-cyan .nav-tabs .nav-link:hover,.accent-cyan a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#0f6674}.accent-cyan .dropdown-item.active,.accent-cyan .dropdown-item:active{background-color:#17a2b8;color:#fff}.accent-cyan .custom-control-input:checked~.custom-control-label::before{background-color:#17a2b8;border-color:#0c525d}.accent-cyan .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.accent-cyan .custom-control-input:focus:not(:checked)~.custom-control-label::before,.accent-cyan .custom-file-input:focus~.custom-file-label,.accent-cyan .custom-select:focus,.accent-cyan .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#63d9ec}.accent-cyan .page-item .page-link{color:#17a2b8}.accent-cyan .page-item.active .page-link,.accent-cyan .page-item.active a{background-color:#17a2b8;border-color:#17a2b8;color:#fff}.accent-cyan .page-item.disabled .page-link,.accent-cyan .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.accent-cyan [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.accent-cyan [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.accent-cyan [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.accent-cyan [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode.accent-cyan .page-item .page-link:focus,.dark-mode.accent-cyan .page-item .page-link:hover{color:#1ab6cf}.accent-white .btn-link,.accent-white .nav-tabs .nav-link,.accent-white a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#fff}.accent-white .btn-link:hover,.accent-white .nav-tabs .nav-link:hover,.accent-white a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#d9d9d9}.accent-white .dropdown-item.active,.accent-white .dropdown-item:active{background-color:#fff;color:#1f2d3d}.accent-white .custom-control-input:checked~.custom-control-label::before{background-color:#fff;border-color:#ccc}.accent-white .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.accent-white .custom-control-input:focus:not(:checked)~.custom-control-label::before,.accent-white .custom-file-input:focus~.custom-file-label,.accent-white .custom-select:focus,.accent-white .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#fff}.accent-white .page-item .page-link{color:#fff}.accent-white .page-item.active .page-link,.accent-white .page-item.active a{background-color:#fff;border-color:#fff;color:#fff}.accent-white .page-item.disabled .page-link,.accent-white .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.accent-white [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.accent-white [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.accent-white [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.accent-white [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode.accent-white .page-item .page-link:focus,.dark-mode.accent-white .page-item .page-link:hover{color:#fff}.accent-gray .btn-link,.accent-gray .nav-tabs .nav-link,.accent-gray a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#6c757d}.accent-gray .btn-link:hover,.accent-gray .nav-tabs .nav-link:hover,.accent-gray a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#494f54}.accent-gray .dropdown-item.active,.accent-gray .dropdown-item:active{background-color:#6c757d;color:#fff}.accent-gray .custom-control-input:checked~.custom-control-label::before{background-color:#6c757d;border-color:#3d4246}.accent-gray .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.accent-gray .custom-control-input:focus:not(:checked)~.custom-control-label::before,.accent-gray .custom-file-input:focus~.custom-file-label,.accent-gray .custom-select:focus,.accent-gray .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#afb5ba}.accent-gray .page-item .page-link{color:#6c757d}.accent-gray .page-item.active .page-link,.accent-gray .page-item.active a{background-color:#6c757d;border-color:#6c757d;color:#fff}.accent-gray .page-item.disabled .page-link,.accent-gray .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.accent-gray [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.accent-gray [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.accent-gray [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.accent-gray [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode.accent-gray .page-item .page-link:focus,.dark-mode.accent-gray .page-item .page-link:hover{color:#78828a}.accent-gray-dark .btn-link,.accent-gray-dark .nav-tabs .nav-link,.accent-gray-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#343a40}.accent-gray-dark .btn-link:hover,.accent-gray-dark .nav-tabs .nav-link:hover,.accent-gray-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#121416}.accent-gray-dark .dropdown-item.active,.accent-gray-dark .dropdown-item:active{background-color:#343a40;color:#fff}.accent-gray-dark .custom-control-input:checked~.custom-control-label::before{background-color:#343a40;border-color:#060708}.accent-gray-dark .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.accent-gray-dark .custom-control-input:focus:not(:checked)~.custom-control-label::before,.accent-gray-dark .custom-file-input:focus~.custom-file-label,.accent-gray-dark .custom-select:focus,.accent-gray-dark .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#6d7a86}.accent-gray-dark .page-item .page-link{color:#343a40}.accent-gray-dark .page-item.active .page-link,.accent-gray-dark .page-item.active a{background-color:#343a40;border-color:#343a40;color:#fff}.accent-gray-dark .page-item.disabled .page-link,.accent-gray-dark .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.accent-gray-dark [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.accent-gray-dark [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.accent-gray-dark [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.accent-gray-dark [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode.accent-gray-dark .page-item .page-link:focus,.dark-mode.accent-gray-dark .page-item .page-link:hover{color:#3f474e}[class*=accent-] a.btn-primary{color:#fff}[class*=accent-] a.btn-secondary{color:#fff}[class*=accent-] a.btn-success{color:#fff}[class*=accent-] a.btn-info{color:#fff}[class*=accent-] a.btn-warning{color:#1f2d3d}[class*=accent-] a.btn-danger{color:#fff}[class*=accent-] a.btn-light{color:#1f2d3d}[class*=accent-] a.btn-dark{color:#fff}.dark-mode .bg-light{background-color:#454d55!important;color:#fff!important}.dark-mode .link-black,.dark-mode .link-dark,.dark-mode .text-black,.dark-mode .text-dark{color:#ced4da!important}.dark-mode.bg-primary{background-color:#3f6791!important}.dark-mode.bg-primary,.dark-mode.bg-primary>a{color:#fff!important}.dark-mode.bg-primary.btn:hover{border-color:#304e6d;color:#ececec}.dark-mode.bg-primary.btn.active,.dark-mode.bg-primary.btn:active,.dark-mode.bg-primary.btn:not(:disabled):not(.disabled).active,.dark-mode.bg-primary.btn:not(:disabled):not(.disabled):active{background-color:#304e6d!important;border-color:#2c4765;color:#fff}.dark-mode.bg-secondary{background-color:#6c757d!important}.dark-mode.bg-secondary,.dark-mode.bg-secondary>a{color:#fff!important}.dark-mode.bg-secondary.btn:hover{border-color:#545b62;color:#ececec}.dark-mode.bg-secondary.btn.active,.dark-mode.bg-secondary.btn:active,.dark-mode.bg-secondary.btn:not(:disabled):not(.disabled).active,.dark-mode.bg-secondary.btn:not(:disabled):not(.disabled):active{background-color:#545b62!important;border-color:#4e555b;color:#fff}.dark-mode.bg-success{background-color:#00bc8c!important}.dark-mode.bg-success,.dark-mode.bg-success>a{color:#fff!important}.dark-mode.bg-success.btn:hover{border-color:#008966;color:#ececec}.dark-mode.bg-success.btn.active,.dark-mode.bg-success.btn:active,.dark-mode.bg-success.btn:not(:disabled):not(.disabled).active,.dark-mode.bg-success.btn:not(:disabled):not(.disabled):active{background-color:#008966!important;border-color:#007c5d;color:#fff}.dark-mode.bg-info{background-color:#3498db!important}.dark-mode.bg-info,.dark-mode.bg-info>a{color:#fff!important}.dark-mode.bg-info.btn:hover{border-color:#217dbb;color:#ececec}.dark-mode.bg-info.btn.active,.dark-mode.bg-info.btn:active,.dark-mode.bg-info.btn:not(:disabled):not(.disabled).active,.dark-mode.bg-info.btn:not(:disabled):not(.disabled):active{background-color:#217dbb!important;border-color:#1f76b0;color:#fff}.dark-mode.bg-warning{background-color:#f39c12!important}.dark-mode.bg-warning,.dark-mode.bg-warning>a{color:#1f2d3d!important}.dark-mode.bg-warning.btn:hover{border-color:#c87f0a;color:#121a24}.dark-mode.bg-warning.btn.active,.dark-mode.bg-warning.btn:active,.dark-mode.bg-warning.btn:not(:disabled):not(.disabled).active,.dark-mode.bg-warning.btn:not(:disabled):not(.disabled):active{background-color:#c87f0a!important;border-color:#bc770a;color:#fff}.dark-mode.bg-danger{background-color:#e74c3c!important}.dark-mode.bg-danger,.dark-mode.bg-danger>a{color:#fff!important}.dark-mode.bg-danger.btn:hover{border-color:#d62c1a;color:#ececec}.dark-mode.bg-danger.btn.active,.dark-mode.bg-danger.btn:active,.dark-mode.bg-danger.btn:not(:disabled):not(.disabled).active,.dark-mode.bg-danger.btn:not(:disabled):not(.disabled):active{background-color:#d62c1a!important;border-color:#ca2a19;color:#fff}.dark-mode.bg-light{background-color:#f8f9fa!important}.dark-mode.bg-light,.dark-mode.bg-light>a{color:#1f2d3d!important}.dark-mode.bg-light.btn:hover{border-color:#dae0e5;color:#121a24}.dark-mode.bg-light.btn.active,.dark-mode.bg-light.btn:active,.dark-mode.bg-light.btn:not(:disabled):not(.disabled).active,.dark-mode.bg-light.btn:not(:disabled):not(.disabled):active{background-color:#dae0e5!important;border-color:#d3d9df;color:#1f2d3d}.dark-mode.bg-dark{background-color:#343a40!important}.dark-mode.bg-dark,.dark-mode.bg-dark>a{color:#fff!important}.dark-mode.bg-dark.btn:hover{border-color:#1d2124;color:#ececec}.dark-mode.bg-dark.btn.active,.dark-mode.bg-dark.btn:active,.dark-mode.bg-dark.btn:not(:disabled):not(.disabled).active,.dark-mode.bg-dark.btn:not(:disabled):not(.disabled):active{background-color:#1d2124!important;border-color:#171a1d;color:#fff}.dark-mode.bg-lightblue{background-color:#86bad8!important}.dark-mode.bg-lightblue,.dark-mode.bg-lightblue>a{color:#1f2d3d!important}.dark-mode.bg-lightblue.btn:hover{border-color:#5fa4cc;color:#121a24}.dark-mode.bg-lightblue.btn.active,.dark-mode.bg-lightblue.btn:active,.dark-mode.bg-lightblue.btn:not(:disabled):not(.disabled).active,.dark-mode.bg-lightblue.btn:not(:disabled):not(.disabled):active{background-color:#5fa4cc!important;border-color:#559ec9;color:#fff}.dark-mode.bg-navy{background-color:#002c59!important}.dark-mode.bg-navy,.dark-mode.bg-navy>a{color:#fff!important}.dark-mode.bg-navy.btn:hover{border-color:#001226;color:#ececec}.dark-mode.bg-navy.btn.active,.dark-mode.bg-navy.btn:active,.dark-mode.bg-navy.btn:not(:disabled):not(.disabled).active,.dark-mode.bg-navy.btn:not(:disabled):not(.disabled):active{background-color:#001226!important;border-color:#000c19;color:#fff}.dark-mode.bg-olive{background-color:#74c8a3!important}.dark-mode.bg-olive,.dark-mode.bg-olive>a{color:#1f2d3d!important}.dark-mode.bg-olive.btn:hover{border-color:#50b98a;color:#121a24}.dark-mode.bg-olive.btn.active,.dark-mode.bg-olive.btn:active,.dark-mode.bg-olive.btn:not(:disabled):not(.disabled).active,.dark-mode.bg-olive.btn:not(:disabled):not(.disabled):active{background-color:#50b98a!important;border-color:#48b484;color:#fff}.dark-mode.bg-lime{background-color:#67ffa9!important}.dark-mode.bg-lime,.dark-mode.bg-lime>a{color:#1f2d3d!important}.dark-mode.bg-lime.btn:hover{border-color:#34ff8d;color:#121a24}.dark-mode.bg-lime.btn.active,.dark-mode.bg-lime.btn:active,.dark-mode.bg-lime.btn:not(:disabled):not(.disabled).active,.dark-mode.bg-lime.btn:not(:disabled):not(.disabled):active{background-color:#34ff8d!important;border-color:#27ff86;color:#1f2d3d}.dark-mode.bg-fuchsia{background-color:#f672d8!important}.dark-mode.bg-fuchsia,.dark-mode.bg-fuchsia>a{color:#1f2d3d!important}.dark-mode.bg-fuchsia.btn:hover{border-color:#f342cb;color:#121a24}.dark-mode.bg-fuchsia.btn.active,.dark-mode.bg-fuchsia.btn:active,.dark-mode.bg-fuchsia.btn:not(:disabled):not(.disabled).active,.dark-mode.bg-fuchsia.btn:not(:disabled):not(.disabled):active{background-color:#f342cb!important;border-color:#f236c8;color:#fff}.dark-mode.bg-maroon{background-color:#ed6c9b!important}.dark-mode.bg-maroon,.dark-mode.bg-maroon>a{color:#1f2d3d!important}.dark-mode.bg-maroon.btn:hover{border-color:#e73f7c;color:#121a24}.dark-mode.bg-maroon.btn.active,.dark-mode.bg-maroon.btn:active,.dark-mode.bg-maroon.btn:not(:disabled):not(.disabled).active,.dark-mode.bg-maroon.btn:not(:disabled):not(.disabled):active{background-color:#e73f7c!important;border-color:#e63475;color:#fff}.dark-mode.bg-blue{background-color:#3f6791!important}.dark-mode.bg-blue,.dark-mode.bg-blue>a{color:#fff!important}.dark-mode.bg-blue.btn:hover{border-color:#304e6d;color:#ececec}.dark-mode.bg-blue.btn.active,.dark-mode.bg-blue.btn:active,.dark-mode.bg-blue.btn:not(:disabled):not(.disabled).active,.dark-mode.bg-blue.btn:not(:disabled):not(.disabled):active{background-color:#304e6d!important;border-color:#2c4765;color:#fff}.dark-mode.bg-indigo{background-color:#6610f2!important}.dark-mode.bg-indigo,.dark-mode.bg-indigo>a{color:#fff!important}.dark-mode.bg-indigo.btn:hover{border-color:#510bc4;color:#ececec}.dark-mode.bg-indigo.btn.active,.dark-mode.bg-indigo.btn:active,.dark-mode.bg-indigo.btn:not(:disabled):not(.disabled).active,.dark-mode.bg-indigo.btn:not(:disabled):not(.disabled):active{background-color:#510bc4!important;border-color:#4c0ab8;color:#fff}.dark-mode.bg-purple{background-color:#6f42c1!important}.dark-mode.bg-purple,.dark-mode.bg-purple>a{color:#fff!important}.dark-mode.bg-purple.btn:hover{border-color:#59339d;color:#ececec}.dark-mode.bg-purple.btn.active,.dark-mode.bg-purple.btn:active,.dark-mode.bg-purple.btn:not(:disabled):not(.disabled).active,.dark-mode.bg-purple.btn:not(:disabled):not(.disabled):active{background-color:#59339d!important;border-color:#533093;color:#fff}.dark-mode.bg-pink{background-color:#e83e8c!important}.dark-mode.bg-pink,.dark-mode.bg-pink>a{color:#fff!important}.dark-mode.bg-pink.btn:hover{border-color:#d91a72;color:#ececec}.dark-mode.bg-pink.btn.active,.dark-mode.bg-pink.btn:active,.dark-mode.bg-pink.btn:not(:disabled):not(.disabled).active,.dark-mode.bg-pink.btn:not(:disabled):not(.disabled):active{background-color:#d91a72!important;border-color:#ce196c;color:#fff}.dark-mode.bg-red{background-color:#e74c3c!important}.dark-mode.bg-red,.dark-mode.bg-red>a{color:#fff!important}.dark-mode.bg-red.btn:hover{border-color:#d62c1a;color:#ececec}.dark-mode.bg-red.btn.active,.dark-mode.bg-red.btn:active,.dark-mode.bg-red.btn:not(:disabled):not(.disabled).active,.dark-mode.bg-red.btn:not(:disabled):not(.disabled):active{background-color:#d62c1a!important;border-color:#ca2a19;color:#fff}.dark-mode.bg-orange{background-color:#fd7e14!important}.dark-mode.bg-orange,.dark-mode.bg-orange>a{color:#1f2d3d!important}.dark-mode.bg-orange.btn:hover{border-color:#dc6502;color:#121a24}.dark-mode.bg-orange.btn.active,.dark-mode.bg-orange.btn:active,.dark-mode.bg-orange.btn:not(:disabled):not(.disabled).active,.dark-mode.bg-orange.btn:not(:disabled):not(.disabled):active{background-color:#dc6502!important;border-color:#cf5f02;color:#fff}.dark-mode.bg-yellow{background-color:#f39c12!important}.dark-mode.bg-yellow,.dark-mode.bg-yellow>a{color:#1f2d3d!important}.dark-mode.bg-yellow.btn:hover{border-color:#c87f0a;color:#121a24}.dark-mode.bg-yellow.btn.active,.dark-mode.bg-yellow.btn:active,.dark-mode.bg-yellow.btn:not(:disabled):not(.disabled).active,.dark-mode.bg-yellow.btn:not(:disabled):not(.disabled):active{background-color:#c87f0a!important;border-color:#bc770a;color:#fff}.dark-mode.bg-green{background-color:#00bc8c!important}.dark-mode.bg-green,.dark-mode.bg-green>a{color:#fff!important}.dark-mode.bg-green.btn:hover{border-color:#008966;color:#ececec}.dark-mode.bg-green.btn.active,.dark-mode.bg-green.btn:active,.dark-mode.bg-green.btn:not(:disabled):not(.disabled).active,.dark-mode.bg-green.btn:not(:disabled):not(.disabled):active{background-color:#008966!important;border-color:#007c5d;color:#fff}.dark-mode.bg-teal{background-color:#20c997!important}.dark-mode.bg-teal,.dark-mode.bg-teal>a{color:#fff!important}.dark-mode.bg-teal.btn:hover{border-color:#199d76;color:#ececec}.dark-mode.bg-teal.btn.active,.dark-mode.bg-teal.btn:active,.dark-mode.bg-teal.btn:not(:disabled):not(.disabled).active,.dark-mode.bg-teal.btn:not(:disabled):not(.disabled):active{background-color:#199d76!important;border-color:#17926e;color:#fff}.dark-mode.bg-cyan{background-color:#3498db!important}.dark-mode.bg-cyan,.dark-mode.bg-cyan>a{color:#fff!important}.dark-mode.bg-cyan.btn:hover{border-color:#217dbb;color:#ececec}.dark-mode.bg-cyan.btn.active,.dark-mode.bg-cyan.btn:active,.dark-mode.bg-cyan.btn:not(:disabled):not(.disabled).active,.dark-mode.bg-cyan.btn:not(:disabled):not(.disabled):active{background-color:#217dbb!important;border-color:#1f76b0;color:#fff}.dark-mode.bg-white{background-color:#fff!important}.dark-mode.bg-white,.dark-mode.bg-white>a{color:#1f2d3d!important}.dark-mode.bg-white.btn:hover{border-color:#e6e6e6;color:#121a24}.dark-mode.bg-white.btn.active,.dark-mode.bg-white.btn:active,.dark-mode.bg-white.btn:not(:disabled):not(.disabled).active,.dark-mode.bg-white.btn:not(:disabled):not(.disabled):active{background-color:#e6e6e6!important;border-color:#dfdfdf;color:#1f2d3d}.dark-mode.bg-gray{background-color:#6c757d!important}.dark-mode.bg-gray,.dark-mode.bg-gray>a{color:#fff!important}.dark-mode.bg-gray.btn:hover{border-color:#545b62;color:#ececec}.dark-mode.bg-gray.btn.active,.dark-mode.bg-gray.btn:active,.dark-mode.bg-gray.btn:not(:disabled):not(.disabled).active,.dark-mode.bg-gray.btn:not(:disabled):not(.disabled):active{background-color:#545b62!important;border-color:#4e555b;color:#fff}.dark-mode.bg-gray-dark{background-color:#343a40!important}.dark-mode.bg-gray-dark,.dark-mode.bg-gray-dark>a{color:#fff!important}.dark-mode.bg-gray-dark.btn:hover{border-color:#1d2124;color:#ececec}.dark-mode.bg-gray-dark.btn.active,.dark-mode.bg-gray-dark.btn:active,.dark-mode.bg-gray-dark.btn:not(:disabled):not(.disabled).active,.dark-mode.bg-gray-dark.btn:not(:disabled):not(.disabled):active{background-color:#1d2124!important;border-color:#171a1d;color:#fff}.dark-mode .bg-gradient-primary{background:#3f6791 linear-gradient(180deg,#5c7ea2,#3f6791) repeat-x!important;color:#fff}.dark-mode .bg-gradient-primary.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-primary.btn:not(:disabled):not(.disabled):active,.show>.dark-mode .bg-gradient-primary.btn.dropdown-toggle{background-image:none!important}.dark-mode .bg-gradient-primary.btn:hover{background:#3f6791 linear-gradient(180deg,#526e8b,#335476) repeat-x!important;border-color:#304e6d;color:#ececec}.dark-mode .bg-gradient-primary.btn.active,.dark-mode .bg-gradient-primary.btn:active,.dark-mode .bg-gradient-primary.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-primary.btn:not(:disabled):not(.disabled):active{background:#3f6791 linear-gradient(180deg,#4f6883,#304e6d) repeat-x!important;border-color:#2c4765;color:#fff}.dark-mode .bg-gradient-primary.btn.disabled,.dark-mode .bg-gradient-primary.btn:disabled{background-image:none!important;border-color:#3f6791;color:#fff}.dark-mode .bg-gradient-secondary{background:#6c757d linear-gradient(180deg,#828a91,#6c757d) repeat-x!important;color:#fff}.dark-mode .bg-gradient-secondary.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-secondary.btn:not(:disabled):not(.disabled):active,.show>.dark-mode .bg-gradient-secondary.btn.dropdown-toggle{background-image:none!important}.dark-mode .bg-gradient-secondary.btn:hover{background:#6c757d linear-gradient(180deg,#73797f,#5a6268) repeat-x!important;border-color:#545b62;color:#ececec}.dark-mode .bg-gradient-secondary.btn.active,.dark-mode .bg-gradient-secondary.btn:active,.dark-mode .bg-gradient-secondary.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-secondary.btn:not(:disabled):not(.disabled):active{background:#6c757d linear-gradient(180deg,#6e7479,#545b62) repeat-x!important;border-color:#4e555b;color:#fff}.dark-mode .bg-gradient-secondary.btn.disabled,.dark-mode .bg-gradient-secondary.btn:disabled{background-image:none!important;border-color:#6c757d;color:#fff}.dark-mode .bg-gradient-success{background:#00bc8c linear-gradient(180deg,#26c69d,#00bc8c) repeat-x!important;color:#fff}.dark-mode .bg-gradient-success.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-success.btn:not(:disabled):not(.disabled):active,.show>.dark-mode .bg-gradient-success.btn.dropdown-toggle{background-image:none!important}.dark-mode .bg-gradient-success.btn:hover{background:#00bc8c linear-gradient(180deg,#26a685,#009670) repeat-x!important;border-color:#008966;color:#ececec}.dark-mode .bg-gradient-success.btn.active,.dark-mode .bg-gradient-success.btn:active,.dark-mode .bg-gradient-success.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-success.btn:not(:disabled):not(.disabled):active{background:#00bc8c linear-gradient(180deg,#269b7d,#008966) repeat-x!important;border-color:#007c5d;color:#fff}.dark-mode .bg-gradient-success.btn.disabled,.dark-mode .bg-gradient-success.btn:disabled{background-image:none!important;border-color:#00bc8c;color:#fff}.dark-mode .bg-gradient-info{background:#3498db linear-gradient(180deg,#52a7e0,#3498db) repeat-x!important;color:#fff}.dark-mode .bg-gradient-info.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-info.btn:not(:disabled):not(.disabled):active,.show>.dark-mode .bg-gradient-info.btn.dropdown-toggle{background-image:none!important}.dark-mode .bg-gradient-info.btn:hover{background:#3498db linear-gradient(180deg,#4497ce,#2384c6) repeat-x!important;border-color:#217dbb;color:#ececec}.dark-mode .bg-gradient-info.btn.active,.dark-mode .bg-gradient-info.btn:active,.dark-mode .bg-gradient-info.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-info.btn:not(:disabled):not(.disabled):active{background:#3498db linear-gradient(180deg,#4291c5,#217dbb) repeat-x!important;border-color:#1f76b0;color:#fff}.dark-mode .bg-gradient-info.btn.disabled,.dark-mode .bg-gradient-info.btn:disabled{background-image:none!important;border-color:#3498db;color:#fff}.dark-mode .bg-gradient-warning{background:#f39c12 linear-gradient(180deg,#f5ab36,#f39c12) repeat-x!important;color:#1f2d3d}.dark-mode .bg-gradient-warning.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-warning.btn:not(:disabled):not(.disabled):active,.show>.dark-mode .bg-gradient-warning.btn.dropdown-toggle{background-image:none!important}.dark-mode .bg-gradient-warning.btn:hover{background:#f39c12 linear-gradient(180deg,#da982f,#d4860b) repeat-x!important;border-color:#c87f0a;color:#121a24}.dark-mode .bg-gradient-warning.btn.active,.dark-mode .bg-gradient-warning.btn:active,.dark-mode .bg-gradient-warning.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-warning.btn:not(:disabled):not(.disabled):active{background:#f39c12 linear-gradient(180deg,#d0922f,#c87f0a) repeat-x!important;border-color:#bc770a;color:#fff}.dark-mode .bg-gradient-warning.btn.disabled,.dark-mode .bg-gradient-warning.btn:disabled{background-image:none!important;border-color:#f39c12;color:#1f2d3d}.dark-mode .bg-gradient-danger{background:#e74c3c linear-gradient(180deg,#eb6759,#e74c3c) repeat-x!important;color:#fff}.dark-mode .bg-gradient-danger.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-danger.btn:not(:disabled):not(.disabled):active,.show>.dark-mode .bg-gradient-danger.btn.dropdown-toggle{background-image:none!important}.dark-mode .bg-gradient-danger.btn:hover{background:#e74c3c linear-gradient(180deg,#e64d3e,#e12e1c) repeat-x!important;border-color:#d62c1a;color:#ececec}.dark-mode .bg-gradient-danger.btn.active,.dark-mode .bg-gradient-danger.btn:active,.dark-mode .bg-gradient-danger.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-danger.btn:not(:disabled):not(.disabled):active{background:#e74c3c linear-gradient(180deg,#dc4c3d,#d62c1a) repeat-x!important;border-color:#ca2a19;color:#fff}.dark-mode .bg-gradient-danger.btn.disabled,.dark-mode .bg-gradient-danger.btn:disabled{background-image:none!important;border-color:#e74c3c;color:#fff}.dark-mode .bg-gradient-light{background:#f8f9fa linear-gradient(180deg,#f9fafb,#f8f9fa) repeat-x!important;color:#1f2d3d}.dark-mode .bg-gradient-light.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-light.btn:not(:disabled):not(.disabled):active,.show>.dark-mode .bg-gradient-light.btn.dropdown-toggle{background-image:none!important}.dark-mode .bg-gradient-light.btn:hover{background:#f8f9fa linear-gradient(180deg,#e6eaed,#e2e6ea) repeat-x!important;border-color:#dae0e5;color:#121a24}.dark-mode .bg-gradient-light.btn.active,.dark-mode .bg-gradient-light.btn:active,.dark-mode .bg-gradient-light.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-light.btn:not(:disabled):not(.disabled):active{background:#f8f9fa linear-gradient(180deg,#e0e4e9,#dae0e5) repeat-x!important;border-color:#d3d9df;color:#1f2d3d}.dark-mode .bg-gradient-light.btn.disabled,.dark-mode .bg-gradient-light.btn:disabled{background-image:none!important;border-color:#f8f9fa;color:#1f2d3d}.dark-mode .bg-gradient-dark{background:#343a40 linear-gradient(180deg,#52585d,#343a40) repeat-x!important;color:#fff}.dark-mode .bg-gradient-dark.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-dark.btn:not(:disabled):not(.disabled):active,.show>.dark-mode .bg-gradient-dark.btn.dropdown-toggle{background-image:none!important}.dark-mode .bg-gradient-dark.btn:hover{background:#343a40 linear-gradient(180deg,#44474b,#23272b) repeat-x!important;border-color:#1d2124;color:#ececec}.dark-mode .bg-gradient-dark.btn.active,.dark-mode .bg-gradient-dark.btn:active,.dark-mode .bg-gradient-dark.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-dark.btn:not(:disabled):not(.disabled):active{background:#343a40 linear-gradient(180deg,#3f4245,#1d2124) repeat-x!important;border-color:#171a1d;color:#fff}.dark-mode .bg-gradient-dark.btn.disabled,.dark-mode .bg-gradient-dark.btn:disabled{background-image:none!important;border-color:#343a40;color:#fff}.dark-mode .bg-gradient-lightblue{background:#86bad8 linear-gradient(180deg,#98c4de,#86bad8) repeat-x!important;color:#1f2d3d}.dark-mode .bg-gradient-lightblue.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-lightblue.btn:not(:disabled):not(.disabled):active,.show>.dark-mode .bg-gradient-lightblue.btn.dropdown-toggle{background-image:none!important}.dark-mode .bg-gradient-lightblue.btn:hover{background:#86bad8 linear-gradient(180deg,#7fb6d6,#69a9cf) repeat-x!important;border-color:#5fa4cc;color:#121a24}.dark-mode .bg-gradient-lightblue.btn.active,.dark-mode .bg-gradient-lightblue.btn:active,.dark-mode .bg-gradient-lightblue.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-lightblue.btn:not(:disabled):not(.disabled):active{background:#86bad8 linear-gradient(180deg,#77b2d4,#5fa4cc) repeat-x!important;border-color:#559ec9;color:#fff}.dark-mode .bg-gradient-lightblue.btn.disabled,.dark-mode .bg-gradient-lightblue.btn:disabled{background-image:none!important;border-color:#86bad8;color:#1f2d3d}.dark-mode .bg-gradient-navy{background:#002c59 linear-gradient(180deg,#264b71,#002c59) repeat-x!important;color:#fff}.dark-mode .bg-gradient-navy.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-navy.btn:not(:disabled):not(.disabled):active,.show>.dark-mode .bg-gradient-navy.btn.dropdown-toggle{background-image:none!important}.dark-mode .bg-gradient-navy.btn:hover{background:#002c59 linear-gradient(180deg,#263b51,#001932) repeat-x!important;border-color:#001226;color:#ececec}.dark-mode .bg-gradient-navy.btn.active,.dark-mode .bg-gradient-navy.btn:active,.dark-mode .bg-gradient-navy.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-navy.btn:not(:disabled):not(.disabled):active{background:#002c59 linear-gradient(180deg,#263646,#001226) repeat-x!important;border-color:#000c19;color:#fff}.dark-mode .bg-gradient-navy.btn.disabled,.dark-mode .bg-gradient-navy.btn:disabled{background-image:none!important;border-color:#002c59;color:#fff}.dark-mode .bg-gradient-olive{background:#74c8a3 linear-gradient(180deg,#89d0b0,#74c8a3) repeat-x!important;color:#1f2d3d}.dark-mode .bg-gradient-olive.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-olive.btn:not(:disabled):not(.disabled):active,.show>.dark-mode .bg-gradient-olive.btn.dropdown-toggle{background-image:none!important}.dark-mode .bg-gradient-olive.btn:hover{background:#74c8a3 linear-gradient(180deg,#72c7a1,#59bd90) repeat-x!important;border-color:#50b98a;color:#121a24}.dark-mode .bg-gradient-olive.btn.active,.dark-mode .bg-gradient-olive.btn:active,.dark-mode .bg-gradient-olive.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-olive.btn:not(:disabled):not(.disabled):active{background:#74c8a3 linear-gradient(180deg,#6ac49c,#50b98a) repeat-x!important;border-color:#48b484;color:#fff}.dark-mode .bg-gradient-olive.btn.disabled,.dark-mode .bg-gradient-olive.btn:disabled{background-image:none!important;border-color:#74c8a3;color:#1f2d3d}.dark-mode .bg-gradient-lime{background:#67ffa9 linear-gradient(180deg,#7effb6,#67ffa9) repeat-x!important;color:#1f2d3d}.dark-mode .bg-gradient-lime.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-lime.btn:not(:disabled):not(.disabled):active,.show>.dark-mode .bg-gradient-lime.btn.dropdown-toggle{background-image:none!important}.dark-mode .bg-gradient-lime.btn:hover{background:#67ffa9 linear-gradient(180deg,#5dffa4,#41ff94) repeat-x!important;border-color:#34ff8d;color:#121a24}.dark-mode .bg-gradient-lime.btn.active,.dark-mode .bg-gradient-lime.btn:active,.dark-mode .bg-gradient-lime.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-lime.btn:not(:disabled):not(.disabled):active{background:#67ffa9 linear-gradient(180deg,#52ff9e,#34ff8d) repeat-x!important;border-color:#27ff86;color:#1f2d3d}.dark-mode .bg-gradient-lime.btn.disabled,.dark-mode .bg-gradient-lime.btn:disabled{background-image:none!important;border-color:#67ffa9;color:#1f2d3d}.dark-mode .bg-gradient-fuchsia{background:#f672d8 linear-gradient(180deg,#f787de,#f672d8) repeat-x!important;color:#1f2d3d}.dark-mode .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled):active,.show>.dark-mode .bg-gradient-fuchsia.btn.dropdown-toggle{background-image:none!important}.dark-mode .bg-gradient-fuchsia.btn:hover{background:#f672d8 linear-gradient(180deg,#f569d6,#f44ece) repeat-x!important;border-color:#f342cb;color:#121a24}.dark-mode .bg-gradient-fuchsia.btn.active,.dark-mode .bg-gradient-fuchsia.btn:active,.dark-mode .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled):active{background:#f672d8 linear-gradient(180deg,#f55ed3,#f342cb) repeat-x!important;border-color:#f236c8;color:#fff}.dark-mode .bg-gradient-fuchsia.btn.disabled,.dark-mode .bg-gradient-fuchsia.btn:disabled{background-image:none!important;border-color:#f672d8;color:#1f2d3d}.dark-mode .bg-gradient-maroon{background:#ed6c9b linear-gradient(180deg,#ef82aa,#ed6c9b) repeat-x!important;color:#1f2d3d}.dark-mode .bg-gradient-maroon.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-maroon.btn:not(:disabled):not(.disabled):active,.show>.dark-mode .bg-gradient-maroon.btn.dropdown-toggle{background-image:none!important}.dark-mode .bg-gradient-maroon.btn:hover{background:#ed6c9b linear-gradient(180deg,#ec6596,#e84a84) repeat-x!important;border-color:#e73f7c;color:#121a24}.dark-mode .bg-gradient-maroon.btn.active,.dark-mode .bg-gradient-maroon.btn:active,.dark-mode .bg-gradient-maroon.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-maroon.btn:not(:disabled):not(.disabled):active{background:#ed6c9b linear-gradient(180deg,#eb5c90,#e73f7c) repeat-x!important;border-color:#e63475;color:#fff}.dark-mode .bg-gradient-maroon.btn.disabled,.dark-mode .bg-gradient-maroon.btn:disabled{background-image:none!important;border-color:#ed6c9b;color:#1f2d3d}.dark-mode .bg-gradient-blue{background:#3f6791 linear-gradient(180deg,#5c7ea2,#3f6791) repeat-x!important;color:#fff}.dark-mode .bg-gradient-blue.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-blue.btn:not(:disabled):not(.disabled):active,.show>.dark-mode .bg-gradient-blue.btn.dropdown-toggle{background-image:none!important}.dark-mode .bg-gradient-blue.btn:hover{background:#3f6791 linear-gradient(180deg,#526e8b,#335476) repeat-x!important;border-color:#304e6d;color:#ececec}.dark-mode .bg-gradient-blue.btn.active,.dark-mode .bg-gradient-blue.btn:active,.dark-mode .bg-gradient-blue.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-blue.btn:not(:disabled):not(.disabled):active{background:#3f6791 linear-gradient(180deg,#4f6883,#304e6d) repeat-x!important;border-color:#2c4765;color:#fff}.dark-mode .bg-gradient-blue.btn.disabled,.dark-mode .bg-gradient-blue.btn:disabled{background-image:none!important;border-color:#3f6791;color:#fff}.dark-mode .bg-gradient-indigo{background:#6610f2 linear-gradient(180deg,#7d34f4,#6610f2) repeat-x!important;color:#fff}.dark-mode .bg-gradient-indigo.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-indigo.btn:not(:disabled):not(.disabled):active,.show>.dark-mode .bg-gradient-indigo.btn.dropdown-toggle{background-image:none!important}.dark-mode .bg-gradient-indigo.btn:hover{background:#6610f2 linear-gradient(180deg,#7030d7,#560bd0) repeat-x!important;border-color:#510bc4;color:#ececec}.dark-mode .bg-gradient-indigo.btn.active,.dark-mode .bg-gradient-indigo.btn:active,.dark-mode .bg-gradient-indigo.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-indigo.btn:not(:disabled):not(.disabled):active{background:#6610f2 linear-gradient(180deg,#6b2fcd,#510bc4) repeat-x!important;border-color:#4c0ab8;color:#fff}.dark-mode .bg-gradient-indigo.btn.disabled,.dark-mode .bg-gradient-indigo.btn:disabled{background-image:none!important;border-color:#6610f2;color:#fff}.dark-mode .bg-gradient-purple{background:#6f42c1 linear-gradient(180deg,#855eca,#6f42c1) repeat-x!important;color:#fff}.dark-mode .bg-gradient-purple.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-purple.btn:not(:disabled):not(.disabled):active,.show>.dark-mode .bg-gradient-purple.btn.dropdown-toggle{background-image:none!important}.dark-mode .bg-gradient-purple.btn:hover{background:#6f42c1 linear-gradient(180deg,#7655b4,#5e37a6) repeat-x!important;border-color:#59339d;color:#ececec}.dark-mode .bg-gradient-purple.btn.active,.dark-mode .bg-gradient-purple.btn:active,.dark-mode .bg-gradient-purple.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-purple.btn:not(:disabled):not(.disabled):active{background:#6f42c1 linear-gradient(180deg,#7252ab,#59339d) repeat-x!important;border-color:#533093;color:#fff}.dark-mode .bg-gradient-purple.btn.disabled,.dark-mode .bg-gradient-purple.btn:disabled{background-image:none!important;border-color:#6f42c1;color:#fff}.dark-mode .bg-gradient-pink{background:#e83e8c linear-gradient(180deg,#eb5b9d,#e83e8c) repeat-x!important;color:#fff}.dark-mode .bg-gradient-pink.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-pink.btn:not(:disabled):not(.disabled):active,.show>.dark-mode .bg-gradient-pink.btn.dropdown-toggle{background-image:none!important}.dark-mode .bg-gradient-pink.btn:hover{background:#e83e8c linear-gradient(180deg,#e83e8c,#e41c78) repeat-x!important;border-color:#d91a72;color:#ececec}.dark-mode .bg-gradient-pink.btn.active,.dark-mode .bg-gradient-pink.btn:active,.dark-mode .bg-gradient-pink.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-pink.btn:not(:disabled):not(.disabled):active{background:#e83e8c linear-gradient(180deg,#df3c87,#d91a72) repeat-x!important;border-color:#ce196c;color:#fff}.dark-mode .bg-gradient-pink.btn.disabled,.dark-mode .bg-gradient-pink.btn:disabled{background-image:none!important;border-color:#e83e8c;color:#fff}.dark-mode .bg-gradient-red{background:#e74c3c linear-gradient(180deg,#eb6759,#e74c3c) repeat-x!important;color:#fff}.dark-mode .bg-gradient-red.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-red.btn:not(:disabled):not(.disabled):active,.show>.dark-mode .bg-gradient-red.btn.dropdown-toggle{background-image:none!important}.dark-mode .bg-gradient-red.btn:hover{background:#e74c3c linear-gradient(180deg,#e64d3e,#e12e1c) repeat-x!important;border-color:#d62c1a;color:#ececec}.dark-mode .bg-gradient-red.btn.active,.dark-mode .bg-gradient-red.btn:active,.dark-mode .bg-gradient-red.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-red.btn:not(:disabled):not(.disabled):active{background:#e74c3c linear-gradient(180deg,#dc4c3d,#d62c1a) repeat-x!important;border-color:#ca2a19;color:#fff}.dark-mode .bg-gradient-red.btn.disabled,.dark-mode .bg-gradient-red.btn:disabled{background-image:none!important;border-color:#e74c3c;color:#fff}.dark-mode .bg-gradient-orange{background:#fd7e14 linear-gradient(180deg,#fd9137,#fd7e14) repeat-x!important;color:#1f2d3d}.dark-mode .bg-gradient-orange.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-orange.btn:not(:disabled):not(.disabled):active,.show>.dark-mode .bg-gradient-orange.btn.dropdown-toggle{background-image:none!important}.dark-mode .bg-gradient-orange.btn:hover{background:#fd7e14 linear-gradient(180deg,#ec8128,#e96b02) repeat-x!important;border-color:#dc6502;color:#121a24}.dark-mode .bg-gradient-orange.btn.active,.dark-mode .bg-gradient-orange.btn:active,.dark-mode .bg-gradient-orange.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-orange.btn:not(:disabled):not(.disabled):active{background:#fd7e14 linear-gradient(180deg,#e17c28,#dc6502) repeat-x!important;border-color:#cf5f02;color:#fff}.dark-mode .bg-gradient-orange.btn.disabled,.dark-mode .bg-gradient-orange.btn:disabled{background-image:none!important;border-color:#fd7e14;color:#1f2d3d}.dark-mode .bg-gradient-yellow{background:#f39c12 linear-gradient(180deg,#f5ab36,#f39c12) repeat-x!important;color:#1f2d3d}.dark-mode .bg-gradient-yellow.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-yellow.btn:not(:disabled):not(.disabled):active,.show>.dark-mode .bg-gradient-yellow.btn.dropdown-toggle{background-image:none!important}.dark-mode .bg-gradient-yellow.btn:hover{background:#f39c12 linear-gradient(180deg,#da982f,#d4860b) repeat-x!important;border-color:#c87f0a;color:#121a24}.dark-mode .bg-gradient-yellow.btn.active,.dark-mode .bg-gradient-yellow.btn:active,.dark-mode .bg-gradient-yellow.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-yellow.btn:not(:disabled):not(.disabled):active{background:#f39c12 linear-gradient(180deg,#d0922f,#c87f0a) repeat-x!important;border-color:#bc770a;color:#fff}.dark-mode .bg-gradient-yellow.btn.disabled,.dark-mode .bg-gradient-yellow.btn:disabled{background-image:none!important;border-color:#f39c12;color:#1f2d3d}.dark-mode .bg-gradient-green{background:#00bc8c linear-gradient(180deg,#26c69d,#00bc8c) repeat-x!important;color:#fff}.dark-mode .bg-gradient-green.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-green.btn:not(:disabled):not(.disabled):active,.show>.dark-mode .bg-gradient-green.btn.dropdown-toggle{background-image:none!important}.dark-mode .bg-gradient-green.btn:hover{background:#00bc8c linear-gradient(180deg,#26a685,#009670) repeat-x!important;border-color:#008966;color:#ececec}.dark-mode .bg-gradient-green.btn.active,.dark-mode .bg-gradient-green.btn:active,.dark-mode .bg-gradient-green.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-green.btn:not(:disabled):not(.disabled):active{background:#00bc8c linear-gradient(180deg,#269b7d,#008966) repeat-x!important;border-color:#007c5d;color:#fff}.dark-mode .bg-gradient-green.btn.disabled,.dark-mode .bg-gradient-green.btn:disabled{background-image:none!important;border-color:#00bc8c;color:#fff}.dark-mode .bg-gradient-teal{background:#20c997 linear-gradient(180deg,#41d1a7,#20c997) repeat-x!important;color:#fff}.dark-mode .bg-gradient-teal.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-teal.btn:not(:disabled):not(.disabled):active,.show>.dark-mode .bg-gradient-teal.btn.dropdown-toggle{background-image:none!important}.dark-mode .bg-gradient-teal.btn:hover{background:#20c997 linear-gradient(180deg,#3db592,#1ba87e) repeat-x!important;border-color:#199d76;color:#ececec}.dark-mode .bg-gradient-teal.btn.active,.dark-mode .bg-gradient-teal.btn:active,.dark-mode .bg-gradient-teal.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-teal.btn:not(:disabled):not(.disabled):active{background:#20c997 linear-gradient(180deg,#3bac8b,#199d76) repeat-x!important;border-color:#17926e;color:#fff}.dark-mode .bg-gradient-teal.btn.disabled,.dark-mode .bg-gradient-teal.btn:disabled{background-image:none!important;border-color:#20c997;color:#fff}.dark-mode .bg-gradient-cyan{background:#3498db linear-gradient(180deg,#52a7e0,#3498db) repeat-x!important;color:#fff}.dark-mode .bg-gradient-cyan.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-cyan.btn:not(:disabled):not(.disabled):active,.show>.dark-mode .bg-gradient-cyan.btn.dropdown-toggle{background-image:none!important}.dark-mode .bg-gradient-cyan.btn:hover{background:#3498db linear-gradient(180deg,#4497ce,#2384c6) repeat-x!important;border-color:#217dbb;color:#ececec}.dark-mode .bg-gradient-cyan.btn.active,.dark-mode .bg-gradient-cyan.btn:active,.dark-mode .bg-gradient-cyan.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-cyan.btn:not(:disabled):not(.disabled):active{background:#3498db linear-gradient(180deg,#4291c5,#217dbb) repeat-x!important;border-color:#1f76b0;color:#fff}.dark-mode .bg-gradient-cyan.btn.disabled,.dark-mode .bg-gradient-cyan.btn:disabled{background-image:none!important;border-color:#3498db;color:#fff}.dark-mode .bg-gradient-white{background:#fff linear-gradient(180deg,#fff,#fff) repeat-x!important;color:#1f2d3d}.dark-mode .bg-gradient-white.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-white.btn:not(:disabled):not(.disabled):active,.show>.dark-mode .bg-gradient-white.btn.dropdown-toggle{background-image:none!important}.dark-mode .bg-gradient-white.btn:hover{background:#fff linear-gradient(180deg,#efefef,#ececec) repeat-x!important;border-color:#e6e6e6;color:#121a24}.dark-mode .bg-gradient-white.btn.active,.dark-mode .bg-gradient-white.btn:active,.dark-mode .bg-gradient-white.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-white.btn:not(:disabled):not(.disabled):active{background:#fff linear-gradient(180deg,#e9e9e9,#e6e6e6) repeat-x!important;border-color:#dfdfdf;color:#1f2d3d}.dark-mode .bg-gradient-white.btn.disabled,.dark-mode .bg-gradient-white.btn:disabled{background-image:none!important;border-color:#fff;color:#1f2d3d}.dark-mode .bg-gradient-gray{background:#6c757d linear-gradient(180deg,#828a91,#6c757d) repeat-x!important;color:#fff}.dark-mode .bg-gradient-gray.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-gray.btn:not(:disabled):not(.disabled):active,.show>.dark-mode .bg-gradient-gray.btn.dropdown-toggle{background-image:none!important}.dark-mode .bg-gradient-gray.btn:hover{background:#6c757d linear-gradient(180deg,#73797f,#5a6268) repeat-x!important;border-color:#545b62;color:#ececec}.dark-mode .bg-gradient-gray.btn.active,.dark-mode .bg-gradient-gray.btn:active,.dark-mode .bg-gradient-gray.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-gray.btn:not(:disabled):not(.disabled):active{background:#6c757d linear-gradient(180deg,#6e7479,#545b62) repeat-x!important;border-color:#4e555b;color:#fff}.dark-mode .bg-gradient-gray.btn.disabled,.dark-mode .bg-gradient-gray.btn:disabled{background-image:none!important;border-color:#6c757d;color:#fff}.dark-mode .bg-gradient-gray-dark{background:#343a40 linear-gradient(180deg,#52585d,#343a40) repeat-x!important;color:#fff}.dark-mode .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled):active,.show>.dark-mode .bg-gradient-gray-dark.btn.dropdown-toggle{background-image:none!important}.dark-mode .bg-gradient-gray-dark.btn:hover{background:#343a40 linear-gradient(180deg,#44474b,#23272b) repeat-x!important;border-color:#1d2124;color:#ececec}.dark-mode .bg-gradient-gray-dark.btn.active,.dark-mode .bg-gradient-gray-dark.btn:active,.dark-mode .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled).active,.dark-mode .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled):active{background:#343a40 linear-gradient(180deg,#3f4245,#1d2124) repeat-x!important;border-color:#171a1d;color:#fff}.dark-mode .bg-gradient-gray-dark.btn.disabled,.dark-mode .bg-gradient-gray-dark.btn:disabled{background-image:none!important;border-color:#343a40;color:#fff}.dark-mode .accent-primary .btn-link,.dark-mode .accent-primary .nav-tabs .nav-link,.dark-mode .accent-primary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#3f6791}.dark-mode .accent-primary .btn-link:hover,.dark-mode .accent-primary .nav-tabs .nav-link:hover,.dark-mode .accent-primary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#28415c}.dark-mode .accent-primary .dropdown-item.active,.dark-mode .accent-primary .dropdown-item:active{background-color:#3f6791;color:#fff}.dark-mode .accent-primary .custom-control-input:checked~.custom-control-label::before{background-color:#3f6791;border-color:#20344a}.dark-mode .accent-primary .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.dark-mode .accent-primary .custom-control-input:focus:not(:checked)~.custom-control-label::before,.dark-mode .accent-primary .custom-file-input:focus~.custom-file-label,.dark-mode .accent-primary .custom-select:focus,.dark-mode .accent-primary .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#85a7ca}.dark-mode .accent-primary .page-item .page-link{color:#3f6791}.dark-mode .accent-primary .page-item.active .page-link,.dark-mode .accent-primary .page-item.active a{background-color:#3f6791;border-color:#3f6791;color:#fff}.dark-mode .accent-primary .page-item.disabled .page-link,.dark-mode .accent-primary .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.dark-mode .accent-primary [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.dark-mode .accent-primary [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.dark-mode .accent-primary [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.dark-mode .accent-primary [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode .dark-mode.accent-primary .page-item .page-link:focus,.dark-mode .dark-mode.accent-primary .page-item .page-link:hover{color:#4774a3}.dark-mode .accent-secondary .btn-link,.dark-mode .accent-secondary .nav-tabs .nav-link,.dark-mode .accent-secondary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#6c757d}.dark-mode .accent-secondary .btn-link:hover,.dark-mode .accent-secondary .nav-tabs .nav-link:hover,.dark-mode .accent-secondary a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#494f54}.dark-mode .accent-secondary .dropdown-item.active,.dark-mode .accent-secondary .dropdown-item:active{background-color:#6c757d;color:#fff}.dark-mode .accent-secondary .custom-control-input:checked~.custom-control-label::before{background-color:#6c757d;border-color:#3d4246}.dark-mode .accent-secondary .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.dark-mode .accent-secondary .custom-control-input:focus:not(:checked)~.custom-control-label::before,.dark-mode .accent-secondary .custom-file-input:focus~.custom-file-label,.dark-mode .accent-secondary .custom-select:focus,.dark-mode .accent-secondary .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#afb5ba}.dark-mode .accent-secondary .page-item .page-link{color:#6c757d}.dark-mode .accent-secondary .page-item.active .page-link,.dark-mode .accent-secondary .page-item.active a{background-color:#6c757d;border-color:#6c757d;color:#fff}.dark-mode .accent-secondary .page-item.disabled .page-link,.dark-mode .accent-secondary .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.dark-mode .accent-secondary [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.dark-mode .accent-secondary [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.dark-mode .accent-secondary [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.dark-mode .accent-secondary [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode .dark-mode.accent-secondary .page-item .page-link:focus,.dark-mode .dark-mode.accent-secondary .page-item .page-link:hover{color:#78828a}.dark-mode .accent-success .btn-link,.dark-mode .accent-success .nav-tabs .nav-link,.dark-mode .accent-success a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#00bc8c}.dark-mode .accent-success .btn-link:hover,.dark-mode .accent-success .nav-tabs .nav-link:hover,.dark-mode .accent-success a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#007053}.dark-mode .accent-success .dropdown-item.active,.dark-mode .accent-success .dropdown-item:active{background-color:#00bc8c;color:#fff}.dark-mode .accent-success .custom-control-input:checked~.custom-control-label::before{background-color:#00bc8c;border-color:#005640}.dark-mode .accent-success .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.dark-mode .accent-success .custom-control-input:focus:not(:checked)~.custom-control-label::before,.dark-mode .accent-success .custom-file-input:focus~.custom-file-label,.dark-mode .accent-success .custom-select:focus,.dark-mode .accent-success .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#3dffcd}.dark-mode .accent-success .page-item .page-link{color:#00bc8c}.dark-mode .accent-success .page-item.active .page-link,.dark-mode .accent-success .page-item.active a{background-color:#00bc8c;border-color:#00bc8c;color:#fff}.dark-mode .accent-success .page-item.disabled .page-link,.dark-mode .accent-success .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.dark-mode .accent-success [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.dark-mode .accent-success [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.dark-mode .accent-success [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.dark-mode .accent-success [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode .dark-mode.accent-success .page-item .page-link:focus,.dark-mode .dark-mode.accent-success .page-item .page-link:hover{color:#00d69f}.dark-mode .accent-info .btn-link,.dark-mode .accent-info .nav-tabs .nav-link,.dark-mode .accent-info a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#3498db}.dark-mode .accent-info .btn-link:hover,.dark-mode .accent-info .nav-tabs .nav-link:hover,.dark-mode .accent-info a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#1d6fa5}.dark-mode .accent-info .dropdown-item.active,.dark-mode .accent-info .dropdown-item:active{background-color:#3498db;color:#fff}.dark-mode .accent-info .custom-control-input:checked~.custom-control-label::before{background-color:#3498db;border-color:#196090}.dark-mode .accent-info .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.dark-mode .accent-info .custom-control-input:focus:not(:checked)~.custom-control-label::before,.dark-mode .accent-info .custom-file-input:focus~.custom-file-label,.dark-mode .accent-info .custom-select:focus,.dark-mode .accent-info .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#a0cfee}.dark-mode .accent-info .page-item .page-link{color:#3498db}.dark-mode .accent-info .page-item.active .page-link,.dark-mode .accent-info .page-item.active a{background-color:#3498db;border-color:#3498db;color:#fff}.dark-mode .accent-info .page-item.disabled .page-link,.dark-mode .accent-info .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.dark-mode .accent-info [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.dark-mode .accent-info [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.dark-mode .accent-info [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.dark-mode .accent-info [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode .dark-mode.accent-info .page-item .page-link:focus,.dark-mode .dark-mode.accent-info .page-item .page-link:hover{color:#4aa3df}.dark-mode .accent-warning .btn-link,.dark-mode .accent-warning .nav-tabs .nav-link,.dark-mode .accent-warning a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#f39c12}.dark-mode .accent-warning .btn-link:hover,.dark-mode .accent-warning .nav-tabs .nav-link:hover,.dark-mode .accent-warning a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#b06f09}.dark-mode .accent-warning .dropdown-item.active,.dark-mode .accent-warning .dropdown-item:active{background-color:#f39c12;color:#1f2d3d}.dark-mode .accent-warning .custom-control-input:checked~.custom-control-label::before{background-color:#f39c12;border-color:#976008}.dark-mode .accent-warning .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.dark-mode .accent-warning .custom-control-input:focus:not(:checked)~.custom-control-label::before,.dark-mode .accent-warning .custom-file-input:focus~.custom-file-label,.dark-mode .accent-warning .custom-select:focus,.dark-mode .accent-warning .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#f9cf8b}.dark-mode .accent-warning .page-item .page-link{color:#f39c12}.dark-mode .accent-warning .page-item.active .page-link,.dark-mode .accent-warning .page-item.active a{background-color:#f39c12;border-color:#f39c12;color:#fff}.dark-mode .accent-warning .page-item.disabled .page-link,.dark-mode .accent-warning .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.dark-mode .accent-warning [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.dark-mode .accent-warning [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.dark-mode .accent-warning [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.dark-mode .accent-warning [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode .dark-mode.accent-warning .page-item .page-link:focus,.dark-mode .dark-mode.accent-warning .page-item .page-link:hover{color:#f4a62a}.dark-mode .accent-danger .btn-link,.dark-mode .accent-danger .nav-tabs .nav-link,.dark-mode .accent-danger a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#e74c3c}.dark-mode .accent-danger .btn-link:hover,.dark-mode .accent-danger .nav-tabs .nav-link:hover,.dark-mode .accent-danger a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#bf2718}.dark-mode .accent-danger .dropdown-item.active,.dark-mode .accent-danger .dropdown-item:active{background-color:#e74c3c;color:#fff}.dark-mode .accent-danger .custom-control-input:checked~.custom-control-label::before{background-color:#e74c3c;border-color:#a82315}.dark-mode .accent-danger .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.dark-mode .accent-danger .custom-control-input:focus:not(:checked)~.custom-control-label::before,.dark-mode .accent-danger .custom-file-input:focus~.custom-file-label,.dark-mode .accent-danger .custom-select:focus,.dark-mode .accent-danger .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#f5b4ae}.dark-mode .accent-danger .page-item .page-link{color:#e74c3c}.dark-mode .accent-danger .page-item.active .page-link,.dark-mode .accent-danger .page-item.active a{background-color:#e74c3c;border-color:#e74c3c;color:#fff}.dark-mode .accent-danger .page-item.disabled .page-link,.dark-mode .accent-danger .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.dark-mode .accent-danger [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.dark-mode .accent-danger [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.dark-mode .accent-danger [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.dark-mode .accent-danger [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode .dark-mode.accent-danger .page-item .page-link:focus,.dark-mode .dark-mode.accent-danger .page-item .page-link:hover{color:#ea6153}.dark-mode .accent-light .btn-link,.dark-mode .accent-light .nav-tabs .nav-link,.dark-mode .accent-light a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#f8f9fa}.dark-mode .accent-light .btn-link:hover,.dark-mode .accent-light .nav-tabs .nav-link:hover,.dark-mode .accent-light a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#cbd3da}.dark-mode .accent-light .dropdown-item.active,.dark-mode .accent-light .dropdown-item:active{background-color:#f8f9fa;color:#1f2d3d}.dark-mode .accent-light .custom-control-input:checked~.custom-control-label::before{background-color:#f8f9fa;border-color:#bdc6d0}.dark-mode .accent-light .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.dark-mode .accent-light .custom-control-input:focus:not(:checked)~.custom-control-label::before,.dark-mode .accent-light .custom-file-input:focus~.custom-file-label,.dark-mode .accent-light .custom-select:focus,.dark-mode .accent-light .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#fff}.dark-mode .accent-light .page-item .page-link{color:#f8f9fa}.dark-mode .accent-light .page-item.active .page-link,.dark-mode .accent-light .page-item.active a{background-color:#f8f9fa;border-color:#f8f9fa;color:#fff}.dark-mode .accent-light .page-item.disabled .page-link,.dark-mode .accent-light .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.dark-mode .accent-light [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.dark-mode .accent-light [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.dark-mode .accent-light [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.dark-mode .accent-light [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode .dark-mode.accent-light .page-item .page-link:focus,.dark-mode .dark-mode.accent-light .page-item .page-link:hover{color:#fff}.dark-mode .accent-dark .btn-link,.dark-mode .accent-dark .nav-tabs .nav-link,.dark-mode .accent-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#343a40}.dark-mode .accent-dark .btn-link:hover,.dark-mode .accent-dark .nav-tabs .nav-link:hover,.dark-mode .accent-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#121416}.dark-mode .accent-dark .dropdown-item.active,.dark-mode .accent-dark .dropdown-item:active{background-color:#343a40;color:#fff}.dark-mode .accent-dark .custom-control-input:checked~.custom-control-label::before{background-color:#343a40;border-color:#060708}.dark-mode .accent-dark .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.dark-mode .accent-dark .custom-control-input:focus:not(:checked)~.custom-control-label::before,.dark-mode .accent-dark .custom-file-input:focus~.custom-file-label,.dark-mode .accent-dark .custom-select:focus,.dark-mode .accent-dark .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#6d7a86}.dark-mode .accent-dark .page-item .page-link{color:#343a40}.dark-mode .accent-dark .page-item.active .page-link,.dark-mode .accent-dark .page-item.active a{background-color:#343a40;border-color:#343a40;color:#fff}.dark-mode .accent-dark .page-item.disabled .page-link,.dark-mode .accent-dark .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.dark-mode .accent-dark [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.dark-mode .accent-dark [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.dark-mode .accent-dark [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.dark-mode .accent-dark [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode .dark-mode.accent-dark .page-item .page-link:focus,.dark-mode .dark-mode.accent-dark .page-item .page-link:hover{color:#3f474e}.dark-mode [class*=accent-] a.btn-primary{color:#fff}.dark-mode [class*=accent-] a.btn-secondary{color:#fff}.dark-mode [class*=accent-] a.btn-success{color:#fff}.dark-mode [class*=accent-] a.btn-info{color:#fff}.dark-mode [class*=accent-] a.btn-warning{color:#1f2d3d}.dark-mode [class*=accent-] a.btn-danger{color:#fff}.dark-mode [class*=accent-] a.btn-light{color:#1f2d3d}.dark-mode [class*=accent-] a.btn-dark{color:#fff}.dark-mode .accent-lightblue .btn-link,.dark-mode .accent-lightblue .nav-tabs .nav-link,.dark-mode .accent-lightblue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#86bad8}.dark-mode .accent-lightblue .btn-link:hover,.dark-mode .accent-lightblue .nav-tabs .nav-link:hover,.dark-mode .accent-lightblue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#4c99c6}.dark-mode .accent-lightblue .dropdown-item.active,.dark-mode .accent-lightblue .dropdown-item:active{background-color:#86bad8;color:#1f2d3d}.dark-mode .accent-lightblue .custom-control-input:checked~.custom-control-label::before{background-color:#86bad8;border-color:#3c8dbc}.dark-mode .accent-lightblue .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.dark-mode .accent-lightblue .custom-control-input:focus:not(:checked)~.custom-control-label::before,.dark-mode .accent-lightblue .custom-file-input:focus~.custom-file-label,.dark-mode .accent-lightblue .custom-select:focus,.dark-mode .accent-lightblue .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#e6f1f7}.dark-mode .accent-lightblue .page-item .page-link{color:#86bad8}.dark-mode .accent-lightblue .page-item.active .page-link,.dark-mode .accent-lightblue .page-item.active a{background-color:#86bad8;border-color:#86bad8;color:#fff}.dark-mode .accent-lightblue .page-item.disabled .page-link,.dark-mode .accent-lightblue .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.dark-mode .accent-lightblue [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.dark-mode .accent-lightblue [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.dark-mode .accent-lightblue [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.dark-mode .accent-lightblue [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode .dark-mode.accent-lightblue .page-item .page-link:focus,.dark-mode .dark-mode.accent-lightblue .page-item .page-link:hover{color:#99c5de}.dark-mode .accent-navy .btn-link,.dark-mode .accent-navy .nav-tabs .nav-link,.dark-mode .accent-navy a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#002c59}.dark-mode .accent-navy .btn-link:hover,.dark-mode .accent-navy .nav-tabs .nav-link:hover,.dark-mode .accent-navy a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#00060c}.dark-mode .accent-navy .dropdown-item.active,.dark-mode .accent-navy .dropdown-item:active{background-color:#002c59;color:#fff}.dark-mode .accent-navy .custom-control-input:checked~.custom-control-label::before{background-color:#002c59;border-color:#000}.dark-mode .accent-navy .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.dark-mode .accent-navy .custom-control-input:focus:not(:checked)~.custom-control-label::before,.dark-mode .accent-navy .custom-file-input:focus~.custom-file-label,.dark-mode .accent-navy .custom-select:focus,.dark-mode .accent-navy .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#006ad8}.dark-mode .accent-navy .page-item .page-link{color:#002c59}.dark-mode .accent-navy .page-item.active .page-link,.dark-mode .accent-navy .page-item.active a{background-color:#002c59;border-color:#002c59;color:#fff}.dark-mode .accent-navy .page-item.disabled .page-link,.dark-mode .accent-navy .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.dark-mode .accent-navy [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.dark-mode .accent-navy [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.dark-mode .accent-navy [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.dark-mode .accent-navy [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode .dark-mode.accent-navy .page-item .page-link:focus,.dark-mode .dark-mode.accent-navy .page-item .page-link:hover{color:#003872}.dark-mode .accent-olive .btn-link,.dark-mode .accent-olive .nav-tabs .nav-link,.dark-mode .accent-olive a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#74c8a3}.dark-mode .accent-olive .btn-link:hover,.dark-mode .accent-olive .nav-tabs .nav-link:hover,.dark-mode .accent-olive a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#44ab7d}.dark-mode .accent-olive .dropdown-item.active,.dark-mode .accent-olive .dropdown-item:active{background-color:#74c8a3;color:#1f2d3d}.dark-mode .accent-olive .custom-control-input:checked~.custom-control-label::before{background-color:#74c8a3;border-color:#3d9970}.dark-mode .accent-olive .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.dark-mode .accent-olive .custom-control-input:focus:not(:checked)~.custom-control-label::before,.dark-mode .accent-olive .custom-file-input:focus~.custom-file-label,.dark-mode .accent-olive .custom-select:focus,.dark-mode .accent-olive .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#cfecdf}.dark-mode .accent-olive .page-item .page-link{color:#74c8a3}.dark-mode .accent-olive .page-item.active .page-link,.dark-mode .accent-olive .page-item.active a{background-color:#74c8a3;border-color:#74c8a3;color:#fff}.dark-mode .accent-olive .page-item.disabled .page-link,.dark-mode .accent-olive .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.dark-mode .accent-olive [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.dark-mode .accent-olive [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.dark-mode .accent-olive [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.dark-mode .accent-olive [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode .dark-mode.accent-olive .page-item .page-link:focus,.dark-mode .dark-mode.accent-olive .page-item .page-link:hover{color:#87cfaf}.dark-mode .accent-lime .btn-link,.dark-mode .accent-lime .nav-tabs .nav-link,.dark-mode .accent-lime a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#67ffa9}.dark-mode .accent-lime .btn-link:hover,.dark-mode .accent-lime .nav-tabs .nav-link:hover,.dark-mode .accent-lime a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#1bff7e}.dark-mode .accent-lime .dropdown-item.active,.dark-mode .accent-lime .dropdown-item:active{background-color:#67ffa9;color:#1f2d3d}.dark-mode .accent-lime .custom-control-input:checked~.custom-control-label::before{background-color:#67ffa9;border-color:#01ff70}.dark-mode .accent-lime .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.dark-mode .accent-lime .custom-control-input:focus:not(:checked)~.custom-control-label::before,.dark-mode .accent-lime .custom-file-input:focus~.custom-file-label,.dark-mode .accent-lime .custom-select:focus,.dark-mode .accent-lime .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#e7fff1}.dark-mode .accent-lime .page-item .page-link{color:#67ffa9}.dark-mode .accent-lime .page-item.active .page-link,.dark-mode .accent-lime .page-item.active a{background-color:#67ffa9;border-color:#67ffa9;color:#fff}.dark-mode .accent-lime .page-item.disabled .page-link,.dark-mode .accent-lime .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.dark-mode .accent-lime [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.dark-mode .accent-lime [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.dark-mode .accent-lime [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.dark-mode .accent-lime [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode .dark-mode.accent-lime .page-item .page-link:focus,.dark-mode .dark-mode.accent-lime .page-item .page-link:hover{color:#81ffb8}.dark-mode .accent-fuchsia .btn-link,.dark-mode .accent-fuchsia .nav-tabs .nav-link,.dark-mode .accent-fuchsia a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#f672d8}.dark-mode .accent-fuchsia .btn-link:hover,.dark-mode .accent-fuchsia .nav-tabs .nav-link:hover,.dark-mode .accent-fuchsia a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#f22ac5}.dark-mode .accent-fuchsia .dropdown-item.active,.dark-mode .accent-fuchsia .dropdown-item:active{background-color:#f672d8;color:#1f2d3d}.dark-mode .accent-fuchsia .custom-control-input:checked~.custom-control-label::before{background-color:#f672d8;border-color:#f012be}.dark-mode .accent-fuchsia .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.dark-mode .accent-fuchsia .custom-control-input:focus:not(:checked)~.custom-control-label::before,.dark-mode .accent-fuchsia .custom-file-input:focus~.custom-file-label,.dark-mode .accent-fuchsia .custom-select:focus,.dark-mode .accent-fuchsia .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#feeaf9}.dark-mode .accent-fuchsia .page-item .page-link{color:#f672d8}.dark-mode .accent-fuchsia .page-item.active .page-link,.dark-mode .accent-fuchsia .page-item.active a{background-color:#f672d8;border-color:#f672d8;color:#fff}.dark-mode .accent-fuchsia .page-item.disabled .page-link,.dark-mode .accent-fuchsia .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.dark-mode .accent-fuchsia [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.dark-mode .accent-fuchsia [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.dark-mode .accent-fuchsia [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.dark-mode .accent-fuchsia [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode .dark-mode.accent-fuchsia .page-item .page-link:focus,.dark-mode .dark-mode.accent-fuchsia .page-item .page-link:hover{color:#f88adf}.dark-mode .accent-maroon .btn-link,.dark-mode .accent-maroon .nav-tabs .nav-link,.dark-mode .accent-maroon a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#ed6c9b}.dark-mode .accent-maroon .btn-link:hover,.dark-mode .accent-maroon .nav-tabs .nav-link:hover,.dark-mode .accent-maroon a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#e4286d}.dark-mode .accent-maroon .dropdown-item.active,.dark-mode .accent-maroon .dropdown-item:active{background-color:#ed6c9b;color:#1f2d3d}.dark-mode .accent-maroon .custom-control-input:checked~.custom-control-label::before{background-color:#ed6c9b;border-color:#d81b60}.dark-mode .accent-maroon .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.dark-mode .accent-maroon .custom-control-input:focus:not(:checked)~.custom-control-label::before,.dark-mode .accent-maroon .custom-file-input:focus~.custom-file-label,.dark-mode .accent-maroon .custom-select:focus,.dark-mode .accent-maroon .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#fbdee8}.dark-mode .accent-maroon .page-item .page-link{color:#ed6c9b}.dark-mode .accent-maroon .page-item.active .page-link,.dark-mode .accent-maroon .page-item.active a{background-color:#ed6c9b;border-color:#ed6c9b;color:#fff}.dark-mode .accent-maroon .page-item.disabled .page-link,.dark-mode .accent-maroon .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.dark-mode .accent-maroon [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.dark-mode .accent-maroon [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.dark-mode .accent-maroon [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.dark-mode .accent-maroon [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode .dark-mode.accent-maroon .page-item .page-link:focus,.dark-mode .dark-mode.accent-maroon .page-item .page-link:hover{color:#f083ab}.dark-mode .accent-blue .btn-link,.dark-mode .accent-blue .nav-tabs .nav-link,.dark-mode .accent-blue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#3f6791}.dark-mode .accent-blue .btn-link:hover,.dark-mode .accent-blue .nav-tabs .nav-link:hover,.dark-mode .accent-blue a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#28415c}.dark-mode .accent-blue .dropdown-item.active,.dark-mode .accent-blue .dropdown-item:active{background-color:#3f6791;color:#fff}.dark-mode .accent-blue .custom-control-input:checked~.custom-control-label::before{background-color:#3f6791;border-color:#20344a}.dark-mode .accent-blue .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.dark-mode .accent-blue .custom-control-input:focus:not(:checked)~.custom-control-label::before,.dark-mode .accent-blue .custom-file-input:focus~.custom-file-label,.dark-mode .accent-blue .custom-select:focus,.dark-mode .accent-blue .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#85a7ca}.dark-mode .accent-blue .page-item .page-link{color:#3f6791}.dark-mode .accent-blue .page-item.active .page-link,.dark-mode .accent-blue .page-item.active a{background-color:#3f6791;border-color:#3f6791;color:#fff}.dark-mode .accent-blue .page-item.disabled .page-link,.dark-mode .accent-blue .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.dark-mode .accent-blue [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.dark-mode .accent-blue [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.dark-mode .accent-blue [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.dark-mode .accent-blue [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode .dark-mode.accent-blue .page-item .page-link:focus,.dark-mode .dark-mode.accent-blue .page-item .page-link:hover{color:#4774a3}.dark-mode .accent-indigo .btn-link,.dark-mode .accent-indigo .nav-tabs .nav-link,.dark-mode .accent-indigo a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#6610f2}.dark-mode .accent-indigo .btn-link:hover,.dark-mode .accent-indigo .nav-tabs .nav-link:hover,.dark-mode .accent-indigo a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#4709ac}.dark-mode .accent-indigo .dropdown-item.active,.dark-mode .accent-indigo .dropdown-item:active{background-color:#6610f2;color:#fff}.dark-mode .accent-indigo .custom-control-input:checked~.custom-control-label::before{background-color:#6610f2;border-color:#3d0894}.dark-mode .accent-indigo .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.dark-mode .accent-indigo .custom-control-input:focus:not(:checked)~.custom-control-label::before,.dark-mode .accent-indigo .custom-file-input:focus~.custom-file-label,.dark-mode .accent-indigo .custom-select:focus,.dark-mode .accent-indigo .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#b389f9}.dark-mode .accent-indigo .page-item .page-link{color:#6610f2}.dark-mode .accent-indigo .page-item.active .page-link,.dark-mode .accent-indigo .page-item.active a{background-color:#6610f2;border-color:#6610f2;color:#fff}.dark-mode .accent-indigo .page-item.disabled .page-link,.dark-mode .accent-indigo .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.dark-mode .accent-indigo [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.dark-mode .accent-indigo [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.dark-mode .accent-indigo [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.dark-mode .accent-indigo [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode .dark-mode.accent-indigo .page-item .page-link:focus,.dark-mode .dark-mode.accent-indigo .page-item .page-link:hover{color:#7528f3}.dark-mode .accent-purple .btn-link,.dark-mode .accent-purple .nav-tabs .nav-link,.dark-mode .accent-purple a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#6f42c1}.dark-mode .accent-purple .btn-link:hover,.dark-mode .accent-purple .nav-tabs .nav-link:hover,.dark-mode .accent-purple a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#4e2d89}.dark-mode .accent-purple .dropdown-item.active,.dark-mode .accent-purple .dropdown-item:active{background-color:#6f42c1;color:#fff}.dark-mode .accent-purple .custom-control-input:checked~.custom-control-label::before{background-color:#6f42c1;border-color:#432776}.dark-mode .accent-purple .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.dark-mode .accent-purple .custom-control-input:focus:not(:checked)~.custom-control-label::before,.dark-mode .accent-purple .custom-file-input:focus~.custom-file-label,.dark-mode .accent-purple .custom-select:focus,.dark-mode .accent-purple .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#b8a2e0}.dark-mode .accent-purple .page-item .page-link{color:#6f42c1}.dark-mode .accent-purple .page-item.active .page-link,.dark-mode .accent-purple .page-item.active a{background-color:#6f42c1;border-color:#6f42c1;color:#fff}.dark-mode .accent-purple .page-item.disabled .page-link,.dark-mode .accent-purple .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.dark-mode .accent-purple [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.dark-mode .accent-purple [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.dark-mode .accent-purple [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.dark-mode .accent-purple [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode .dark-mode.accent-purple .page-item .page-link:focus,.dark-mode .dark-mode.accent-purple .page-item .page-link:hover{color:#7e55c7}.dark-mode .accent-pink .btn-link,.dark-mode .accent-pink .nav-tabs .nav-link,.dark-mode .accent-pink a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#e83e8c}.dark-mode .accent-pink .btn-link:hover,.dark-mode .accent-pink .nav-tabs .nav-link:hover,.dark-mode .accent-pink a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#c21766}.dark-mode .accent-pink .dropdown-item.active,.dark-mode .accent-pink .dropdown-item:active{background-color:#e83e8c;color:#fff}.dark-mode .accent-pink .custom-control-input:checked~.custom-control-label::before{background-color:#e83e8c;border-color:#ac145a}.dark-mode .accent-pink .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.dark-mode .accent-pink .custom-control-input:focus:not(:checked)~.custom-control-label::before,.dark-mode .accent-pink .custom-file-input:focus~.custom-file-label,.dark-mode .accent-pink .custom-select:focus,.dark-mode .accent-pink .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#f6b0d0}.dark-mode .accent-pink .page-item .page-link{color:#e83e8c}.dark-mode .accent-pink .page-item.active .page-link,.dark-mode .accent-pink .page-item.active a{background-color:#e83e8c;border-color:#e83e8c;color:#fff}.dark-mode .accent-pink .page-item.disabled .page-link,.dark-mode .accent-pink .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.dark-mode .accent-pink [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.dark-mode .accent-pink [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.dark-mode .accent-pink [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.dark-mode .accent-pink [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode .dark-mode.accent-pink .page-item .page-link:focus,.dark-mode .dark-mode.accent-pink .page-item .page-link:hover{color:#eb559a}.dark-mode .accent-red .btn-link,.dark-mode .accent-red .nav-tabs .nav-link,.dark-mode .accent-red a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#e74c3c}.dark-mode .accent-red .btn-link:hover,.dark-mode .accent-red .nav-tabs .nav-link:hover,.dark-mode .accent-red a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#bf2718}.dark-mode .accent-red .dropdown-item.active,.dark-mode .accent-red .dropdown-item:active{background-color:#e74c3c;color:#fff}.dark-mode .accent-red .custom-control-input:checked~.custom-control-label::before{background-color:#e74c3c;border-color:#a82315}.dark-mode .accent-red .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.dark-mode .accent-red .custom-control-input:focus:not(:checked)~.custom-control-label::before,.dark-mode .accent-red .custom-file-input:focus~.custom-file-label,.dark-mode .accent-red .custom-select:focus,.dark-mode .accent-red .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#f5b4ae}.dark-mode .accent-red .page-item .page-link{color:#e74c3c}.dark-mode .accent-red .page-item.active .page-link,.dark-mode .accent-red .page-item.active a{background-color:#e74c3c;border-color:#e74c3c;color:#fff}.dark-mode .accent-red .page-item.disabled .page-link,.dark-mode .accent-red .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.dark-mode .accent-red [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.dark-mode .accent-red [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.dark-mode .accent-red [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.dark-mode .accent-red [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode .dark-mode.accent-red .page-item .page-link:focus,.dark-mode .dark-mode.accent-red .page-item .page-link:hover{color:#ea6153}.dark-mode .accent-orange .btn-link,.dark-mode .accent-orange .nav-tabs .nav-link,.dark-mode .accent-orange a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#fd7e14}.dark-mode .accent-orange .btn-link:hover,.dark-mode .accent-orange .nav-tabs .nav-link:hover,.dark-mode .accent-orange a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#c35a02}.dark-mode .accent-orange .dropdown-item.active,.dark-mode .accent-orange .dropdown-item:active{background-color:#fd7e14;color:#1f2d3d}.dark-mode .accent-orange .custom-control-input:checked~.custom-control-label::before{background-color:#fd7e14;border-color:#aa4e01}.dark-mode .accent-orange .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.dark-mode .accent-orange .custom-control-input:focus:not(:checked)~.custom-control-label::before,.dark-mode .accent-orange .custom-file-input:focus~.custom-file-label,.dark-mode .accent-orange .custom-select:focus,.dark-mode .accent-orange .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#fec392}.dark-mode .accent-orange .page-item .page-link{color:#fd7e14}.dark-mode .accent-orange .page-item.active .page-link,.dark-mode .accent-orange .page-item.active a{background-color:#fd7e14;border-color:#fd7e14;color:#fff}.dark-mode .accent-orange .page-item.disabled .page-link,.dark-mode .accent-orange .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.dark-mode .accent-orange [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.dark-mode .accent-orange [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.dark-mode .accent-orange [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.dark-mode .accent-orange [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode .dark-mode.accent-orange .page-item .page-link:focus,.dark-mode .dark-mode.accent-orange .page-item .page-link:hover{color:#fd8c2d}.dark-mode .accent-yellow .btn-link,.dark-mode .accent-yellow .nav-tabs .nav-link,.dark-mode .accent-yellow a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#f39c12}.dark-mode .accent-yellow .btn-link:hover,.dark-mode .accent-yellow .nav-tabs .nav-link:hover,.dark-mode .accent-yellow a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#b06f09}.dark-mode .accent-yellow .dropdown-item.active,.dark-mode .accent-yellow .dropdown-item:active{background-color:#f39c12;color:#1f2d3d}.dark-mode .accent-yellow .custom-control-input:checked~.custom-control-label::before{background-color:#f39c12;border-color:#976008}.dark-mode .accent-yellow .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.dark-mode .accent-yellow .custom-control-input:focus:not(:checked)~.custom-control-label::before,.dark-mode .accent-yellow .custom-file-input:focus~.custom-file-label,.dark-mode .accent-yellow .custom-select:focus,.dark-mode .accent-yellow .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#f9cf8b}.dark-mode .accent-yellow .page-item .page-link{color:#f39c12}.dark-mode .accent-yellow .page-item.active .page-link,.dark-mode .accent-yellow .page-item.active a{background-color:#f39c12;border-color:#f39c12;color:#fff}.dark-mode .accent-yellow .page-item.disabled .page-link,.dark-mode .accent-yellow .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.dark-mode .accent-yellow [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.dark-mode .accent-yellow [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.dark-mode .accent-yellow [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.dark-mode .accent-yellow [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode .dark-mode.accent-yellow .page-item .page-link:focus,.dark-mode .dark-mode.accent-yellow .page-item .page-link:hover{color:#f4a62a}.dark-mode .accent-green .btn-link,.dark-mode .accent-green .nav-tabs .nav-link,.dark-mode .accent-green a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#00bc8c}.dark-mode .accent-green .btn-link:hover,.dark-mode .accent-green .nav-tabs .nav-link:hover,.dark-mode .accent-green a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#007053}.dark-mode .accent-green .dropdown-item.active,.dark-mode .accent-green .dropdown-item:active{background-color:#00bc8c;color:#fff}.dark-mode .accent-green .custom-control-input:checked~.custom-control-label::before{background-color:#00bc8c;border-color:#005640}.dark-mode .accent-green .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.dark-mode .accent-green .custom-control-input:focus:not(:checked)~.custom-control-label::before,.dark-mode .accent-green .custom-file-input:focus~.custom-file-label,.dark-mode .accent-green .custom-select:focus,.dark-mode .accent-green .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#3dffcd}.dark-mode .accent-green .page-item .page-link{color:#00bc8c}.dark-mode .accent-green .page-item.active .page-link,.dark-mode .accent-green .page-item.active a{background-color:#00bc8c;border-color:#00bc8c;color:#fff}.dark-mode .accent-green .page-item.disabled .page-link,.dark-mode .accent-green .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.dark-mode .accent-green [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.dark-mode .accent-green [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.dark-mode .accent-green [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.dark-mode .accent-green [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode .dark-mode.accent-green .page-item .page-link:focus,.dark-mode .dark-mode.accent-green .page-item .page-link:hover{color:#00d69f}.dark-mode .accent-teal .btn-link,.dark-mode .accent-teal .nav-tabs .nav-link,.dark-mode .accent-teal a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#20c997}.dark-mode .accent-teal .btn-link:hover,.dark-mode .accent-teal .nav-tabs .nav-link:hover,.dark-mode .accent-teal a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#158765}.dark-mode .accent-teal .dropdown-item.active,.dark-mode .accent-teal .dropdown-item:active{background-color:#20c997;color:#fff}.dark-mode .accent-teal .custom-control-input:checked~.custom-control-label::before{background-color:#20c997;border-color:#127155}.dark-mode .accent-teal .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.dark-mode .accent-teal .custom-control-input:focus:not(:checked)~.custom-control-label::before,.dark-mode .accent-teal .custom-file-input:focus~.custom-file-label,.dark-mode .accent-teal .custom-select:focus,.dark-mode .accent-teal .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#7eeaca}.dark-mode .accent-teal .page-item .page-link{color:#20c997}.dark-mode .accent-teal .page-item.active .page-link,.dark-mode .accent-teal .page-item.active a{background-color:#20c997;border-color:#20c997;color:#fff}.dark-mode .accent-teal .page-item.disabled .page-link,.dark-mode .accent-teal .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.dark-mode .accent-teal [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.dark-mode .accent-teal [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.dark-mode .accent-teal [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.dark-mode .accent-teal [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode .dark-mode.accent-teal .page-item .page-link:focus,.dark-mode .dark-mode.accent-teal .page-item .page-link:hover{color:#26dca6}.dark-mode .accent-cyan .btn-link,.dark-mode .accent-cyan .nav-tabs .nav-link,.dark-mode .accent-cyan a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#3498db}.dark-mode .accent-cyan .btn-link:hover,.dark-mode .accent-cyan .nav-tabs .nav-link:hover,.dark-mode .accent-cyan a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#1d6fa5}.dark-mode .accent-cyan .dropdown-item.active,.dark-mode .accent-cyan .dropdown-item:active{background-color:#3498db;color:#fff}.dark-mode .accent-cyan .custom-control-input:checked~.custom-control-label::before{background-color:#3498db;border-color:#196090}.dark-mode .accent-cyan .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.dark-mode .accent-cyan .custom-control-input:focus:not(:checked)~.custom-control-label::before,.dark-mode .accent-cyan .custom-file-input:focus~.custom-file-label,.dark-mode .accent-cyan .custom-select:focus,.dark-mode .accent-cyan .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#a0cfee}.dark-mode .accent-cyan .page-item .page-link{color:#3498db}.dark-mode .accent-cyan .page-item.active .page-link,.dark-mode .accent-cyan .page-item.active a{background-color:#3498db;border-color:#3498db;color:#fff}.dark-mode .accent-cyan .page-item.disabled .page-link,.dark-mode .accent-cyan .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.dark-mode .accent-cyan [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.dark-mode .accent-cyan [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.dark-mode .accent-cyan [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.dark-mode .accent-cyan [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode .dark-mode.accent-cyan .page-item .page-link:focus,.dark-mode .dark-mode.accent-cyan .page-item .page-link:hover{color:#4aa3df}.dark-mode .accent-white .btn-link,.dark-mode .accent-white .nav-tabs .nav-link,.dark-mode .accent-white a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#fff}.dark-mode .accent-white .btn-link:hover,.dark-mode .accent-white .nav-tabs .nav-link:hover,.dark-mode .accent-white a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#d9d9d9}.dark-mode .accent-white .dropdown-item.active,.dark-mode .accent-white .dropdown-item:active{background-color:#fff;color:#1f2d3d}.dark-mode .accent-white .custom-control-input:checked~.custom-control-label::before{background-color:#fff;border-color:#ccc}.dark-mode .accent-white .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.dark-mode .accent-white .custom-control-input:focus:not(:checked)~.custom-control-label::before,.dark-mode .accent-white .custom-file-input:focus~.custom-file-label,.dark-mode .accent-white .custom-select:focus,.dark-mode .accent-white .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#fff}.dark-mode .accent-white .page-item .page-link{color:#fff}.dark-mode .accent-white .page-item.active .page-link,.dark-mode .accent-white .page-item.active a{background-color:#fff;border-color:#fff;color:#fff}.dark-mode .accent-white .page-item.disabled .page-link,.dark-mode .accent-white .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.dark-mode .accent-white [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.dark-mode .accent-white [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.dark-mode .accent-white [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.dark-mode .accent-white [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode .dark-mode.accent-white .page-item .page-link:focus,.dark-mode .dark-mode.accent-white .page-item .page-link:hover{color:#fff}.dark-mode .accent-gray .btn-link,.dark-mode .accent-gray .nav-tabs .nav-link,.dark-mode .accent-gray a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#6c757d}.dark-mode .accent-gray .btn-link:hover,.dark-mode .accent-gray .nav-tabs .nav-link:hover,.dark-mode .accent-gray a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#494f54}.dark-mode .accent-gray .dropdown-item.active,.dark-mode .accent-gray .dropdown-item:active{background-color:#6c757d;color:#fff}.dark-mode .accent-gray .custom-control-input:checked~.custom-control-label::before{background-color:#6c757d;border-color:#3d4246}.dark-mode .accent-gray .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.dark-mode .accent-gray .custom-control-input:focus:not(:checked)~.custom-control-label::before,.dark-mode .accent-gray .custom-file-input:focus~.custom-file-label,.dark-mode .accent-gray .custom-select:focus,.dark-mode .accent-gray .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#afb5ba}.dark-mode .accent-gray .page-item .page-link{color:#6c757d}.dark-mode .accent-gray .page-item.active .page-link,.dark-mode .accent-gray .page-item.active a{background-color:#6c757d;border-color:#6c757d;color:#fff}.dark-mode .accent-gray .page-item.disabled .page-link,.dark-mode .accent-gray .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.dark-mode .accent-gray [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.dark-mode .accent-gray [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.dark-mode .accent-gray [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.dark-mode .accent-gray [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode .dark-mode.accent-gray .page-item .page-link:focus,.dark-mode .dark-mode.accent-gray .page-item .page-link:hover{color:#78828a}.dark-mode .accent-gray-dark .btn-link,.dark-mode .accent-gray-dark .nav-tabs .nav-link,.dark-mode .accent-gray-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#343a40}.dark-mode .accent-gray-dark .btn-link:hover,.dark-mode .accent-gray-dark .nav-tabs .nav-link:hover,.dark-mode .accent-gray-dark a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#121416}.dark-mode .accent-gray-dark .dropdown-item.active,.dark-mode .accent-gray-dark .dropdown-item:active{background-color:#343a40;color:#fff}.dark-mode .accent-gray-dark .custom-control-input:checked~.custom-control-label::before{background-color:#343a40;border-color:#060708}.dark-mode .accent-gray-dark .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.dark-mode .accent-gray-dark .custom-control-input:focus:not(:checked)~.custom-control-label::before,.dark-mode .accent-gray-dark .custom-file-input:focus~.custom-file-label,.dark-mode .accent-gray-dark .custom-select:focus,.dark-mode .accent-gray-dark .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#6d7a86}.dark-mode .accent-gray-dark .page-item .page-link{color:#343a40}.dark-mode .accent-gray-dark .page-item.active .page-link,.dark-mode .accent-gray-dark .page-item.active a{background-color:#343a40;border-color:#343a40;color:#fff}.dark-mode .accent-gray-dark .page-item.disabled .page-link,.dark-mode .accent-gray-dark .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.dark-mode .accent-gray-dark [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.dark-mode .accent-gray-dark [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.dark-mode .accent-gray-dark [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.dark-mode .accent-gray-dark [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode .dark-mode.accent-gray-dark .page-item .page-link:focus,.dark-mode .dark-mode.accent-gray-dark .page-item .page-link:hover{color:#3f474e}.dark-mode .border-dark{border-color:#4b545c!important} +/* pages */ +.close,.mailbox-attachment-close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover,.mailbox-attachment-close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover,.mailbox-attachment-close:not(:disabled):not(.disabled):focus,.mailbox-attachment-close:not(:disabled):not(.disabled):hover{opacity:.75}button.close,button.mailbox-attachment-close{padding:0;background-color:transparent;border:0}a.close.disabled,a.disabled.mailbox-attachment-close{pointer-events:none}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@-webkit-keyframes fadeOut{from{opacity:1}to{opacity:0}}@keyframes fadeOut{from{opacity:1}to{opacity:0}}@-webkit-keyframes shake{0%{-webkit-transform:translate(2px,1px) rotate(0);transform:translate(2px,1px) rotate(0)}10%{-webkit-transform:translate(-1px,-2px) rotate(-2deg);transform:translate(-1px,-2px) rotate(-2deg)}20%{-webkit-transform:translate(-3px,0) rotate(3deg);transform:translate(-3px,0) rotate(3deg)}30%{-webkit-transform:translate(0,2px) rotate(0);transform:translate(0,2px) rotate(0)}40%{-webkit-transform:translate(1px,-1px) rotate(1deg);transform:translate(1px,-1px) rotate(1deg)}50%{-webkit-transform:translate(-1px,2px) rotate(-1deg);transform:translate(-1px,2px) rotate(-1deg)}60%{-webkit-transform:translate(-3px,1px) rotate(0);transform:translate(-3px,1px) rotate(0)}70%{-webkit-transform:translate(2px,1px) rotate(-2deg);transform:translate(2px,1px) rotate(-2deg)}80%{-webkit-transform:translate(-1px,-1px) rotate(4deg);transform:translate(-1px,-1px) rotate(4deg)}90%{-webkit-transform:translate(2px,2px) rotate(0);transform:translate(2px,2px) rotate(0)}100%{-webkit-transform:translate(1px,-2px) rotate(-1deg);transform:translate(1px,-2px) rotate(-1deg)}}@keyframes shake{0%{-webkit-transform:translate(2px,1px) rotate(0);transform:translate(2px,1px) rotate(0)}10%{-webkit-transform:translate(-1px,-2px) rotate(-2deg);transform:translate(-1px,-2px) rotate(-2deg)}20%{-webkit-transform:translate(-3px,0) rotate(3deg);transform:translate(-3px,0) rotate(3deg)}30%{-webkit-transform:translate(0,2px) rotate(0);transform:translate(0,2px) rotate(0)}40%{-webkit-transform:translate(1px,-1px) rotate(1deg);transform:translate(1px,-1px) rotate(1deg)}50%{-webkit-transform:translate(-1px,2px) rotate(-1deg);transform:translate(-1px,2px) rotate(-1deg)}60%{-webkit-transform:translate(-3px,1px) rotate(0);transform:translate(-3px,1px) rotate(0)}70%{-webkit-transform:translate(2px,1px) rotate(-2deg);transform:translate(2px,1px) rotate(-2deg)}80%{-webkit-transform:translate(-1px,-1px) rotate(4deg);transform:translate(-1px,-1px) rotate(4deg)}90%{-webkit-transform:translate(2px,2px) rotate(0);transform:translate(2px,2px) rotate(0)}100%{-webkit-transform:translate(1px,-2px) rotate(-1deg);transform:translate(1px,-2px) rotate(-1deg)}}@-webkit-keyframes wobble{0%{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}100%{-webkit-transform:none;transform:none}}@keyframes wobble{0%{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}100%{-webkit-transform:none;transform:none}}.mailbox-messages>.table{margin:0}.mailbox-controls{padding:5px}.mailbox-controls.with-border{border-bottom:1px solid rgba(0,0,0,.125)}.mailbox-read-info{border-bottom:1px solid rgba(0,0,0,.125);padding:10px}.mailbox-read-info h3{font-size:20px;margin:0}.mailbox-read-info h5{margin:0;padding:5px 0 0}.mailbox-read-time{color:#999;font-size:13px}.mailbox-read-message{padding:10px}.mailbox-attachments{padding-left:0;list-style:none}.mailbox-attachments li{border:1px solid #eee;float:left;margin-bottom:10px;margin-right:10px;width:200px}.mailbox-attachment-name{color:#666;font-weight:700}.mailbox-attachment-icon,.mailbox-attachment-info,.mailbox-attachment-size{display:block}.mailbox-attachment-info{background-color:#f8f9fa;padding:10px}.mailbox-attachment-size{color:#999;font-size:12px}.mailbox-attachment-size>span{display:inline-block;padding-top:.75rem}.mailbox-attachment-icon{color:#666;font-size:65px;max-height:132.5px;padding:20px 10px;text-align:center}.mailbox-attachment-icon.has-img{padding:0}.mailbox-attachment-icon.has-img>img{height:auto;max-width:100%}.lockscreen{background-color:#e9ecef}.lockscreen .lockscreen-name{font-weight:600;text-align:center}.lockscreen-logo{font-size:35px;font-weight:300;margin-bottom:25px;text-align:center}.lockscreen-logo a{color:#495057}.lockscreen-wrapper{margin:0 auto;margin-top:10%;max-width:400px}.lockscreen-item{border-radius:4px;background-color:#fff;margin:10px auto 30px;padding:0;position:relative;width:290px}.lockscreen-image{border-radius:50%;background-color:#fff;left:-10px;padding:5px;position:absolute;top:-25px;z-index:10}.lockscreen-image>img{border-radius:50%;height:70px;width:70px}.lockscreen-credentials{margin-left:70px}.lockscreen-credentials .form-control{border:0}.lockscreen-credentials .btn{background-color:#fff;border:0;padding:0 10px}.lockscreen-footer{margin-top:10px}.dark-mode .lockscreen-item{background-color:#343a40}.dark-mode .lockscreen-logo a{color:#fff}.dark-mode .lockscreen-credentials .btn{background-color:#343a40}.dark-mode .lockscreen-image{background-color:#6c757d}.login-logo,.register-logo{font-size:2.1rem;font-weight:300;margin-bottom:.9rem;text-align:center}.login-logo a,.register-logo a{color:#495057}.login-page,.register-page{-ms-flex-align:center;align-items:center;background-color:#e9ecef;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;height:100vh;-ms-flex-pack:center;justify-content:center}.login-box,.register-box{width:360px}@media (max-width:576px){.login-box,.register-box{margin-top:.5rem;width:90%}}.login-box .card,.register-box .card{margin-bottom:0}.login-card-body,.register-card-body{background-color:#fff;border-top:0;color:#666;padding:20px}.login-card-body .input-group .form-control,.register-card-body .input-group .form-control{border-right:0}.login-card-body .input-group .form-control:focus,.register-card-body .input-group .form-control:focus{box-shadow:none}.login-card-body .input-group .form-control:focus~.input-group-append .input-group-text,.login-card-body .input-group .form-control:focus~.input-group-prepend .input-group-text,.register-card-body .input-group .form-control:focus~.input-group-append .input-group-text,.register-card-body .input-group .form-control:focus~.input-group-prepend .input-group-text{border-color:#80bdff}.login-card-body .input-group .form-control.is-valid:focus,.register-card-body .input-group .form-control.is-valid:focus{box-shadow:none}.login-card-body .input-group .form-control.is-valid~.input-group-append .input-group-text,.login-card-body .input-group .form-control.is-valid~.input-group-prepend .input-group-text,.register-card-body .input-group .form-control.is-valid~.input-group-append .input-group-text,.register-card-body .input-group .form-control.is-valid~.input-group-prepend .input-group-text{border-color:#28a745}.login-card-body .input-group .form-control.is-invalid:focus,.register-card-body .input-group .form-control.is-invalid:focus{box-shadow:none}.login-card-body .input-group .form-control.is-invalid~.input-group-append .input-group-text,.register-card-body .input-group .form-control.is-invalid~.input-group-append .input-group-text{border-color:#dc3545}.login-card-body .input-group .input-group-text,.register-card-body .input-group .input-group-text{background-color:transparent;border-bottom-right-radius:.25rem;border-left:0;border-top-right-radius:.25rem;color:#777;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.login-box-msg,.register-box-msg{margin:0;padding:0 20px 20px;text-align:center}.social-auth-links{margin:10px 0}.dark-mode .login-card-body,.dark-mode .register-card-body{background-color:#343a40;border-color:#6c757d;color:#fff}.dark-mode .login-logo a,.dark-mode .register-logo a{color:#fff}.error-page{margin:20px auto 0;width:600px}@media (max-width:767.98px){.error-page{width:100%}}.error-page>.headline{float:left;font-size:100px;font-weight:300}@media (max-width:767.98px){.error-page>.headline{float:none;text-align:center}}.error-page>.error-content{display:block;margin-left:190px}@media (max-width:767.98px){.error-page>.error-content{margin-left:0}}.error-page>.error-content>h3{font-size:25px;font-weight:300}@media (max-width:767.98px){.error-page>.error-content>h3{text-align:center}}.invoice{background-color:#fff;border:1px solid rgba(0,0,0,.125);position:relative}.invoice-title{margin-top:0}.dark-mode .invoice{background-color:#343a40}.profile-user-img{border:3px solid #adb5bd;margin:0 auto;padding:3px;width:100px}.profile-username{font-size:21px;margin-top:5px}.post{border-bottom:1px solid #adb5bd;color:#666;margin-bottom:15px;padding-bottom:15px}.post:last-of-type{border-bottom:0;margin-bottom:0;padding-bottom:0}.post .user-block{margin-bottom:15px;width:100%}.post .row{width:100%}.dark-mode .post{color:#fff;border-color:#6c757d}.product-image{max-width:100%;height:auto;width:100%}.product-image-thumbs{-ms-flex-align:stretch;align-items:stretch;display:-ms-flexbox;display:flex;margin-top:2rem}.product-image-thumb{box-shadow:0 1px 2px rgba(0,0,0,.075);border-radius:.25rem;background-color:#fff;border:1px solid #dee2e6;display:-ms-flexbox;display:flex;margin-right:1rem;max-width:7rem;padding:.5rem}.product-image-thumb img{max-width:100%;height:auto;-ms-flex-item-align:center;align-self:center}.product-image-thumb:hover{opacity:.5}.product-share a{margin-right:.5rem}.projects td{vertical-align:middle}.projects .list-inline{margin-bottom:0}.projects .table-avatar img,.projects img.table-avatar{border-radius:50%;display:inline;width:2.5rem}.projects .project-state{text-align:center}body.iframe-mode .main-sidebar{display:none}body.iframe-mode .content-wrapper{margin-left:0!important;margin-top:0!important;padding-bottom:0!important}body.iframe-mode .main-footer,body.iframe-mode .main-header{display:none}body.iframe-mode-fullscreen{overflow:hidden}body.iframe-mode-fullscreen.layout-navbar-fixed .wrapper .content-wrapper{margin-top:0!important}.content-wrapper{height:100%}.content-wrapper.iframe-mode .btn-iframe-close{color:#dc3545;position:absolute;line-height:1;right:.125rem;top:.125rem;z-index:10;visibility:hidden}.content-wrapper.iframe-mode .btn-iframe-close:focus,.content-wrapper.iframe-mode .btn-iframe-close:hover{-webkit-animation-name:fadeIn;animation-name:fadeIn;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;visibility:visible}@media (hover:none) and (pointer:coarse){.content-wrapper.iframe-mode .btn-iframe-close{visibility:visible}}.content-wrapper.iframe-mode .navbar-nav{overflow-y:auto;width:100%}.content-wrapper.iframe-mode .navbar-nav .nav-link{white-space:nowrap}.content-wrapper.iframe-mode .navbar-nav .nav-item{position:relative}.content-wrapper.iframe-mode .navbar-nav .nav-item:focus .btn-iframe-close,.content-wrapper.iframe-mode .navbar-nav .nav-item:hover .btn-iframe-close{-webkit-animation-name:fadeIn;animation-name:fadeIn;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;visibility:visible}@media (hover:none) and (pointer:coarse){.content-wrapper.iframe-mode .navbar-nav .nav-item:focus .btn-iframe-close,.content-wrapper.iframe-mode .navbar-nav .nav-item:hover .btn-iframe-close{visibility:visible}}.content-wrapper.iframe-mode .tab-content{position:relative}.content-wrapper.iframe-mode .tab-pane+.tab-empty{display:none}.content-wrapper.iframe-mode .tab-empty{width:100%;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.content-wrapper.iframe-mode .tab-loading{position:absolute;top:0;left:0;width:100%;display:none;background-color:#f4f6f9}.content-wrapper.iframe-mode .tab-loading>div{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;width:100%;height:100%}.content-wrapper.iframe-mode iframe{border:0;width:100%;height:100%;margin-bottom:-8px}.content-wrapper.iframe-mode iframe .content-wrapper{padding-bottom:0!important}body.iframe-mode-fullscreen .content-wrapper.iframe-mode{position:absolute;left:0;top:0;right:0;bottom:0;margin-left:0!important;height:100%;min-height:100%;z-index:1048}.permanent-btn-iframe-close .btn-iframe-close{-webkit-animation:none!important;animation:none!important;visibility:visible!important;opacity:1}.dark-mode .content-wrapper.iframe-mode .tab-loading{background-color:#343a40}.content-wrapper.kanban{height:1px}.content-wrapper.kanban .content{height:100%;overflow-x:auto;overflow-y:hidden}.content-wrapper.kanban .content .container,.content-wrapper.kanban .content .container-fluid{width:-webkit-max-content;width:-moz-max-content;width:max-content;display:-ms-flexbox;display:flex;-ms-flex-align:stretch;align-items:stretch}.content-wrapper.kanban .content-header+.content{height:calc(100% - ((2 * 15px) + (1.8rem * 1.2)))}.content-wrapper.kanban .card .card-body{padding:.5rem}.content-wrapper.kanban .card.card-row{width:340px;display:inline-block;margin:0 .5rem}.content-wrapper.kanban .card.card-row:first-child{margin-left:0}.content-wrapper.kanban .card.card-row .card-body{height:calc(100% - (12px + (1.8rem * 1.2) + .5rem));overflow-y:auto}.content-wrapper.kanban .card.card-row .card:last-child{margin-bottom:0;border-bottom-width:1px}.content-wrapper.kanban .card.card-row .card .card-header{padding:.5rem .75rem}.content-wrapper.kanban .card.card-row .card .card-body{padding:.75rem}.content-wrapper.kanban .btn-tool.btn-link{text-decoration:underline;padding-left:0;padding-right:0} +/* components */ +@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@-webkit-keyframes fadeOut{from{opacity:1}to{opacity:0}}@keyframes fadeOut{from{opacity:1}to{opacity:0}}@-webkit-keyframes shake{0%{-webkit-transform:translate(2px,1px) rotate(0);transform:translate(2px,1px) rotate(0)}10%{-webkit-transform:translate(-1px,-2px) rotate(-2deg);transform:translate(-1px,-2px) rotate(-2deg)}20%{-webkit-transform:translate(-3px,0) rotate(3deg);transform:translate(-3px,0) rotate(3deg)}30%{-webkit-transform:translate(0,2px) rotate(0);transform:translate(0,2px) rotate(0)}40%{-webkit-transform:translate(1px,-1px) rotate(1deg);transform:translate(1px,-1px) rotate(1deg)}50%{-webkit-transform:translate(-1px,2px) rotate(-1deg);transform:translate(-1px,2px) rotate(-1deg)}60%{-webkit-transform:translate(-3px,1px) rotate(0);transform:translate(-3px,1px) rotate(0)}70%{-webkit-transform:translate(2px,1px) rotate(-2deg);transform:translate(2px,1px) rotate(-2deg)}80%{-webkit-transform:translate(-1px,-1px) rotate(4deg);transform:translate(-1px,-1px) rotate(4deg)}90%{-webkit-transform:translate(2px,2px) rotate(0);transform:translate(2px,2px) rotate(0)}100%{-webkit-transform:translate(1px,-2px) rotate(-1deg);transform:translate(1px,-2px) rotate(-1deg)}}@keyframes shake{0%{-webkit-transform:translate(2px,1px) rotate(0);transform:translate(2px,1px) rotate(0)}10%{-webkit-transform:translate(-1px,-2px) rotate(-2deg);transform:translate(-1px,-2px) rotate(-2deg)}20%{-webkit-transform:translate(-3px,0) rotate(3deg);transform:translate(-3px,0) rotate(3deg)}30%{-webkit-transform:translate(0,2px) rotate(0);transform:translate(0,2px) rotate(0)}40%{-webkit-transform:translate(1px,-1px) rotate(1deg);transform:translate(1px,-1px) rotate(1deg)}50%{-webkit-transform:translate(-1px,2px) rotate(-1deg);transform:translate(-1px,2px) rotate(-1deg)}60%{-webkit-transform:translate(-3px,1px) rotate(0);transform:translate(-3px,1px) rotate(0)}70%{-webkit-transform:translate(2px,1px) rotate(-2deg);transform:translate(2px,1px) rotate(-2deg)}80%{-webkit-transform:translate(-1px,-1px) rotate(4deg);transform:translate(-1px,-1px) rotate(4deg)}90%{-webkit-transform:translate(2px,2px) rotate(0);transform:translate(2px,2px) rotate(0)}100%{-webkit-transform:translate(1px,-2px) rotate(-1deg);transform:translate(1px,-2px) rotate(-1deg)}}@-webkit-keyframes wobble{0%{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}100%{-webkit-transform:none;transform:none}}@keyframes wobble{0%{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}100%{-webkit-transform:none;transform:none}}.form-group.has-icon{position:relative}.form-group.has-icon .form-control{padding-right:35px}.form-group.has-icon .form-icon{background-color:transparent;border:0;cursor:pointer;font-size:1rem;padding:.375rem .75rem;position:absolute;right:3px;top:0}.btn-group-vertical .btn.btn-flat:first-of-type,.btn-group-vertical .btn.btn-flat:last-of-type{border-radius:0}.form-control-feedback.fa,.form-control-feedback.fab,.form-control-feedback.fad,.form-control-feedback.fal,.form-control-feedback.far,.form-control-feedback.fas,.form-control-feedback.ion,.form-control-feedback.svg-inline--fa{line-height:calc(2.25rem + 2px)}.input-group-lg+.form-control-feedback.fa,.input-group-lg+.form-control-feedback.fab,.input-group-lg+.form-control-feedback.fad,.input-group-lg+.form-control-feedback.fal,.input-group-lg+.form-control-feedback.far,.input-group-lg+.form-control-feedback.fas,.input-group-lg+.form-control-feedback.ion,.input-group-lg+.form-control-feedback.svg-inline--fa,.input-lg+.form-control-feedback.fa,.input-lg+.form-control-feedback.fab,.input-lg+.form-control-feedback.fad,.input-lg+.form-control-feedback.fal,.input-lg+.form-control-feedback.far,.input-lg+.form-control-feedback.fas,.input-lg+.form-control-feedback.ion,.input-lg+.form-control-feedback.svg-inline--fa{line-height:calc(2.875rem + 2px)}.form-group-lg .form-control+.form-control-feedback.fa,.form-group-lg .form-control+.form-control-feedback.fab,.form-group-lg .form-control+.form-control-feedback.fad,.form-group-lg .form-control+.form-control-feedback.fal,.form-group-lg .form-control+.form-control-feedback.far,.form-group-lg .form-control+.form-control-feedback.fas,.form-group-lg .form-control+.form-control-feedback.ion,.form-group-lg .form-control+.form-control-feedback.svg-inline--fa{line-height:calc(2.875rem + 2px)}.input-group-sm+.form-control-feedback.fa,.input-group-sm+.form-control-feedback.fab,.input-group-sm+.form-control-feedback.fad,.input-group-sm+.form-control-feedback.fal,.input-group-sm+.form-control-feedback.far,.input-group-sm+.form-control-feedback.fas,.input-group-sm+.form-control-feedback.ion,.input-group-sm+.form-control-feedback.svg-inline--fa,.input-sm+.form-control-feedback.fa,.input-sm+.form-control-feedback.fab,.input-sm+.form-control-feedback.fad,.input-sm+.form-control-feedback.fal,.input-sm+.form-control-feedback.far,.input-sm+.form-control-feedback.fas,.input-sm+.form-control-feedback.ion,.input-sm+.form-control-feedback.svg-inline--fa{line-height:calc(1.8125rem + 2px)}.form-group-sm .form-control+.form-control-feedback.fa,.form-group-sm .form-control+.form-control-feedback.fab,.form-group-sm .form-control+.form-control-feedback.fad,.form-group-sm .form-control+.form-control-feedback.fal,.form-group-sm .form-control+.form-control-feedback.far,.form-group-sm .form-control+.form-control-feedback.fas,.form-group-sm .form-control+.form-control-feedback.ion,.form-group-sm .form-control+.form-control-feedback.svg-inline--fa{line-height:calc(1.8125rem + 2px)}label:not(.form-check-label):not(.custom-file-label){font-weight:700}.warning-feedback{font-size:80%;color:#ffc107;display:none;margin-top:.25rem;width:100%}.warning-tooltip{border-radius:.25rem;font-size:.875rem;background-color:rgba(255,193,7,.9);color:#1f2d3d;display:none;line-height:1.5;margin-top:.1rem;max-width:100%;padding:.25rem .5rem;position:absolute;top:100%;z-index:5}.form-control.is-warning{border-color:#ffc107}.form-control.is-warning:focus{border-color:#ffc107;box-shadow:0 0 0 0 rgba(255,193,7,.25)}.form-control.is-warning~.warning-feedback,.form-control.is-warning~.warning-tooltip{display:block}textarea.form-control.is-warning{padding-right:2.25rem;background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-warning{border-color:#ffc107}.custom-select.is-warning:focus{border-color:#ffc107;box-shadow:0 0 0 0 rgba(255,193,7,.25)}.custom-select.is-warning~.warning-feedback,.custom-select.is-warning~.warning-tooltip{display:block}.form-control-file.is-warning~.warning-feedback,.form-control-file.is-warning~.warning-tooltip{display:block}.form-check-input.is-warning~.form-check-label{color:#ffc107}.form-check-input.is-warning~.warning-feedback,.form-check-input.is-warning~.warning-tooltip{display:block}.custom-control-input.is-warning~.custom-control-label{color:#ffc107}.custom-control-input.is-warning~.custom-control-label::before{border-color:#ffc107}.custom-control-input.is-warning~.warning-feedback,.custom-control-input.is-warning~.warning-tooltip{display:block}.custom-control-input.is-warning:checked~.custom-control-label::before{background-color:#ffce3a;border-color:#ffce3a}.custom-control-input.is-warning:focus~.custom-control-label::before{box-shadow:0 0 0 0 rgba(255,193,7,.25)}.custom-control-input.is-warning:focus:not(:checked)~.custom-control-label::before{border-color:#ffc107}.custom-file-input.is-warning~.custom-file-label{border-color:#ffc107}.custom-file-input.is-warning~.warning-feedback,.custom-file-input.is-warning~.warning-tooltip{display:block}.custom-file-input.is-warning:focus~.custom-file-label{border-color:#ffc107;box-shadow:0 0 0 0 rgba(255,193,7,.25)}body.text-sm .input-group-text{font-size:.875rem}.custom-select.form-control-border,.form-control.form-control-border{border-top:0;border-left:0;border-right:0;border-radius:0;box-shadow:inherit}.custom-select.form-control-border.border-width-2,.form-control.form-control-border.border-width-2{border-bottom-width:2px}.custom-select.form-control-border.border-width-3,.form-control.form-control-border.border-width-3{border-bottom-width:3px}.custom-switch.custom-switch-off-primary .custom-control-input~.custom-control-label::before{background-color:#007bff;border-color:#004a99}.custom-switch.custom-switch-off-primary .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,123,255,.25)}.custom-switch.custom-switch-off-primary .custom-control-input~.custom-control-label::after{background-color:#003e80}.custom-switch.custom-switch-on-primary .custom-control-input:checked~.custom-control-label::before{background-color:#007bff;border-color:#004a99}.custom-switch.custom-switch-on-primary .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,123,255,.25)}.custom-switch.custom-switch-on-primary .custom-control-input:checked~.custom-control-label::after{background-color:#99caff}.custom-switch.custom-switch-off-secondary .custom-control-input~.custom-control-label::before{background-color:#6c757d;border-color:#3d4246}.custom-switch.custom-switch-off-secondary .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(108,117,125,.25)}.custom-switch.custom-switch-off-secondary .custom-control-input~.custom-control-label::after{background-color:#313539}.custom-switch.custom-switch-on-secondary .custom-control-input:checked~.custom-control-label::before{background-color:#6c757d;border-color:#3d4246}.custom-switch.custom-switch-on-secondary .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(108,117,125,.25)}.custom-switch.custom-switch-on-secondary .custom-control-input:checked~.custom-control-label::after{background-color:#bcc1c6}.custom-switch.custom-switch-off-success .custom-control-input~.custom-control-label::before{background-color:#28a745;border-color:#145523}.custom-switch.custom-switch-off-success .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(40,167,69,.25)}.custom-switch.custom-switch-off-success .custom-control-input~.custom-control-label::after{background-color:#0f401b}.custom-switch.custom-switch-on-success .custom-control-input:checked~.custom-control-label::before{background-color:#28a745;border-color:#145523}.custom-switch.custom-switch-on-success .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(40,167,69,.25)}.custom-switch.custom-switch-on-success .custom-control-input:checked~.custom-control-label::after{background-color:#86e29b}.custom-switch.custom-switch-off-info .custom-control-input~.custom-control-label::before{background-color:#17a2b8;border-color:#0c525d}.custom-switch.custom-switch-off-info .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(23,162,184,.25)}.custom-switch.custom-switch-off-info .custom-control-input~.custom-control-label::after{background-color:#093e47}.custom-switch.custom-switch-on-info .custom-control-input:checked~.custom-control-label::before{background-color:#17a2b8;border-color:#0c525d}.custom-switch.custom-switch-on-info .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(23,162,184,.25)}.custom-switch.custom-switch-on-info .custom-control-input:checked~.custom-control-label::after{background-color:#7adeee}.custom-switch.custom-switch-off-warning .custom-control-input~.custom-control-label::before{background-color:#ffc107;border-color:#a07800}.custom-switch.custom-switch-off-warning .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(255,193,7,.25)}.custom-switch.custom-switch-off-warning .custom-control-input~.custom-control-label::after{background-color:#876500}.custom-switch.custom-switch-on-warning .custom-control-input:checked~.custom-control-label::before{background-color:#ffc107;border-color:#a07800}.custom-switch.custom-switch-on-warning .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(255,193,7,.25)}.custom-switch.custom-switch-on-warning .custom-control-input:checked~.custom-control-label::after{background-color:#ffe7a0}.custom-switch.custom-switch-off-danger .custom-control-input~.custom-control-label::before{background-color:#dc3545;border-color:#921925}.custom-switch.custom-switch-off-danger .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(220,53,69,.25)}.custom-switch.custom-switch-off-danger .custom-control-input~.custom-control-label::after{background-color:#7c151f}.custom-switch.custom-switch-on-danger .custom-control-input:checked~.custom-control-label::before{background-color:#dc3545;border-color:#921925}.custom-switch.custom-switch-on-danger .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(220,53,69,.25)}.custom-switch.custom-switch-on-danger .custom-control-input:checked~.custom-control-label::after{background-color:#f3b7bd}.custom-switch.custom-switch-off-light .custom-control-input~.custom-control-label::before{background-color:#f8f9fa;border-color:#bdc6d0}.custom-switch.custom-switch-off-light .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(248,249,250,.25)}.custom-switch.custom-switch-off-light .custom-control-input~.custom-control-label::after{background-color:#aeb9c5}.custom-switch.custom-switch-on-light .custom-control-input:checked~.custom-control-label::before{background-color:#f8f9fa;border-color:#bdc6d0}.custom-switch.custom-switch-on-light .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(248,249,250,.25)}.custom-switch.custom-switch-on-light .custom-control-input:checked~.custom-control-label::after{background-color:#fff}.custom-switch.custom-switch-off-dark .custom-control-input~.custom-control-label::before{background-color:#343a40;border-color:#060708}.custom-switch.custom-switch-off-dark .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(52,58,64,.25)}.custom-switch.custom-switch-off-dark .custom-control-input~.custom-control-label::after{background-color:#000}.custom-switch.custom-switch-on-dark .custom-control-input:checked~.custom-control-label::before{background-color:#343a40;border-color:#060708}.custom-switch.custom-switch-on-dark .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(52,58,64,.25)}.custom-switch.custom-switch-on-dark .custom-control-input:checked~.custom-control-label::after{background-color:#7a8793}.custom-switch.custom-switch-off-lightblue .custom-control-input~.custom-control-label::before{background-color:#3c8dbc;border-color:#23536f}.custom-switch.custom-switch-off-lightblue .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(60,141,188,.25)}.custom-switch.custom-switch-off-lightblue .custom-control-input~.custom-control-label::after{background-color:#1d455b}.custom-switch.custom-switch-on-lightblue .custom-control-input:checked~.custom-control-label::before{background-color:#3c8dbc;border-color:#23536f}.custom-switch.custom-switch-on-lightblue .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(60,141,188,.25)}.custom-switch.custom-switch-on-lightblue .custom-control-input:checked~.custom-control-label::after{background-color:#acd0e5}.custom-switch.custom-switch-off-navy .custom-control-input~.custom-control-label::before{background-color:#001f3f;border-color:#000}.custom-switch.custom-switch-off-navy .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,31,63,.25)}.custom-switch.custom-switch-off-navy .custom-control-input~.custom-control-label::after{background-color:#000}.custom-switch.custom-switch-on-navy .custom-control-input:checked~.custom-control-label::before{background-color:#001f3f;border-color:#000}.custom-switch.custom-switch-on-navy .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,31,63,.25)}.custom-switch.custom-switch-on-navy .custom-control-input:checked~.custom-control-label::after{background-color:#006ad8}.custom-switch.custom-switch-off-olive .custom-control-input~.custom-control-label::before{background-color:#3d9970;border-color:#20503b}.custom-switch.custom-switch-off-olive .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(61,153,112,.25)}.custom-switch.custom-switch-off-olive .custom-control-input~.custom-control-label::after{background-color:#193e2d}.custom-switch.custom-switch-on-olive .custom-control-input:checked~.custom-control-label::before{background-color:#3d9970;border-color:#20503b}.custom-switch.custom-switch-on-olive .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(61,153,112,.25)}.custom-switch.custom-switch-on-olive .custom-control-input:checked~.custom-control-label::after{background-color:#99d6bb}.custom-switch.custom-switch-off-lime .custom-control-input~.custom-control-label::before{background-color:#01ff70;border-color:#009a43}.custom-switch.custom-switch-off-lime .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(1,255,112,.25)}.custom-switch.custom-switch-off-lime .custom-control-input~.custom-control-label::after{background-color:#008138}.custom-switch.custom-switch-on-lime .custom-control-input:checked~.custom-control-label::before{background-color:#01ff70;border-color:#009a43}.custom-switch.custom-switch-on-lime .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(1,255,112,.25)}.custom-switch.custom-switch-on-lime .custom-control-input:checked~.custom-control-label::after{background-color:#9affc6}.custom-switch.custom-switch-off-fuchsia .custom-control-input~.custom-control-label::before{background-color:#f012be;border-color:#930974}.custom-switch.custom-switch-off-fuchsia .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(240,18,190,.25)}.custom-switch.custom-switch-off-fuchsia .custom-control-input~.custom-control-label::after{background-color:#7b0861}.custom-switch.custom-switch-on-fuchsia .custom-control-input:checked~.custom-control-label::before{background-color:#f012be;border-color:#930974}.custom-switch.custom-switch-on-fuchsia .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(240,18,190,.25)}.custom-switch.custom-switch-on-fuchsia .custom-control-input:checked~.custom-control-label::after{background-color:#f9a2e5}.custom-switch.custom-switch-off-maroon .custom-control-input~.custom-control-label::before{background-color:#d81b60;border-color:#7d1038}.custom-switch.custom-switch-off-maroon .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(216,27,96,.25)}.custom-switch.custom-switch-off-maroon .custom-control-input~.custom-control-label::after{background-color:#670d2e}.custom-switch.custom-switch-on-maroon .custom-control-input:checked~.custom-control-label::before{background-color:#d81b60;border-color:#7d1038}.custom-switch.custom-switch-on-maroon .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(216,27,96,.25)}.custom-switch.custom-switch-on-maroon .custom-control-input:checked~.custom-control-label::after{background-color:#f29aba}.custom-switch.custom-switch-off-blue .custom-control-input~.custom-control-label::before{background-color:#007bff;border-color:#004a99}.custom-switch.custom-switch-off-blue .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,123,255,.25)}.custom-switch.custom-switch-off-blue .custom-control-input~.custom-control-label::after{background-color:#003e80}.custom-switch.custom-switch-on-blue .custom-control-input:checked~.custom-control-label::before{background-color:#007bff;border-color:#004a99}.custom-switch.custom-switch-on-blue .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,123,255,.25)}.custom-switch.custom-switch-on-blue .custom-control-input:checked~.custom-control-label::after{background-color:#99caff}.custom-switch.custom-switch-off-indigo .custom-control-input~.custom-control-label::before{background-color:#6610f2;border-color:#3d0894}.custom-switch.custom-switch-off-indigo .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(102,16,242,.25)}.custom-switch.custom-switch-off-indigo .custom-control-input~.custom-control-label::after{background-color:#33077c}.custom-switch.custom-switch-on-indigo .custom-control-input:checked~.custom-control-label::before{background-color:#6610f2;border-color:#3d0894}.custom-switch.custom-switch-on-indigo .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(102,16,242,.25)}.custom-switch.custom-switch-on-indigo .custom-control-input:checked~.custom-control-label::after{background-color:#c3a1fa}.custom-switch.custom-switch-off-purple .custom-control-input~.custom-control-label::before{background-color:#6f42c1;border-color:#432776}.custom-switch.custom-switch-off-purple .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(111,66,193,.25)}.custom-switch.custom-switch-off-purple .custom-control-input~.custom-control-label::after{background-color:#382063}.custom-switch.custom-switch-on-purple .custom-control-input:checked~.custom-control-label::before{background-color:#6f42c1;border-color:#432776}.custom-switch.custom-switch-on-purple .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(111,66,193,.25)}.custom-switch.custom-switch-on-purple .custom-control-input:checked~.custom-control-label::after{background-color:#c7b5e7}.custom-switch.custom-switch-off-pink .custom-control-input~.custom-control-label::before{background-color:#e83e8c;border-color:#ac145a}.custom-switch.custom-switch-off-pink .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(232,62,140,.25)}.custom-switch.custom-switch-off-pink .custom-control-input~.custom-control-label::after{background-color:#95124e}.custom-switch.custom-switch-on-pink .custom-control-input:checked~.custom-control-label::before{background-color:#e83e8c;border-color:#ac145a}.custom-switch.custom-switch-on-pink .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(232,62,140,.25)}.custom-switch.custom-switch-on-pink .custom-control-input:checked~.custom-control-label::after{background-color:#f8c7dd}.custom-switch.custom-switch-off-red .custom-control-input~.custom-control-label::before{background-color:#dc3545;border-color:#921925}.custom-switch.custom-switch-off-red .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(220,53,69,.25)}.custom-switch.custom-switch-off-red .custom-control-input~.custom-control-label::after{background-color:#7c151f}.custom-switch.custom-switch-on-red .custom-control-input:checked~.custom-control-label::before{background-color:#dc3545;border-color:#921925}.custom-switch.custom-switch-on-red .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(220,53,69,.25)}.custom-switch.custom-switch-on-red .custom-control-input:checked~.custom-control-label::after{background-color:#f3b7bd}.custom-switch.custom-switch-off-orange .custom-control-input~.custom-control-label::before{background-color:#fd7e14;border-color:#aa4e01}.custom-switch.custom-switch-off-orange .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(253,126,20,.25)}.custom-switch.custom-switch-off-orange .custom-control-input~.custom-control-label::after{background-color:#904201}.custom-switch.custom-switch-on-orange .custom-control-input:checked~.custom-control-label::before{background-color:#fd7e14;border-color:#aa4e01}.custom-switch.custom-switch-on-orange .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(253,126,20,.25)}.custom-switch.custom-switch-on-orange .custom-control-input:checked~.custom-control-label::after{background-color:#fed1ac}.custom-switch.custom-switch-off-yellow .custom-control-input~.custom-control-label::before{background-color:#ffc107;border-color:#a07800}.custom-switch.custom-switch-off-yellow .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(255,193,7,.25)}.custom-switch.custom-switch-off-yellow .custom-control-input~.custom-control-label::after{background-color:#876500}.custom-switch.custom-switch-on-yellow .custom-control-input:checked~.custom-control-label::before{background-color:#ffc107;border-color:#a07800}.custom-switch.custom-switch-on-yellow .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(255,193,7,.25)}.custom-switch.custom-switch-on-yellow .custom-control-input:checked~.custom-control-label::after{background-color:#ffe7a0}.custom-switch.custom-switch-off-green .custom-control-input~.custom-control-label::before{background-color:#28a745;border-color:#145523}.custom-switch.custom-switch-off-green .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(40,167,69,.25)}.custom-switch.custom-switch-off-green .custom-control-input~.custom-control-label::after{background-color:#0f401b}.custom-switch.custom-switch-on-green .custom-control-input:checked~.custom-control-label::before{background-color:#28a745;border-color:#145523}.custom-switch.custom-switch-on-green .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(40,167,69,.25)}.custom-switch.custom-switch-on-green .custom-control-input:checked~.custom-control-label::after{background-color:#86e29b}.custom-switch.custom-switch-off-teal .custom-control-input~.custom-control-label::before{background-color:#20c997;border-color:#127155}.custom-switch.custom-switch-off-teal .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(32,201,151,.25)}.custom-switch.custom-switch-off-teal .custom-control-input~.custom-control-label::after{background-color:#0e5b44}.custom-switch.custom-switch-on-teal .custom-control-input:checked~.custom-control-label::before{background-color:#20c997;border-color:#127155}.custom-switch.custom-switch-on-teal .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(32,201,151,.25)}.custom-switch.custom-switch-on-teal .custom-control-input:checked~.custom-control-label::after{background-color:#94eed3}.custom-switch.custom-switch-off-cyan .custom-control-input~.custom-control-label::before{background-color:#17a2b8;border-color:#0c525d}.custom-switch.custom-switch-off-cyan .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(23,162,184,.25)}.custom-switch.custom-switch-off-cyan .custom-control-input~.custom-control-label::after{background-color:#093e47}.custom-switch.custom-switch-on-cyan .custom-control-input:checked~.custom-control-label::before{background-color:#17a2b8;border-color:#0c525d}.custom-switch.custom-switch-on-cyan .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(23,162,184,.25)}.custom-switch.custom-switch-on-cyan .custom-control-input:checked~.custom-control-label::after{background-color:#7adeee}.custom-switch.custom-switch-off-white .custom-control-input~.custom-control-label::before{background-color:#fff;border-color:#ccc}.custom-switch.custom-switch-off-white .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(255,255,255,.25)}.custom-switch.custom-switch-off-white .custom-control-input~.custom-control-label::after{background-color:#bfbfbf}.custom-switch.custom-switch-on-white .custom-control-input:checked~.custom-control-label::before{background-color:#fff;border-color:#ccc}.custom-switch.custom-switch-on-white .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(255,255,255,.25)}.custom-switch.custom-switch-on-white .custom-control-input:checked~.custom-control-label::after{background-color:#fff}.custom-switch.custom-switch-off-gray .custom-control-input~.custom-control-label::before{background-color:#6c757d;border-color:#3d4246}.custom-switch.custom-switch-off-gray .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(108,117,125,.25)}.custom-switch.custom-switch-off-gray .custom-control-input~.custom-control-label::after{background-color:#313539}.custom-switch.custom-switch-on-gray .custom-control-input:checked~.custom-control-label::before{background-color:#6c757d;border-color:#3d4246}.custom-switch.custom-switch-on-gray .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(108,117,125,.25)}.custom-switch.custom-switch-on-gray .custom-control-input:checked~.custom-control-label::after{background-color:#bcc1c6}.custom-switch.custom-switch-off-gray-dark .custom-control-input~.custom-control-label::before{background-color:#343a40;border-color:#060708}.custom-switch.custom-switch-off-gray-dark .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(52,58,64,.25)}.custom-switch.custom-switch-off-gray-dark .custom-control-input~.custom-control-label::after{background-color:#000}.custom-switch.custom-switch-on-gray-dark .custom-control-input:checked~.custom-control-label::before{background-color:#343a40;border-color:#060708}.custom-switch.custom-switch-on-gray-dark .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(52,58,64,.25)}.custom-switch.custom-switch-on-gray-dark .custom-control-input:checked~.custom-control-label::after{background-color:#7a8793}.custom-range.custom-range-primary:focus{outline:0}.custom-range.custom-range-primary:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,123,255,.25)}.custom-range.custom-range-primary:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,123,255,.25)}.custom-range.custom-range-primary:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,123,255,.25)}.custom-range.custom-range-primary::-webkit-slider-thumb{background-color:#007bff}.custom-range.custom-range-primary::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range.custom-range-primary::-moz-range-thumb{background-color:#007bff}.custom-range.custom-range-primary::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range.custom-range-primary::-ms-thumb{background-color:#007bff}.custom-range.custom-range-primary::-ms-thumb:active{background-color:#b3d7ff}.custom-range.custom-range-secondary:focus{outline:0}.custom-range.custom-range-secondary:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(108,117,125,.25)}.custom-range.custom-range-secondary:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(108,117,125,.25)}.custom-range.custom-range-secondary:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(108,117,125,.25)}.custom-range.custom-range-secondary::-webkit-slider-thumb{background-color:#6c757d}.custom-range.custom-range-secondary::-webkit-slider-thumb:active{background-color:#caced1}.custom-range.custom-range-secondary::-moz-range-thumb{background-color:#6c757d}.custom-range.custom-range-secondary::-moz-range-thumb:active{background-color:#caced1}.custom-range.custom-range-secondary::-ms-thumb{background-color:#6c757d}.custom-range.custom-range-secondary::-ms-thumb:active{background-color:#caced1}.custom-range.custom-range-success:focus{outline:0}.custom-range.custom-range-success:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(40,167,69,.25)}.custom-range.custom-range-success:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(40,167,69,.25)}.custom-range.custom-range-success:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(40,167,69,.25)}.custom-range.custom-range-success::-webkit-slider-thumb{background-color:#28a745}.custom-range.custom-range-success::-webkit-slider-thumb:active{background-color:#9be7ac}.custom-range.custom-range-success::-moz-range-thumb{background-color:#28a745}.custom-range.custom-range-success::-moz-range-thumb:active{background-color:#9be7ac}.custom-range.custom-range-success::-ms-thumb{background-color:#28a745}.custom-range.custom-range-success::-ms-thumb:active{background-color:#9be7ac}.custom-range.custom-range-info:focus{outline:0}.custom-range.custom-range-info:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(23,162,184,.25)}.custom-range.custom-range-info:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(23,162,184,.25)}.custom-range.custom-range-info:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(23,162,184,.25)}.custom-range.custom-range-info::-webkit-slider-thumb{background-color:#17a2b8}.custom-range.custom-range-info::-webkit-slider-thumb:active{background-color:#90e4f1}.custom-range.custom-range-info::-moz-range-thumb{background-color:#17a2b8}.custom-range.custom-range-info::-moz-range-thumb:active{background-color:#90e4f1}.custom-range.custom-range-info::-ms-thumb{background-color:#17a2b8}.custom-range.custom-range-info::-ms-thumb:active{background-color:#90e4f1}.custom-range.custom-range-warning:focus{outline:0}.custom-range.custom-range-warning:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(255,193,7,.25)}.custom-range.custom-range-warning:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(255,193,7,.25)}.custom-range.custom-range-warning:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(255,193,7,.25)}.custom-range.custom-range-warning::-webkit-slider-thumb{background-color:#ffc107}.custom-range.custom-range-warning::-webkit-slider-thumb:active{background-color:#ffeeba}.custom-range.custom-range-warning::-moz-range-thumb{background-color:#ffc107}.custom-range.custom-range-warning::-moz-range-thumb:active{background-color:#ffeeba}.custom-range.custom-range-warning::-ms-thumb{background-color:#ffc107}.custom-range.custom-range-warning::-ms-thumb:active{background-color:#ffeeba}.custom-range.custom-range-danger:focus{outline:0}.custom-range.custom-range-danger:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(220,53,69,.25)}.custom-range.custom-range-danger:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(220,53,69,.25)}.custom-range.custom-range-danger:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(220,53,69,.25)}.custom-range.custom-range-danger::-webkit-slider-thumb{background-color:#dc3545}.custom-range.custom-range-danger::-webkit-slider-thumb:active{background-color:#f6cdd1}.custom-range.custom-range-danger::-moz-range-thumb{background-color:#dc3545}.custom-range.custom-range-danger::-moz-range-thumb:active{background-color:#f6cdd1}.custom-range.custom-range-danger::-ms-thumb{background-color:#dc3545}.custom-range.custom-range-danger::-ms-thumb:active{background-color:#f6cdd1}.custom-range.custom-range-light:focus{outline:0}.custom-range.custom-range-light:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(248,249,250,.25)}.custom-range.custom-range-light:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(248,249,250,.25)}.custom-range.custom-range-light:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(248,249,250,.25)}.custom-range.custom-range-light::-webkit-slider-thumb{background-color:#f8f9fa}.custom-range.custom-range-light::-webkit-slider-thumb:active{background-color:#fff}.custom-range.custom-range-light::-moz-range-thumb{background-color:#f8f9fa}.custom-range.custom-range-light::-moz-range-thumb:active{background-color:#fff}.custom-range.custom-range-light::-ms-thumb{background-color:#f8f9fa}.custom-range.custom-range-light::-ms-thumb:active{background-color:#fff}.custom-range.custom-range-dark:focus{outline:0}.custom-range.custom-range-dark:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(52,58,64,.25)}.custom-range.custom-range-dark:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(52,58,64,.25)}.custom-range.custom-range-dark:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(52,58,64,.25)}.custom-range.custom-range-dark::-webkit-slider-thumb{background-color:#343a40}.custom-range.custom-range-dark::-webkit-slider-thumb:active{background-color:#88939e}.custom-range.custom-range-dark::-moz-range-thumb{background-color:#343a40}.custom-range.custom-range-dark::-moz-range-thumb:active{background-color:#88939e}.custom-range.custom-range-dark::-ms-thumb{background-color:#343a40}.custom-range.custom-range-dark::-ms-thumb:active{background-color:#88939e}.custom-range.custom-range-lightblue:focus{outline:0}.custom-range.custom-range-lightblue:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(60,141,188,.25)}.custom-range.custom-range-lightblue:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(60,141,188,.25)}.custom-range.custom-range-lightblue:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(60,141,188,.25)}.custom-range.custom-range-lightblue::-webkit-slider-thumb{background-color:#3c8dbc}.custom-range.custom-range-lightblue::-webkit-slider-thumb:active{background-color:#c0dbeb}.custom-range.custom-range-lightblue::-moz-range-thumb{background-color:#3c8dbc}.custom-range.custom-range-lightblue::-moz-range-thumb:active{background-color:#c0dbeb}.custom-range.custom-range-lightblue::-ms-thumb{background-color:#3c8dbc}.custom-range.custom-range-lightblue::-ms-thumb:active{background-color:#c0dbeb}.custom-range.custom-range-navy:focus{outline:0}.custom-range.custom-range-navy:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,31,63,.25)}.custom-range.custom-range-navy:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,31,63,.25)}.custom-range.custom-range-navy:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,31,63,.25)}.custom-range.custom-range-navy::-webkit-slider-thumb{background-color:#001f3f}.custom-range.custom-range-navy::-webkit-slider-thumb:active{background-color:#0077f2}.custom-range.custom-range-navy::-moz-range-thumb{background-color:#001f3f}.custom-range.custom-range-navy::-moz-range-thumb:active{background-color:#0077f2}.custom-range.custom-range-navy::-ms-thumb{background-color:#001f3f}.custom-range.custom-range-navy::-ms-thumb:active{background-color:#0077f2}.custom-range.custom-range-olive:focus{outline:0}.custom-range.custom-range-olive:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(61,153,112,.25)}.custom-range.custom-range-olive:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(61,153,112,.25)}.custom-range.custom-range-olive:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(61,153,112,.25)}.custom-range.custom-range-olive::-webkit-slider-thumb{background-color:#3d9970}.custom-range.custom-range-olive::-webkit-slider-thumb:active{background-color:#abdec7}.custom-range.custom-range-olive::-moz-range-thumb{background-color:#3d9970}.custom-range.custom-range-olive::-moz-range-thumb:active{background-color:#abdec7}.custom-range.custom-range-olive::-ms-thumb{background-color:#3d9970}.custom-range.custom-range-olive::-ms-thumb:active{background-color:#abdec7}.custom-range.custom-range-lime:focus{outline:0}.custom-range.custom-range-lime:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(1,255,112,.25)}.custom-range.custom-range-lime:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(1,255,112,.25)}.custom-range.custom-range-lime:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(1,255,112,.25)}.custom-range.custom-range-lime::-webkit-slider-thumb{background-color:#01ff70}.custom-range.custom-range-lime::-webkit-slider-thumb:active{background-color:#b4ffd4}.custom-range.custom-range-lime::-moz-range-thumb{background-color:#01ff70}.custom-range.custom-range-lime::-moz-range-thumb:active{background-color:#b4ffd4}.custom-range.custom-range-lime::-ms-thumb{background-color:#01ff70}.custom-range.custom-range-lime::-ms-thumb:active{background-color:#b4ffd4}.custom-range.custom-range-fuchsia:focus{outline:0}.custom-range.custom-range-fuchsia:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(240,18,190,.25)}.custom-range.custom-range-fuchsia:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(240,18,190,.25)}.custom-range.custom-range-fuchsia:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(240,18,190,.25)}.custom-range.custom-range-fuchsia::-webkit-slider-thumb{background-color:#f012be}.custom-range.custom-range-fuchsia::-webkit-slider-thumb:active{background-color:#fbbaec}.custom-range.custom-range-fuchsia::-moz-range-thumb{background-color:#f012be}.custom-range.custom-range-fuchsia::-moz-range-thumb:active{background-color:#fbbaec}.custom-range.custom-range-fuchsia::-ms-thumb{background-color:#f012be}.custom-range.custom-range-fuchsia::-ms-thumb:active{background-color:#fbbaec}.custom-range.custom-range-maroon:focus{outline:0}.custom-range.custom-range-maroon:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(216,27,96,.25)}.custom-range.custom-range-maroon:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(216,27,96,.25)}.custom-range.custom-range-maroon:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(216,27,96,.25)}.custom-range.custom-range-maroon::-webkit-slider-thumb{background-color:#d81b60}.custom-range.custom-range-maroon::-webkit-slider-thumb:active{background-color:#f5b0c9}.custom-range.custom-range-maroon::-moz-range-thumb{background-color:#d81b60}.custom-range.custom-range-maroon::-moz-range-thumb:active{background-color:#f5b0c9}.custom-range.custom-range-maroon::-ms-thumb{background-color:#d81b60}.custom-range.custom-range-maroon::-ms-thumb:active{background-color:#f5b0c9}.custom-range.custom-range-blue:focus{outline:0}.custom-range.custom-range-blue:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,123,255,.25)}.custom-range.custom-range-blue:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,123,255,.25)}.custom-range.custom-range-blue:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,123,255,.25)}.custom-range.custom-range-blue::-webkit-slider-thumb{background-color:#007bff}.custom-range.custom-range-blue::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range.custom-range-blue::-moz-range-thumb{background-color:#007bff}.custom-range.custom-range-blue::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range.custom-range-blue::-ms-thumb{background-color:#007bff}.custom-range.custom-range-blue::-ms-thumb:active{background-color:#b3d7ff}.custom-range.custom-range-indigo:focus{outline:0}.custom-range.custom-range-indigo:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(102,16,242,.25)}.custom-range.custom-range-indigo:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(102,16,242,.25)}.custom-range.custom-range-indigo:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(102,16,242,.25)}.custom-range.custom-range-indigo::-webkit-slider-thumb{background-color:#6610f2}.custom-range.custom-range-indigo::-webkit-slider-thumb:active{background-color:#d2b9fb}.custom-range.custom-range-indigo::-moz-range-thumb{background-color:#6610f2}.custom-range.custom-range-indigo::-moz-range-thumb:active{background-color:#d2b9fb}.custom-range.custom-range-indigo::-ms-thumb{background-color:#6610f2}.custom-range.custom-range-indigo::-ms-thumb:active{background-color:#d2b9fb}.custom-range.custom-range-purple:focus{outline:0}.custom-range.custom-range-purple:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(111,66,193,.25)}.custom-range.custom-range-purple:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(111,66,193,.25)}.custom-range.custom-range-purple:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(111,66,193,.25)}.custom-range.custom-range-purple::-webkit-slider-thumb{background-color:#6f42c1}.custom-range.custom-range-purple::-webkit-slider-thumb:active{background-color:#d5c8ed}.custom-range.custom-range-purple::-moz-range-thumb{background-color:#6f42c1}.custom-range.custom-range-purple::-moz-range-thumb:active{background-color:#d5c8ed}.custom-range.custom-range-purple::-ms-thumb{background-color:#6f42c1}.custom-range.custom-range-purple::-ms-thumb:active{background-color:#d5c8ed}.custom-range.custom-range-pink:focus{outline:0}.custom-range.custom-range-pink:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(232,62,140,.25)}.custom-range.custom-range-pink:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(232,62,140,.25)}.custom-range.custom-range-pink:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(232,62,140,.25)}.custom-range.custom-range-pink::-webkit-slider-thumb{background-color:#e83e8c}.custom-range.custom-range-pink::-webkit-slider-thumb:active{background-color:#fbddeb}.custom-range.custom-range-pink::-moz-range-thumb{background-color:#e83e8c}.custom-range.custom-range-pink::-moz-range-thumb:active{background-color:#fbddeb}.custom-range.custom-range-pink::-ms-thumb{background-color:#e83e8c}.custom-range.custom-range-pink::-ms-thumb:active{background-color:#fbddeb}.custom-range.custom-range-red:focus{outline:0}.custom-range.custom-range-red:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(220,53,69,.25)}.custom-range.custom-range-red:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(220,53,69,.25)}.custom-range.custom-range-red:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(220,53,69,.25)}.custom-range.custom-range-red::-webkit-slider-thumb{background-color:#dc3545}.custom-range.custom-range-red::-webkit-slider-thumb:active{background-color:#f6cdd1}.custom-range.custom-range-red::-moz-range-thumb{background-color:#dc3545}.custom-range.custom-range-red::-moz-range-thumb:active{background-color:#f6cdd1}.custom-range.custom-range-red::-ms-thumb{background-color:#dc3545}.custom-range.custom-range-red::-ms-thumb:active{background-color:#f6cdd1}.custom-range.custom-range-orange:focus{outline:0}.custom-range.custom-range-orange:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(253,126,20,.25)}.custom-range.custom-range-orange:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(253,126,20,.25)}.custom-range.custom-range-orange:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(253,126,20,.25)}.custom-range.custom-range-orange::-webkit-slider-thumb{background-color:#fd7e14}.custom-range.custom-range-orange::-webkit-slider-thumb:active{background-color:#ffdfc5}.custom-range.custom-range-orange::-moz-range-thumb{background-color:#fd7e14}.custom-range.custom-range-orange::-moz-range-thumb:active{background-color:#ffdfc5}.custom-range.custom-range-orange::-ms-thumb{background-color:#fd7e14}.custom-range.custom-range-orange::-ms-thumb:active{background-color:#ffdfc5}.custom-range.custom-range-yellow:focus{outline:0}.custom-range.custom-range-yellow:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(255,193,7,.25)}.custom-range.custom-range-yellow:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(255,193,7,.25)}.custom-range.custom-range-yellow:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(255,193,7,.25)}.custom-range.custom-range-yellow::-webkit-slider-thumb{background-color:#ffc107}.custom-range.custom-range-yellow::-webkit-slider-thumb:active{background-color:#ffeeba}.custom-range.custom-range-yellow::-moz-range-thumb{background-color:#ffc107}.custom-range.custom-range-yellow::-moz-range-thumb:active{background-color:#ffeeba}.custom-range.custom-range-yellow::-ms-thumb{background-color:#ffc107}.custom-range.custom-range-yellow::-ms-thumb:active{background-color:#ffeeba}.custom-range.custom-range-green:focus{outline:0}.custom-range.custom-range-green:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(40,167,69,.25)}.custom-range.custom-range-green:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(40,167,69,.25)}.custom-range.custom-range-green:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(40,167,69,.25)}.custom-range.custom-range-green::-webkit-slider-thumb{background-color:#28a745}.custom-range.custom-range-green::-webkit-slider-thumb:active{background-color:#9be7ac}.custom-range.custom-range-green::-moz-range-thumb{background-color:#28a745}.custom-range.custom-range-green::-moz-range-thumb:active{background-color:#9be7ac}.custom-range.custom-range-green::-ms-thumb{background-color:#28a745}.custom-range.custom-range-green::-ms-thumb:active{background-color:#9be7ac}.custom-range.custom-range-teal:focus{outline:0}.custom-range.custom-range-teal:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(32,201,151,.25)}.custom-range.custom-range-teal:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(32,201,151,.25)}.custom-range.custom-range-teal:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(32,201,151,.25)}.custom-range.custom-range-teal::-webkit-slider-thumb{background-color:#20c997}.custom-range.custom-range-teal::-webkit-slider-thumb:active{background-color:#aaf1dc}.custom-range.custom-range-teal::-moz-range-thumb{background-color:#20c997}.custom-range.custom-range-teal::-moz-range-thumb:active{background-color:#aaf1dc}.custom-range.custom-range-teal::-ms-thumb{background-color:#20c997}.custom-range.custom-range-teal::-ms-thumb:active{background-color:#aaf1dc}.custom-range.custom-range-cyan:focus{outline:0}.custom-range.custom-range-cyan:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(23,162,184,.25)}.custom-range.custom-range-cyan:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(23,162,184,.25)}.custom-range.custom-range-cyan:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(23,162,184,.25)}.custom-range.custom-range-cyan::-webkit-slider-thumb{background-color:#17a2b8}.custom-range.custom-range-cyan::-webkit-slider-thumb:active{background-color:#90e4f1}.custom-range.custom-range-cyan::-moz-range-thumb{background-color:#17a2b8}.custom-range.custom-range-cyan::-moz-range-thumb:active{background-color:#90e4f1}.custom-range.custom-range-cyan::-ms-thumb{background-color:#17a2b8}.custom-range.custom-range-cyan::-ms-thumb:active{background-color:#90e4f1}.custom-range.custom-range-white:focus{outline:0}.custom-range.custom-range-white:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(255,255,255,.25)}.custom-range.custom-range-white:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(255,255,255,.25)}.custom-range.custom-range-white:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(255,255,255,.25)}.custom-range.custom-range-white::-webkit-slider-thumb{background-color:#fff}.custom-range.custom-range-white::-webkit-slider-thumb:active{background-color:#fff}.custom-range.custom-range-white::-moz-range-thumb{background-color:#fff}.custom-range.custom-range-white::-moz-range-thumb:active{background-color:#fff}.custom-range.custom-range-white::-ms-thumb{background-color:#fff}.custom-range.custom-range-white::-ms-thumb:active{background-color:#fff}.custom-range.custom-range-gray:focus{outline:0}.custom-range.custom-range-gray:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(108,117,125,.25)}.custom-range.custom-range-gray:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(108,117,125,.25)}.custom-range.custom-range-gray:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(108,117,125,.25)}.custom-range.custom-range-gray::-webkit-slider-thumb{background-color:#6c757d}.custom-range.custom-range-gray::-webkit-slider-thumb:active{background-color:#caced1}.custom-range.custom-range-gray::-moz-range-thumb{background-color:#6c757d}.custom-range.custom-range-gray::-moz-range-thumb:active{background-color:#caced1}.custom-range.custom-range-gray::-ms-thumb{background-color:#6c757d}.custom-range.custom-range-gray::-ms-thumb:active{background-color:#caced1}.custom-range.custom-range-gray-dark:focus{outline:0}.custom-range.custom-range-gray-dark:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(52,58,64,.25)}.custom-range.custom-range-gray-dark:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(52,58,64,.25)}.custom-range.custom-range-gray-dark:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(52,58,64,.25)}.custom-range.custom-range-gray-dark::-webkit-slider-thumb{background-color:#343a40}.custom-range.custom-range-gray-dark::-webkit-slider-thumb:active{background-color:#88939e}.custom-range.custom-range-gray-dark::-moz-range-thumb{background-color:#343a40}.custom-range.custom-range-gray-dark::-moz-range-thumb:active{background-color:#88939e}.custom-range.custom-range-gray-dark::-ms-thumb{background-color:#343a40}.custom-range.custom-range-gray-dark::-ms-thumb:active{background-color:#88939e}.custom-control-input-primary:checked~.custom-control-label::before{border-color:#007bff;background-color:#007bff}.custom-control-input-primary.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23007bff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.custom-control-input-primary.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23007bff'/%3E%3C/svg%3E")!important}.custom-control-input-primary:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input-primary:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.custom-control-input-primary:not(:disabled):active~.custom-control-label::before{background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input-secondary:checked~.custom-control-label::before{border-color:#6c757d;background-color:#6c757d}.custom-control-input-secondary.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236c757d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.custom-control-input-secondary.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236c757d'/%3E%3C/svg%3E")!important}.custom-control-input-secondary:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(108,117,125,.25)}.custom-control-input-secondary:focus:not(:checked)~.custom-control-label::before{border-color:#afb5ba}.custom-control-input-secondary:not(:disabled):active~.custom-control-label::before{background-color:#caced1;border-color:#caced1}.custom-control-input-success:checked~.custom-control-label::before{border-color:#28a745;background-color:#28a745}.custom-control-input-success.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2328a745' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.custom-control-input-success.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2328a745'/%3E%3C/svg%3E")!important}.custom-control-input-success:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input-success:focus:not(:checked)~.custom-control-label::before{border-color:#71dd8a}.custom-control-input-success:not(:disabled):active~.custom-control-label::before{background-color:#9be7ac;border-color:#9be7ac}.custom-control-input-info:checked~.custom-control-label::before{border-color:#17a2b8;background-color:#17a2b8}.custom-control-input-info.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2317a2b8' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.custom-control-input-info.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2317a2b8'/%3E%3C/svg%3E")!important}.custom-control-input-info:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(23,162,184,.25)}.custom-control-input-info:focus:not(:checked)~.custom-control-label::before{border-color:#63d9ec}.custom-control-input-info:not(:disabled):active~.custom-control-label::before{background-color:#90e4f1;border-color:#90e4f1}.custom-control-input-warning:checked~.custom-control-label::before{border-color:#ffc107;background-color:#ffc107}.custom-control-input-warning.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23ffc107' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.custom-control-input-warning.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23ffc107'/%3E%3C/svg%3E")!important}.custom-control-input-warning:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(255,193,7,.25)}.custom-control-input-warning:focus:not(:checked)~.custom-control-label::before{border-color:#ffe187}.custom-control-input-warning:not(:disabled):active~.custom-control-label::before{background-color:#ffeeba;border-color:#ffeeba}.custom-control-input-danger:checked~.custom-control-label::before{border-color:#dc3545;background-color:#dc3545}.custom-control-input-danger.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23dc3545' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.custom-control-input-danger.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23dc3545'/%3E%3C/svg%3E")!important}.custom-control-input-danger:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input-danger:focus:not(:checked)~.custom-control-label::before{border-color:#efa2a9}.custom-control-input-danger:not(:disabled):active~.custom-control-label::before{background-color:#f6cdd1;border-color:#f6cdd1}.custom-control-input-light:checked~.custom-control-label::before{border-color:#f8f9fa;background-color:#f8f9fa}.custom-control-input-light.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f8f9fa' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.custom-control-input-light.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f8f9fa'/%3E%3C/svg%3E")!important}.custom-control-input-light:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(248,249,250,.25)}.custom-control-input-light:focus:not(:checked)~.custom-control-label::before{border-color:#fff}.custom-control-input-light:not(:disabled):active~.custom-control-label::before{background-color:#fff;border-color:#fff}.custom-control-input-dark:checked~.custom-control-label::before{border-color:#343a40;background-color:#343a40}.custom-control-input-dark.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23343a40' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.custom-control-input-dark.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23343a40'/%3E%3C/svg%3E")!important}.custom-control-input-dark:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(52,58,64,.25)}.custom-control-input-dark:focus:not(:checked)~.custom-control-label::before{border-color:#6d7a86}.custom-control-input-dark:not(:disabled):active~.custom-control-label::before{background-color:#88939e;border-color:#88939e}.custom-control-input-lightblue:checked~.custom-control-label::before{border-color:#3c8dbc;background-color:#3c8dbc}.custom-control-input-lightblue.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233c8dbc' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.custom-control-input-lightblue.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233c8dbc'/%3E%3C/svg%3E")!important}.custom-control-input-lightblue:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(60,141,188,.25)}.custom-control-input-lightblue:focus:not(:checked)~.custom-control-label::before{border-color:#99c5de}.custom-control-input-lightblue:not(:disabled):active~.custom-control-label::before{background-color:#c0dbeb;border-color:#c0dbeb}.custom-control-input-navy:checked~.custom-control-label::before{border-color:#001f3f;background-color:#001f3f}.custom-control-input-navy.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23001f3f' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.custom-control-input-navy.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23001f3f'/%3E%3C/svg%3E")!important}.custom-control-input-navy:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(0,31,63,.25)}.custom-control-input-navy:focus:not(:checked)~.custom-control-label::before{border-color:#005ebf}.custom-control-input-navy:not(:disabled):active~.custom-control-label::before{background-color:#0077f2;border-color:#0077f2}.custom-control-input-olive:checked~.custom-control-label::before{border-color:#3d9970;background-color:#3d9970}.custom-control-input-olive.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233d9970' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.custom-control-input-olive.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233d9970'/%3E%3C/svg%3E")!important}.custom-control-input-olive:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(61,153,112,.25)}.custom-control-input-olive:focus:not(:checked)~.custom-control-label::before{border-color:#87cfaf}.custom-control-input-olive:not(:disabled):active~.custom-control-label::before{background-color:#abdec7;border-color:#abdec7}.custom-control-input-lime:checked~.custom-control-label::before{border-color:#01ff70;background-color:#01ff70}.custom-control-input-lime.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2301ff70' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.custom-control-input-lime.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2301ff70'/%3E%3C/svg%3E")!important}.custom-control-input-lime:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(1,255,112,.25)}.custom-control-input-lime:focus:not(:checked)~.custom-control-label::before{border-color:#81ffb8}.custom-control-input-lime:not(:disabled):active~.custom-control-label::before{background-color:#b4ffd4;border-color:#b4ffd4}.custom-control-input-fuchsia:checked~.custom-control-label::before{border-color:#f012be;background-color:#f012be}.custom-control-input-fuchsia.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f012be' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.custom-control-input-fuchsia.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f012be'/%3E%3C/svg%3E")!important}.custom-control-input-fuchsia:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(240,18,190,.25)}.custom-control-input-fuchsia:focus:not(:checked)~.custom-control-label::before{border-color:#f88adf}.custom-control-input-fuchsia:not(:disabled):active~.custom-control-label::before{background-color:#fbbaec;border-color:#fbbaec}.custom-control-input-maroon:checked~.custom-control-label::before{border-color:#d81b60;background-color:#d81b60}.custom-control-input-maroon.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23d81b60' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.custom-control-input-maroon.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23d81b60'/%3E%3C/svg%3E")!important}.custom-control-input-maroon:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(216,27,96,.25)}.custom-control-input-maroon:focus:not(:checked)~.custom-control-label::before{border-color:#f083ab}.custom-control-input-maroon:not(:disabled):active~.custom-control-label::before{background-color:#f5b0c9;border-color:#f5b0c9}.custom-control-input-blue:checked~.custom-control-label::before{border-color:#007bff;background-color:#007bff}.custom-control-input-blue.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23007bff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.custom-control-input-blue.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23007bff'/%3E%3C/svg%3E")!important}.custom-control-input-blue:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input-blue:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.custom-control-input-blue:not(:disabled):active~.custom-control-label::before{background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input-indigo:checked~.custom-control-label::before{border-color:#6610f2;background-color:#6610f2}.custom-control-input-indigo.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236610f2' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.custom-control-input-indigo.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236610f2'/%3E%3C/svg%3E")!important}.custom-control-input-indigo:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(102,16,242,.25)}.custom-control-input-indigo:focus:not(:checked)~.custom-control-label::before{border-color:#b389f9}.custom-control-input-indigo:not(:disabled):active~.custom-control-label::before{background-color:#d2b9fb;border-color:#d2b9fb}.custom-control-input-purple:checked~.custom-control-label::before{border-color:#6f42c1;background-color:#6f42c1}.custom-control-input-purple.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236f42c1' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.custom-control-input-purple.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236f42c1'/%3E%3C/svg%3E")!important}.custom-control-input-purple:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(111,66,193,.25)}.custom-control-input-purple:focus:not(:checked)~.custom-control-label::before{border-color:#b8a2e0}.custom-control-input-purple:not(:disabled):active~.custom-control-label::before{background-color:#d5c8ed;border-color:#d5c8ed}.custom-control-input-pink:checked~.custom-control-label::before{border-color:#e83e8c;background-color:#e83e8c}.custom-control-input-pink.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23e83e8c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.custom-control-input-pink.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23e83e8c'/%3E%3C/svg%3E")!important}.custom-control-input-pink:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(232,62,140,.25)}.custom-control-input-pink:focus:not(:checked)~.custom-control-label::before{border-color:#f6b0d0}.custom-control-input-pink:not(:disabled):active~.custom-control-label::before{background-color:#fbddeb;border-color:#fbddeb}.custom-control-input-red:checked~.custom-control-label::before{border-color:#dc3545;background-color:#dc3545}.custom-control-input-red.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23dc3545' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.custom-control-input-red.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23dc3545'/%3E%3C/svg%3E")!important}.custom-control-input-red:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input-red:focus:not(:checked)~.custom-control-label::before{border-color:#efa2a9}.custom-control-input-red:not(:disabled):active~.custom-control-label::before{background-color:#f6cdd1;border-color:#f6cdd1}.custom-control-input-orange:checked~.custom-control-label::before{border-color:#fd7e14;background-color:#fd7e14}.custom-control-input-orange.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fd7e14' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.custom-control-input-orange.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fd7e14'/%3E%3C/svg%3E")!important}.custom-control-input-orange:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(253,126,20,.25)}.custom-control-input-orange:focus:not(:checked)~.custom-control-label::before{border-color:#fec392}.custom-control-input-orange:not(:disabled):active~.custom-control-label::before{background-color:#ffdfc5;border-color:#ffdfc5}.custom-control-input-yellow:checked~.custom-control-label::before{border-color:#ffc107;background-color:#ffc107}.custom-control-input-yellow.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23ffc107' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.custom-control-input-yellow.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23ffc107'/%3E%3C/svg%3E")!important}.custom-control-input-yellow:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(255,193,7,.25)}.custom-control-input-yellow:focus:not(:checked)~.custom-control-label::before{border-color:#ffe187}.custom-control-input-yellow:not(:disabled):active~.custom-control-label::before{background-color:#ffeeba;border-color:#ffeeba}.custom-control-input-green:checked~.custom-control-label::before{border-color:#28a745;background-color:#28a745}.custom-control-input-green.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2328a745' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.custom-control-input-green.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2328a745'/%3E%3C/svg%3E")!important}.custom-control-input-green:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input-green:focus:not(:checked)~.custom-control-label::before{border-color:#71dd8a}.custom-control-input-green:not(:disabled):active~.custom-control-label::before{background-color:#9be7ac;border-color:#9be7ac}.custom-control-input-teal:checked~.custom-control-label::before{border-color:#20c997;background-color:#20c997}.custom-control-input-teal.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2320c997' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.custom-control-input-teal.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2320c997'/%3E%3C/svg%3E")!important}.custom-control-input-teal:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(32,201,151,.25)}.custom-control-input-teal:focus:not(:checked)~.custom-control-label::before{border-color:#7eeaca}.custom-control-input-teal:not(:disabled):active~.custom-control-label::before{background-color:#aaf1dc;border-color:#aaf1dc}.custom-control-input-cyan:checked~.custom-control-label::before{border-color:#17a2b8;background-color:#17a2b8}.custom-control-input-cyan.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2317a2b8' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.custom-control-input-cyan.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2317a2b8'/%3E%3C/svg%3E")!important}.custom-control-input-cyan:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(23,162,184,.25)}.custom-control-input-cyan:focus:not(:checked)~.custom-control-label::before{border-color:#63d9ec}.custom-control-input-cyan:not(:disabled):active~.custom-control-label::before{background-color:#90e4f1;border-color:#90e4f1}.custom-control-input-white:checked~.custom-control-label::before{border-color:#fff;background-color:#fff}.custom-control-input-white.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.custom-control-input-white.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")!important}.custom-control-input-white:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(255,255,255,.25)}.custom-control-input-white:focus:not(:checked)~.custom-control-label::before{border-color:#fff}.custom-control-input-white:not(:disabled):active~.custom-control-label::before{background-color:#fff;border-color:#fff}.custom-control-input-gray:checked~.custom-control-label::before{border-color:#6c757d;background-color:#6c757d}.custom-control-input-gray.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236c757d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.custom-control-input-gray.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236c757d'/%3E%3C/svg%3E")!important}.custom-control-input-gray:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(108,117,125,.25)}.custom-control-input-gray:focus:not(:checked)~.custom-control-label::before{border-color:#afb5ba}.custom-control-input-gray:not(:disabled):active~.custom-control-label::before{background-color:#caced1;border-color:#caced1}.custom-control-input-gray-dark:checked~.custom-control-label::before{border-color:#343a40;background-color:#343a40}.custom-control-input-gray-dark.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23343a40' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.custom-control-input-gray-dark.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23343a40'/%3E%3C/svg%3E")!important}.custom-control-input-gray-dark:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(52,58,64,.25)}.custom-control-input-gray-dark:focus:not(:checked)~.custom-control-label::before{border-color:#6d7a86}.custom-control-input-gray-dark:not(:disabled):active~.custom-control-label::before{background-color:#88939e;border-color:#88939e}.custom-control-input-outline~.custom-control-label::before{background-color:transparent!important;box-shadow:none}.custom-control-input-outline:checked~.custom-control-label::before{background-color:transparent}.navbar-dark .btn-navbar,.navbar-dark .form-control-navbar{background-color:#3f474e;border:1px solid #56606a;color:#fff}.navbar-dark .btn-navbar:hover{background-color:#454d55}.navbar-dark .btn-navbar:focus{background-color:#4b545c}.navbar-dark .form-control-navbar+.input-group-append>.btn-navbar,.navbar-dark .form-control-navbar+.input-group-prepend>.btn-navbar{background-color:#3f474e;color:#fff;border:1px solid #56606a;border-left:none}.dark-mode .custom-control-label::before,.dark-mode .custom-file-label,.dark-mode .custom-file-label::after,.dark-mode .custom-select,.dark-mode .form-control:not(.form-control-navbar):not(.form-control-sidebar),.dark-mode .input-group-text{background-color:#343a40;color:#fff}.dark-mode .custom-file-label,.dark-mode .custom-file-label::after,.dark-mode .form-control:not(.form-control-navbar):not(.form-control-sidebar):not(.is-invalid):not(:focus){border-color:#6c757d}.dark-mode select{background-color:#343a40;color:#fff;border-color:#6c757d}.dark-mode .custom-select{background:#343a40 url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23fff' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat}.dark-mode .custom-select[multiple]{background:#343a40}.dark-mode .input-group-text{border-color:#6c757d}.dark-mode .custom-control-input:disabled~.custom-control-label::before,.dark-mode .custom-control-input[disabled]~.custom-control-label::before{background-color:#3f474e;border-color:#6c757d;color:#fff}.dark-mode input:-webkit-autofill,.dark-mode input:-webkit-autofill:focus,.dark-mode input:-webkit-autofill:hover,.dark-mode select:-webkit-autofill,.dark-mode select:-webkit-autofill:focus,.dark-mode select:-webkit-autofill:hover,.dark-mode textarea:-webkit-autofill,.dark-mode textarea:-webkit-autofill:focus,.dark-mode textarea:-webkit-autofill:hover{-webkit-text-fill-color:#fff}.dark-mode .custom-range::-webkit-slider-runnable-track{background-color:#454d55}.dark-mode .custom-range::-moz-range-track{background-color:#454d55}.dark-mode .custom-range::-ms-track{background-color:#454d55}.dark-mode .custom-range.custom-range-primary:focus{outline:0}.dark-mode .custom-range.custom-range-primary:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(63,103,145,.25)}.dark-mode .custom-range.custom-range-primary:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(63,103,145,.25)}.dark-mode .custom-range.custom-range-primary:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(63,103,145,.25)}.dark-mode .custom-range.custom-range-primary::-webkit-slider-thumb{background-color:#3f6791}.dark-mode .custom-range.custom-range-primary::-webkit-slider-thumb:active{background-color:#a9c1da}.dark-mode .custom-range.custom-range-primary::-moz-range-thumb{background-color:#3f6791}.dark-mode .custom-range.custom-range-primary::-moz-range-thumb:active{background-color:#a9c1da}.dark-mode .custom-range.custom-range-primary::-ms-thumb{background-color:#3f6791}.dark-mode .custom-range.custom-range-primary::-ms-thumb:active{background-color:#a9c1da}.dark-mode .custom-range.custom-range-secondary:focus{outline:0}.dark-mode .custom-range.custom-range-secondary:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(108,117,125,.25)}.dark-mode .custom-range.custom-range-secondary:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(108,117,125,.25)}.dark-mode .custom-range.custom-range-secondary:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(108,117,125,.25)}.dark-mode .custom-range.custom-range-secondary::-webkit-slider-thumb{background-color:#6c757d}.dark-mode .custom-range.custom-range-secondary::-webkit-slider-thumb:active{background-color:#caced1}.dark-mode .custom-range.custom-range-secondary::-moz-range-thumb{background-color:#6c757d}.dark-mode .custom-range.custom-range-secondary::-moz-range-thumb:active{background-color:#caced1}.dark-mode .custom-range.custom-range-secondary::-ms-thumb{background-color:#6c757d}.dark-mode .custom-range.custom-range-secondary::-ms-thumb:active{background-color:#caced1}.dark-mode .custom-range.custom-range-success:focus{outline:0}.dark-mode .custom-range.custom-range-success:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,188,140,.25)}.dark-mode .custom-range.custom-range-success:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,188,140,.25)}.dark-mode .custom-range.custom-range-success:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,188,140,.25)}.dark-mode .custom-range.custom-range-success::-webkit-slider-thumb{background-color:#00bc8c}.dark-mode .custom-range.custom-range-success::-webkit-slider-thumb:active{background-color:#70ffda}.dark-mode .custom-range.custom-range-success::-moz-range-thumb{background-color:#00bc8c}.dark-mode .custom-range.custom-range-success::-moz-range-thumb:active{background-color:#70ffda}.dark-mode .custom-range.custom-range-success::-ms-thumb{background-color:#00bc8c}.dark-mode .custom-range.custom-range-success::-ms-thumb:active{background-color:#70ffda}.dark-mode .custom-range.custom-range-info:focus{outline:0}.dark-mode .custom-range.custom-range-info:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(52,152,219,.25)}.dark-mode .custom-range.custom-range-info:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(52,152,219,.25)}.dark-mode .custom-range.custom-range-info:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(52,152,219,.25)}.dark-mode .custom-range.custom-range-info::-webkit-slider-thumb{background-color:#3498db}.dark-mode .custom-range.custom-range-info::-webkit-slider-thumb:active{background-color:#cce5f6}.dark-mode .custom-range.custom-range-info::-moz-range-thumb{background-color:#3498db}.dark-mode .custom-range.custom-range-info::-moz-range-thumb:active{background-color:#cce5f6}.dark-mode .custom-range.custom-range-info::-ms-thumb{background-color:#3498db}.dark-mode .custom-range.custom-range-info::-ms-thumb:active{background-color:#cce5f6}.dark-mode .custom-range.custom-range-warning:focus{outline:0}.dark-mode .custom-range.custom-range-warning:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(243,156,18,.25)}.dark-mode .custom-range.custom-range-warning:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(243,156,18,.25)}.dark-mode .custom-range.custom-range-warning:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(243,156,18,.25)}.dark-mode .custom-range.custom-range-warning::-webkit-slider-thumb{background-color:#f39c12}.dark-mode .custom-range.custom-range-warning::-webkit-slider-thumb:active{background-color:#fce3bc}.dark-mode .custom-range.custom-range-warning::-moz-range-thumb{background-color:#f39c12}.dark-mode .custom-range.custom-range-warning::-moz-range-thumb:active{background-color:#fce3bc}.dark-mode .custom-range.custom-range-warning::-ms-thumb{background-color:#f39c12}.dark-mode .custom-range.custom-range-warning::-ms-thumb:active{background-color:#fce3bc}.dark-mode .custom-range.custom-range-danger:focus{outline:0}.dark-mode .custom-range.custom-range-danger:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(231,76,60,.25)}.dark-mode .custom-range.custom-range-danger:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(231,76,60,.25)}.dark-mode .custom-range.custom-range-danger:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(231,76,60,.25)}.dark-mode .custom-range.custom-range-danger::-webkit-slider-thumb{background-color:#e74c3c}.dark-mode .custom-range.custom-range-danger::-webkit-slider-thumb:active{background-color:#fbdedb}.dark-mode .custom-range.custom-range-danger::-moz-range-thumb{background-color:#e74c3c}.dark-mode .custom-range.custom-range-danger::-moz-range-thumb:active{background-color:#fbdedb}.dark-mode .custom-range.custom-range-danger::-ms-thumb{background-color:#e74c3c}.dark-mode .custom-range.custom-range-danger::-ms-thumb:active{background-color:#fbdedb}.dark-mode .custom-range.custom-range-light:focus{outline:0}.dark-mode .custom-range.custom-range-light:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(248,249,250,.25)}.dark-mode .custom-range.custom-range-light:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(248,249,250,.25)}.dark-mode .custom-range.custom-range-light:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(248,249,250,.25)}.dark-mode .custom-range.custom-range-light::-webkit-slider-thumb{background-color:#f8f9fa}.dark-mode .custom-range.custom-range-light::-webkit-slider-thumb:active{background-color:#fff}.dark-mode .custom-range.custom-range-light::-moz-range-thumb{background-color:#f8f9fa}.dark-mode .custom-range.custom-range-light::-moz-range-thumb:active{background-color:#fff}.dark-mode .custom-range.custom-range-light::-ms-thumb{background-color:#f8f9fa}.dark-mode .custom-range.custom-range-light::-ms-thumb:active{background-color:#fff}.dark-mode .custom-range.custom-range-dark:focus{outline:0}.dark-mode .custom-range.custom-range-dark:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(52,58,64,.25)}.dark-mode .custom-range.custom-range-dark:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(52,58,64,.25)}.dark-mode .custom-range.custom-range-dark:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(52,58,64,.25)}.dark-mode .custom-range.custom-range-dark::-webkit-slider-thumb{background-color:#343a40}.dark-mode .custom-range.custom-range-dark::-webkit-slider-thumb:active{background-color:#88939e}.dark-mode .custom-range.custom-range-dark::-moz-range-thumb{background-color:#343a40}.dark-mode .custom-range.custom-range-dark::-moz-range-thumb:active{background-color:#88939e}.dark-mode .custom-range.custom-range-dark::-ms-thumb{background-color:#343a40}.dark-mode .custom-range.custom-range-dark::-ms-thumb:active{background-color:#88939e}.dark-mode .custom-range.custom-range-lightblue:focus{outline:0}.dark-mode .custom-range.custom-range-lightblue:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(134,186,216,.25)}.dark-mode .custom-range.custom-range-lightblue:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(134,186,216,.25)}.dark-mode .custom-range.custom-range-lightblue:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(134,186,216,.25)}.dark-mode .custom-range.custom-range-lightblue::-webkit-slider-thumb{background-color:#86bad8}.dark-mode .custom-range.custom-range-lightblue::-webkit-slider-thumb:active{background-color:#fff}.dark-mode .custom-range.custom-range-lightblue::-moz-range-thumb{background-color:#86bad8}.dark-mode .custom-range.custom-range-lightblue::-moz-range-thumb:active{background-color:#fff}.dark-mode .custom-range.custom-range-lightblue::-ms-thumb{background-color:#86bad8}.dark-mode .custom-range.custom-range-lightblue::-ms-thumb:active{background-color:#fff}.dark-mode .custom-range.custom-range-navy:focus{outline:0}.dark-mode .custom-range.custom-range-navy:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,44,89,.25)}.dark-mode .custom-range.custom-range-navy:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,44,89,.25)}.dark-mode .custom-range.custom-range-navy:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,44,89,.25)}.dark-mode .custom-range.custom-range-navy::-webkit-slider-thumb{background-color:#002c59}.dark-mode .custom-range.custom-range-navy::-webkit-slider-thumb:active{background-color:#0c84ff}.dark-mode .custom-range.custom-range-navy::-moz-range-thumb{background-color:#002c59}.dark-mode .custom-range.custom-range-navy::-moz-range-thumb:active{background-color:#0c84ff}.dark-mode .custom-range.custom-range-navy::-ms-thumb{background-color:#002c59}.dark-mode .custom-range.custom-range-navy::-ms-thumb:active{background-color:#0c84ff}.dark-mode .custom-range.custom-range-olive:focus{outline:0}.dark-mode .custom-range.custom-range-olive:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(116,200,163,.25)}.dark-mode .custom-range.custom-range-olive:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(116,200,163,.25)}.dark-mode .custom-range.custom-range-olive:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(116,200,163,.25)}.dark-mode .custom-range.custom-range-olive::-webkit-slider-thumb{background-color:#74c8a3}.dark-mode .custom-range.custom-range-olive::-webkit-slider-thumb:active{background-color:#f4fbf8}.dark-mode .custom-range.custom-range-olive::-moz-range-thumb{background-color:#74c8a3}.dark-mode .custom-range.custom-range-olive::-moz-range-thumb:active{background-color:#f4fbf8}.dark-mode .custom-range.custom-range-olive::-ms-thumb{background-color:#74c8a3}.dark-mode .custom-range.custom-range-olive::-ms-thumb:active{background-color:#f4fbf8}.dark-mode .custom-range.custom-range-lime:focus{outline:0}.dark-mode .custom-range.custom-range-lime:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(103,255,169,.25)}.dark-mode .custom-range.custom-range-lime:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(103,255,169,.25)}.dark-mode .custom-range.custom-range-lime:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(103,255,169,.25)}.dark-mode .custom-range.custom-range-lime::-webkit-slider-thumb{background-color:#67ffa9}.dark-mode .custom-range.custom-range-lime::-webkit-slider-thumb:active{background-color:#fff}.dark-mode .custom-range.custom-range-lime::-moz-range-thumb{background-color:#67ffa9}.dark-mode .custom-range.custom-range-lime::-moz-range-thumb:active{background-color:#fff}.dark-mode .custom-range.custom-range-lime::-ms-thumb{background-color:#67ffa9}.dark-mode .custom-range.custom-range-lime::-ms-thumb:active{background-color:#fff}.dark-mode .custom-range.custom-range-fuchsia:focus{outline:0}.dark-mode .custom-range.custom-range-fuchsia:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(246,114,216,.25)}.dark-mode .custom-range.custom-range-fuchsia:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(246,114,216,.25)}.dark-mode .custom-range.custom-range-fuchsia:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(246,114,216,.25)}.dark-mode .custom-range.custom-range-fuchsia::-webkit-slider-thumb{background-color:#f672d8}.dark-mode .custom-range.custom-range-fuchsia::-webkit-slider-thumb:active{background-color:#fff}.dark-mode .custom-range.custom-range-fuchsia::-moz-range-thumb{background-color:#f672d8}.dark-mode .custom-range.custom-range-fuchsia::-moz-range-thumb:active{background-color:#fff}.dark-mode .custom-range.custom-range-fuchsia::-ms-thumb{background-color:#f672d8}.dark-mode .custom-range.custom-range-fuchsia::-ms-thumb:active{background-color:#fff}.dark-mode .custom-range.custom-range-maroon:focus{outline:0}.dark-mode .custom-range.custom-range-maroon:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(237,108,155,.25)}.dark-mode .custom-range.custom-range-maroon:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(237,108,155,.25)}.dark-mode .custom-range.custom-range-maroon:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(237,108,155,.25)}.dark-mode .custom-range.custom-range-maroon::-webkit-slider-thumb{background-color:#ed6c9b}.dark-mode .custom-range.custom-range-maroon::-webkit-slider-thumb:active{background-color:#fff}.dark-mode .custom-range.custom-range-maroon::-moz-range-thumb{background-color:#ed6c9b}.dark-mode .custom-range.custom-range-maroon::-moz-range-thumb:active{background-color:#fff}.dark-mode .custom-range.custom-range-maroon::-ms-thumb{background-color:#ed6c9b}.dark-mode .custom-range.custom-range-maroon::-ms-thumb:active{background-color:#fff}.dark-mode .custom-range.custom-range-blue:focus{outline:0}.dark-mode .custom-range.custom-range-blue:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(63,103,145,.25)}.dark-mode .custom-range.custom-range-blue:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(63,103,145,.25)}.dark-mode .custom-range.custom-range-blue:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(63,103,145,.25)}.dark-mode .custom-range.custom-range-blue::-webkit-slider-thumb{background-color:#3f6791}.dark-mode .custom-range.custom-range-blue::-webkit-slider-thumb:active{background-color:#a9c1da}.dark-mode .custom-range.custom-range-blue::-moz-range-thumb{background-color:#3f6791}.dark-mode .custom-range.custom-range-blue::-moz-range-thumb:active{background-color:#a9c1da}.dark-mode .custom-range.custom-range-blue::-ms-thumb{background-color:#3f6791}.dark-mode .custom-range.custom-range-blue::-ms-thumb:active{background-color:#a9c1da}.dark-mode .custom-range.custom-range-indigo:focus{outline:0}.dark-mode .custom-range.custom-range-indigo:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(102,16,242,.25)}.dark-mode .custom-range.custom-range-indigo:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(102,16,242,.25)}.dark-mode .custom-range.custom-range-indigo:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(102,16,242,.25)}.dark-mode .custom-range.custom-range-indigo::-webkit-slider-thumb{background-color:#6610f2}.dark-mode .custom-range.custom-range-indigo::-webkit-slider-thumb:active{background-color:#d2b9fb}.dark-mode .custom-range.custom-range-indigo::-moz-range-thumb{background-color:#6610f2}.dark-mode .custom-range.custom-range-indigo::-moz-range-thumb:active{background-color:#d2b9fb}.dark-mode .custom-range.custom-range-indigo::-ms-thumb{background-color:#6610f2}.dark-mode .custom-range.custom-range-indigo::-ms-thumb:active{background-color:#d2b9fb}.dark-mode .custom-range.custom-range-purple:focus{outline:0}.dark-mode .custom-range.custom-range-purple:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(111,66,193,.25)}.dark-mode .custom-range.custom-range-purple:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(111,66,193,.25)}.dark-mode .custom-range.custom-range-purple:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(111,66,193,.25)}.dark-mode .custom-range.custom-range-purple::-webkit-slider-thumb{background-color:#6f42c1}.dark-mode .custom-range.custom-range-purple::-webkit-slider-thumb:active{background-color:#d5c8ed}.dark-mode .custom-range.custom-range-purple::-moz-range-thumb{background-color:#6f42c1}.dark-mode .custom-range.custom-range-purple::-moz-range-thumb:active{background-color:#d5c8ed}.dark-mode .custom-range.custom-range-purple::-ms-thumb{background-color:#6f42c1}.dark-mode .custom-range.custom-range-purple::-ms-thumb:active{background-color:#d5c8ed}.dark-mode .custom-range.custom-range-pink:focus{outline:0}.dark-mode .custom-range.custom-range-pink:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(232,62,140,.25)}.dark-mode .custom-range.custom-range-pink:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(232,62,140,.25)}.dark-mode .custom-range.custom-range-pink:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(232,62,140,.25)}.dark-mode .custom-range.custom-range-pink::-webkit-slider-thumb{background-color:#e83e8c}.dark-mode .custom-range.custom-range-pink::-webkit-slider-thumb:active{background-color:#fbddeb}.dark-mode .custom-range.custom-range-pink::-moz-range-thumb{background-color:#e83e8c}.dark-mode .custom-range.custom-range-pink::-moz-range-thumb:active{background-color:#fbddeb}.dark-mode .custom-range.custom-range-pink::-ms-thumb{background-color:#e83e8c}.dark-mode .custom-range.custom-range-pink::-ms-thumb:active{background-color:#fbddeb}.dark-mode .custom-range.custom-range-red:focus{outline:0}.dark-mode .custom-range.custom-range-red:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(231,76,60,.25)}.dark-mode .custom-range.custom-range-red:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(231,76,60,.25)}.dark-mode .custom-range.custom-range-red:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(231,76,60,.25)}.dark-mode .custom-range.custom-range-red::-webkit-slider-thumb{background-color:#e74c3c}.dark-mode .custom-range.custom-range-red::-webkit-slider-thumb:active{background-color:#fbdedb}.dark-mode .custom-range.custom-range-red::-moz-range-thumb{background-color:#e74c3c}.dark-mode .custom-range.custom-range-red::-moz-range-thumb:active{background-color:#fbdedb}.dark-mode .custom-range.custom-range-red::-ms-thumb{background-color:#e74c3c}.dark-mode .custom-range.custom-range-red::-ms-thumb:active{background-color:#fbdedb}.dark-mode .custom-range.custom-range-orange:focus{outline:0}.dark-mode .custom-range.custom-range-orange:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(253,126,20,.25)}.dark-mode .custom-range.custom-range-orange:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(253,126,20,.25)}.dark-mode .custom-range.custom-range-orange:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(253,126,20,.25)}.dark-mode .custom-range.custom-range-orange::-webkit-slider-thumb{background-color:#fd7e14}.dark-mode .custom-range.custom-range-orange::-webkit-slider-thumb:active{background-color:#ffdfc5}.dark-mode .custom-range.custom-range-orange::-moz-range-thumb{background-color:#fd7e14}.dark-mode .custom-range.custom-range-orange::-moz-range-thumb:active{background-color:#ffdfc5}.dark-mode .custom-range.custom-range-orange::-ms-thumb{background-color:#fd7e14}.dark-mode .custom-range.custom-range-orange::-ms-thumb:active{background-color:#ffdfc5}.dark-mode .custom-range.custom-range-yellow:focus{outline:0}.dark-mode .custom-range.custom-range-yellow:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(243,156,18,.25)}.dark-mode .custom-range.custom-range-yellow:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(243,156,18,.25)}.dark-mode .custom-range.custom-range-yellow:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(243,156,18,.25)}.dark-mode .custom-range.custom-range-yellow::-webkit-slider-thumb{background-color:#f39c12}.dark-mode .custom-range.custom-range-yellow::-webkit-slider-thumb:active{background-color:#fce3bc}.dark-mode .custom-range.custom-range-yellow::-moz-range-thumb{background-color:#f39c12}.dark-mode .custom-range.custom-range-yellow::-moz-range-thumb:active{background-color:#fce3bc}.dark-mode .custom-range.custom-range-yellow::-ms-thumb{background-color:#f39c12}.dark-mode .custom-range.custom-range-yellow::-ms-thumb:active{background-color:#fce3bc}.dark-mode .custom-range.custom-range-green:focus{outline:0}.dark-mode .custom-range.custom-range-green:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,188,140,.25)}.dark-mode .custom-range.custom-range-green:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,188,140,.25)}.dark-mode .custom-range.custom-range-green:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,188,140,.25)}.dark-mode .custom-range.custom-range-green::-webkit-slider-thumb{background-color:#00bc8c}.dark-mode .custom-range.custom-range-green::-webkit-slider-thumb:active{background-color:#70ffda}.dark-mode .custom-range.custom-range-green::-moz-range-thumb{background-color:#00bc8c}.dark-mode .custom-range.custom-range-green::-moz-range-thumb:active{background-color:#70ffda}.dark-mode .custom-range.custom-range-green::-ms-thumb{background-color:#00bc8c}.dark-mode .custom-range.custom-range-green::-ms-thumb:active{background-color:#70ffda}.dark-mode .custom-range.custom-range-teal:focus{outline:0}.dark-mode .custom-range.custom-range-teal:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(32,201,151,.25)}.dark-mode .custom-range.custom-range-teal:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(32,201,151,.25)}.dark-mode .custom-range.custom-range-teal:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(32,201,151,.25)}.dark-mode .custom-range.custom-range-teal::-webkit-slider-thumb{background-color:#20c997}.dark-mode .custom-range.custom-range-teal::-webkit-slider-thumb:active{background-color:#aaf1dc}.dark-mode .custom-range.custom-range-teal::-moz-range-thumb{background-color:#20c997}.dark-mode .custom-range.custom-range-teal::-moz-range-thumb:active{background-color:#aaf1dc}.dark-mode .custom-range.custom-range-teal::-ms-thumb{background-color:#20c997}.dark-mode .custom-range.custom-range-teal::-ms-thumb:active{background-color:#aaf1dc}.dark-mode .custom-range.custom-range-cyan:focus{outline:0}.dark-mode .custom-range.custom-range-cyan:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(52,152,219,.25)}.dark-mode .custom-range.custom-range-cyan:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(52,152,219,.25)}.dark-mode .custom-range.custom-range-cyan:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(52,152,219,.25)}.dark-mode .custom-range.custom-range-cyan::-webkit-slider-thumb{background-color:#3498db}.dark-mode .custom-range.custom-range-cyan::-webkit-slider-thumb:active{background-color:#cce5f6}.dark-mode .custom-range.custom-range-cyan::-moz-range-thumb{background-color:#3498db}.dark-mode .custom-range.custom-range-cyan::-moz-range-thumb:active{background-color:#cce5f6}.dark-mode .custom-range.custom-range-cyan::-ms-thumb{background-color:#3498db}.dark-mode .custom-range.custom-range-cyan::-ms-thumb:active{background-color:#cce5f6}.dark-mode .custom-range.custom-range-white:focus{outline:0}.dark-mode .custom-range.custom-range-white:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(255,255,255,.25)}.dark-mode .custom-range.custom-range-white:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(255,255,255,.25)}.dark-mode .custom-range.custom-range-white:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(255,255,255,.25)}.dark-mode .custom-range.custom-range-white::-webkit-slider-thumb{background-color:#fff}.dark-mode .custom-range.custom-range-white::-webkit-slider-thumb:active{background-color:#fff}.dark-mode .custom-range.custom-range-white::-moz-range-thumb{background-color:#fff}.dark-mode .custom-range.custom-range-white::-moz-range-thumb:active{background-color:#fff}.dark-mode .custom-range.custom-range-white::-ms-thumb{background-color:#fff}.dark-mode .custom-range.custom-range-white::-ms-thumb:active{background-color:#fff}.dark-mode .custom-range.custom-range-gray:focus{outline:0}.dark-mode .custom-range.custom-range-gray:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(108,117,125,.25)}.dark-mode .custom-range.custom-range-gray:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(108,117,125,.25)}.dark-mode .custom-range.custom-range-gray:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(108,117,125,.25)}.dark-mode .custom-range.custom-range-gray::-webkit-slider-thumb{background-color:#6c757d}.dark-mode .custom-range.custom-range-gray::-webkit-slider-thumb:active{background-color:#caced1}.dark-mode .custom-range.custom-range-gray::-moz-range-thumb{background-color:#6c757d}.dark-mode .custom-range.custom-range-gray::-moz-range-thumb:active{background-color:#caced1}.dark-mode .custom-range.custom-range-gray::-ms-thumb{background-color:#6c757d}.dark-mode .custom-range.custom-range-gray::-ms-thumb:active{background-color:#caced1}.dark-mode .custom-range.custom-range-gray-dark:focus{outline:0}.dark-mode .custom-range.custom-range-gray-dark:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(52,58,64,.25)}.dark-mode .custom-range.custom-range-gray-dark:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(52,58,64,.25)}.dark-mode .custom-range.custom-range-gray-dark:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(52,58,64,.25)}.dark-mode .custom-range.custom-range-gray-dark::-webkit-slider-thumb{background-color:#343a40}.dark-mode .custom-range.custom-range-gray-dark::-webkit-slider-thumb:active{background-color:#88939e}.dark-mode .custom-range.custom-range-gray-dark::-moz-range-thumb{background-color:#343a40}.dark-mode .custom-range.custom-range-gray-dark::-moz-range-thumb:active{background-color:#88939e}.dark-mode .custom-range.custom-range-gray-dark::-ms-thumb{background-color:#343a40}.dark-mode .custom-range.custom-range-gray-dark::-ms-thumb:active{background-color:#88939e}.dark-mode .custom-switch.custom-switch-off-primary .custom-control-input~.custom-control-label::before{background-color:#3f6791;border-color:#20344a}.dark-mode .custom-switch.custom-switch-off-primary .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(63,103,145,.25)}.dark-mode .custom-switch.custom-switch-off-primary .custom-control-input~.custom-control-label::after{background-color:#182838}.dark-mode .custom-switch.custom-switch-on-primary .custom-control-input:checked~.custom-control-label::before{background-color:#3f6791;border-color:#20344a}.dark-mode .custom-switch.custom-switch-on-primary .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(63,103,145,.25)}.dark-mode .custom-switch.custom-switch-on-primary .custom-control-input:checked~.custom-control-label::after{background-color:#97b4d2}.dark-mode .custom-switch.custom-switch-off-secondary .custom-control-input~.custom-control-label::before{background-color:#6c757d;border-color:#3d4246}.dark-mode .custom-switch.custom-switch-off-secondary .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(108,117,125,.25)}.dark-mode .custom-switch.custom-switch-off-secondary .custom-control-input~.custom-control-label::after{background-color:#313539}.dark-mode .custom-switch.custom-switch-on-secondary .custom-control-input:checked~.custom-control-label::before{background-color:#6c757d;border-color:#3d4246}.dark-mode .custom-switch.custom-switch-on-secondary .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(108,117,125,.25)}.dark-mode .custom-switch.custom-switch-on-secondary .custom-control-input:checked~.custom-control-label::after{background-color:#bcc1c6}.dark-mode .custom-switch.custom-switch-off-success .custom-control-input~.custom-control-label::before{background-color:#00bc8c;border-color:#005640}.dark-mode .custom-switch.custom-switch-off-success .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,188,140,.25)}.dark-mode .custom-switch.custom-switch-off-success .custom-control-input~.custom-control-label::after{background-color:#003d2d}.dark-mode .custom-switch.custom-switch-on-success .custom-control-input:checked~.custom-control-label::before{background-color:#00bc8c;border-color:#005640}.dark-mode .custom-switch.custom-switch-on-success .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,188,140,.25)}.dark-mode .custom-switch.custom-switch-on-success .custom-control-input:checked~.custom-control-label::after{background-color:#56ffd4}.dark-mode .custom-switch.custom-switch-off-info .custom-control-input~.custom-control-label::before{background-color:#3498db;border-color:#196090}.dark-mode .custom-switch.custom-switch-off-info .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(52,152,219,.25)}.dark-mode .custom-switch.custom-switch-off-info .custom-control-input~.custom-control-label::after{background-color:#16527a}.dark-mode .custom-switch.custom-switch-on-info .custom-control-input:checked~.custom-control-label::before{background-color:#3498db;border-color:#196090}.dark-mode .custom-switch.custom-switch-on-info .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(52,152,219,.25)}.dark-mode .custom-switch.custom-switch-on-info .custom-control-input:checked~.custom-control-label::after{background-color:#b6daf2}.dark-mode .custom-switch.custom-switch-off-warning .custom-control-input~.custom-control-label::before{background-color:#f39c12;border-color:#976008}.dark-mode .custom-switch.custom-switch-off-warning .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(243,156,18,.25)}.dark-mode .custom-switch.custom-switch-off-warning .custom-control-input~.custom-control-label::after{background-color:#7f5006}.dark-mode .custom-switch.custom-switch-on-warning .custom-control-input:checked~.custom-control-label::before{background-color:#f39c12;border-color:#976008}.dark-mode .custom-switch.custom-switch-on-warning .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(243,156,18,.25)}.dark-mode .custom-switch.custom-switch-on-warning .custom-control-input:checked~.custom-control-label::after{background-color:#fad9a4}.dark-mode .custom-switch.custom-switch-off-danger .custom-control-input~.custom-control-label::before{background-color:#e74c3c;border-color:#a82315}.dark-mode .custom-switch.custom-switch-off-danger .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(231,76,60,.25)}.dark-mode .custom-switch.custom-switch-off-danger .custom-control-input~.custom-control-label::after{background-color:#921e12}.dark-mode .custom-switch.custom-switch-on-danger .custom-control-input:checked~.custom-control-label::before{background-color:#e74c3c;border-color:#a82315}.dark-mode .custom-switch.custom-switch-on-danger .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(231,76,60,.25)}.dark-mode .custom-switch.custom-switch-on-danger .custom-control-input:checked~.custom-control-label::after{background-color:#f8c9c4}.dark-mode .custom-switch.custom-switch-off-light .custom-control-input~.custom-control-label::before{background-color:#f8f9fa;border-color:#bdc6d0}.dark-mode .custom-switch.custom-switch-off-light .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(248,249,250,.25)}.dark-mode .custom-switch.custom-switch-off-light .custom-control-input~.custom-control-label::after{background-color:#aeb9c5}.dark-mode .custom-switch.custom-switch-on-light .custom-control-input:checked~.custom-control-label::before{background-color:#f8f9fa;border-color:#bdc6d0}.dark-mode .custom-switch.custom-switch-on-light .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(248,249,250,.25)}.dark-mode .custom-switch.custom-switch-on-light .custom-control-input:checked~.custom-control-label::after{background-color:#fff}.dark-mode .custom-switch.custom-switch-off-dark .custom-control-input~.custom-control-label::before{background-color:#343a40;border-color:#060708}.dark-mode .custom-switch.custom-switch-off-dark .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(52,58,64,.25)}.dark-mode .custom-switch.custom-switch-off-dark .custom-control-input~.custom-control-label::after{background-color:#000}.dark-mode .custom-switch.custom-switch-on-dark .custom-control-input:checked~.custom-control-label::before{background-color:#343a40;border-color:#060708}.dark-mode .custom-switch.custom-switch-on-dark .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(52,58,64,.25)}.dark-mode .custom-switch.custom-switch-on-dark .custom-control-input:checked~.custom-control-label::after{background-color:#7a8793}.dark-mode .custom-switch.custom-switch-off-lightblue .custom-control-input~.custom-control-label::before{background-color:#86bad8;border-color:#3c8dbc}.dark-mode .custom-switch.custom-switch-off-lightblue .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(134,186,216,.25)}.dark-mode .custom-switch.custom-switch-off-lightblue .custom-control-input~.custom-control-label::after{background-color:#367fa9}.dark-mode .custom-switch.custom-switch-on-lightblue .custom-control-input:checked~.custom-control-label::before{background-color:#86bad8;border-color:#3c8dbc}.dark-mode .custom-switch.custom-switch-on-lightblue .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(134,186,216,.25)}.dark-mode .custom-switch.custom-switch-on-lightblue .custom-control-input:checked~.custom-control-label::after{background-color:#fafcfd}.dark-mode .custom-switch.custom-switch-off-navy .custom-control-input~.custom-control-label::before{background-color:#002c59;border-color:#000}.dark-mode .custom-switch.custom-switch-off-navy .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,44,89,.25)}.dark-mode .custom-switch.custom-switch-off-navy .custom-control-input~.custom-control-label::after{background-color:#000}.dark-mode .custom-switch.custom-switch-on-navy .custom-control-input:checked~.custom-control-label::before{background-color:#002c59;border-color:#000}.dark-mode .custom-switch.custom-switch-on-navy .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,44,89,.25)}.dark-mode .custom-switch.custom-switch-on-navy .custom-control-input:checked~.custom-control-label::after{background-color:#0077f2}.dark-mode .custom-switch.custom-switch-off-olive .custom-control-input~.custom-control-label::before{background-color:#74c8a3;border-color:#3d9970}.dark-mode .custom-switch.custom-switch-off-olive .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(116,200,163,.25)}.dark-mode .custom-switch.custom-switch-off-olive .custom-control-input~.custom-control-label::after{background-color:#368763}.dark-mode .custom-switch.custom-switch-on-olive .custom-control-input:checked~.custom-control-label::before{background-color:#74c8a3;border-color:#3d9970}.dark-mode .custom-switch.custom-switch-on-olive .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(116,200,163,.25)}.dark-mode .custom-switch.custom-switch-on-olive .custom-control-input:checked~.custom-control-label::after{background-color:#e2f3eb}.dark-mode .custom-switch.custom-switch-off-lime .custom-control-input~.custom-control-label::before{background-color:#67ffa9;border-color:#01ff70}.dark-mode .custom-switch.custom-switch-off-lime .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(103,255,169,.25)}.dark-mode .custom-switch.custom-switch-off-lime .custom-control-input~.custom-control-label::after{background-color:#00e765}.dark-mode .custom-switch.custom-switch-on-lime .custom-control-input:checked~.custom-control-label::before{background-color:#67ffa9;border-color:#01ff70}.dark-mode .custom-switch.custom-switch-on-lime .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(103,255,169,.25)}.dark-mode .custom-switch.custom-switch-on-lime .custom-control-input:checked~.custom-control-label::after{background-color:#fff}.dark-mode .custom-switch.custom-switch-off-fuchsia .custom-control-input~.custom-control-label::before{background-color:#f672d8;border-color:#f012be}.dark-mode .custom-switch.custom-switch-off-fuchsia .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(246,114,216,.25)}.dark-mode .custom-switch.custom-switch-off-fuchsia .custom-control-input~.custom-control-label::after{background-color:#db0ead}.dark-mode .custom-switch.custom-switch-on-fuchsia .custom-control-input:checked~.custom-control-label::before{background-color:#f672d8;border-color:#f012be}.dark-mode .custom-switch.custom-switch-on-fuchsia .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(246,114,216,.25)}.dark-mode .custom-switch.custom-switch-on-fuchsia .custom-control-input:checked~.custom-control-label::after{background-color:#fff}.dark-mode .custom-switch.custom-switch-off-maroon .custom-control-input~.custom-control-label::before{background-color:#ed6c9b;border-color:#d81b60}.dark-mode .custom-switch.custom-switch-off-maroon .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(237,108,155,.25)}.dark-mode .custom-switch.custom-switch-off-maroon .custom-control-input~.custom-control-label::after{background-color:#c11856}.dark-mode .custom-switch.custom-switch-on-maroon .custom-control-input:checked~.custom-control-label::before{background-color:#ed6c9b;border-color:#d81b60}.dark-mode .custom-switch.custom-switch-on-maroon .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(237,108,155,.25)}.dark-mode .custom-switch.custom-switch-on-maroon .custom-control-input:checked~.custom-control-label::after{background-color:#fef4f8}.dark-mode .custom-switch.custom-switch-off-blue .custom-control-input~.custom-control-label::before{background-color:#3f6791;border-color:#20344a}.dark-mode .custom-switch.custom-switch-off-blue .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(63,103,145,.25)}.dark-mode .custom-switch.custom-switch-off-blue .custom-control-input~.custom-control-label::after{background-color:#182838}.dark-mode .custom-switch.custom-switch-on-blue .custom-control-input:checked~.custom-control-label::before{background-color:#3f6791;border-color:#20344a}.dark-mode .custom-switch.custom-switch-on-blue .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(63,103,145,.25)}.dark-mode .custom-switch.custom-switch-on-blue .custom-control-input:checked~.custom-control-label::after{background-color:#97b4d2}.dark-mode .custom-switch.custom-switch-off-indigo .custom-control-input~.custom-control-label::before{background-color:#6610f2;border-color:#3d0894}.dark-mode .custom-switch.custom-switch-off-indigo .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(102,16,242,.25)}.dark-mode .custom-switch.custom-switch-off-indigo .custom-control-input~.custom-control-label::after{background-color:#33077c}.dark-mode .custom-switch.custom-switch-on-indigo .custom-control-input:checked~.custom-control-label::before{background-color:#6610f2;border-color:#3d0894}.dark-mode .custom-switch.custom-switch-on-indigo .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(102,16,242,.25)}.dark-mode .custom-switch.custom-switch-on-indigo .custom-control-input:checked~.custom-control-label::after{background-color:#c3a1fa}.dark-mode .custom-switch.custom-switch-off-purple .custom-control-input~.custom-control-label::before{background-color:#6f42c1;border-color:#432776}.dark-mode .custom-switch.custom-switch-off-purple .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(111,66,193,.25)}.dark-mode .custom-switch.custom-switch-off-purple .custom-control-input~.custom-control-label::after{background-color:#382063}.dark-mode .custom-switch.custom-switch-on-purple .custom-control-input:checked~.custom-control-label::before{background-color:#6f42c1;border-color:#432776}.dark-mode .custom-switch.custom-switch-on-purple .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(111,66,193,.25)}.dark-mode .custom-switch.custom-switch-on-purple .custom-control-input:checked~.custom-control-label::after{background-color:#c7b5e7}.dark-mode .custom-switch.custom-switch-off-pink .custom-control-input~.custom-control-label::before{background-color:#e83e8c;border-color:#ac145a}.dark-mode .custom-switch.custom-switch-off-pink .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(232,62,140,.25)}.dark-mode .custom-switch.custom-switch-off-pink .custom-control-input~.custom-control-label::after{background-color:#95124e}.dark-mode .custom-switch.custom-switch-on-pink .custom-control-input:checked~.custom-control-label::before{background-color:#e83e8c;border-color:#ac145a}.dark-mode .custom-switch.custom-switch-on-pink .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(232,62,140,.25)}.dark-mode .custom-switch.custom-switch-on-pink .custom-control-input:checked~.custom-control-label::after{background-color:#f8c7dd}.dark-mode .custom-switch.custom-switch-off-red .custom-control-input~.custom-control-label::before{background-color:#e74c3c;border-color:#a82315}.dark-mode .custom-switch.custom-switch-off-red .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(231,76,60,.25)}.dark-mode .custom-switch.custom-switch-off-red .custom-control-input~.custom-control-label::after{background-color:#921e12}.dark-mode .custom-switch.custom-switch-on-red .custom-control-input:checked~.custom-control-label::before{background-color:#e74c3c;border-color:#a82315}.dark-mode .custom-switch.custom-switch-on-red .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(231,76,60,.25)}.dark-mode .custom-switch.custom-switch-on-red .custom-control-input:checked~.custom-control-label::after{background-color:#f8c9c4}.dark-mode .custom-switch.custom-switch-off-orange .custom-control-input~.custom-control-label::before{background-color:#fd7e14;border-color:#aa4e01}.dark-mode .custom-switch.custom-switch-off-orange .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(253,126,20,.25)}.dark-mode .custom-switch.custom-switch-off-orange .custom-control-input~.custom-control-label::after{background-color:#904201}.dark-mode .custom-switch.custom-switch-on-orange .custom-control-input:checked~.custom-control-label::before{background-color:#fd7e14;border-color:#aa4e01}.dark-mode .custom-switch.custom-switch-on-orange .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(253,126,20,.25)}.dark-mode .custom-switch.custom-switch-on-orange .custom-control-input:checked~.custom-control-label::after{background-color:#fed1ac}.dark-mode .custom-switch.custom-switch-off-yellow .custom-control-input~.custom-control-label::before{background-color:#f39c12;border-color:#976008}.dark-mode .custom-switch.custom-switch-off-yellow .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(243,156,18,.25)}.dark-mode .custom-switch.custom-switch-off-yellow .custom-control-input~.custom-control-label::after{background-color:#7f5006}.dark-mode .custom-switch.custom-switch-on-yellow .custom-control-input:checked~.custom-control-label::before{background-color:#f39c12;border-color:#976008}.dark-mode .custom-switch.custom-switch-on-yellow .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(243,156,18,.25)}.dark-mode .custom-switch.custom-switch-on-yellow .custom-control-input:checked~.custom-control-label::after{background-color:#fad9a4}.dark-mode .custom-switch.custom-switch-off-green .custom-control-input~.custom-control-label::before{background-color:#00bc8c;border-color:#005640}.dark-mode .custom-switch.custom-switch-off-green .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,188,140,.25)}.dark-mode .custom-switch.custom-switch-off-green .custom-control-input~.custom-control-label::after{background-color:#003d2d}.dark-mode .custom-switch.custom-switch-on-green .custom-control-input:checked~.custom-control-label::before{background-color:#00bc8c;border-color:#005640}.dark-mode .custom-switch.custom-switch-on-green .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,188,140,.25)}.dark-mode .custom-switch.custom-switch-on-green .custom-control-input:checked~.custom-control-label::after{background-color:#56ffd4}.dark-mode .custom-switch.custom-switch-off-teal .custom-control-input~.custom-control-label::before{background-color:#20c997;border-color:#127155}.dark-mode .custom-switch.custom-switch-off-teal .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(32,201,151,.25)}.dark-mode .custom-switch.custom-switch-off-teal .custom-control-input~.custom-control-label::after{background-color:#0e5b44}.dark-mode .custom-switch.custom-switch-on-teal .custom-control-input:checked~.custom-control-label::before{background-color:#20c997;border-color:#127155}.dark-mode .custom-switch.custom-switch-on-teal .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(32,201,151,.25)}.dark-mode .custom-switch.custom-switch-on-teal .custom-control-input:checked~.custom-control-label::after{background-color:#94eed3}.dark-mode .custom-switch.custom-switch-off-cyan .custom-control-input~.custom-control-label::before{background-color:#3498db;border-color:#196090}.dark-mode .custom-switch.custom-switch-off-cyan .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(52,152,219,.25)}.dark-mode .custom-switch.custom-switch-off-cyan .custom-control-input~.custom-control-label::after{background-color:#16527a}.dark-mode .custom-switch.custom-switch-on-cyan .custom-control-input:checked~.custom-control-label::before{background-color:#3498db;border-color:#196090}.dark-mode .custom-switch.custom-switch-on-cyan .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(52,152,219,.25)}.dark-mode .custom-switch.custom-switch-on-cyan .custom-control-input:checked~.custom-control-label::after{background-color:#b6daf2}.dark-mode .custom-switch.custom-switch-off-white .custom-control-input~.custom-control-label::before{background-color:#fff;border-color:#ccc}.dark-mode .custom-switch.custom-switch-off-white .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(255,255,255,.25)}.dark-mode .custom-switch.custom-switch-off-white .custom-control-input~.custom-control-label::after{background-color:#bfbfbf}.dark-mode .custom-switch.custom-switch-on-white .custom-control-input:checked~.custom-control-label::before{background-color:#fff;border-color:#ccc}.dark-mode .custom-switch.custom-switch-on-white .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(255,255,255,.25)}.dark-mode .custom-switch.custom-switch-on-white .custom-control-input:checked~.custom-control-label::after{background-color:#fff}.dark-mode .custom-switch.custom-switch-off-gray .custom-control-input~.custom-control-label::before{background-color:#6c757d;border-color:#3d4246}.dark-mode .custom-switch.custom-switch-off-gray .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(108,117,125,.25)}.dark-mode .custom-switch.custom-switch-off-gray .custom-control-input~.custom-control-label::after{background-color:#313539}.dark-mode .custom-switch.custom-switch-on-gray .custom-control-input:checked~.custom-control-label::before{background-color:#6c757d;border-color:#3d4246}.dark-mode .custom-switch.custom-switch-on-gray .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(108,117,125,.25)}.dark-mode .custom-switch.custom-switch-on-gray .custom-control-input:checked~.custom-control-label::after{background-color:#bcc1c6}.dark-mode .custom-switch.custom-switch-off-gray-dark .custom-control-input~.custom-control-label::before{background-color:#343a40;border-color:#060708}.dark-mode .custom-switch.custom-switch-off-gray-dark .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(52,58,64,.25)}.dark-mode .custom-switch.custom-switch-off-gray-dark .custom-control-input~.custom-control-label::after{background-color:#000}.dark-mode .custom-switch.custom-switch-on-gray-dark .custom-control-input:checked~.custom-control-label::before{background-color:#343a40;border-color:#060708}.dark-mode .custom-switch.custom-switch-on-gray-dark .custom-control-input:checked:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(52,58,64,.25)}.dark-mode .custom-switch.custom-switch-on-gray-dark .custom-control-input:checked~.custom-control-label::after{background-color:#7a8793}.dark-mode .custom-control-input-primary:checked~.custom-control-label::before{border-color:#3f6791;background-color:#3f6791}.dark-mode .custom-control-input-primary.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233f6791' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-primary.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233f6791'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-primary:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(63,103,145,.25)}.dark-mode .custom-control-input-primary:focus:not(:checked)~.custom-control-label::before{border-color:#85a7ca}.dark-mode .custom-control-input-primary:not(:disabled):active~.custom-control-label::before{background-color:#a9c1da;border-color:#a9c1da}.dark-mode .custom-control-input-secondary:checked~.custom-control-label::before{border-color:#6c757d;background-color:#6c757d}.dark-mode .custom-control-input-secondary.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236c757d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-secondary.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236c757d'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-secondary:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(108,117,125,.25)}.dark-mode .custom-control-input-secondary:focus:not(:checked)~.custom-control-label::before{border-color:#afb5ba}.dark-mode .custom-control-input-secondary:not(:disabled):active~.custom-control-label::before{background-color:#caced1;border-color:#caced1}.dark-mode .custom-control-input-success:checked~.custom-control-label::before{border-color:#00bc8c;background-color:#00bc8c}.dark-mode .custom-control-input-success.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2300bc8c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-success.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2300bc8c'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-success:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(0,188,140,.25)}.dark-mode .custom-control-input-success:focus:not(:checked)~.custom-control-label::before{border-color:#3dffcd}.dark-mode .custom-control-input-success:not(:disabled):active~.custom-control-label::before{background-color:#70ffda;border-color:#70ffda}.dark-mode .custom-control-input-info:checked~.custom-control-label::before{border-color:#3498db;background-color:#3498db}.dark-mode .custom-control-input-info.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233498db' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-info.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233498db'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-info:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(52,152,219,.25)}.dark-mode .custom-control-input-info:focus:not(:checked)~.custom-control-label::before{border-color:#a0cfee}.dark-mode .custom-control-input-info:not(:disabled):active~.custom-control-label::before{background-color:#cce5f6;border-color:#cce5f6}.dark-mode .custom-control-input-warning:checked~.custom-control-label::before{border-color:#f39c12;background-color:#f39c12}.dark-mode .custom-control-input-warning.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f39c12' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-warning.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f39c12'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-warning:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(243,156,18,.25)}.dark-mode .custom-control-input-warning:focus:not(:checked)~.custom-control-label::before{border-color:#f9cf8b}.dark-mode .custom-control-input-warning:not(:disabled):active~.custom-control-label::before{background-color:#fce3bc;border-color:#fce3bc}.dark-mode .custom-control-input-danger:checked~.custom-control-label::before{border-color:#e74c3c;background-color:#e74c3c}.dark-mode .custom-control-input-danger.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23e74c3c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-danger.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23e74c3c'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-danger:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(231,76,60,.25)}.dark-mode .custom-control-input-danger:focus:not(:checked)~.custom-control-label::before{border-color:#f5b4ae}.dark-mode .custom-control-input-danger:not(:disabled):active~.custom-control-label::before{background-color:#fbdedb;border-color:#fbdedb}.dark-mode .custom-control-input-light:checked~.custom-control-label::before{border-color:#f8f9fa;background-color:#f8f9fa}.dark-mode .custom-control-input-light.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f8f9fa' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-light.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f8f9fa'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-light:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(248,249,250,.25)}.dark-mode .custom-control-input-light:focus:not(:checked)~.custom-control-label::before{border-color:#fff}.dark-mode .custom-control-input-light:not(:disabled):active~.custom-control-label::before{background-color:#fff;border-color:#fff}.dark-mode .custom-control-input-dark:checked~.custom-control-label::before{border-color:#343a40;background-color:#343a40}.dark-mode .custom-control-input-dark.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23343a40' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-dark.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23343a40'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-dark:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(52,58,64,.25)}.dark-mode .custom-control-input-dark:focus:not(:checked)~.custom-control-label::before{border-color:#6d7a86}.dark-mode .custom-control-input-dark:not(:disabled):active~.custom-control-label::before{background-color:#88939e;border-color:#88939e}.dark-mode .custom-control-input-lightblue:checked~.custom-control-label::before{border-color:#86bad8;background-color:#86bad8}.dark-mode .custom-control-input-lightblue.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2386bad8' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-lightblue.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2386bad8'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-lightblue:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(134,186,216,.25)}.dark-mode .custom-control-input-lightblue:focus:not(:checked)~.custom-control-label::before{border-color:#e6f1f7}.dark-mode .custom-control-input-lightblue:not(:disabled):active~.custom-control-label::before{background-color:#fff;border-color:#fff}.dark-mode .custom-control-input-navy:checked~.custom-control-label::before{border-color:#002c59;background-color:#002c59}.dark-mode .custom-control-input-navy.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23002c59' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-navy.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23002c59'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-navy:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(0,44,89,.25)}.dark-mode .custom-control-input-navy:focus:not(:checked)~.custom-control-label::before{border-color:#006ad8}.dark-mode .custom-control-input-navy:not(:disabled):active~.custom-control-label::before{background-color:#0c84ff;border-color:#0c84ff}.dark-mode .custom-control-input-olive:checked~.custom-control-label::before{border-color:#74c8a3;background-color:#74c8a3}.dark-mode .custom-control-input-olive.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2374c8a3' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-olive.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2374c8a3'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-olive:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(116,200,163,.25)}.dark-mode .custom-control-input-olive:focus:not(:checked)~.custom-control-label::before{border-color:#cfecdf}.dark-mode .custom-control-input-olive:not(:disabled):active~.custom-control-label::before{background-color:#f4fbf8;border-color:#f4fbf8}.dark-mode .custom-control-input-lime:checked~.custom-control-label::before{border-color:#67ffa9;background-color:#67ffa9}.dark-mode .custom-control-input-lime.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2367ffa9' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-lime.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2367ffa9'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-lime:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(103,255,169,.25)}.dark-mode .custom-control-input-lime:focus:not(:checked)~.custom-control-label::before{border-color:#e7fff1}.dark-mode .custom-control-input-lime:not(:disabled):active~.custom-control-label::before{background-color:#fff;border-color:#fff}.dark-mode .custom-control-input-fuchsia:checked~.custom-control-label::before{border-color:#f672d8;background-color:#f672d8}.dark-mode .custom-control-input-fuchsia.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f672d8' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-fuchsia.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f672d8'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-fuchsia:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(246,114,216,.25)}.dark-mode .custom-control-input-fuchsia:focus:not(:checked)~.custom-control-label::before{border-color:#feeaf9}.dark-mode .custom-control-input-fuchsia:not(:disabled):active~.custom-control-label::before{background-color:#fff;border-color:#fff}.dark-mode .custom-control-input-maroon:checked~.custom-control-label::before{border-color:#ed6c9b;background-color:#ed6c9b}.dark-mode .custom-control-input-maroon.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23ed6c9b' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-maroon.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23ed6c9b'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-maroon:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(237,108,155,.25)}.dark-mode .custom-control-input-maroon:focus:not(:checked)~.custom-control-label::before{border-color:#fbdee8}.dark-mode .custom-control-input-maroon:not(:disabled):active~.custom-control-label::before{background-color:#fff;border-color:#fff}.dark-mode .custom-control-input-blue:checked~.custom-control-label::before{border-color:#3f6791;background-color:#3f6791}.dark-mode .custom-control-input-blue.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233f6791' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-blue.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233f6791'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-blue:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(63,103,145,.25)}.dark-mode .custom-control-input-blue:focus:not(:checked)~.custom-control-label::before{border-color:#85a7ca}.dark-mode .custom-control-input-blue:not(:disabled):active~.custom-control-label::before{background-color:#a9c1da;border-color:#a9c1da}.dark-mode .custom-control-input-indigo:checked~.custom-control-label::before{border-color:#6610f2;background-color:#6610f2}.dark-mode .custom-control-input-indigo.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236610f2' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-indigo.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236610f2'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-indigo:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(102,16,242,.25)}.dark-mode .custom-control-input-indigo:focus:not(:checked)~.custom-control-label::before{border-color:#b389f9}.dark-mode .custom-control-input-indigo:not(:disabled):active~.custom-control-label::before{background-color:#d2b9fb;border-color:#d2b9fb}.dark-mode .custom-control-input-purple:checked~.custom-control-label::before{border-color:#6f42c1;background-color:#6f42c1}.dark-mode .custom-control-input-purple.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236f42c1' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-purple.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236f42c1'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-purple:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(111,66,193,.25)}.dark-mode .custom-control-input-purple:focus:not(:checked)~.custom-control-label::before{border-color:#b8a2e0}.dark-mode .custom-control-input-purple:not(:disabled):active~.custom-control-label::before{background-color:#d5c8ed;border-color:#d5c8ed}.dark-mode .custom-control-input-pink:checked~.custom-control-label::before{border-color:#e83e8c;background-color:#e83e8c}.dark-mode .custom-control-input-pink.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23e83e8c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-pink.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23e83e8c'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-pink:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(232,62,140,.25)}.dark-mode .custom-control-input-pink:focus:not(:checked)~.custom-control-label::before{border-color:#f6b0d0}.dark-mode .custom-control-input-pink:not(:disabled):active~.custom-control-label::before{background-color:#fbddeb;border-color:#fbddeb}.dark-mode .custom-control-input-red:checked~.custom-control-label::before{border-color:#e74c3c;background-color:#e74c3c}.dark-mode .custom-control-input-red.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23e74c3c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-red.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23e74c3c'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-red:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(231,76,60,.25)}.dark-mode .custom-control-input-red:focus:not(:checked)~.custom-control-label::before{border-color:#f5b4ae}.dark-mode .custom-control-input-red:not(:disabled):active~.custom-control-label::before{background-color:#fbdedb;border-color:#fbdedb}.dark-mode .custom-control-input-orange:checked~.custom-control-label::before{border-color:#fd7e14;background-color:#fd7e14}.dark-mode .custom-control-input-orange.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fd7e14' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-orange.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fd7e14'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-orange:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(253,126,20,.25)}.dark-mode .custom-control-input-orange:focus:not(:checked)~.custom-control-label::before{border-color:#fec392}.dark-mode .custom-control-input-orange:not(:disabled):active~.custom-control-label::before{background-color:#ffdfc5;border-color:#ffdfc5}.dark-mode .custom-control-input-yellow:checked~.custom-control-label::before{border-color:#f39c12;background-color:#f39c12}.dark-mode .custom-control-input-yellow.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f39c12' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-yellow.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23f39c12'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-yellow:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(243,156,18,.25)}.dark-mode .custom-control-input-yellow:focus:not(:checked)~.custom-control-label::before{border-color:#f9cf8b}.dark-mode .custom-control-input-yellow:not(:disabled):active~.custom-control-label::before{background-color:#fce3bc;border-color:#fce3bc}.dark-mode .custom-control-input-green:checked~.custom-control-label::before{border-color:#00bc8c;background-color:#00bc8c}.dark-mode .custom-control-input-green.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2300bc8c' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-green.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2300bc8c'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-green:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(0,188,140,.25)}.dark-mode .custom-control-input-green:focus:not(:checked)~.custom-control-label::before{border-color:#3dffcd}.dark-mode .custom-control-input-green:not(:disabled):active~.custom-control-label::before{background-color:#70ffda;border-color:#70ffda}.dark-mode .custom-control-input-teal:checked~.custom-control-label::before{border-color:#20c997;background-color:#20c997}.dark-mode .custom-control-input-teal.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2320c997' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-teal.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2320c997'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-teal:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(32,201,151,.25)}.dark-mode .custom-control-input-teal:focus:not(:checked)~.custom-control-label::before{border-color:#7eeaca}.dark-mode .custom-control-input-teal:not(:disabled):active~.custom-control-label::before{background-color:#aaf1dc;border-color:#aaf1dc}.dark-mode .custom-control-input-cyan:checked~.custom-control-label::before{border-color:#3498db;background-color:#3498db}.dark-mode .custom-control-input-cyan.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%233498db' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-cyan.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%233498db'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-cyan:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(52,152,219,.25)}.dark-mode .custom-control-input-cyan:focus:not(:checked)~.custom-control-label::before{border-color:#a0cfee}.dark-mode .custom-control-input-cyan:not(:disabled):active~.custom-control-label::before{background-color:#cce5f6;border-color:#cce5f6}.dark-mode .custom-control-input-white:checked~.custom-control-label::before{border-color:#fff;background-color:#fff}.dark-mode .custom-control-input-white.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-white.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-white:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(255,255,255,.25)}.dark-mode .custom-control-input-white:focus:not(:checked)~.custom-control-label::before{border-color:#fff}.dark-mode .custom-control-input-white:not(:disabled):active~.custom-control-label::before{background-color:#fff;border-color:#fff}.dark-mode .custom-control-input-gray:checked~.custom-control-label::before{border-color:#6c757d;background-color:#6c757d}.dark-mode .custom-control-input-gray.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236c757d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-gray.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%236c757d'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-gray:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(108,117,125,.25)}.dark-mode .custom-control-input-gray:focus:not(:checked)~.custom-control-label::before{border-color:#afb5ba}.dark-mode .custom-control-input-gray:not(:disabled):active~.custom-control-label::before{background-color:#caced1;border-color:#caced1}.dark-mode .custom-control-input-gray-dark:checked~.custom-control-label::before{border-color:#343a40;background-color:#343a40}.dark-mode .custom-control-input-gray-dark.custom-control-input-outline:checked[type=checkbox]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23343a40' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-gray-dark.custom-control-input-outline:checked[type=radio]~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23343a40'/%3E%3C/svg%3E")!important}.dark-mode .custom-control-input-gray-dark:focus~.custom-control-label::before{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(52,58,64,.25)}.dark-mode .custom-control-input-gray-dark:focus:not(:checked)~.custom-control-label::before{border-color:#6d7a86}.dark-mode .custom-control-input-gray-dark:not(:disabled):active~.custom-control-label::before{background-color:#88939e;border-color:#88939e}.progress{box-shadow:none;border-radius:1px}.progress.vertical{display:inline-block;height:200px;margin-right:10px;position:relative;width:30px}.progress.vertical>.progress-bar{bottom:0;position:absolute;width:100%}.progress.vertical.progress-sm,.progress.vertical.sm{width:20px}.progress.vertical.progress-xs,.progress.vertical.xs{width:10px}.progress.vertical.progress-xxs,.progress.vertical.xxs{width:3px}.progress-group{margin-bottom:.5rem}.progress-sm{height:10px}.progress-xs{height:7px}.progress-xxs{height:3px}.table tr>td .progress{margin:0}.dark-mode .progress{background:#454d55}.card-primary:not(.card-outline)>.card-header{background-color:#007bff}.card-primary:not(.card-outline)>.card-header,.card-primary:not(.card-outline)>.card-header a{color:#fff}.card-primary:not(.card-outline)>.card-header a.active{color:#1f2d3d}.card-primary.card-outline{border-top:3px solid #007bff}.card-primary.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.card-primary.card-outline-tabs>.card-header a.active,.card-primary.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #007bff}.bg-gradient-primary>.card-header .btn-tool,.bg-primary>.card-header .btn-tool,.card-primary:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.bg-gradient-primary>.card-header .btn-tool:hover,.bg-primary>.card-header .btn-tool:hover,.card-primary:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.card.bg-gradient-primary .bootstrap-datetimepicker-widget .table td,.card.bg-gradient-primary .bootstrap-datetimepicker-widget .table th,.card.bg-primary .bootstrap-datetimepicker-widget .table td,.card.bg-primary .bootstrap-datetimepicker-widget .table th{border:none}.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-gradient-primary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.card.bg-primary .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-primary .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-primary .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-primary .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-primary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#0067d6;color:#fff}.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.today::before,.card.bg-primary .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.active,.card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.active:hover,.card.bg-primary .bootstrap-datetimepicker-widget table td.active,.card.bg-primary .bootstrap-datetimepicker-widget table td.active:hover{background-color:#3395ff;color:#fff}.card-secondary:not(.card-outline)>.card-header{background-color:#6c757d}.card-secondary:not(.card-outline)>.card-header,.card-secondary:not(.card-outline)>.card-header a{color:#fff}.card-secondary:not(.card-outline)>.card-header a.active{color:#1f2d3d}.card-secondary.card-outline{border-top:3px solid #6c757d}.card-secondary.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.card-secondary.card-outline-tabs>.card-header a.active,.card-secondary.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #6c757d}.bg-gradient-secondary>.card-header .btn-tool,.bg-secondary>.card-header .btn-tool,.card-secondary:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.bg-gradient-secondary>.card-header .btn-tool:hover,.bg-secondary>.card-header .btn-tool:hover,.card-secondary:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.card.bg-gradient-secondary .bootstrap-datetimepicker-widget .table td,.card.bg-gradient-secondary .bootstrap-datetimepicker-widget .table th,.card.bg-secondary .bootstrap-datetimepicker-widget .table td,.card.bg-secondary .bootstrap-datetimepicker-widget .table th{border:none}.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.card.bg-secondary .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-secondary .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-secondary .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-secondary .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-secondary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#596167;color:#fff}.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.today::before,.card.bg-secondary .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.active,.card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.active:hover,.card.bg-secondary .bootstrap-datetimepicker-widget table td.active,.card.bg-secondary .bootstrap-datetimepicker-widget table td.active:hover{background-color:#868e96;color:#fff}.card-success:not(.card-outline)>.card-header{background-color:#28a745}.card-success:not(.card-outline)>.card-header,.card-success:not(.card-outline)>.card-header a{color:#fff}.card-success:not(.card-outline)>.card-header a.active{color:#1f2d3d}.card-success.card-outline{border-top:3px solid #28a745}.card-success.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.card-success.card-outline-tabs>.card-header a.active,.card-success.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #28a745}.bg-gradient-success>.card-header .btn-tool,.bg-success>.card-header .btn-tool,.card-success:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.bg-gradient-success>.card-header .btn-tool:hover,.bg-success>.card-header .btn-tool:hover,.card-success:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.card.bg-gradient-success .bootstrap-datetimepicker-widget .table td,.card.bg-gradient-success .bootstrap-datetimepicker-widget .table th,.card.bg-success .bootstrap-datetimepicker-widget .table td,.card.bg-success .bootstrap-datetimepicker-widget .table th{border:none}.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-gradient-success .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.card.bg-success .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-success .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-success .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-success .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-success .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#208637;color:#fff}.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.today::before,.card.bg-success .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.active,.card.bg-gradient-success .bootstrap-datetimepicker-widget table td.active:hover,.card.bg-success .bootstrap-datetimepicker-widget table td.active,.card.bg-success .bootstrap-datetimepicker-widget table td.active:hover{background-color:#34ce57;color:#fff}.card-info:not(.card-outline)>.card-header{background-color:#17a2b8}.card-info:not(.card-outline)>.card-header,.card-info:not(.card-outline)>.card-header a{color:#fff}.card-info:not(.card-outline)>.card-header a.active{color:#1f2d3d}.card-info.card-outline{border-top:3px solid #17a2b8}.card-info.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.card-info.card-outline-tabs>.card-header a.active,.card-info.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #17a2b8}.bg-gradient-info>.card-header .btn-tool,.bg-info>.card-header .btn-tool,.card-info:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.bg-gradient-info>.card-header .btn-tool:hover,.bg-info>.card-header .btn-tool:hover,.card-info:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.card.bg-gradient-info .bootstrap-datetimepicker-widget .table td,.card.bg-gradient-info .bootstrap-datetimepicker-widget .table th,.card.bg-info .bootstrap-datetimepicker-widget .table td,.card.bg-info .bootstrap-datetimepicker-widget .table th{border:none}.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-gradient-info .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.card.bg-info .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-info .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-info .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-info .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-info .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#128294;color:#fff}.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.today::before,.card.bg-info .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.active,.card.bg-gradient-info .bootstrap-datetimepicker-widget table td.active:hover,.card.bg-info .bootstrap-datetimepicker-widget table td.active,.card.bg-info .bootstrap-datetimepicker-widget table td.active:hover{background-color:#1fc8e3;color:#fff}.card-warning:not(.card-outline)>.card-header{background-color:#ffc107}.card-warning:not(.card-outline)>.card-header,.card-warning:not(.card-outline)>.card-header a{color:#1f2d3d}.card-warning:not(.card-outline)>.card-header a.active{color:#1f2d3d}.card-warning.card-outline{border-top:3px solid #ffc107}.card-warning.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.card-warning.card-outline-tabs>.card-header a.active,.card-warning.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #ffc107}.bg-gradient-warning>.card-header .btn-tool,.bg-warning>.card-header .btn-tool,.card-warning:not(.card-outline)>.card-header .btn-tool{color:rgba(31,45,61,.8)}.bg-gradient-warning>.card-header .btn-tool:hover,.bg-warning>.card-header .btn-tool:hover,.card-warning:not(.card-outline)>.card-header .btn-tool:hover{color:#1f2d3d}.card.bg-gradient-warning .bootstrap-datetimepicker-widget .table td,.card.bg-gradient-warning .bootstrap-datetimepicker-widget .table th,.card.bg-warning .bootstrap-datetimepicker-widget .table td,.card.bg-warning .bootstrap-datetimepicker-widget .table th{border:none}.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-gradient-warning .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.card.bg-warning .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-warning .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-warning .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-warning .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-warning .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#dda600;color:#1f2d3d}.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.today::before,.card.bg-warning .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#1f2d3d}.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.active,.card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.active:hover,.card.bg-warning .bootstrap-datetimepicker-widget table td.active,.card.bg-warning .bootstrap-datetimepicker-widget table td.active:hover{background-color:#ffce3a;color:#1f2d3d}.card-danger:not(.card-outline)>.card-header{background-color:#dc3545}.card-danger:not(.card-outline)>.card-header,.card-danger:not(.card-outline)>.card-header a{color:#fff}.card-danger:not(.card-outline)>.card-header a.active{color:#1f2d3d}.card-danger.card-outline{border-top:3px solid #dc3545}.card-danger.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.card-danger.card-outline-tabs>.card-header a.active,.card-danger.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #dc3545}.bg-danger>.card-header .btn-tool,.bg-gradient-danger>.card-header .btn-tool,.card-danger:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.bg-danger>.card-header .btn-tool:hover,.bg-gradient-danger>.card-header .btn-tool:hover,.card-danger:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.card.bg-danger .bootstrap-datetimepicker-widget .table td,.card.bg-danger .bootstrap-datetimepicker-widget .table th,.card.bg-gradient-danger .bootstrap-datetimepicker-widget .table td,.card.bg-gradient-danger .bootstrap-datetimepicker-widget .table th{border:none}.card.bg-danger .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-danger .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-danger .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-danger .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-danger .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-gradient-danger .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#c62232;color:#fff}.card.bg-danger .bootstrap-datetimepicker-widget table td.today::before,.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.card.bg-danger .bootstrap-datetimepicker-widget table td.active,.card.bg-danger .bootstrap-datetimepicker-widget table td.active:hover,.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.active,.card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.active:hover{background-color:#e4606d;color:#fff}.card-light:not(.card-outline)>.card-header{background-color:#f8f9fa}.card-light:not(.card-outline)>.card-header,.card-light:not(.card-outline)>.card-header a{color:#1f2d3d}.card-light:not(.card-outline)>.card-header a.active{color:#1f2d3d}.card-light.card-outline{border-top:3px solid #f8f9fa}.card-light.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.card-light.card-outline-tabs>.card-header a.active,.card-light.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #f8f9fa}.bg-gradient-light>.card-header .btn-tool,.bg-light>.card-header .btn-tool,.card-light:not(.card-outline)>.card-header .btn-tool{color:rgba(31,45,61,.8)}.bg-gradient-light>.card-header .btn-tool:hover,.bg-light>.card-header .btn-tool:hover,.card-light:not(.card-outline)>.card-header .btn-tool:hover{color:#1f2d3d}.card.bg-gradient-light .bootstrap-datetimepicker-widget .table td,.card.bg-gradient-light .bootstrap-datetimepicker-widget .table th,.card.bg-light .bootstrap-datetimepicker-widget .table td,.card.bg-light .bootstrap-datetimepicker-widget .table th{border:none}.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-gradient-light .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.card.bg-light .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-light .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-light .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-light .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-light .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#e0e5e9;color:#1f2d3d}.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.today::before,.card.bg-light .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#1f2d3d}.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.active,.card.bg-gradient-light .bootstrap-datetimepicker-widget table td.active:hover,.card.bg-light .bootstrap-datetimepicker-widget table td.active,.card.bg-light .bootstrap-datetimepicker-widget table td.active:hover{background-color:#fff;color:#1f2d3d}.card-dark:not(.card-outline)>.card-header{background-color:#343a40}.card-dark:not(.card-outline)>.card-header,.card-dark:not(.card-outline)>.card-header a{color:#fff}.card-dark:not(.card-outline)>.card-header a.active{color:#1f2d3d}.card-dark.card-outline{border-top:3px solid #343a40}.card-dark.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.card-dark.card-outline-tabs>.card-header a.active,.card-dark.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #343a40}.bg-dark>.card-header .btn-tool,.bg-gradient-dark>.card-header .btn-tool,.card-dark:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.bg-dark>.card-header .btn-tool:hover,.bg-gradient-dark>.card-header .btn-tool:hover,.card-dark:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.card.bg-dark .bootstrap-datetimepicker-widget .table td,.card.bg-dark .bootstrap-datetimepicker-widget .table th,.card.bg-gradient-dark .bootstrap-datetimepicker-widget .table td,.card.bg-gradient-dark .bootstrap-datetimepicker-widget .table th{border:none}.card.bg-dark .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-dark .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-dark .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-dark .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-gradient-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#222629;color:#fff}.card.bg-dark .bootstrap-datetimepicker-widget table td.today::before,.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.card.bg-dark .bootstrap-datetimepicker-widget table td.active,.card.bg-dark .bootstrap-datetimepicker-widget table td.active:hover,.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.active,.card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.active:hover{background-color:#4b545c;color:#fff}.card-lightblue:not(.card-outline)>.card-header{background-color:#3c8dbc}.card-lightblue:not(.card-outline)>.card-header,.card-lightblue:not(.card-outline)>.card-header a{color:#fff}.card-lightblue:not(.card-outline)>.card-header a.active{color:#1f2d3d}.card-lightblue.card-outline{border-top:3px solid #3c8dbc}.card-lightblue.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.card-lightblue.card-outline-tabs>.card-header a.active,.card-lightblue.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #3c8dbc}.bg-gradient-lightblue>.card-header .btn-tool,.bg-lightblue>.card-header .btn-tool,.card-lightblue:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.bg-gradient-lightblue>.card-header .btn-tool:hover,.bg-lightblue>.card-header .btn-tool:hover,.card-lightblue:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget .table td,.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget .table th,.card.bg-lightblue .bootstrap-datetimepicker-widget .table td,.card.bg-lightblue .bootstrap-datetimepicker-widget .table th{border:none}.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.card.bg-lightblue .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-lightblue .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-lightblue .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-lightblue .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-lightblue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#32769d;color:#fff}.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.today::before,.card.bg-lightblue .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.active,.card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.active:hover,.card.bg-lightblue .bootstrap-datetimepicker-widget table td.active,.card.bg-lightblue .bootstrap-datetimepicker-widget table td.active:hover{background-color:#5fa4cc;color:#fff}.card-navy:not(.card-outline)>.card-header{background-color:#001f3f}.card-navy:not(.card-outline)>.card-header,.card-navy:not(.card-outline)>.card-header a{color:#fff}.card-navy:not(.card-outline)>.card-header a.active{color:#1f2d3d}.card-navy.card-outline{border-top:3px solid #001f3f}.card-navy.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.card-navy.card-outline-tabs>.card-header a.active,.card-navy.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #001f3f}.bg-gradient-navy>.card-header .btn-tool,.bg-navy>.card-header .btn-tool,.card-navy:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.bg-gradient-navy>.card-header .btn-tool:hover,.bg-navy>.card-header .btn-tool:hover,.card-navy:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.card.bg-gradient-navy .bootstrap-datetimepicker-widget .table td,.card.bg-gradient-navy .bootstrap-datetimepicker-widget .table th,.card.bg-navy .bootstrap-datetimepicker-widget .table td,.card.bg-navy .bootstrap-datetimepicker-widget .table th{border:none}.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-gradient-navy .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.card.bg-navy .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-navy .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-navy .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-navy .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-navy .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#000b16;color:#fff}.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.today::before,.card.bg-navy .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.active,.card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.active:hover,.card.bg-navy .bootstrap-datetimepicker-widget table td.active,.card.bg-navy .bootstrap-datetimepicker-widget table td.active:hover{background-color:#003872;color:#fff}.card-olive:not(.card-outline)>.card-header{background-color:#3d9970}.card-olive:not(.card-outline)>.card-header,.card-olive:not(.card-outline)>.card-header a{color:#fff}.card-olive:not(.card-outline)>.card-header a.active{color:#1f2d3d}.card-olive.card-outline{border-top:3px solid #3d9970}.card-olive.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.card-olive.card-outline-tabs>.card-header a.active,.card-olive.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #3d9970}.bg-gradient-olive>.card-header .btn-tool,.bg-olive>.card-header .btn-tool,.card-olive:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.bg-gradient-olive>.card-header .btn-tool:hover,.bg-olive>.card-header .btn-tool:hover,.card-olive:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.card.bg-gradient-olive .bootstrap-datetimepicker-widget .table td,.card.bg-gradient-olive .bootstrap-datetimepicker-widget .table th,.card.bg-olive .bootstrap-datetimepicker-widget .table td,.card.bg-olive .bootstrap-datetimepicker-widget .table th{border:none}.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-gradient-olive .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.card.bg-olive .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-olive .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-olive .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-olive .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-olive .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#317c5b;color:#fff}.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.today::before,.card.bg-olive .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.active,.card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.active:hover,.card.bg-olive .bootstrap-datetimepicker-widget table td.active,.card.bg-olive .bootstrap-datetimepicker-widget table td.active:hover{background-color:#50b98a;color:#fff}.card-lime:not(.card-outline)>.card-header{background-color:#01ff70}.card-lime:not(.card-outline)>.card-header,.card-lime:not(.card-outline)>.card-header a{color:#1f2d3d}.card-lime:not(.card-outline)>.card-header a.active{color:#1f2d3d}.card-lime.card-outline{border-top:3px solid #01ff70}.card-lime.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.card-lime.card-outline-tabs>.card-header a.active,.card-lime.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #01ff70}.bg-gradient-lime>.card-header .btn-tool,.bg-lime>.card-header .btn-tool,.card-lime:not(.card-outline)>.card-header .btn-tool{color:rgba(31,45,61,.8)}.bg-gradient-lime>.card-header .btn-tool:hover,.bg-lime>.card-header .btn-tool:hover,.card-lime:not(.card-outline)>.card-header .btn-tool:hover{color:#1f2d3d}.card.bg-gradient-lime .bootstrap-datetimepicker-widget .table td,.card.bg-gradient-lime .bootstrap-datetimepicker-widget .table th,.card.bg-lime .bootstrap-datetimepicker-widget .table td,.card.bg-lime .bootstrap-datetimepicker-widget .table th{border:none}.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-gradient-lime .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.card.bg-lime .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-lime .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-lime .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-lime .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-lime .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#00d75e;color:#1f2d3d}.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.today::before,.card.bg-lime .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#1f2d3d}.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.active,.card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.active:hover,.card.bg-lime .bootstrap-datetimepicker-widget table td.active,.card.bg-lime .bootstrap-datetimepicker-widget table td.active:hover{background-color:#34ff8d;color:#1f2d3d}.card-fuchsia:not(.card-outline)>.card-header{background-color:#f012be}.card-fuchsia:not(.card-outline)>.card-header,.card-fuchsia:not(.card-outline)>.card-header a{color:#fff}.card-fuchsia:not(.card-outline)>.card-header a.active{color:#1f2d3d}.card-fuchsia.card-outline{border-top:3px solid #f012be}.card-fuchsia.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.card-fuchsia.card-outline-tabs>.card-header a.active,.card-fuchsia.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #f012be}.bg-fuchsia>.card-header .btn-tool,.bg-gradient-fuchsia>.card-header .btn-tool,.card-fuchsia:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.bg-fuchsia>.card-header .btn-tool:hover,.bg-gradient-fuchsia>.card-header .btn-tool:hover,.card-fuchsia:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.card.bg-fuchsia .bootstrap-datetimepicker-widget .table td,.card.bg-fuchsia .bootstrap-datetimepicker-widget .table th,.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget .table td,.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget .table th{border:none}.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-fuchsia .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#cc0da1;color:#fff}.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.today::before,.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.active,.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.active:hover,.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.active,.card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.active:hover{background-color:#f342cb;color:#fff}.card-maroon:not(.card-outline)>.card-header{background-color:#d81b60}.card-maroon:not(.card-outline)>.card-header,.card-maroon:not(.card-outline)>.card-header a{color:#fff}.card-maroon:not(.card-outline)>.card-header a.active{color:#1f2d3d}.card-maroon.card-outline{border-top:3px solid #d81b60}.card-maroon.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.card-maroon.card-outline-tabs>.card-header a.active,.card-maroon.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #d81b60}.bg-gradient-maroon>.card-header .btn-tool,.bg-maroon>.card-header .btn-tool,.card-maroon:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.bg-gradient-maroon>.card-header .btn-tool:hover,.bg-maroon>.card-header .btn-tool:hover,.card-maroon:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.card.bg-gradient-maroon .bootstrap-datetimepicker-widget .table td,.card.bg-gradient-maroon .bootstrap-datetimepicker-widget .table th,.card.bg-maroon .bootstrap-datetimepicker-widget .table td,.card.bg-maroon .bootstrap-datetimepicker-widget .table th{border:none}.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.card.bg-maroon .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-maroon .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-maroon .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-maroon .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-maroon .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#b41650;color:#fff}.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.today::before,.card.bg-maroon .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.active,.card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.active:hover,.card.bg-maroon .bootstrap-datetimepicker-widget table td.active,.card.bg-maroon .bootstrap-datetimepicker-widget table td.active:hover{background-color:#e73f7c;color:#fff}.card-blue:not(.card-outline)>.card-header{background-color:#007bff}.card-blue:not(.card-outline)>.card-header,.card-blue:not(.card-outline)>.card-header a{color:#fff}.card-blue:not(.card-outline)>.card-header a.active{color:#1f2d3d}.card-blue.card-outline{border-top:3px solid #007bff}.card-blue.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.card-blue.card-outline-tabs>.card-header a.active,.card-blue.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #007bff}.bg-blue>.card-header .btn-tool,.bg-gradient-blue>.card-header .btn-tool,.card-blue:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.bg-blue>.card-header .btn-tool:hover,.bg-gradient-blue>.card-header .btn-tool:hover,.card-blue:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.card.bg-blue .bootstrap-datetimepicker-widget .table td,.card.bg-blue .bootstrap-datetimepicker-widget .table th,.card.bg-gradient-blue .bootstrap-datetimepicker-widget .table td,.card.bg-gradient-blue .bootstrap-datetimepicker-widget .table th{border:none}.card.bg-blue .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-blue .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-blue .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-blue .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-blue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-gradient-blue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#0067d6;color:#fff}.card.bg-blue .bootstrap-datetimepicker-widget table td.today::before,.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.card.bg-blue .bootstrap-datetimepicker-widget table td.active,.card.bg-blue .bootstrap-datetimepicker-widget table td.active:hover,.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.active,.card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.active:hover{background-color:#3395ff;color:#fff}.card-indigo:not(.card-outline)>.card-header{background-color:#6610f2}.card-indigo:not(.card-outline)>.card-header,.card-indigo:not(.card-outline)>.card-header a{color:#fff}.card-indigo:not(.card-outline)>.card-header a.active{color:#1f2d3d}.card-indigo.card-outline{border-top:3px solid #6610f2}.card-indigo.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.card-indigo.card-outline-tabs>.card-header a.active,.card-indigo.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #6610f2}.bg-gradient-indigo>.card-header .btn-tool,.bg-indigo>.card-header .btn-tool,.card-indigo:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.bg-gradient-indigo>.card-header .btn-tool:hover,.bg-indigo>.card-header .btn-tool:hover,.card-indigo:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.card.bg-gradient-indigo .bootstrap-datetimepicker-widget .table td,.card.bg-gradient-indigo .bootstrap-datetimepicker-widget .table th,.card.bg-indigo .bootstrap-datetimepicker-widget .table td,.card.bg-indigo .bootstrap-datetimepicker-widget .table th{border:none}.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.card.bg-indigo .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-indigo .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-indigo .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-indigo .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-indigo .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#550bce;color:#fff}.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.today::before,.card.bg-indigo .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.active,.card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.active:hover,.card.bg-indigo .bootstrap-datetimepicker-widget table td.active,.card.bg-indigo .bootstrap-datetimepicker-widget table td.active:hover{background-color:#8540f5;color:#fff}.card-purple:not(.card-outline)>.card-header{background-color:#6f42c1}.card-purple:not(.card-outline)>.card-header,.card-purple:not(.card-outline)>.card-header a{color:#fff}.card-purple:not(.card-outline)>.card-header a.active{color:#1f2d3d}.card-purple.card-outline{border-top:3px solid #6f42c1}.card-purple.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.card-purple.card-outline-tabs>.card-header a.active,.card-purple.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #6f42c1}.bg-gradient-purple>.card-header .btn-tool,.bg-purple>.card-header .btn-tool,.card-purple:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.bg-gradient-purple>.card-header .btn-tool:hover,.bg-purple>.card-header .btn-tool:hover,.card-purple:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.card.bg-gradient-purple .bootstrap-datetimepicker-widget .table td,.card.bg-gradient-purple .bootstrap-datetimepicker-widget .table th,.card.bg-purple .bootstrap-datetimepicker-widget .table td,.card.bg-purple .bootstrap-datetimepicker-widget .table th{border:none}.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-gradient-purple .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.card.bg-purple .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-purple .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-purple .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-purple .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-purple .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#5d36a4;color:#fff}.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.today::before,.card.bg-purple .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.active,.card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.active:hover,.card.bg-purple .bootstrap-datetimepicker-widget table td.active,.card.bg-purple .bootstrap-datetimepicker-widget table td.active:hover{background-color:#8c68ce;color:#fff}.card-pink:not(.card-outline)>.card-header{background-color:#e83e8c}.card-pink:not(.card-outline)>.card-header,.card-pink:not(.card-outline)>.card-header a{color:#fff}.card-pink:not(.card-outline)>.card-header a.active{color:#1f2d3d}.card-pink.card-outline{border-top:3px solid #e83e8c}.card-pink.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.card-pink.card-outline-tabs>.card-header a.active,.card-pink.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #e83e8c}.bg-gradient-pink>.card-header .btn-tool,.bg-pink>.card-header .btn-tool,.card-pink:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.bg-gradient-pink>.card-header .btn-tool:hover,.bg-pink>.card-header .btn-tool:hover,.card-pink:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.card.bg-gradient-pink .bootstrap-datetimepicker-widget .table td,.card.bg-gradient-pink .bootstrap-datetimepicker-widget .table th,.card.bg-pink .bootstrap-datetimepicker-widget .table td,.card.bg-pink .bootstrap-datetimepicker-widget .table th{border:none}.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-gradient-pink .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.card.bg-pink .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-pink .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-pink .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-pink .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-pink .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#e21b76;color:#fff}.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.today::before,.card.bg-pink .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.active,.card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.active:hover,.card.bg-pink .bootstrap-datetimepicker-widget table td.active,.card.bg-pink .bootstrap-datetimepicker-widget table td.active:hover{background-color:#ed6ca7;color:#fff}.card-red:not(.card-outline)>.card-header{background-color:#dc3545}.card-red:not(.card-outline)>.card-header,.card-red:not(.card-outline)>.card-header a{color:#fff}.card-red:not(.card-outline)>.card-header a.active{color:#1f2d3d}.card-red.card-outline{border-top:3px solid #dc3545}.card-red.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.card-red.card-outline-tabs>.card-header a.active,.card-red.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #dc3545}.bg-gradient-red>.card-header .btn-tool,.bg-red>.card-header .btn-tool,.card-red:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.bg-gradient-red>.card-header .btn-tool:hover,.bg-red>.card-header .btn-tool:hover,.card-red:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.card.bg-gradient-red .bootstrap-datetimepicker-widget .table td,.card.bg-gradient-red .bootstrap-datetimepicker-widget .table th,.card.bg-red .bootstrap-datetimepicker-widget .table td,.card.bg-red .bootstrap-datetimepicker-widget .table th{border:none}.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-gradient-red .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.card.bg-red .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-red .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-red .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-red .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-red .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#c62232;color:#fff}.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.today::before,.card.bg-red .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.active,.card.bg-gradient-red .bootstrap-datetimepicker-widget table td.active:hover,.card.bg-red .bootstrap-datetimepicker-widget table td.active,.card.bg-red .bootstrap-datetimepicker-widget table td.active:hover{background-color:#e4606d;color:#fff}.card-orange:not(.card-outline)>.card-header{background-color:#fd7e14}.card-orange:not(.card-outline)>.card-header,.card-orange:not(.card-outline)>.card-header a{color:#1f2d3d}.card-orange:not(.card-outline)>.card-header a.active{color:#1f2d3d}.card-orange.card-outline{border-top:3px solid #fd7e14}.card-orange.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.card-orange.card-outline-tabs>.card-header a.active,.card-orange.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #fd7e14}.bg-gradient-orange>.card-header .btn-tool,.bg-orange>.card-header .btn-tool,.card-orange:not(.card-outline)>.card-header .btn-tool{color:rgba(31,45,61,.8)}.bg-gradient-orange>.card-header .btn-tool:hover,.bg-orange>.card-header .btn-tool:hover,.card-orange:not(.card-outline)>.card-header .btn-tool:hover{color:#1f2d3d}.card.bg-gradient-orange .bootstrap-datetimepicker-widget .table td,.card.bg-gradient-orange .bootstrap-datetimepicker-widget .table th,.card.bg-orange .bootstrap-datetimepicker-widget .table td,.card.bg-orange .bootstrap-datetimepicker-widget .table th{border:none}.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-gradient-orange .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.card.bg-orange .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-orange .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-orange .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-orange .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-orange .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#e66a02;color:#1f2d3d}.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.today::before,.card.bg-orange .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#1f2d3d}.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.active,.card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.active:hover,.card.bg-orange .bootstrap-datetimepicker-widget table td.active,.card.bg-orange .bootstrap-datetimepicker-widget table td.active:hover{background-color:#fd9a47;color:#1f2d3d}.card-yellow:not(.card-outline)>.card-header{background-color:#ffc107}.card-yellow:not(.card-outline)>.card-header,.card-yellow:not(.card-outline)>.card-header a{color:#1f2d3d}.card-yellow:not(.card-outline)>.card-header a.active{color:#1f2d3d}.card-yellow.card-outline{border-top:3px solid #ffc107}.card-yellow.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.card-yellow.card-outline-tabs>.card-header a.active,.card-yellow.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #ffc107}.bg-gradient-yellow>.card-header .btn-tool,.bg-yellow>.card-header .btn-tool,.card-yellow:not(.card-outline)>.card-header .btn-tool{color:rgba(31,45,61,.8)}.bg-gradient-yellow>.card-header .btn-tool:hover,.bg-yellow>.card-header .btn-tool:hover,.card-yellow:not(.card-outline)>.card-header .btn-tool:hover{color:#1f2d3d}.card.bg-gradient-yellow .bootstrap-datetimepicker-widget .table td,.card.bg-gradient-yellow .bootstrap-datetimepicker-widget .table th,.card.bg-yellow .bootstrap-datetimepicker-widget .table td,.card.bg-yellow .bootstrap-datetimepicker-widget .table th{border:none}.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.card.bg-yellow .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-yellow .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-yellow .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-yellow .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-yellow .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#dda600;color:#1f2d3d}.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.today::before,.card.bg-yellow .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#1f2d3d}.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.active,.card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.active:hover,.card.bg-yellow .bootstrap-datetimepicker-widget table td.active,.card.bg-yellow .bootstrap-datetimepicker-widget table td.active:hover{background-color:#ffce3a;color:#1f2d3d}.card-green:not(.card-outline)>.card-header{background-color:#28a745}.card-green:not(.card-outline)>.card-header,.card-green:not(.card-outline)>.card-header a{color:#fff}.card-green:not(.card-outline)>.card-header a.active{color:#1f2d3d}.card-green.card-outline{border-top:3px solid #28a745}.card-green.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.card-green.card-outline-tabs>.card-header a.active,.card-green.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #28a745}.bg-gradient-green>.card-header .btn-tool,.bg-green>.card-header .btn-tool,.card-green:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.bg-gradient-green>.card-header .btn-tool:hover,.bg-green>.card-header .btn-tool:hover,.card-green:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.card.bg-gradient-green .bootstrap-datetimepicker-widget .table td,.card.bg-gradient-green .bootstrap-datetimepicker-widget .table th,.card.bg-green .bootstrap-datetimepicker-widget .table td,.card.bg-green .bootstrap-datetimepicker-widget .table th{border:none}.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-gradient-green .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.card.bg-green .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-green .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-green .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-green .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-green .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#208637;color:#fff}.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.today::before,.card.bg-green .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.active,.card.bg-gradient-green .bootstrap-datetimepicker-widget table td.active:hover,.card.bg-green .bootstrap-datetimepicker-widget table td.active,.card.bg-green .bootstrap-datetimepicker-widget table td.active:hover{background-color:#34ce57;color:#fff}.card-teal:not(.card-outline)>.card-header{background-color:#20c997}.card-teal:not(.card-outline)>.card-header,.card-teal:not(.card-outline)>.card-header a{color:#fff}.card-teal:not(.card-outline)>.card-header a.active{color:#1f2d3d}.card-teal.card-outline{border-top:3px solid #20c997}.card-teal.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.card-teal.card-outline-tabs>.card-header a.active,.card-teal.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #20c997}.bg-gradient-teal>.card-header .btn-tool,.bg-teal>.card-header .btn-tool,.card-teal:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.bg-gradient-teal>.card-header .btn-tool:hover,.bg-teal>.card-header .btn-tool:hover,.card-teal:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.card.bg-gradient-teal .bootstrap-datetimepicker-widget .table td,.card.bg-gradient-teal .bootstrap-datetimepicker-widget .table th,.card.bg-teal .bootstrap-datetimepicker-widget .table td,.card.bg-teal .bootstrap-datetimepicker-widget .table th{border:none}.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-gradient-teal .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.card.bg-teal .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-teal .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-teal .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-teal .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-teal .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#1aa67d;color:#fff}.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.today::before,.card.bg-teal .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.active,.card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.active:hover,.card.bg-teal .bootstrap-datetimepicker-widget table td.active,.card.bg-teal .bootstrap-datetimepicker-widget table td.active:hover{background-color:#3ce0af;color:#fff}.card-cyan:not(.card-outline)>.card-header{background-color:#17a2b8}.card-cyan:not(.card-outline)>.card-header,.card-cyan:not(.card-outline)>.card-header a{color:#fff}.card-cyan:not(.card-outline)>.card-header a.active{color:#1f2d3d}.card-cyan.card-outline{border-top:3px solid #17a2b8}.card-cyan.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.card-cyan.card-outline-tabs>.card-header a.active,.card-cyan.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #17a2b8}.bg-cyan>.card-header .btn-tool,.bg-gradient-cyan>.card-header .btn-tool,.card-cyan:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.bg-cyan>.card-header .btn-tool:hover,.bg-gradient-cyan>.card-header .btn-tool:hover,.card-cyan:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.card.bg-cyan .bootstrap-datetimepicker-widget .table td,.card.bg-cyan .bootstrap-datetimepicker-widget .table th,.card.bg-gradient-cyan .bootstrap-datetimepicker-widget .table td,.card.bg-gradient-cyan .bootstrap-datetimepicker-widget .table th{border:none}.card.bg-cyan .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-cyan .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-cyan .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-cyan .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-cyan .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#128294;color:#fff}.card.bg-cyan .bootstrap-datetimepicker-widget table td.today::before,.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.card.bg-cyan .bootstrap-datetimepicker-widget table td.active,.card.bg-cyan .bootstrap-datetimepicker-widget table td.active:hover,.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.active,.card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.active:hover{background-color:#1fc8e3;color:#fff}.card-white:not(.card-outline)>.card-header{background-color:#fff}.card-white:not(.card-outline)>.card-header,.card-white:not(.card-outline)>.card-header a{color:#1f2d3d}.card-white:not(.card-outline)>.card-header a.active{color:#1f2d3d}.card-white.card-outline{border-top:3px solid #fff}.card-white.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.card-white.card-outline-tabs>.card-header a.active,.card-white.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #fff}.bg-gradient-white>.card-header .btn-tool,.bg-white>.card-header .btn-tool,.card-white:not(.card-outline)>.card-header .btn-tool{color:rgba(31,45,61,.8)}.bg-gradient-white>.card-header .btn-tool:hover,.bg-white>.card-header .btn-tool:hover,.card-white:not(.card-outline)>.card-header .btn-tool:hover{color:#1f2d3d}.card.bg-gradient-white .bootstrap-datetimepicker-widget .table td,.card.bg-gradient-white .bootstrap-datetimepicker-widget .table th,.card.bg-white .bootstrap-datetimepicker-widget .table td,.card.bg-white .bootstrap-datetimepicker-widget .table th{border:none}.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-gradient-white .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.card.bg-white .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-white .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-white .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-white .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-white .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#ebebeb;color:#1f2d3d}.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.today::before,.card.bg-white .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#1f2d3d}.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.active,.card.bg-gradient-white .bootstrap-datetimepicker-widget table td.active:hover,.card.bg-white .bootstrap-datetimepicker-widget table td.active,.card.bg-white .bootstrap-datetimepicker-widget table td.active:hover{background-color:#fff;color:#1f2d3d}.card-gray:not(.card-outline)>.card-header{background-color:#6c757d}.card-gray:not(.card-outline)>.card-header,.card-gray:not(.card-outline)>.card-header a{color:#fff}.card-gray:not(.card-outline)>.card-header a.active{color:#1f2d3d}.card-gray.card-outline{border-top:3px solid #6c757d}.card-gray.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.card-gray.card-outline-tabs>.card-header a.active,.card-gray.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #6c757d}.bg-gradient-gray>.card-header .btn-tool,.bg-gray>.card-header .btn-tool,.card-gray:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.bg-gradient-gray>.card-header .btn-tool:hover,.bg-gray>.card-header .btn-tool:hover,.card-gray:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.card.bg-gradient-gray .bootstrap-datetimepicker-widget .table td,.card.bg-gradient-gray .bootstrap-datetimepicker-widget .table th,.card.bg-gray .bootstrap-datetimepicker-widget .table td,.card.bg-gray .bootstrap-datetimepicker-widget .table th{border:none}.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-gradient-gray .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.card.bg-gray .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-gray .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-gray .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-gray .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-gray .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#596167;color:#fff}.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.today::before,.card.bg-gray .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.active,.card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.active:hover,.card.bg-gray .bootstrap-datetimepicker-widget table td.active,.card.bg-gray .bootstrap-datetimepicker-widget table td.active:hover{background-color:#868e96;color:#fff}.card-gray-dark:not(.card-outline)>.card-header{background-color:#343a40}.card-gray-dark:not(.card-outline)>.card-header,.card-gray-dark:not(.card-outline)>.card-header a{color:#fff}.card-gray-dark:not(.card-outline)>.card-header a.active{color:#1f2d3d}.card-gray-dark.card-outline{border-top:3px solid #343a40}.card-gray-dark.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.card-gray-dark.card-outline-tabs>.card-header a.active,.card-gray-dark.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #343a40}.bg-gradient-gray-dark>.card-header .btn-tool,.bg-gray-dark>.card-header .btn-tool,.card-gray-dark:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.bg-gradient-gray-dark>.card-header .btn-tool:hover,.bg-gray-dark>.card-header .btn-tool:hover,.card-gray-dark:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget .table td,.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget .table th,.card.bg-gray-dark .bootstrap-datetimepicker-widget .table td,.card.bg-gray-dark .bootstrap-datetimepicker-widget .table th{border:none}.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.day:hover,.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.hour:hover,.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.minute:hover,.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.second:hover,.card.bg-gray-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#222629;color:#fff}.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.today::before,.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.active,.card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.active:hover,.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.active,.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.active:hover{background-color:#4b545c;color:#fff}.card{box-shadow:0 0 1px rgba(0,0,0,.125),0 1px 3px rgba(0,0,0,.2);margin-bottom:1rem}.card.bg-dark .card-header{border-color:#383f45}.card.bg-dark,.card.bg-dark .card-body{color:#fff}.card.maximized-card{height:100%!important;left:0;max-height:100%!important;max-width:100%!important;position:fixed;top:0;width:100%!important;z-index:1040}.card.maximized-card.was-collapsed .card-body{display:block!important}.card.maximized-card .card-body{overflow:auto}.card.maximized-card [data-card-widgett=collapse]{display:none}.card.maximized-card .card-footer,.card.maximized-card .card-header{border-radius:0!important}.card.collapsed-card .card-body,.card.collapsed-card .card-footer{display:none}.card .nav.flex-column:not(.nav-sidebar)>li{border-bottom:1px solid rgba(0,0,0,.125);margin:0}.card .nav.flex-column:not(.nav-sidebar)>li:last-of-type{border-bottom:0}.card.height-control .card-body{max-height:300px;overflow:auto}.card .border-right{border-right:1px solid rgba(0,0,0,.125)}.card .border-left{border-left:1px solid rgba(0,0,0,.125)}.card.card-tabs:not(.card-outline)>.card-header{border-bottom:0}.card.card-tabs:not(.card-outline)>.card-header .nav-item:first-child .nav-link{border-left-color:transparent}.card.card-tabs.card-outline .nav-item{border-bottom:0}.card.card-tabs.card-outline .nav-item:first-child .nav-link{border-left:0;margin-left:0}.card.card-tabs .card-tools{margin:.3rem .5rem}.card.card-tabs:not(.expanding-card).collapsed-card .card-header{border-bottom:0}.card.card-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs{border-bottom:0}.card.card-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs .nav-item{margin-bottom:0}.card.card-tabs.expanding-card .card-header .nav-tabs .nav-item{margin-bottom:-1px}.card.card-outline-tabs{border-top:0}.card.card-outline-tabs .card-header .nav-item:first-child .nav-link{border-left:0;margin-left:0}.card.card-outline-tabs .card-header a{border-top:3px solid transparent}.card.card-outline-tabs .card-header a:hover{border-top:3px solid #dee2e6}.card.card-outline-tabs .card-header a.active:hover{margin-top:0}.card.card-outline-tabs .card-tools{margin:.5rem .5rem .3rem}.card.card-outline-tabs:not(.expanding-card).collapsed-card .card-header{border-bottom:0}.card.card-outline-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs{border-bottom:0}.card.card-outline-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs .nav-item{margin-bottom:0}.card.card-outline-tabs.expanding-card .card-header .nav-tabs .nav-item{margin-bottom:-1px}html.maximized-card{overflow:hidden}.card-body::after,.card-footer::after,.card-header::after{display:block;clear:both;content:""}.card-header{background-color:transparent;border-bottom:1px solid rgba(0,0,0,.125);padding:.75rem 1.25rem;position:relative;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.collapsed-card .card-header{border-bottom:0}.card-header>.card-tools{float:right;margin-right:-.625rem}.card-header>.card-tools .input-group,.card-header>.card-tools .nav,.card-header>.card-tools .pagination{margin-bottom:-.3rem;margin-top:-.3rem}.card-header>.card-tools [data-toggle=tooltip]{position:relative}.card-title{float:left;font-size:1.1rem;font-weight:400;margin:0}.card-text{clear:both}.btn-tool{background-color:transparent;color:#adb5bd;font-size:.875rem;margin:-.75rem 0;padding:.25rem .5rem}.btn-group.show .btn-tool,.btn-tool:hover{color:#495057}.btn-tool:focus,.show .btn-tool{box-shadow:none!important}.text-sm .card-title{font-size:1rem}.text-sm .nav-link{padding:.4rem .8rem}.card-body>.table{margin-bottom:0}.card-body>.table>thead>tr>td,.card-body>.table>thead>tr>th{border-top-width:0}.card-body .fc{margin-top:5px}.card-body .full-width-chart{margin:-19px}.card-body.p-0 .full-width-chart{margin:-9px}.chart-legend{padding-left:0;list-style:none;margin:10px 0}@media (max-width:576px){.chart-legend>li{float:left;margin-right:10px}}.card-comments{background-color:#f8f9fa}.card-comments .card-comment{border-bottom:1px solid #e9ecef;padding:8px 0}.card-comments .card-comment::after{display:block;clear:both;content:""}.card-comments .card-comment:last-of-type{border-bottom:0}.card-comments .card-comment:first-of-type{padding-top:0}.card-comments .card-comment img{height:1.875rem;width:1.875rem;float:left}.card-comments .comment-text{color:#78838e;margin-left:40px}.card-comments .username{color:#495057;display:block;font-weight:600}.card-comments .text-muted{font-size:12px;font-weight:400}.todo-list{list-style:none;margin:0;overflow:auto;padding:0}.todo-list>li{border-radius:2px;background-color:#f8f9fa;border-left:2px solid #e9ecef;color:#495057;margin-bottom:2px;padding:10px}.todo-list>li:last-of-type{margin-bottom:0}.todo-list>li>input[type=checkbox]{margin:0 10px 0 5px}.todo-list>li .text{display:inline-block;font-weight:600;margin-left:5px}.todo-list>li .badge{font-size:.7rem;margin-left:10px}.todo-list>li .tools{color:#dc3545;display:none;float:right}.todo-list>li .tools>.fa,.todo-list>li .tools>.fab,.todo-list>li .tools>.fad,.todo-list>li .tools>.fal,.todo-list>li .tools>.far,.todo-list>li .tools>.fas,.todo-list>li .tools>.ion,.todo-list>li .tools>.svg-inline--fa{cursor:pointer;margin-right:5px}.todo-list>li:hover .tools{display:inline-block}.todo-list>li.done{color:#697582}.todo-list>li.done .text{font-weight:500;text-decoration:line-through}.todo-list>li.done .badge{background-color:#adb5bd!important}.todo-list .primary{border-left-color:#007bff}.todo-list .secondary{border-left-color:#6c757d}.todo-list .success{border-left-color:#28a745}.todo-list .info{border-left-color:#17a2b8}.todo-list .warning{border-left-color:#ffc107}.todo-list .danger{border-left-color:#dc3545}.todo-list .light{border-left-color:#f8f9fa}.todo-list .dark{border-left-color:#343a40}.todo-list .lightblue{border-left-color:#3c8dbc}.todo-list .navy{border-left-color:#001f3f}.todo-list .olive{border-left-color:#3d9970}.todo-list .lime{border-left-color:#01ff70}.todo-list .fuchsia{border-left-color:#f012be}.todo-list .maroon{border-left-color:#d81b60}.todo-list .blue{border-left-color:#007bff}.todo-list .indigo{border-left-color:#6610f2}.todo-list .purple{border-left-color:#6f42c1}.todo-list .pink{border-left-color:#e83e8c}.todo-list .red{border-left-color:#dc3545}.todo-list .orange{border-left-color:#fd7e14}.todo-list .yellow{border-left-color:#ffc107}.todo-list .green{border-left-color:#28a745}.todo-list .teal{border-left-color:#20c997}.todo-list .cyan{border-left-color:#17a2b8}.todo-list .white{border-left-color:#fff}.todo-list .gray{border-left-color:#6c757d}.todo-list .gray-dark{border-left-color:#343a40}.todo-list .handle{cursor:move;display:inline-block;margin:0 5px}.card-input{max-width:200px}.card-default .nav-item:first-child .nav-link{border-left:0}.dark-mode .card-primary:not(.card-outline)>.card-header{background-color:#3f6791}.dark-mode .card-primary:not(.card-outline)>.card-header,.dark-mode .card-primary:not(.card-outline)>.card-header a{color:#fff}.dark-mode .card-primary:not(.card-outline)>.card-header a.active{color:#1f2d3d}.dark-mode .card-primary.card-outline{border-top:3px solid #3f6791}.dark-mode .card-primary.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.dark-mode .card-primary.card-outline-tabs>.card-header a.active,.dark-mode .card-primary.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #3f6791}.dark-mode .bg-gradient-primary>.card-header .btn-tool,.dark-mode .bg-primary>.card-header .btn-tool,.dark-mode .card-primary:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.dark-mode .bg-gradient-primary>.card-header .btn-tool:hover,.dark-mode .bg-primary>.card-header .btn-tool:hover,.dark-mode .card-primary:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget .table th,.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget .table th{border:none}.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#335375;color:#fff}.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.today::before,.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-gradient-primary .bootstrap-datetimepicker-widget table td.active:hover,.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-primary .bootstrap-datetimepicker-widget table td.active:hover{background-color:#5080b3;color:#fff}.dark-mode .card-secondary:not(.card-outline)>.card-header{background-color:#6c757d}.dark-mode .card-secondary:not(.card-outline)>.card-header,.dark-mode .card-secondary:not(.card-outline)>.card-header a{color:#fff}.dark-mode .card-secondary:not(.card-outline)>.card-header a.active{color:#1f2d3d}.dark-mode .card-secondary.card-outline{border-top:3px solid #6c757d}.dark-mode .card-secondary.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.dark-mode .card-secondary.card-outline-tabs>.card-header a.active,.dark-mode .card-secondary.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #6c757d}.dark-mode .bg-gradient-secondary>.card-header .btn-tool,.dark-mode .bg-secondary>.card-header .btn-tool,.dark-mode .card-secondary:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.dark-mode .bg-gradient-secondary>.card-header .btn-tool:hover,.dark-mode .bg-secondary>.card-header .btn-tool:hover,.dark-mode .card-secondary:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget .table th,.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget .table th{border:none}.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#596167;color:#fff}.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.today::before,.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-gradient-secondary .bootstrap-datetimepicker-widget table td.active:hover,.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-secondary .bootstrap-datetimepicker-widget table td.active:hover{background-color:#868e96;color:#fff}.dark-mode .card-success:not(.card-outline)>.card-header{background-color:#00bc8c}.dark-mode .card-success:not(.card-outline)>.card-header,.dark-mode .card-success:not(.card-outline)>.card-header a{color:#fff}.dark-mode .card-success:not(.card-outline)>.card-header a.active{color:#1f2d3d}.dark-mode .card-success.card-outline{border-top:3px solid #00bc8c}.dark-mode .card-success.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.dark-mode .card-success.card-outline-tabs>.card-header a.active,.dark-mode .card-success.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #00bc8c}.dark-mode .bg-gradient-success>.card-header .btn-tool,.dark-mode .bg-success>.card-header .btn-tool,.dark-mode .card-success:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.dark-mode .bg-gradient-success>.card-header .btn-tool:hover,.dark-mode .bg-success>.card-header .btn-tool:hover,.dark-mode .card-success:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget .table th,.dark-mode .card.bg-success .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-success .bootstrap-datetimepicker-widget .table th{border:none}.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#00936e;color:#fff}.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.today::before,.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-gradient-success .bootstrap-datetimepicker-widget table td.active:hover,.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-success .bootstrap-datetimepicker-widget table td.active:hover{background-color:#00efb2;color:#fff}.dark-mode .card-info:not(.card-outline)>.card-header{background-color:#3498db}.dark-mode .card-info:not(.card-outline)>.card-header,.dark-mode .card-info:not(.card-outline)>.card-header a{color:#fff}.dark-mode .card-info:not(.card-outline)>.card-header a.active{color:#1f2d3d}.dark-mode .card-info.card-outline{border-top:3px solid #3498db}.dark-mode .card-info.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.dark-mode .card-info.card-outline-tabs>.card-header a.active,.dark-mode .card-info.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #3498db}.dark-mode .bg-gradient-info>.card-header .btn-tool,.dark-mode .bg-info>.card-header .btn-tool,.dark-mode .card-info:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.dark-mode .bg-gradient-info>.card-header .btn-tool:hover,.dark-mode .bg-info>.card-header .btn-tool:hover,.dark-mode .card-info:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget .table th,.dark-mode .card.bg-info .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-info .bootstrap-datetimepicker-widget .table th{border:none}.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#2383c4;color:#fff}.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.today::before,.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-gradient-info .bootstrap-datetimepicker-widget table td.active:hover,.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-info .bootstrap-datetimepicker-widget table td.active:hover{background-color:#5faee3;color:#fff}.dark-mode .card-warning:not(.card-outline)>.card-header{background-color:#f39c12}.dark-mode .card-warning:not(.card-outline)>.card-header,.dark-mode .card-warning:not(.card-outline)>.card-header a{color:#1f2d3d}.dark-mode .card-warning:not(.card-outline)>.card-header a.active{color:#1f2d3d}.dark-mode .card-warning.card-outline{border-top:3px solid #f39c12}.dark-mode .card-warning.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.dark-mode .card-warning.card-outline-tabs>.card-header a.active,.dark-mode .card-warning.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #f39c12}.dark-mode .bg-gradient-warning>.card-header .btn-tool,.dark-mode .bg-warning>.card-header .btn-tool,.dark-mode .card-warning:not(.card-outline)>.card-header .btn-tool{color:rgba(31,45,61,.8)}.dark-mode .bg-gradient-warning>.card-header .btn-tool:hover,.dark-mode .bg-warning>.card-header .btn-tool:hover,.dark-mode .card-warning:not(.card-outline)>.card-header .btn-tool:hover{color:#1f2d3d}.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget .table th,.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget .table th{border:none}.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#d2850b;color:#1f2d3d}.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.today::before,.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#1f2d3d}.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-gradient-warning .bootstrap-datetimepicker-widget table td.active:hover,.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-warning .bootstrap-datetimepicker-widget table td.active:hover{background-color:#f5b043;color:#1f2d3d}.dark-mode .card-danger:not(.card-outline)>.card-header{background-color:#e74c3c}.dark-mode .card-danger:not(.card-outline)>.card-header,.dark-mode .card-danger:not(.card-outline)>.card-header a{color:#fff}.dark-mode .card-danger:not(.card-outline)>.card-header a.active{color:#1f2d3d}.dark-mode .card-danger.card-outline{border-top:3px solid #e74c3c}.dark-mode .card-danger.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.dark-mode .card-danger.card-outline-tabs>.card-header a.active,.dark-mode .card-danger.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #e74c3c}.dark-mode .bg-danger>.card-header .btn-tool,.dark-mode .bg-gradient-danger>.card-header .btn-tool,.dark-mode .card-danger:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.dark-mode .bg-danger>.card-header .btn-tool:hover,.dark-mode .bg-gradient-danger>.card-header .btn-tool:hover,.dark-mode .card-danger:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget .table th,.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget .table th{border:none}.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#df2e1b;color:#fff}.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.today::before,.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-danger .bootstrap-datetimepicker-widget table td.active:hover,.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-gradient-danger .bootstrap-datetimepicker-widget table td.active:hover{background-color:#ed7669;color:#fff}.dark-mode .card-light:not(.card-outline)>.card-header{background-color:#f8f9fa}.dark-mode .card-light:not(.card-outline)>.card-header,.dark-mode .card-light:not(.card-outline)>.card-header a{color:#1f2d3d}.dark-mode .card-light:not(.card-outline)>.card-header a.active{color:#1f2d3d}.dark-mode .card-light.card-outline{border-top:3px solid #f8f9fa}.dark-mode .card-light.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.dark-mode .card-light.card-outline-tabs>.card-header a.active,.dark-mode .card-light.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #f8f9fa}.dark-mode .bg-gradient-light>.card-header .btn-tool,.dark-mode .bg-light>.card-header .btn-tool,.dark-mode .card-light:not(.card-outline)>.card-header .btn-tool{color:rgba(31,45,61,.8)}.dark-mode .bg-gradient-light>.card-header .btn-tool:hover,.dark-mode .bg-light>.card-header .btn-tool:hover,.dark-mode .card-light:not(.card-outline)>.card-header .btn-tool:hover{color:#1f2d3d}.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget .table th,.dark-mode .card.bg-light .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-light .bootstrap-datetimepicker-widget .table th{border:none}.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#e0e5e9;color:#1f2d3d}.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.today::before,.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#1f2d3d}.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-gradient-light .bootstrap-datetimepicker-widget table td.active:hover,.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-light .bootstrap-datetimepicker-widget table td.active:hover{background-color:#fff;color:#1f2d3d}.dark-mode .card-dark:not(.card-outline)>.card-header{background-color:#343a40}.dark-mode .card-dark:not(.card-outline)>.card-header,.dark-mode .card-dark:not(.card-outline)>.card-header a{color:#fff}.dark-mode .card-dark:not(.card-outline)>.card-header a.active{color:#1f2d3d}.dark-mode .card-dark.card-outline{border-top:3px solid #343a40}.dark-mode .card-dark.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.dark-mode .card-dark.card-outline-tabs>.card-header a.active,.dark-mode .card-dark.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #343a40}.dark-mode .bg-dark>.card-header .btn-tool,.dark-mode .bg-gradient-dark>.card-header .btn-tool,.dark-mode .card-dark:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.dark-mode .bg-dark>.card-header .btn-tool:hover,.dark-mode .bg-gradient-dark>.card-header .btn-tool:hover,.dark-mode .card-dark:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget .table th,.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget .table th{border:none}.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#222629;color:#fff}.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.today::before,.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-dark .bootstrap-datetimepicker-widget table td.active:hover,.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-gradient-dark .bootstrap-datetimepicker-widget table td.active:hover{background-color:#4b545c;color:#fff}.dark-mode .card-lightblue:not(.card-outline)>.card-header{background-color:#86bad8}.dark-mode .card-lightblue:not(.card-outline)>.card-header,.dark-mode .card-lightblue:not(.card-outline)>.card-header a{color:#1f2d3d}.dark-mode .card-lightblue:not(.card-outline)>.card-header a.active{color:#1f2d3d}.dark-mode .card-lightblue.card-outline{border-top:3px solid #86bad8}.dark-mode .card-lightblue.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.dark-mode .card-lightblue.card-outline-tabs>.card-header a.active,.dark-mode .card-lightblue.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #86bad8}.dark-mode .bg-gradient-lightblue>.card-header .btn-tool,.dark-mode .bg-lightblue>.card-header .btn-tool,.dark-mode .card-lightblue:not(.card-outline)>.card-header .btn-tool{color:rgba(31,45,61,.8)}.dark-mode .bg-gradient-lightblue>.card-header .btn-tool:hover,.dark-mode .bg-lightblue>.card-header .btn-tool:hover,.dark-mode .card-lightblue:not(.card-outline)>.card-header .btn-tool:hover{color:#1f2d3d}.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget .table th,.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget .table th{border:none}.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#67a8ce;color:#1f2d3d}.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.today::before,.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#1f2d3d}.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-gradient-lightblue .bootstrap-datetimepicker-widget table td.active:hover,.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-lightblue .bootstrap-datetimepicker-widget table td.active:hover{background-color:#acd0e5;color:#1f2d3d}.dark-mode .card-navy:not(.card-outline)>.card-header{background-color:#002c59}.dark-mode .card-navy:not(.card-outline)>.card-header,.dark-mode .card-navy:not(.card-outline)>.card-header a{color:#fff}.dark-mode .card-navy:not(.card-outline)>.card-header a.active{color:#1f2d3d}.dark-mode .card-navy.card-outline{border-top:3px solid #002c59}.dark-mode .card-navy.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.dark-mode .card-navy.card-outline-tabs>.card-header a.active,.dark-mode .card-navy.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #002c59}.dark-mode .bg-gradient-navy>.card-header .btn-tool,.dark-mode .bg-navy>.card-header .btn-tool,.dark-mode .card-navy:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.dark-mode .bg-gradient-navy>.card-header .btn-tool:hover,.dark-mode .bg-navy>.card-header .btn-tool:hover,.dark-mode .card-navy:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget .table th,.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget .table th{border:none}.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#001730;color:#fff}.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.today::before,.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-gradient-navy .bootstrap-datetimepicker-widget table td.active:hover,.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-navy .bootstrap-datetimepicker-widget table td.active:hover{background-color:#00458c;color:#fff}.dark-mode .card-olive:not(.card-outline)>.card-header{background-color:#74c8a3}.dark-mode .card-olive:not(.card-outline)>.card-header,.dark-mode .card-olive:not(.card-outline)>.card-header a{color:#1f2d3d}.dark-mode .card-olive:not(.card-outline)>.card-header a.active{color:#1f2d3d}.dark-mode .card-olive.card-outline{border-top:3px solid #74c8a3}.dark-mode .card-olive.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.dark-mode .card-olive.card-outline-tabs>.card-header a.active,.dark-mode .card-olive.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #74c8a3}.dark-mode .bg-gradient-olive>.card-header .btn-tool,.dark-mode .bg-olive>.card-header .btn-tool,.dark-mode .card-olive:not(.card-outline)>.card-header .btn-tool{color:rgba(31,45,61,.8)}.dark-mode .bg-gradient-olive>.card-header .btn-tool:hover,.dark-mode .bg-olive>.card-header .btn-tool:hover,.dark-mode .card-olive:not(.card-outline)>.card-header .btn-tool:hover{color:#1f2d3d}.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget .table th,.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget .table th{border:none}.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#57bc8f;color:#1f2d3d}.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.today::before,.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#1f2d3d}.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-gradient-olive .bootstrap-datetimepicker-widget table td.active:hover,.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-olive .bootstrap-datetimepicker-widget table td.active:hover{background-color:#99d6bb;color:#1f2d3d}.dark-mode .card-lime:not(.card-outline)>.card-header{background-color:#67ffa9}.dark-mode .card-lime:not(.card-outline)>.card-header,.dark-mode .card-lime:not(.card-outline)>.card-header a{color:#1f2d3d}.dark-mode .card-lime:not(.card-outline)>.card-header a.active{color:#1f2d3d}.dark-mode .card-lime.card-outline{border-top:3px solid #67ffa9}.dark-mode .card-lime.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.dark-mode .card-lime.card-outline-tabs>.card-header a.active,.dark-mode .card-lime.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #67ffa9}.dark-mode .bg-gradient-lime>.card-header .btn-tool,.dark-mode .bg-lime>.card-header .btn-tool,.dark-mode .card-lime:not(.card-outline)>.card-header .btn-tool{color:rgba(31,45,61,.8)}.dark-mode .bg-gradient-lime>.card-header .btn-tool:hover,.dark-mode .bg-lime>.card-header .btn-tool:hover,.dark-mode .card-lime:not(.card-outline)>.card-header .btn-tool:hover{color:#1f2d3d}.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget .table th,.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget .table th{border:none}.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#3eff92;color:#1f2d3d}.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.today::before,.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#1f2d3d}.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-gradient-lime .bootstrap-datetimepicker-widget table td.active:hover,.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-lime .bootstrap-datetimepicker-widget table td.active:hover{background-color:#9affc6;color:#1f2d3d}.dark-mode .card-fuchsia:not(.card-outline)>.card-header{background-color:#f672d8}.dark-mode .card-fuchsia:not(.card-outline)>.card-header,.dark-mode .card-fuchsia:not(.card-outline)>.card-header a{color:#1f2d3d}.dark-mode .card-fuchsia:not(.card-outline)>.card-header a.active{color:#1f2d3d}.dark-mode .card-fuchsia.card-outline{border-top:3px solid #f672d8}.dark-mode .card-fuchsia.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.dark-mode .card-fuchsia.card-outline-tabs>.card-header a.active,.dark-mode .card-fuchsia.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #f672d8}.dark-mode .bg-fuchsia>.card-header .btn-tool,.dark-mode .bg-gradient-fuchsia>.card-header .btn-tool,.dark-mode .card-fuchsia:not(.card-outline)>.card-header .btn-tool{color:rgba(31,45,61,.8)}.dark-mode .bg-fuchsia>.card-header .btn-tool:hover,.dark-mode .bg-gradient-fuchsia>.card-header .btn-tool:hover,.dark-mode .card-fuchsia:not(.card-outline)>.card-header .btn-tool:hover{color:#1f2d3d}.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget .table th,.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget .table th{border:none}.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#f44cce;color:#1f2d3d}.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.today::before,.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#1f2d3d}.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-fuchsia .bootstrap-datetimepicker-widget table td.active:hover,.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-gradient-fuchsia .bootstrap-datetimepicker-widget table td.active:hover{background-color:#f9a2e5;color:#1f2d3d}.dark-mode .card-maroon:not(.card-outline)>.card-header{background-color:#ed6c9b}.dark-mode .card-maroon:not(.card-outline)>.card-header,.dark-mode .card-maroon:not(.card-outline)>.card-header a{color:#1f2d3d}.dark-mode .card-maroon:not(.card-outline)>.card-header a.active{color:#1f2d3d}.dark-mode .card-maroon.card-outline{border-top:3px solid #ed6c9b}.dark-mode .card-maroon.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.dark-mode .card-maroon.card-outline-tabs>.card-header a.active,.dark-mode .card-maroon.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #ed6c9b}.dark-mode .bg-gradient-maroon>.card-header .btn-tool,.dark-mode .bg-maroon>.card-header .btn-tool,.dark-mode .card-maroon:not(.card-outline)>.card-header .btn-tool{color:rgba(31,45,61,.8)}.dark-mode .bg-gradient-maroon>.card-header .btn-tool:hover,.dark-mode .bg-maroon>.card-header .btn-tool:hover,.dark-mode .card-maroon:not(.card-outline)>.card-header .btn-tool:hover{color:#1f2d3d}.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget .table th,.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget .table th{border:none}.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#e84883;color:#1f2d3d}.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.today::before,.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#1f2d3d}.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-gradient-maroon .bootstrap-datetimepicker-widget table td.active:hover,.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-maroon .bootstrap-datetimepicker-widget table td.active:hover{background-color:#f29aba;color:#1f2d3d}.dark-mode .card-blue:not(.card-outline)>.card-header{background-color:#3f6791}.dark-mode .card-blue:not(.card-outline)>.card-header,.dark-mode .card-blue:not(.card-outline)>.card-header a{color:#fff}.dark-mode .card-blue:not(.card-outline)>.card-header a.active{color:#1f2d3d}.dark-mode .card-blue.card-outline{border-top:3px solid #3f6791}.dark-mode .card-blue.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.dark-mode .card-blue.card-outline-tabs>.card-header a.active,.dark-mode .card-blue.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #3f6791}.dark-mode .bg-blue>.card-header .btn-tool,.dark-mode .bg-gradient-blue>.card-header .btn-tool,.dark-mode .card-blue:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.dark-mode .bg-blue>.card-header .btn-tool:hover,.dark-mode .bg-gradient-blue>.card-header .btn-tool:hover,.dark-mode .card-blue:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget .table th,.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget .table th{border:none}.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#335375;color:#fff}.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.today::before,.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-blue .bootstrap-datetimepicker-widget table td.active:hover,.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-gradient-blue .bootstrap-datetimepicker-widget table td.active:hover{background-color:#5080b3;color:#fff}.dark-mode .card-indigo:not(.card-outline)>.card-header{background-color:#6610f2}.dark-mode .card-indigo:not(.card-outline)>.card-header,.dark-mode .card-indigo:not(.card-outline)>.card-header a{color:#fff}.dark-mode .card-indigo:not(.card-outline)>.card-header a.active{color:#1f2d3d}.dark-mode .card-indigo.card-outline{border-top:3px solid #6610f2}.dark-mode .card-indigo.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.dark-mode .card-indigo.card-outline-tabs>.card-header a.active,.dark-mode .card-indigo.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #6610f2}.dark-mode .bg-gradient-indigo>.card-header .btn-tool,.dark-mode .bg-indigo>.card-header .btn-tool,.dark-mode .card-indigo:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.dark-mode .bg-gradient-indigo>.card-header .btn-tool:hover,.dark-mode .bg-indigo>.card-header .btn-tool:hover,.dark-mode .card-indigo:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget .table th,.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget .table th{border:none}.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#550bce;color:#fff}.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.today::before,.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-gradient-indigo .bootstrap-datetimepicker-widget table td.active:hover,.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-indigo .bootstrap-datetimepicker-widget table td.active:hover{background-color:#8540f5;color:#fff}.dark-mode .card-purple:not(.card-outline)>.card-header{background-color:#6f42c1}.dark-mode .card-purple:not(.card-outline)>.card-header,.dark-mode .card-purple:not(.card-outline)>.card-header a{color:#fff}.dark-mode .card-purple:not(.card-outline)>.card-header a.active{color:#1f2d3d}.dark-mode .card-purple.card-outline{border-top:3px solid #6f42c1}.dark-mode .card-purple.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.dark-mode .card-purple.card-outline-tabs>.card-header a.active,.dark-mode .card-purple.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #6f42c1}.dark-mode .bg-gradient-purple>.card-header .btn-tool,.dark-mode .bg-purple>.card-header .btn-tool,.dark-mode .card-purple:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.dark-mode .bg-gradient-purple>.card-header .btn-tool:hover,.dark-mode .bg-purple>.card-header .btn-tool:hover,.dark-mode .card-purple:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget .table th,.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget .table th{border:none}.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#5d36a4;color:#fff}.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.today::before,.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-gradient-purple .bootstrap-datetimepicker-widget table td.active:hover,.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-purple .bootstrap-datetimepicker-widget table td.active:hover{background-color:#8c68ce;color:#fff}.dark-mode .card-pink:not(.card-outline)>.card-header{background-color:#e83e8c}.dark-mode .card-pink:not(.card-outline)>.card-header,.dark-mode .card-pink:not(.card-outline)>.card-header a{color:#fff}.dark-mode .card-pink:not(.card-outline)>.card-header a.active{color:#1f2d3d}.dark-mode .card-pink.card-outline{border-top:3px solid #e83e8c}.dark-mode .card-pink.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.dark-mode .card-pink.card-outline-tabs>.card-header a.active,.dark-mode .card-pink.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #e83e8c}.dark-mode .bg-gradient-pink>.card-header .btn-tool,.dark-mode .bg-pink>.card-header .btn-tool,.dark-mode .card-pink:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.dark-mode .bg-gradient-pink>.card-header .btn-tool:hover,.dark-mode .bg-pink>.card-header .btn-tool:hover,.dark-mode .card-pink:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget .table th,.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget .table th{border:none}.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#e21b76;color:#fff}.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.today::before,.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-gradient-pink .bootstrap-datetimepicker-widget table td.active:hover,.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-pink .bootstrap-datetimepicker-widget table td.active:hover{background-color:#ed6ca7;color:#fff}.dark-mode .card-red:not(.card-outline)>.card-header{background-color:#e74c3c}.dark-mode .card-red:not(.card-outline)>.card-header,.dark-mode .card-red:not(.card-outline)>.card-header a{color:#fff}.dark-mode .card-red:not(.card-outline)>.card-header a.active{color:#1f2d3d}.dark-mode .card-red.card-outline{border-top:3px solid #e74c3c}.dark-mode .card-red.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.dark-mode .card-red.card-outline-tabs>.card-header a.active,.dark-mode .card-red.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #e74c3c}.dark-mode .bg-gradient-red>.card-header .btn-tool,.dark-mode .bg-red>.card-header .btn-tool,.dark-mode .card-red:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.dark-mode .bg-gradient-red>.card-header .btn-tool:hover,.dark-mode .bg-red>.card-header .btn-tool:hover,.dark-mode .card-red:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget .table th,.dark-mode .card.bg-red .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-red .bootstrap-datetimepicker-widget .table th{border:none}.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#df2e1b;color:#fff}.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.today::before,.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-gradient-red .bootstrap-datetimepicker-widget table td.active:hover,.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-red .bootstrap-datetimepicker-widget table td.active:hover{background-color:#ed7669;color:#fff}.dark-mode .card-orange:not(.card-outline)>.card-header{background-color:#fd7e14}.dark-mode .card-orange:not(.card-outline)>.card-header,.dark-mode .card-orange:not(.card-outline)>.card-header a{color:#1f2d3d}.dark-mode .card-orange:not(.card-outline)>.card-header a.active{color:#1f2d3d}.dark-mode .card-orange.card-outline{border-top:3px solid #fd7e14}.dark-mode .card-orange.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.dark-mode .card-orange.card-outline-tabs>.card-header a.active,.dark-mode .card-orange.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #fd7e14}.dark-mode .bg-gradient-orange>.card-header .btn-tool,.dark-mode .bg-orange>.card-header .btn-tool,.dark-mode .card-orange:not(.card-outline)>.card-header .btn-tool{color:rgba(31,45,61,.8)}.dark-mode .bg-gradient-orange>.card-header .btn-tool:hover,.dark-mode .bg-orange>.card-header .btn-tool:hover,.dark-mode .card-orange:not(.card-outline)>.card-header .btn-tool:hover{color:#1f2d3d}.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget .table th,.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget .table th{border:none}.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#e66a02;color:#1f2d3d}.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.today::before,.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#1f2d3d}.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-gradient-orange .bootstrap-datetimepicker-widget table td.active:hover,.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-orange .bootstrap-datetimepicker-widget table td.active:hover{background-color:#fd9a47;color:#1f2d3d}.dark-mode .card-yellow:not(.card-outline)>.card-header{background-color:#f39c12}.dark-mode .card-yellow:not(.card-outline)>.card-header,.dark-mode .card-yellow:not(.card-outline)>.card-header a{color:#1f2d3d}.dark-mode .card-yellow:not(.card-outline)>.card-header a.active{color:#1f2d3d}.dark-mode .card-yellow.card-outline{border-top:3px solid #f39c12}.dark-mode .card-yellow.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.dark-mode .card-yellow.card-outline-tabs>.card-header a.active,.dark-mode .card-yellow.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #f39c12}.dark-mode .bg-gradient-yellow>.card-header .btn-tool,.dark-mode .bg-yellow>.card-header .btn-tool,.dark-mode .card-yellow:not(.card-outline)>.card-header .btn-tool{color:rgba(31,45,61,.8)}.dark-mode .bg-gradient-yellow>.card-header .btn-tool:hover,.dark-mode .bg-yellow>.card-header .btn-tool:hover,.dark-mode .card-yellow:not(.card-outline)>.card-header .btn-tool:hover{color:#1f2d3d}.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget .table th,.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget .table th{border:none}.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#d2850b;color:#1f2d3d}.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.today::before,.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#1f2d3d}.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-gradient-yellow .bootstrap-datetimepicker-widget table td.active:hover,.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-yellow .bootstrap-datetimepicker-widget table td.active:hover{background-color:#f5b043;color:#1f2d3d}.dark-mode .card-green:not(.card-outline)>.card-header{background-color:#00bc8c}.dark-mode .card-green:not(.card-outline)>.card-header,.dark-mode .card-green:not(.card-outline)>.card-header a{color:#fff}.dark-mode .card-green:not(.card-outline)>.card-header a.active{color:#1f2d3d}.dark-mode .card-green.card-outline{border-top:3px solid #00bc8c}.dark-mode .card-green.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.dark-mode .card-green.card-outline-tabs>.card-header a.active,.dark-mode .card-green.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #00bc8c}.dark-mode .bg-gradient-green>.card-header .btn-tool,.dark-mode .bg-green>.card-header .btn-tool,.dark-mode .card-green:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.dark-mode .bg-gradient-green>.card-header .btn-tool:hover,.dark-mode .bg-green>.card-header .btn-tool:hover,.dark-mode .card-green:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget .table th,.dark-mode .card.bg-green .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-green .bootstrap-datetimepicker-widget .table th{border:none}.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#00936e;color:#fff}.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.today::before,.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-gradient-green .bootstrap-datetimepicker-widget table td.active:hover,.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-green .bootstrap-datetimepicker-widget table td.active:hover{background-color:#00efb2;color:#fff}.dark-mode .card-teal:not(.card-outline)>.card-header{background-color:#20c997}.dark-mode .card-teal:not(.card-outline)>.card-header,.dark-mode .card-teal:not(.card-outline)>.card-header a{color:#fff}.dark-mode .card-teal:not(.card-outline)>.card-header a.active{color:#1f2d3d}.dark-mode .card-teal.card-outline{border-top:3px solid #20c997}.dark-mode .card-teal.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.dark-mode .card-teal.card-outline-tabs>.card-header a.active,.dark-mode .card-teal.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #20c997}.dark-mode .bg-gradient-teal>.card-header .btn-tool,.dark-mode .bg-teal>.card-header .btn-tool,.dark-mode .card-teal:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.dark-mode .bg-gradient-teal>.card-header .btn-tool:hover,.dark-mode .bg-teal>.card-header .btn-tool:hover,.dark-mode .card-teal:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget .table th,.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget .table th{border:none}.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#1aa67d;color:#fff}.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.today::before,.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-gradient-teal .bootstrap-datetimepicker-widget table td.active:hover,.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-teal .bootstrap-datetimepicker-widget table td.active:hover{background-color:#3ce0af;color:#fff}.dark-mode .card-cyan:not(.card-outline)>.card-header{background-color:#3498db}.dark-mode .card-cyan:not(.card-outline)>.card-header,.dark-mode .card-cyan:not(.card-outline)>.card-header a{color:#fff}.dark-mode .card-cyan:not(.card-outline)>.card-header a.active{color:#1f2d3d}.dark-mode .card-cyan.card-outline{border-top:3px solid #3498db}.dark-mode .card-cyan.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.dark-mode .card-cyan.card-outline-tabs>.card-header a.active,.dark-mode .card-cyan.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #3498db}.dark-mode .bg-cyan>.card-header .btn-tool,.dark-mode .bg-gradient-cyan>.card-header .btn-tool,.dark-mode .card-cyan:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.dark-mode .bg-cyan>.card-header .btn-tool:hover,.dark-mode .bg-gradient-cyan>.card-header .btn-tool:hover,.dark-mode .card-cyan:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget .table th,.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget .table th{border:none}.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#2383c4;color:#fff}.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.today::before,.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-cyan .bootstrap-datetimepicker-widget table td.active:hover,.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-gradient-cyan .bootstrap-datetimepicker-widget table td.active:hover{background-color:#5faee3;color:#fff}.dark-mode .card-white:not(.card-outline)>.card-header{background-color:#fff}.dark-mode .card-white:not(.card-outline)>.card-header,.dark-mode .card-white:not(.card-outline)>.card-header a{color:#1f2d3d}.dark-mode .card-white:not(.card-outline)>.card-header a.active{color:#1f2d3d}.dark-mode .card-white.card-outline{border-top:3px solid #fff}.dark-mode .card-white.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.dark-mode .card-white.card-outline-tabs>.card-header a.active,.dark-mode .card-white.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #fff}.dark-mode .bg-gradient-white>.card-header .btn-tool,.dark-mode .bg-white>.card-header .btn-tool,.dark-mode .card-white:not(.card-outline)>.card-header .btn-tool{color:rgba(31,45,61,.8)}.dark-mode .bg-gradient-white>.card-header .btn-tool:hover,.dark-mode .bg-white>.card-header .btn-tool:hover,.dark-mode .card-white:not(.card-outline)>.card-header .btn-tool:hover{color:#1f2d3d}.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget .table th,.dark-mode .card.bg-white .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-white .bootstrap-datetimepicker-widget .table th{border:none}.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#ebebeb;color:#1f2d3d}.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.today::before,.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#1f2d3d}.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-gradient-white .bootstrap-datetimepicker-widget table td.active:hover,.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-white .bootstrap-datetimepicker-widget table td.active:hover{background-color:#fff;color:#1f2d3d}.dark-mode .card-gray:not(.card-outline)>.card-header{background-color:#6c757d}.dark-mode .card-gray:not(.card-outline)>.card-header,.dark-mode .card-gray:not(.card-outline)>.card-header a{color:#fff}.dark-mode .card-gray:not(.card-outline)>.card-header a.active{color:#1f2d3d}.dark-mode .card-gray.card-outline{border-top:3px solid #6c757d}.dark-mode .card-gray.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.dark-mode .card-gray.card-outline-tabs>.card-header a.active,.dark-mode .card-gray.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #6c757d}.dark-mode .bg-gradient-gray>.card-header .btn-tool,.dark-mode .bg-gray>.card-header .btn-tool,.dark-mode .card-gray:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.dark-mode .bg-gradient-gray>.card-header .btn-tool:hover,.dark-mode .bg-gray>.card-header .btn-tool:hover,.dark-mode .card-gray:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget .table th,.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget .table th{border:none}.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#596167;color:#fff}.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.today::before,.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-gradient-gray .bootstrap-datetimepicker-widget table td.active:hover,.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-gray .bootstrap-datetimepicker-widget table td.active:hover{background-color:#868e96;color:#fff}.dark-mode .card-gray-dark:not(.card-outline)>.card-header{background-color:#343a40}.dark-mode .card-gray-dark:not(.card-outline)>.card-header,.dark-mode .card-gray-dark:not(.card-outline)>.card-header a{color:#fff}.dark-mode .card-gray-dark:not(.card-outline)>.card-header a.active{color:#1f2d3d}.dark-mode .card-gray-dark.card-outline{border-top:3px solid #343a40}.dark-mode .card-gray-dark.card-outline-tabs>.card-header a:hover{border-top:3px solid #dee2e6}.dark-mode .card-gray-dark.card-outline-tabs>.card-header a.active,.dark-mode .card-gray-dark.card-outline-tabs>.card-header a.active:hover{border-top:3px solid #343a40}.dark-mode .bg-gradient-gray-dark>.card-header .btn-tool,.dark-mode .bg-gray-dark>.card-header .btn-tool,.dark-mode .card-gray-dark:not(.card-outline)>.card-header .btn-tool{color:rgba(255,255,255,.8)}.dark-mode .bg-gradient-gray-dark>.card-header .btn-tool:hover,.dark-mode .bg-gray-dark>.card-header .btn-tool:hover,.dark-mode .card-gray-dark:not(.card-outline)>.card-header .btn-tool:hover{color:#fff}.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget .table th,.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget .table td,.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget .table th{border:none}.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.day:hover,.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.hour:hover,.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.minute:hover,.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.second:hover,.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background-color:#222629;color:#fff}.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.today::before,.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.today::before{border-bottom-color:#fff}.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-gradient-gray-dark .bootstrap-datetimepicker-widget table td.active:hover,.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.active,.dark-mode .card.bg-gray-dark .bootstrap-datetimepicker-widget table td.active:hover{background-color:#4b545c;color:#fff}.dark-mode .card{background-color:#343a40;color:#fff}.dark-mode .card .card{background-color:#3f474e;color:#fff}.dark-mode .card .nav.flex-column>li{border-bottom-color:#6c757d}.dark-mode .card .card-footer{background-color:rgba(0,0,0,.1)}.dark-mode .card.card-outline-tabs{border-top:0}.dark-mode .card.card-outline-tabs .card-header a:hover{border-top-color:#6c757d;border-bottom-color:transparent}.dark-mode .card:not(.card-outline)>.card-header a.active{color:#fff}.dark-mode .card-comments{background-color:#373d44}.dark-mode .card-comments .username{color:#ced4da}.dark-mode .card-comments .card-comment{border-bottom-color:#454d55}.dark-mode .todo-list>li{background-color:#3f474e;border-color:#454d55;color:#fff}.dark-mode .todo-list .primary{border-left-color:#3f6791}.dark-mode .todo-list .secondary{border-left-color:#6c757d}.dark-mode .todo-list .success{border-left-color:#00bc8c}.dark-mode .todo-list .info{border-left-color:#3498db}.dark-mode .todo-list .warning{border-left-color:#f39c12}.dark-mode .todo-list .danger{border-left-color:#e74c3c}.dark-mode .todo-list .light{border-left-color:#f8f9fa}.dark-mode .todo-list .dark{border-left-color:#343a40}.dark-mode .todo-list .lightblue{border-left-color:#86bad8}.dark-mode .todo-list .navy{border-left-color:#002c59}.dark-mode .todo-list .olive{border-left-color:#74c8a3}.dark-mode .todo-list .lime{border-left-color:#67ffa9}.dark-mode .todo-list .fuchsia{border-left-color:#f672d8}.dark-mode .todo-list .maroon{border-left-color:#ed6c9b}.dark-mode .todo-list .blue{border-left-color:#3f6791}.dark-mode .todo-list .indigo{border-left-color:#6610f2}.dark-mode .todo-list .purple{border-left-color:#6f42c1}.dark-mode .todo-list .pink{border-left-color:#e83e8c}.dark-mode .todo-list .red{border-left-color:#e74c3c}.dark-mode .todo-list .orange{border-left-color:#fd7e14}.dark-mode .todo-list .yellow{border-left-color:#f39c12}.dark-mode .todo-list .green{border-left-color:#00bc8c}.dark-mode .todo-list .teal{border-left-color:#20c997}.dark-mode .todo-list .cyan{border-left-color:#3498db}.dark-mode .todo-list .white{border-left-color:#fff}.dark-mode .todo-list .gray{border-left-color:#6c757d}.dark-mode .todo-list .gray-dark{border-left-color:#343a40}.modal-dialog .overlay{display:-ms-flexbox;display:flex;position:absolute;left:0;top:0;bottom:0;right:0;margin:-1px;z-index:1052;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;background-color:rgba(0,0,0,.7);color:#666f76;border-radius:.3rem}.modal-content.bg-warning .modal-footer,.modal-content.bg-warning .modal-header{border-color:#343a40}.modal-content.bg-danger .close,.modal-content.bg-info .close,.modal-content.bg-primary .close,.modal-content.bg-secondary .close,.modal-content.bg-success .close{color:#fff;text-shadow:0 1px 0 #000}.dark-mode .modal-footer,.dark-mode .modal-header{border-color:#6c757d}.dark-mode .modal-content{background-color:#343a40}.dark-mode .modal-content.bg-warning .modal-footer,.dark-mode .modal-content.bg-warning .modal-header{border-color:#6c757d}.dark-mode .modal-content.bg-warning .close{color:#343a40!important;text-shadow:0 1px 0 #495057!important}.dark-mode .modal-content.bg-danger .modal-footer,.dark-mode .modal-content.bg-danger .modal-header,.dark-mode .modal-content.bg-info .modal-footer,.dark-mode .modal-content.bg-info .modal-header,.dark-mode .modal-content.bg-primary .modal-footer,.dark-mode .modal-content.bg-primary .modal-header,.dark-mode .modal-content.bg-secondary .modal-footer,.dark-mode .modal-content.bg-secondary .modal-header,.dark-mode .modal-content.bg-success .modal-footer,.dark-mode .modal-content.bg-success .modal-header{border-color:#fff}.toasts-top-right{position:absolute;right:0;top:0;z-index:1040}.toasts-top-right.fixed{position:fixed}.toasts-top-left{left:0;position:absolute;top:0;z-index:1040}.toasts-top-left.fixed{position:fixed}.toasts-bottom-right{bottom:0;position:absolute;right:0;z-index:1040}.toasts-bottom-right.fixed{position:fixed}.toasts-bottom-left{bottom:0;left:0;position:absolute;z-index:1040}.toasts-bottom-left.fixed{position:fixed}.dark-mode .toast{background-color:rgba(52,58,64,.85);color:#fff}.dark-mode .toast .toast-header{background-color:rgba(52,58,64,.7);color:#f8f9fa}.dark-mode .toast.bg-primary{background-color:rgba(63,103,145,.9)!important}.dark-mode .toast.bg-primary .close{color:#fff;text-shadow:0 1px 0 #000}.dark-mode .toast.bg-primary .toast-header{background-color:rgba(63,103,145,.85);color:#fff}.dark-mode .toast.bg-secondary{background-color:rgba(108,117,125,.9)!important}.dark-mode .toast.bg-secondary .close{color:#fff;text-shadow:0 1px 0 #000}.dark-mode .toast.bg-secondary .toast-header{background-color:rgba(108,117,125,.85);color:#fff}.dark-mode .toast.bg-success{background-color:rgba(0,188,140,.9)!important}.dark-mode .toast.bg-success .close{color:#fff;text-shadow:0 1px 0 #000}.dark-mode .toast.bg-success .toast-header{background-color:rgba(0,188,140,.85);color:#fff}.dark-mode .toast.bg-info{background-color:rgba(52,152,219,.9)!important}.dark-mode .toast.bg-info .close{color:#fff;text-shadow:0 1px 0 #000}.dark-mode .toast.bg-info .toast-header{background-color:rgba(52,152,219,.85);color:#fff}.dark-mode .toast.bg-warning{background-color:rgba(243,156,18,.9)!important}.dark-mode .toast.bg-warning .toast-header{background-color:rgba(243,156,18,.85);color:#1f2d3d}.dark-mode .toast.bg-danger{background-color:rgba(231,76,60,.9)!important}.dark-mode .toast.bg-danger .close{color:#fff;text-shadow:0 1px 0 #000}.dark-mode .toast.bg-danger .toast-header{background-color:rgba(231,76,60,.85);color:#fff}.dark-mode .toast.bg-light{background-color:rgba(248,249,250,.9)!important}.dark-mode .toast.bg-light .toast-header{background-color:rgba(248,249,250,.85);color:#1f2d3d}.dark-mode .toast.bg-dark{background-color:rgba(52,58,64,.9)!important}.dark-mode .toast.bg-dark .close{color:#fff;text-shadow:0 1px 0 #000}.dark-mode .toast.bg-dark .toast-header{background-color:rgba(52,58,64,.85);color:#fff}.dark-mode .toast.bg-lightblue{background-color:rgba(134,186,216,.9)!important}.dark-mode .toast.bg-lightblue .toast-header{background-color:rgba(134,186,216,.85);color:#1f2d3d}.dark-mode .toast.bg-navy{background-color:rgba(0,44,89,.9)!important}.dark-mode .toast.bg-navy .close{color:#fff;text-shadow:0 1px 0 #000}.dark-mode .toast.bg-navy .toast-header{background-color:rgba(0,44,89,.85);color:#fff}.dark-mode .toast.bg-olive{background-color:rgba(116,200,163,.9)!important}.dark-mode .toast.bg-olive .toast-header{background-color:rgba(116,200,163,.85);color:#1f2d3d}.dark-mode .toast.bg-lime{background-color:rgba(103,255,169,.9)!important}.dark-mode .toast.bg-lime .toast-header{background-color:rgba(103,255,169,.85);color:#1f2d3d}.dark-mode .toast.bg-fuchsia{background-color:rgba(246,114,216,.9)!important}.dark-mode .toast.bg-fuchsia .toast-header{background-color:rgba(246,114,216,.85);color:#1f2d3d}.dark-mode .toast.bg-maroon{background-color:rgba(237,108,155,.9)!important}.dark-mode .toast.bg-maroon .toast-header{background-color:rgba(237,108,155,.85);color:#1f2d3d}.dark-mode .toast.bg-blue{background-color:rgba(63,103,145,.9)!important}.dark-mode .toast.bg-blue .close{color:#fff;text-shadow:0 1px 0 #000}.dark-mode .toast.bg-blue .toast-header{background-color:rgba(63,103,145,.85);color:#fff}.dark-mode .toast.bg-indigo{background-color:rgba(102,16,242,.9)!important}.dark-mode .toast.bg-indigo .close{color:#fff;text-shadow:0 1px 0 #000}.dark-mode .toast.bg-indigo .toast-header{background-color:rgba(102,16,242,.85);color:#fff}.dark-mode .toast.bg-purple{background-color:rgba(111,66,193,.9)!important}.dark-mode .toast.bg-purple .close{color:#fff;text-shadow:0 1px 0 #000}.dark-mode .toast.bg-purple .toast-header{background-color:rgba(111,66,193,.85);color:#fff}.dark-mode .toast.bg-pink{background-color:rgba(232,62,140,.9)!important}.dark-mode .toast.bg-pink .close{color:#fff;text-shadow:0 1px 0 #000}.dark-mode .toast.bg-pink .toast-header{background-color:rgba(232,62,140,.85);color:#fff}.dark-mode .toast.bg-red{background-color:rgba(231,76,60,.9)!important}.dark-mode .toast.bg-red .close{color:#fff;text-shadow:0 1px 0 #000}.dark-mode .toast.bg-red .toast-header{background-color:rgba(231,76,60,.85);color:#fff}.dark-mode .toast.bg-orange{background-color:rgba(253,126,20,.9)!important}.dark-mode .toast.bg-orange .toast-header{background-color:rgba(253,126,20,.85);color:#1f2d3d}.dark-mode .toast.bg-yellow{background-color:rgba(243,156,18,.9)!important}.dark-mode .toast.bg-yellow .toast-header{background-color:rgba(243,156,18,.85);color:#1f2d3d}.dark-mode .toast.bg-green{background-color:rgba(0,188,140,.9)!important}.dark-mode .toast.bg-green .close{color:#fff;text-shadow:0 1px 0 #000}.dark-mode .toast.bg-green .toast-header{background-color:rgba(0,188,140,.85);color:#fff}.dark-mode .toast.bg-teal{background-color:rgba(32,201,151,.9)!important}.dark-mode .toast.bg-teal .close{color:#fff;text-shadow:0 1px 0 #000}.dark-mode .toast.bg-teal .toast-header{background-color:rgba(32,201,151,.85);color:#fff}.dark-mode .toast.bg-cyan{background-color:rgba(52,152,219,.9)!important}.dark-mode .toast.bg-cyan .close{color:#fff;text-shadow:0 1px 0 #000}.dark-mode .toast.bg-cyan .toast-header{background-color:rgba(52,152,219,.85);color:#fff}.dark-mode .toast.bg-white{background-color:rgba(255,255,255,.9)!important}.dark-mode .toast.bg-white .toast-header{background-color:rgba(255,255,255,.85);color:#1f2d3d}.dark-mode .toast.bg-gray{background-color:rgba(108,117,125,.9)!important}.dark-mode .toast.bg-gray .close{color:#fff;text-shadow:0 1px 0 #000}.dark-mode .toast.bg-gray .toast-header{background-color:rgba(108,117,125,.85);color:#fff}.dark-mode .toast.bg-gray-dark{background-color:rgba(52,58,64,.9)!important}.dark-mode .toast.bg-gray-dark .close{color:#fff;text-shadow:0 1px 0 #000}.dark-mode .toast.bg-gray-dark .toast-header{background-color:rgba(52,58,64,.85);color:#fff}.toast.bg-primary{background-color:rgba(0,123,255,.9)!important}.toast.bg-primary .close{color:#fff;text-shadow:0 1px 0 #000}.toast.bg-primary .toast-header{background-color:rgba(0,123,255,.85);color:#fff}.toast.bg-secondary{background-color:rgba(108,117,125,.9)!important}.toast.bg-secondary .close{color:#fff;text-shadow:0 1px 0 #000}.toast.bg-secondary .toast-header{background-color:rgba(108,117,125,.85);color:#fff}.toast.bg-success{background-color:rgba(40,167,69,.9)!important}.toast.bg-success .close{color:#fff;text-shadow:0 1px 0 #000}.toast.bg-success .toast-header{background-color:rgba(40,167,69,.85);color:#fff}.toast.bg-info{background-color:rgba(23,162,184,.9)!important}.toast.bg-info .close{color:#fff;text-shadow:0 1px 0 #000}.toast.bg-info .toast-header{background-color:rgba(23,162,184,.85);color:#fff}.toast.bg-warning{background-color:rgba(255,193,7,.9)!important}.toast.bg-warning .toast-header{background-color:rgba(255,193,7,.85);color:#1f2d3d}.toast.bg-danger{background-color:rgba(220,53,69,.9)!important}.toast.bg-danger .close{color:#fff;text-shadow:0 1px 0 #000}.toast.bg-danger .toast-header{background-color:rgba(220,53,69,.85);color:#fff}.toast.bg-light{background-color:rgba(248,249,250,.9)!important}.toast.bg-light .toast-header{background-color:rgba(248,249,250,.85);color:#1f2d3d}.toast.bg-dark{background-color:rgba(52,58,64,.9)!important}.toast.bg-dark .close{color:#fff;text-shadow:0 1px 0 #000}.toast.bg-dark .toast-header{background-color:rgba(52,58,64,.85);color:#fff}.toast.bg-lightblue{background-color:rgba(60,141,188,.9)!important}.toast.bg-lightblue .close{color:#fff;text-shadow:0 1px 0 #000}.toast.bg-lightblue .toast-header{background-color:rgba(60,141,188,.85);color:#fff}.toast.bg-navy{background-color:rgba(0,31,63,.9)!important}.toast.bg-navy .close{color:#fff;text-shadow:0 1px 0 #000}.toast.bg-navy .toast-header{background-color:rgba(0,31,63,.85);color:#fff}.toast.bg-olive{background-color:rgba(61,153,112,.9)!important}.toast.bg-olive .close{color:#fff;text-shadow:0 1px 0 #000}.toast.bg-olive .toast-header{background-color:rgba(61,153,112,.85);color:#fff}.toast.bg-lime{background-color:rgba(1,255,112,.9)!important}.toast.bg-lime .toast-header{background-color:rgba(1,255,112,.85);color:#1f2d3d}.toast.bg-fuchsia{background-color:rgba(240,18,190,.9)!important}.toast.bg-fuchsia .close{color:#fff;text-shadow:0 1px 0 #000}.toast.bg-fuchsia .toast-header{background-color:rgba(240,18,190,.85);color:#fff}.toast.bg-maroon{background-color:rgba(216,27,96,.9)!important}.toast.bg-maroon .close{color:#fff;text-shadow:0 1px 0 #000}.toast.bg-maroon .toast-header{background-color:rgba(216,27,96,.85);color:#fff}.toast.bg-blue{background-color:rgba(0,123,255,.9)!important}.toast.bg-blue .close{color:#fff;text-shadow:0 1px 0 #000}.toast.bg-blue .toast-header{background-color:rgba(0,123,255,.85);color:#fff}.toast.bg-indigo{background-color:rgba(102,16,242,.9)!important}.toast.bg-indigo .close{color:#fff;text-shadow:0 1px 0 #000}.toast.bg-indigo .toast-header{background-color:rgba(102,16,242,.85);color:#fff}.toast.bg-purple{background-color:rgba(111,66,193,.9)!important}.toast.bg-purple .close{color:#fff;text-shadow:0 1px 0 #000}.toast.bg-purple .toast-header{background-color:rgba(111,66,193,.85);color:#fff}.toast.bg-pink{background-color:rgba(232,62,140,.9)!important}.toast.bg-pink .close{color:#fff;text-shadow:0 1px 0 #000}.toast.bg-pink .toast-header{background-color:rgba(232,62,140,.85);color:#fff}.toast.bg-red{background-color:rgba(220,53,69,.9)!important}.toast.bg-red .close{color:#fff;text-shadow:0 1px 0 #000}.toast.bg-red .toast-header{background-color:rgba(220,53,69,.85);color:#fff}.toast.bg-orange{background-color:rgba(253,126,20,.9)!important}.toast.bg-orange .toast-header{background-color:rgba(253,126,20,.85);color:#1f2d3d}.toast.bg-yellow{background-color:rgba(255,193,7,.9)!important}.toast.bg-yellow .toast-header{background-color:rgba(255,193,7,.85);color:#1f2d3d}.toast.bg-green{background-color:rgba(40,167,69,.9)!important}.toast.bg-green .close{color:#fff;text-shadow:0 1px 0 #000}.toast.bg-green .toast-header{background-color:rgba(40,167,69,.85);color:#fff}.toast.bg-teal{background-color:rgba(32,201,151,.9)!important}.toast.bg-teal .close{color:#fff;text-shadow:0 1px 0 #000}.toast.bg-teal .toast-header{background-color:rgba(32,201,151,.85);color:#fff}.toast.bg-cyan{background-color:rgba(23,162,184,.9)!important}.toast.bg-cyan .close{color:#fff;text-shadow:0 1px 0 #000}.toast.bg-cyan .toast-header{background-color:rgba(23,162,184,.85);color:#fff}.toast.bg-white{background-color:rgba(255,255,255,.9)!important}.toast.bg-white .toast-header{background-color:rgba(255,255,255,.85);color:#1f2d3d}.toast.bg-gray{background-color:rgba(108,117,125,.9)!important}.toast.bg-gray .close{color:#fff;text-shadow:0 1px 0 #000}.toast.bg-gray .toast-header{background-color:rgba(108,117,125,.85);color:#fff}.toast.bg-gray-dark{background-color:rgba(52,58,64,.9)!important}.toast.bg-gray-dark .close{color:#fff;text-shadow:0 1px 0 #000}.toast.bg-gray-dark .toast-header{background-color:rgba(52,58,64,.85);color:#fff}.btn.disabled,.btn:disabled{cursor:not-allowed}.btn.btn-flat{border-radius:0;border-width:1px;box-shadow:none}.btn.btn-file{overflow:hidden;position:relative}.btn.btn-file>input[type=file]{background-color:#fff;cursor:inherit;display:block;font-size:100px;min-height:100%;min-width:100%;opacity:0;outline:0;position:absolute;right:0;text-align:right;top:0}.text-sm .btn{font-size:.875rem!important}.btn-default{background-color:#f8f9fa;border-color:#ddd;color:#444}.btn-default.hover,.btn-default:active,.btn-default:hover{background-color:#e9ecef;color:#2b2b2b}.btn-default.disabled,.btn-default:disabled{color:#444;background-color:#f8f9fa}.btn-outline-light{color:#bdc6d0;border-color:#bdc6d0}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#bdc6d0;border-color:#bdc6d0}.btn-app{border-radius:3px;background-color:#f8f9fa;border:1px solid #ddd;color:#6c757d;font-size:12px;height:60px;margin:0 0 10px 10px;min-width:80px;padding:15px 5px;position:relative;text-align:center}.btn-app>.fa,.btn-app>.fab,.btn-app>.fad,.btn-app>.fal,.btn-app>.far,.btn-app>.fas,.btn-app>.ion,.btn-app>.svg-inline--fa{display:block;font-size:20px}.btn-app>.svg-inline--fa{margin:0 auto}.btn-app:hover{background-color:#f8f9fa;border-color:#aaa;color:#444}.btn-app:active,.btn-app:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-app>.badge{font-size:10px;font-weight:400;position:absolute;right:-10px;top:-3px}.btn-xs{padding:.125rem .25rem;font-size:.75rem;line-height:1.5;border-radius:.15rem}.dark-mode .btn-app,.dark-mode .btn-default{background-color:#3a4047;color:#fff;border-color:#6c757d}.dark-mode .btn-app:focus,.dark-mode .btn-app:hover,.dark-mode .btn-default:focus,.dark-mode .btn-default:hover{background-color:#3f474e;color:#dee2e6;border-color:#727b84}.dark-mode .btn-light{background-color:#454d55;color:#fff;border-color:#6c757d}.dark-mode .btn-light:focus,.dark-mode .btn-light:hover{background-color:#4b545c;color:#dee2e6;border-color:#78828a}.dark-mode .btn-primary{color:#fff;background-color:#3f6791;border-color:#3f6791;box-shadow:none}.dark-mode .btn-primary:hover{color:#fff;background-color:#335476;border-color:#304e6d}.dark-mode .btn-primary.focus,.dark-mode .btn-primary:focus{color:#fff;background-color:#335476;border-color:#304e6d;box-shadow:0 0 0 0 rgba(92,126,162,.5)}.dark-mode .btn-primary.disabled,.dark-mode .btn-primary:disabled{color:#fff;background-color:#3f6791;border-color:#3f6791}.dark-mode .btn-primary:not(:disabled):not(.disabled).active,.dark-mode .btn-primary:not(:disabled):not(.disabled):active,.show>.dark-mode .btn-primary.dropdown-toggle{color:#fff;background-color:#304e6d;border-color:#2c4765}.dark-mode .btn-primary:not(:disabled):not(.disabled).active:focus,.dark-mode .btn-primary:not(:disabled):not(.disabled):active:focus,.show>.dark-mode .btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(92,126,162,.5)}.dark-mode .btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d;box-shadow:none}.dark-mode .btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.dark-mode .btn-secondary.focus,.dark-mode .btn-secondary:focus{color:#fff;background-color:#5a6268;border-color:#545b62;box-shadow:0 0 0 0 rgba(130,138,145,.5)}.dark-mode .btn-secondary.disabled,.dark-mode .btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.dark-mode .btn-secondary:not(:disabled):not(.disabled).active,.dark-mode .btn-secondary:not(:disabled):not(.disabled):active,.show>.dark-mode .btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.dark-mode .btn-secondary:not(:disabled):not(.disabled).active:focus,.dark-mode .btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.dark-mode .btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(130,138,145,.5)}.dark-mode .btn-success{color:#fff;background-color:#00bc8c;border-color:#00bc8c;box-shadow:none}.dark-mode .btn-success:hover{color:#fff;background-color:#009670;border-color:#008966}.dark-mode .btn-success.focus,.dark-mode .btn-success:focus{color:#fff;background-color:#009670;border-color:#008966;box-shadow:0 0 0 0 rgba(38,198,157,.5)}.dark-mode .btn-success.disabled,.dark-mode .btn-success:disabled{color:#fff;background-color:#00bc8c;border-color:#00bc8c}.dark-mode .btn-success:not(:disabled):not(.disabled).active,.dark-mode .btn-success:not(:disabled):not(.disabled):active,.show>.dark-mode .btn-success.dropdown-toggle{color:#fff;background-color:#008966;border-color:#007c5d}.dark-mode .btn-success:not(:disabled):not(.disabled).active:focus,.dark-mode .btn-success:not(:disabled):not(.disabled):active:focus,.show>.dark-mode .btn-success.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(38,198,157,.5)}.dark-mode .btn-info{color:#fff;background-color:#3498db;border-color:#3498db;box-shadow:none}.dark-mode .btn-info:hover{color:#fff;background-color:#2384c6;border-color:#217dbb}.dark-mode .btn-info.focus,.dark-mode .btn-info:focus{color:#fff;background-color:#2384c6;border-color:#217dbb;box-shadow:0 0 0 0 rgba(82,167,224,.5)}.dark-mode .btn-info.disabled,.dark-mode .btn-info:disabled{color:#fff;background-color:#3498db;border-color:#3498db}.dark-mode .btn-info:not(:disabled):not(.disabled).active,.dark-mode .btn-info:not(:disabled):not(.disabled):active,.show>.dark-mode .btn-info.dropdown-toggle{color:#fff;background-color:#217dbb;border-color:#1f76b0}.dark-mode .btn-info:not(:disabled):not(.disabled).active:focus,.dark-mode .btn-info:not(:disabled):not(.disabled):active:focus,.show>.dark-mode .btn-info.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(82,167,224,.5)}.dark-mode .btn-warning{color:#1f2d3d;background-color:#f39c12;border-color:#f39c12;box-shadow:none}.dark-mode .btn-warning:hover{color:#fff;background-color:#d4860b;border-color:#c87f0a}.dark-mode .btn-warning.focus,.dark-mode .btn-warning:focus{color:#fff;background-color:#d4860b;border-color:#c87f0a;box-shadow:0 0 0 0 rgba(211,139,24,.5)}.dark-mode .btn-warning.disabled,.dark-mode .btn-warning:disabled{color:#1f2d3d;background-color:#f39c12;border-color:#f39c12}.dark-mode .btn-warning:not(:disabled):not(.disabled).active,.dark-mode .btn-warning:not(:disabled):not(.disabled):active,.show>.dark-mode .btn-warning.dropdown-toggle{color:#fff;background-color:#c87f0a;border-color:#bc770a}.dark-mode .btn-warning:not(:disabled):not(.disabled).active:focus,.dark-mode .btn-warning:not(:disabled):not(.disabled):active:focus,.show>.dark-mode .btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(211,139,24,.5)}.dark-mode .btn-danger{color:#fff;background-color:#e74c3c;border-color:#e74c3c;box-shadow:none}.dark-mode .btn-danger:hover{color:#fff;background-color:#e12e1c;border-color:#d62c1a}.dark-mode .btn-danger.focus,.dark-mode .btn-danger:focus{color:#fff;background-color:#e12e1c;border-color:#d62c1a;box-shadow:0 0 0 0 rgba(235,103,89,.5)}.dark-mode .btn-danger.disabled,.dark-mode .btn-danger:disabled{color:#fff;background-color:#e74c3c;border-color:#e74c3c}.dark-mode .btn-danger:not(:disabled):not(.disabled).active,.dark-mode .btn-danger:not(:disabled):not(.disabled):active,.show>.dark-mode .btn-danger.dropdown-toggle{color:#fff;background-color:#d62c1a;border-color:#ca2a19}.dark-mode .btn-danger:not(:disabled):not(.disabled).active:focus,.dark-mode .btn-danger:not(:disabled):not(.disabled):active:focus,.show>.dark-mode .btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(235,103,89,.5)}.dark-mode .btn-light{color:#1f2d3d;background-color:#f8f9fa;border-color:#f8f9fa;box-shadow:none}.dark-mode .btn-light:hover{color:#1f2d3d;background-color:#e2e6ea;border-color:#dae0e5}.dark-mode .btn-light.focus,.dark-mode .btn-light:focus{color:#1f2d3d;background-color:#e2e6ea;border-color:#dae0e5;box-shadow:0 0 0 0 rgba(215,218,222,.5)}.dark-mode .btn-light.disabled,.dark-mode .btn-light:disabled{color:#1f2d3d;background-color:#f8f9fa;border-color:#f8f9fa}.dark-mode .btn-light:not(:disabled):not(.disabled).active,.dark-mode .btn-light:not(:disabled):not(.disabled):active,.show>.dark-mode .btn-light.dropdown-toggle{color:#1f2d3d;background-color:#dae0e5;border-color:#d3d9df}.dark-mode .btn-light:not(:disabled):not(.disabled).active:focus,.dark-mode .btn-light:not(:disabled):not(.disabled):active:focus,.show>.dark-mode .btn-light.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(215,218,222,.5)}.dark-mode .btn-dark{color:#fff;background-color:#292d32;border-color:#4b545c;box-shadow:none}.dark-mode .btn-dark:hover{color:#fff;background-color:#171a1d;border-color:#343a40}.dark-mode .btn-dark.focus,.dark-mode .btn-dark:focus{color:#fff;background-color:#171a1d;border-color:#343a40;box-shadow:0 0 0 0 rgba(102,109,117,.5)}.dark-mode .btn-dark.disabled,.dark-mode .btn-dark:disabled{color:#fff;background-color:#292d32;border-color:#4b545c}.dark-mode .btn-dark:not(:disabled):not(.disabled).active,.dark-mode .btn-dark:not(:disabled):not(.disabled):active,.show>.dark-mode .btn-dark.dropdown-toggle{color:#fff;background-color:#121416;border-color:#2e3439}.dark-mode .btn-dark:not(:disabled):not(.disabled).active:focus,.dark-mode .btn-dark:not(:disabled):not(.disabled):active:focus,.show>.dark-mode .btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(102,109,117,.5)}.dark-mode .btn-outline-primary{color:#3f6791;border-color:#3f6791}.dark-mode .btn-outline-primary:hover{color:#fff;background-color:#3f6791;border-color:#3f6791}.dark-mode .btn-outline-primary.focus,.dark-mode .btn-outline-primary:focus{box-shadow:0 0 0 0 rgba(63,103,145,.5)}.dark-mode .btn-outline-primary.disabled,.dark-mode .btn-outline-primary:disabled{color:#3f6791;background-color:transparent}.dark-mode .btn-outline-primary:not(:disabled):not(.disabled).active,.dark-mode .btn-outline-primary:not(:disabled):not(.disabled):active,.show>.dark-mode .btn-outline-primary.dropdown-toggle{color:#fff;background-color:#3f6791;border-color:#3f6791}.dark-mode .btn-outline-primary:not(:disabled):not(.disabled).active:focus,.dark-mode .btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.dark-mode .btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(63,103,145,.5)}.dark-mode .btn-outline-secondary{color:#6c757d;border-color:#6c757d}.dark-mode .btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.dark-mode .btn-outline-secondary.focus,.dark-mode .btn-outline-secondary:focus{box-shadow:0 0 0 0 rgba(108,117,125,.5)}.dark-mode .btn-outline-secondary.disabled,.dark-mode .btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.dark-mode .btn-outline-secondary:not(:disabled):not(.disabled).active,.dark-mode .btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.dark-mode .btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.dark-mode .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.dark-mode .btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.dark-mode .btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(108,117,125,.5)}.dark-mode .btn-outline-success{color:#00bc8c;border-color:#00bc8c}.dark-mode .btn-outline-success:hover{color:#fff;background-color:#00bc8c;border-color:#00bc8c}.dark-mode .btn-outline-success.focus,.dark-mode .btn-outline-success:focus{box-shadow:0 0 0 0 rgba(0,188,140,.5)}.dark-mode .btn-outline-success.disabled,.dark-mode .btn-outline-success:disabled{color:#00bc8c;background-color:transparent}.dark-mode .btn-outline-success:not(:disabled):not(.disabled).active,.dark-mode .btn-outline-success:not(:disabled):not(.disabled):active,.show>.dark-mode .btn-outline-success.dropdown-toggle{color:#fff;background-color:#00bc8c;border-color:#00bc8c}.dark-mode .btn-outline-success:not(:disabled):not(.disabled).active:focus,.dark-mode .btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.dark-mode .btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(0,188,140,.5)}.dark-mode .btn-outline-info{color:#3498db;border-color:#3498db}.dark-mode .btn-outline-info:hover{color:#fff;background-color:#3498db;border-color:#3498db}.dark-mode .btn-outline-info.focus,.dark-mode .btn-outline-info:focus{box-shadow:0 0 0 0 rgba(52,152,219,.5)}.dark-mode .btn-outline-info.disabled,.dark-mode .btn-outline-info:disabled{color:#3498db;background-color:transparent}.dark-mode .btn-outline-info:not(:disabled):not(.disabled).active,.dark-mode .btn-outline-info:not(:disabled):not(.disabled):active,.show>.dark-mode .btn-outline-info.dropdown-toggle{color:#fff;background-color:#3498db;border-color:#3498db}.dark-mode .btn-outline-info:not(:disabled):not(.disabled).active:focus,.dark-mode .btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.dark-mode .btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(52,152,219,.5)}.dark-mode .btn-outline-warning{color:#f39c12;border-color:#f39c12}.dark-mode .btn-outline-warning:hover{color:#1f2d3d;background-color:#f39c12;border-color:#f39c12}.dark-mode .btn-outline-warning.focus,.dark-mode .btn-outline-warning:focus{box-shadow:0 0 0 0 rgba(243,156,18,.5)}.dark-mode .btn-outline-warning.disabled,.dark-mode .btn-outline-warning:disabled{color:#f39c12;background-color:transparent}.dark-mode .btn-outline-warning:not(:disabled):not(.disabled).active,.dark-mode .btn-outline-warning:not(:disabled):not(.disabled):active,.show>.dark-mode .btn-outline-warning.dropdown-toggle{color:#1f2d3d;background-color:#f39c12;border-color:#f39c12}.dark-mode .btn-outline-warning:not(:disabled):not(.disabled).active:focus,.dark-mode .btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.dark-mode .btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(243,156,18,.5)}.dark-mode .btn-outline-danger{color:#e74c3c;border-color:#e74c3c}.dark-mode .btn-outline-danger:hover{color:#fff;background-color:#e74c3c;border-color:#e74c3c}.dark-mode .btn-outline-danger.focus,.dark-mode .btn-outline-danger:focus{box-shadow:0 0 0 0 rgba(231,76,60,.5)}.dark-mode .btn-outline-danger.disabled,.dark-mode .btn-outline-danger:disabled{color:#e74c3c;background-color:transparent}.dark-mode .btn-outline-danger:not(:disabled):not(.disabled).active,.dark-mode .btn-outline-danger:not(:disabled):not(.disabled):active,.show>.dark-mode .btn-outline-danger.dropdown-toggle{color:#fff;background-color:#e74c3c;border-color:#e74c3c}.dark-mode .btn-outline-danger:not(:disabled):not(.disabled).active:focus,.dark-mode .btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.dark-mode .btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(231,76,60,.5)}.dark-mode .btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.dark-mode .btn-outline-light:hover{color:#1f2d3d;background-color:#f8f9fa;border-color:#f8f9fa}.dark-mode .btn-outline-light.focus,.dark-mode .btn-outline-light:focus{box-shadow:0 0 0 0 rgba(248,249,250,.5)}.dark-mode .btn-outline-light.disabled,.dark-mode .btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.dark-mode .btn-outline-light:not(:disabled):not(.disabled).active,.dark-mode .btn-outline-light:not(:disabled):not(.disabled):active,.show>.dark-mode .btn-outline-light.dropdown-toggle{color:#1f2d3d;background-color:#f8f9fa;border-color:#f8f9fa}.dark-mode .btn-outline-light:not(:disabled):not(.disabled).active:focus,.dark-mode .btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.dark-mode .btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(248,249,250,.5)}.dark-mode .btn-outline-dark{color:#060708;border-color:#060708}.dark-mode .btn-outline-dark:hover{color:#fff;background-color:#060708;border-color:#060708}.dark-mode .btn-outline-dark.focus,.dark-mode .btn-outline-dark:focus{box-shadow:0 0 0 0 rgba(6,7,8,.5)}.dark-mode .btn-outline-dark.disabled,.dark-mode .btn-outline-dark:disabled{color:#060708;background-color:transparent}.dark-mode .btn-outline-dark:not(:disabled):not(.disabled).active,.dark-mode .btn-outline-dark:not(:disabled):not(.disabled):active,.show>.dark-mode .btn-outline-dark.dropdown-toggle{color:#fff;background-color:#060708;border-color:#060708}.dark-mode .btn-outline-dark:not(:disabled):not(.disabled).active:focus,.dark-mode .btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.dark-mode .btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(6,7,8,.5)}.callout{border-radius:.25rem;box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);background-color:#fff;border-left:5px solid #e9ecef;margin-bottom:1rem;padding:1rem}.callout a{color:#495057;text-decoration:underline}.callout a:hover{color:#e9ecef}.callout p:last-child{margin-bottom:0}.callout.callout-danger{border-left-color:#bd2130}.callout.callout-warning{border-left-color:#d39e00}.callout.callout-info{border-left-color:#117a8b}.callout.callout-success{border-left-color:#1e7e34}.dark-mode .callout{background-color:#3f474e}.dark-mode .callout.callout-danger{border-left-color:#ed7669}.dark-mode .callout.callout-warning{border-left-color:#f5b043}.dark-mode .callout.callout-info{border-left-color:#5faee3}.dark-mode .callout.callout-success{border-left-color:#00efb2}.alert .icon{margin-right:10px}.alert .close{color:#000;opacity:.2}.alert .close:hover{opacity:.5}.alert a{color:#fff;text-decoration:underline}.alert-primary{color:#fff;background-color:#007bff;border-color:#006fe6}.alert-default-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-default-primary hr{border-top-color:#9fcdff}.alert-default-primary .alert-link{color:#002752}.alert-secondary{color:#fff;background-color:#6c757d;border-color:#60686f}.alert-default-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-default-secondary hr{border-top-color:#c8cbcf}.alert-default-secondary .alert-link{color:#202326}.alert-success{color:#fff;background-color:#28a745;border-color:#23923d}.alert-default-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-default-success hr{border-top-color:#b1dfbb}.alert-default-success .alert-link{color:#0b2e13}.alert-info{color:#fff;background-color:#17a2b8;border-color:#148ea1}.alert-default-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-default-info hr{border-top-color:#abdde5}.alert-default-info .alert-link{color:#062c33}.alert-warning{color:#1f2d3d;background-color:#ffc107;border-color:#edb100}.alert-default-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-default-warning hr{border-top-color:#ffe8a1}.alert-default-warning .alert-link{color:#533f03}.alert-danger{color:#fff;background-color:#dc3545;border-color:#d32535}.alert-default-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-default-danger hr{border-top-color:#f1b0b7}.alert-default-danger .alert-link{color:#491217}.alert-light{color:#1f2d3d;background-color:#f8f9fa;border-color:#e9ecef}.alert-default-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-default-light hr{border-top-color:#ececf6}.alert-default-light .alert-link{color:#686868}.alert-dark{color:#fff;background-color:#343a40;border-color:#292d32}.alert-default-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-default-dark hr{border-top-color:#b9bbbe}.alert-default-dark .alert-link{color:#040505}.dark-mode .alert-primary{color:#fff;background-color:#3f6791;border-color:#375a7f}.dark-mode .alert-default-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.dark-mode .alert-default-primary hr{border-top-color:#9fcdff}.dark-mode .alert-default-primary .alert-link{color:#002752}.dark-mode .alert-secondary{color:#fff;background-color:#6c757d;border-color:#60686f}.dark-mode .alert-default-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.dark-mode .alert-default-secondary hr{border-top-color:#c8cbcf}.dark-mode .alert-default-secondary .alert-link{color:#202326}.dark-mode .alert-success{color:#fff;background-color:#00bc8c;border-color:#00a379}.dark-mode .alert-default-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.dark-mode .alert-default-success hr{border-top-color:#b1dfbb}.dark-mode .alert-default-success .alert-link{color:#0b2e13}.dark-mode .alert-info{color:#fff;background-color:#3498db;border-color:#258cd1}.dark-mode .alert-default-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.dark-mode .alert-default-info hr{border-top-color:#abdde5}.dark-mode .alert-default-info .alert-link{color:#062c33}.dark-mode .alert-warning{color:#1f2d3d;background-color:#f39c12;border-color:#e08e0b}.dark-mode .alert-default-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.dark-mode .alert-default-warning hr{border-top-color:#ffe8a1}.dark-mode .alert-default-warning .alert-link{color:#533f03}.dark-mode .alert-danger{color:#fff;background-color:#e74c3c;border-color:#e43725}.dark-mode .alert-default-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.dark-mode .alert-default-danger hr{border-top-color:#f1b0b7}.dark-mode .alert-default-danger .alert-link{color:#491217}.dark-mode .alert-light{color:#1f2d3d;background-color:#f8f9fa;border-color:#e9ecef}.dark-mode .alert-default-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.dark-mode .alert-default-light hr{border-top-color:#ececf6}.dark-mode .alert-default-light .alert-link{color:#686868}.dark-mode .alert-dark{color:#fff;background-color:#343a40;border-color:#292d32}.dark-mode .alert-default-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.dark-mode .alert-default-dark hr{border-top-color:#b9bbbe}.dark-mode .alert-default-dark .alert-link{color:#040505}.table:not(.table-dark){color:inherit}.table.table-head-fixed thead tr:nth-child(1) th{background-color:#fff;border-bottom:0;box-shadow:inset 0 1px 0 #dee2e6,inset 0 -1px 0 #dee2e6;position:-webkit-sticky;position:sticky;top:0;z-index:10}.table.table-head-fixed.table-dark thead tr:nth-child(1) th{background-color:#212529;box-shadow:inset 0 1px 0 #383f45,inset 0 -1px 0 #383f45}.table.no-border,.table.no-border td,.table.no-border th{border:0}.table.text-center,.table.text-center td,.table.text-center th{text-align:center}.table.table-valign-middle tbody>tr>td,.table.table-valign-middle tbody>tr>th,.table.table-valign-middle thead>tr>td,.table.table-valign-middle thead>tr>th{vertical-align:middle}.card-body.p-0 .table tbody>tr>td:first-of-type,.card-body.p-0 .table tbody>tr>th:first-of-type,.card-body.p-0 .table tfoot>tr>td:first-of-type,.card-body.p-0 .table tfoot>tr>th:first-of-type,.card-body.p-0 .table thead>tr>td:first-of-type,.card-body.p-0 .table thead>tr>th:first-of-type{padding-left:1.5rem}.card-body.p-0 .table tbody>tr>td:last-of-type,.card-body.p-0 .table tbody>tr>th:last-of-type,.card-body.p-0 .table tfoot>tr>td:last-of-type,.card-body.p-0 .table tfoot>tr>th:last-of-type,.card-body.p-0 .table thead>tr>td:last-of-type,.card-body.p-0 .table thead>tr>th:last-of-type{padding-right:1.5rem}.table-hover tbody tr.expandable-body:hover{background-color:inherit!important}[data-widget=expandable-table]{cursor:pointer}[data-widget=expandable-table] i.expandable-table-caret{transition:-webkit-transform .3s linear;transition:transform .3s linear;transition:transform .3s linear,-webkit-transform .3s linear}[data-widget=expandable-table][aria-expanded=true] i.expandable-table-caret[class*=right]{-webkit-transform:rotate(90deg);transform:rotate(90deg)}[data-widget=expandable-table][aria-expanded=true] i.expandable-table-caret[class*=left]{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}[aria-expanded=true]{cursor:pointer}[aria-expanded=true] i.expandable-table-caret{transition:-webkit-transform .3s linear;transition:transform .3s linear;transition:transform .3s linear,-webkit-transform .3s linear}[aria-expanded=true] [data-widget=expandable-table] i.expandable-table-caret[class*=right]{-webkit-transform:rotate(90deg);transform:rotate(90deg)}[aria-expanded=true] [data-widget=expandable-table] i.expandable-table-caret[class*=left]{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.expandable-body>td{padding:0!important;width:100%}.expandable-body>td>div,.expandable-body>td>p{padding:.75rem}.expandable-body .table{width:calc(100% - .75rem);margin:0 0 0 .75rem}.expandable-body .table tr:first-child td,.expandable-body .table tr:first-child th{border-top:none}.dark-mode .table-bordered,.dark-mode .table-bordered td,.dark-mode .table-bordered th{border-color:#6c757d}.dark-mode .table-hover tbody tr:hover{color:#dee2e6;background-color:#3a4047;border-color:#6c757d}.dark-mode .table thead th{border-bottom-color:#6c757d}.dark-mode .table td,.dark-mode .table th{border-top-color:#6c757d}.dark-mode .table.table-head-fixed thead tr:nth-child(1) th{background-color:#3f474e}.carousel-control-prev .carousel-control-custom-icon{margin-left:-20px}.carousel-control-next .carousel-control-custom-icon{margin-right:20px}.carousel-control-custom-icon>.fa,.carousel-control-custom-icon>.fab,.carousel-control-custom-icon>.fad,.carousel-control-custom-icon>.fal,.carousel-control-custom-icon>.far,.carousel-control-custom-icon>.fas,.carousel-control-custom-icon>.ion,.carousel-control-custom-icon>.svg-inline--fa{display:inline-block;font-size:40px;margin-top:-20px;position:absolute;top:50%;z-index:5}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}.close:focus{outline:0}button.close{padding:0;background-color:transparent;border:0}a.close.disabled{pointer-events:none} \ No newline at end of file diff --git a/system/resources/css/fontawesome.min.css b/system/resources/css/fontawesome.min.css new file mode 100644 index 0000000..e949285 --- /dev/null +++ b/system/resources/css/fontawesome.min.css @@ -0,0 +1,9 @@ +/*! + * Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2024 Fonticons, Inc. + */ +.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-classic,.fa-regular,.fa-sharp-solid,.fa-solid,.fab,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-classic,.fa-regular,.fa-solid,.far,.fas{font-family:"Font Awesome 6 Free"}.fa-brands,.fab{font-family:"Font Awesome 6 Brands"}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{animation-name:fa-beat;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{animation-name:fa-bounce;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{animation-name:fa-fade;animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{animation-name:fa-beat-fade;animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{animation-name:fa-flip;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{animation-name:fa-shake;animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{animation-name:fa-spin;animation-duration:var(--fa-animation-duration,2s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{animation-name:fa-spin;animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{animation-delay:-1ms;animation-duration:1ms;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@keyframes fa-beat{0%,90%{transform:scale(1)}45%{transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-bounce{0%{transform:scale(1) translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);transform:scale(1)}50%{opacity:1;transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-flip{50%{transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-shake{0%{transform:rotate(-15deg)}4%{transform:rotate(15deg)}8%,24%{transform:rotate(-18deg)}12%,28%{transform:rotate(18deg)}16%{transform:rotate(-22deg)}20%{transform:rotate(22deg)}32%{transform:rotate(-12deg)}36%{transform:rotate(12deg)}40%,to{transform:rotate(0deg)}}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{transform:rotate(90deg)}.fa-rotate-180{transform:rotate(180deg)}.fa-rotate-270{transform:rotate(270deg)}.fa-flip-horizontal{transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}.fa-rotate-by{transform:rotate(var(--fa-rotate-angle,0))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)} + +.fa-0:before{content:"\30"}.fa-1:before{content:"\31"}.fa-2:before{content:"\32"}.fa-3:before{content:"\33"}.fa-4:before{content:"\34"}.fa-5:before{content:"\35"}.fa-6:before{content:"\36"}.fa-7:before{content:"\37"}.fa-8:before{content:"\38"}.fa-9:before{content:"\39"}.fa-fill-drip:before{content:"\f576"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-at:before{content:"\40"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-text-height:before{content:"\f034"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-stethoscope:before{content:"\f0f1"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-info:before{content:"\f129"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-explosion:before{content:"\e4e9"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-wave-square:before{content:"\f83e"}.fa-ring:before{content:"\f70b"}.fa-building-un:before{content:"\e4d9"}.fa-dice-three:before{content:"\f527"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-door-open:before{content:"\f52b"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-atom:before{content:"\f5d2"}.fa-soap:before{content:"\e06e"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-pump-medical:before{content:"\e06a"}.fa-fingerprint:before{content:"\f577"}.fa-hand-point-right:before{content:"\f0a4"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-flag-checkered:before{content:"\f11e"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-crop:before{content:"\f125"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-users-rectangle:before{content:"\e594"}.fa-people-roof:before{content:"\e537"}.fa-people-line:before{content:"\e534"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-diagram-predecessor:before{content:"\e477"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-laptop:before{content:"\f109"}.fa-file-csv:before{content:"\f6dd"}.fa-menorah:before{content:"\f676"}.fa-truck-plane:before{content:"\e58f"}.fa-record-vinyl:before{content:"\f8d9"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-bong:before{content:"\f55c"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-jar-wheat:before{content:"\e517"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-pager:before{content:"\f815"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-strikethrough:before{content:"\f0cc"}.fa-k:before{content:"\4b"}.fa-landmark-flag:before{content:"\e51c"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-backward:before{content:"\f04a"}.fa-caret-right:before{content:"\f0da"}.fa-comments:before{content:"\f086"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-code-pull-request:before{content:"\e13c"}.fa-clipboard-list:before{content:"\f46d"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-user-check:before{content:"\f4fc"}.fa-vial-virus:before{content:"\e597"}.fa-sheet-plastic:before{content:"\e571"}.fa-blog:before{content:"\f781"}.fa-user-ninja:before{content:"\f504"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-toggle-off:before{content:"\f204"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-person-drowning:before{content:"\e545"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-spray-can:before{content:"\f5bd"}.fa-truck-monster:before{content:"\f63b"}.fa-w:before{content:"\57"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-rainbow:before{content:"\f75b"}.fa-circle-notch:before{content:"\f1ce"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-paw:before{content:"\f1b0"}.fa-cloud:before{content:"\f0c2"}.fa-trowel-bricks:before{content:"\e58a"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-hospital-user:before{content:"\f80d"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-binoculars:before{content:"\f1e5"}.fa-microphone-slash:before{content:"\f131"}.fa-box-tissue:before{content:"\e05b"}.fa-motorcycle:before{content:"\f21c"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-toilets-portable:before{content:"\e584"}.fa-hockey-puck:before{content:"\f453"}.fa-table:before{content:"\f0ce"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-users-slash:before{content:"\e073"}.fa-clover:before{content:"\e139"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-star-and-crescent:before{content:"\f699"}.fa-house-fire:before{content:"\e50c"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-helicopter:before{content:"\f533"}.fa-compass:before{content:"\f14e"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-file-circle-question:before{content:"\e4ef"}.fa-laptop-code:before{content:"\f5fc"}.fa-swatchbook:before{content:"\f5c3"}.fa-prescription-bottle:before{content:"\f485"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-people-group:before{content:"\e533"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-film:before{content:"\f008"}.fa-ruler-horizontal:before{content:"\f547"}.fa-people-robbery:before{content:"\e536"}.fa-lightbulb:before{content:"\f0eb"}.fa-caret-left:before{content:"\f0d9"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-sitemap:before{content:"\f0e8"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-memory:before{content:"\f538"}.fa-road-spikes:before{content:"\e568"}.fa-fire-burner:before{content:"\e4f1"}.fa-flag:before{content:"\f024"}.fa-hanukiah:before{content:"\f6e6"}.fa-feather:before{content:"\f52d"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-comment-slash:before{content:"\f4b3"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-compress:before{content:"\f066"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:"\e2cd"}.fa-ankh:before{content:"\f644"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-asterisk:before{content:"\2a"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-peseta-sign:before{content:"\e221"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-ghost:before{content:"\f6e2"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-cart-plus:before{content:"\f217"}.fa-gamepad:before{content:"\f11b"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-egg:before{content:"\f7fb"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-campground:before{content:"\f6bb"}.fa-folder-plus:before{content:"\f65e"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-lock:before{content:"\f023"}.fa-gas-pump:before{content:"\f52f"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-house-flood-water:before{content:"\e50e"}.fa-tree:before{content:"\f1bb"}.fa-bridge-lock:before{content:"\e4cc"}.fa-sack-dollar:before{content:"\f81d"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-car-side:before{content:"\f5e4"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-microscope:before{content:"\f610"}.fa-sink:before{content:"\e06d"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-mitten:before{content:"\f7b5"}.fa-person-rays:before{content:"\e54d"}.fa-users:before{content:"\f0c0"}.fa-eye-slash:before{content:"\f070"}.fa-flask-vial:before{content:"\e4f3"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-om:before{content:"\f679"}.fa-worm:before{content:"\e599"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-plug:before{content:"\f1e6"}.fa-chevron-up:before{content:"\f077"}.fa-hand-spock:before{content:"\f259"}.fa-stopwatch:before{content:"\f2f2"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-chess-bishop:before{content:"\f43a"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-road-circle-check:before{content:"\e564"}.fa-dice-five:before{content:"\f523"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-land-mine-on:before{content:"\e51b"}.fa-i-cursor:before{content:"\f246"}.fa-stamp:before{content:"\f5bf"}.fa-stairs:before{content:"\e289"}.fa-i:before{content:"\49"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-pills:before{content:"\f484"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-tooth:before{content:"\f5c9"}.fa-v:before{content:"\56"}.fa-bangladeshi-taka-sign:before{content:"\e2e6"}.fa-bicycle:before{content:"\f206"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:"\e579"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-snowman:before{content:"\f7d0"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-road-barrier:before{content:"\e562"}.fa-school:before{content:"\f549"}.fa-igloo:before{content:"\f7ae"}.fa-joint:before{content:"\f595"}.fa-angle-right:before{content:"\f105"}.fa-horse:before{content:"\f6f0"}.fa-q:before{content:"\51"}.fa-g:before{content:"\47"}.fa-notes-medical:before{content:"\f481"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-dong-sign:before{content:"\e169"}.fa-capsules:before{content:"\f46b"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-hand-point-up:before{content:"\f0a6"}.fa-money-bill:before{content:"\f0d6"}.fa-bookmark:before{content:"\f02e"}.fa-align-justify:before{content:"\f039"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-helmet-un:before{content:"\e503"}.fa-bullseye:before{content:"\f140"}.fa-bacon:before{content:"\f7e5"}.fa-hand-point-down:before{content:"\f0a7"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-folder-blank:before,.fa-folder:before{content:"\f07b"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-radiation:before{content:"\f7b9"}.fa-chart-simple:before{content:"\e473"}.fa-mars-stroke:before{content:"\f229"}.fa-vial:before{content:"\f492"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-e:before{content:"\45"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-user:before{content:"\f007"}.fa-school-circle-check:before{content:"\e56b"}.fa-dumpster:before{content:"\f793"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-building-user:before{content:"\e4da"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-highlighter:before{content:"\f591"}.fa-key:before{content:"\f084"}.fa-bullhorn:before{content:"\f0a1"}.fa-globe:before{content:"\f0ac"}.fa-synagogue:before{content:"\f69b"}.fa-person-half-dress:before{content:"\e548"}.fa-road-bridge:before{content:"\e563"}.fa-location-arrow:before{content:"\f124"}.fa-c:before{content:"\43"}.fa-tablet-button:before{content:"\f10a"}.fa-building-lock:before{content:"\e4d6"}.fa-pizza-slice:before{content:"\f818"}.fa-money-bill-wave:before{content:"\f53a"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-house-flag:before{content:"\e50d"}.fa-person-circle-minus:before{content:"\e540"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-camera-rotate:before{content:"\e0d8"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-star:before{content:"\f005"}.fa-repeat:before{content:"\f363"}.fa-cross:before{content:"\f654"}.fa-box:before{content:"\f466"}.fa-venus-mars:before{content:"\f228"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-charging-station:before{content:"\f5e7"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-mobile-retro:before{content:"\e527"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-spider:before{content:"\f717"}.fa-hands-bound:before{content:"\e4f9"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-x-ray:before{content:"\f497"}.fa-spell-check:before{content:"\f891"}.fa-slash:before{content:"\f715"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-server:before{content:"\f233"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-shop-lock:before{content:"\e4a5"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-blender-phone:before{content:"\f6b6"}.fa-building-wheat:before{content:"\e4db"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-venus:before{content:"\f221"}.fa-passport:before{content:"\f5ab"}.fa-thumb-tack-slash:before,.fa-thumbtack-slash:before{content:"\e68f"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-temperature-high:before{content:"\f769"}.fa-microchip:before{content:"\f2db"}.fa-crown:before{content:"\f521"}.fa-weight-hanging:before{content:"\f5cd"}.fa-xmarks-lines:before{content:"\e59a"}.fa-file-prescription:before{content:"\f572"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-chess-knight:before{content:"\f441"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-wheelchair:before{content:"\f193"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-toggle-on:before{content:"\f205"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-l:before{content:"\4c"}.fa-fire:before{content:"\f06d"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-folder-open:before{content:"\f07c"}.fa-heart-circle-plus:before{content:"\e500"}.fa-code-fork:before{content:"\e13b"}.fa-city:before{content:"\f64f"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-pepper-hot:before{content:"\f816"}.fa-unlock:before{content:"\f09c"}.fa-colon-sign:before{content:"\e140"}.fa-headset:before{content:"\f590"}.fa-store-slash:before{content:"\e071"}.fa-road-circle-xmark:before{content:"\e566"}.fa-user-minus:before{content:"\f503"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-clipboard:before{content:"\f328"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-underline:before{content:"\f0cd"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-signature:before{content:"\f5b7"}.fa-stroopwafel:before{content:"\f551"}.fa-bold:before{content:"\f032"}.fa-anchor-lock:before{content:"\e4ad"}.fa-building-ngo:before{content:"\e4d7"}.fa-manat-sign:before{content:"\e1d5"}.fa-not-equal:before{content:"\f53e"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-jedi:before{content:"\f669"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-mug-hot:before{content:"\f7b6"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-gift:before{content:"\f06b"}.fa-dice-two:before{content:"\f528"}.fa-chess-queen:before{content:"\f445"}.fa-glasses:before{content:"\f530"}.fa-chess-board:before{content:"\f43c"}.fa-building-circle-check:before{content:"\e4d2"}.fa-person-chalkboard:before{content:"\e53d"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-less-than-equal:before{content:"\f537"}.fa-train:before{content:"\f238"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-crow:before{content:"\f520"}.fa-sailboat:before{content:"\e445"}.fa-window-restore:before{content:"\f2d2"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-torii-gate:before{content:"\f6a1"}.fa-frog:before{content:"\f52e"}.fa-bucket:before{content:"\e4cf"}.fa-image:before{content:"\f03e"}.fa-microphone:before{content:"\f130"}.fa-cow:before{content:"\f6c8"}.fa-caret-up:before{content:"\f0d8"}.fa-screwdriver:before{content:"\f54a"}.fa-folder-closed:before{content:"\e185"}.fa-house-tsunami:before{content:"\e515"}.fa-square-nfi:before{content:"\e576"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-lemon:before{content:"\f094"}.fa-head-side-mask:before{content:"\e063"}.fa-handshake:before{content:"\f2b5"}.fa-gem:before{content:"\f3a5"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-smoking:before{content:"\f48d"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-monument:before{content:"\f5a6"}.fa-snowplow:before{content:"\f7d2"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-cannabis:before{content:"\f55f"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-tablets:before{content:"\f490"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-chair:before{content:"\f6c0"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-plate-wheat:before{content:"\e55a"}.fa-icicles:before{content:"\f7ad"}.fa-person-shelter:before{content:"\e54f"}.fa-neuter:before{content:"\f22c"}.fa-id-badge:before{content:"\f2c1"}.fa-marker:before{content:"\f5a1"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-helicopter-symbol:before{content:"\e502"}.fa-universal-access:before{content:"\f29a"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-lari-sign:before{content:"\e1c8"}.fa-volcano:before{content:"\f770"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-viruses:before{content:"\e076"}.fa-square-person-confined:before{content:"\e577"}.fa-user-tie:before{content:"\f508"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-certificate:before{content:"\f0a3"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-suitcase:before{content:"\f0f2"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-camera-retro:before{content:"\f083"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-box-open:before{content:"\f49e"}.fa-scroll:before{content:"\f70e"}.fa-spa:before{content:"\f5bb"}.fa-location-pin-lock:before{content:"\e51f"}.fa-pause:before{content:"\f04c"}.fa-hill-avalanche:before{content:"\e507"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-bomb:before{content:"\f1e2"}.fa-registered:before{content:"\f25d"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-subscript:before{content:"\f12c"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-burst:before{content:"\e4dc"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-money-bills:before{content:"\e1f3"}.fa-smog:before{content:"\f75f"}.fa-crutch:before{content:"\f7f7"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-palette:before{content:"\f53f"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-vest:before{content:"\e085"}.fa-ferry:before{content:"\e4ea"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-boxes-packing:before{content:"\e4c7"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-bowl-food:before{content:"\e4c6"}.fa-candy-cane:before{content:"\f786"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:"\f76c"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-file-word:before{content:"\f1c2"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-house-lock:before{content:"\e510"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-children:before{content:"\e4e1"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-envelope-open:before{content:"\f2b6"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-mattress-pillow:before{content:"\e525"}.fa-guarani-sign:before{content:"\e19a"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-fire-extinguisher:before{content:"\f134"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-greater-than-equal:before{content:"\f532"}.fa-shield-alt:before,.fa-shield-halved:before{content:"\f3ed"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-virus:before{content:"\e074"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-layer-group:before{content:"\f5fd"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-archway:before{content:"\f557"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-square:before{content:"\f0c8"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-couch:before{content:"\f4b8"}.fa-cedi-sign:before{content:"\e0df"}.fa-italic:before{content:"\f033"}.fa-table-cells-column-lock:before{content:"\e678"}.fa-church:before{content:"\f51d"}.fa-comments-dollar:before{content:"\f653"}.fa-democrat:before{content:"\f747"}.fa-z:before{content:"\5a"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-road-lock:before{content:"\e567"}.fa-a:before{content:"\41"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:"\e03f"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-p:before{content:"\50"}.fa-snowflake:before{content:"\f2dc"}.fa-newspaper:before{content:"\f1ea"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-locust:before{content:"\e520"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-person-dress-burst:before{content:"\e544"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-vector-square:before{content:"\f5cb"}.fa-bread-slice:before{content:"\f7ec"}.fa-language:before{content:"\f1ab"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-filter:before{content:"\f0b0"}.fa-question:before{content:"\3f"}.fa-file-signature:before{content:"\f573"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-house-chimney-user:before{content:"\e065"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-puzzle-piece:before{content:"\f12e"}.fa-money-check:before{content:"\f53c"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-code:before{content:"\f121"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-virus-covid:before{content:"\e4a8"}.fa-austral-sign:before{content:"\e0a9"}.fa-f:before{content:"\46"}.fa-leaf:before{content:"\f06c"}.fa-road:before{content:"\f018"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-person-circle-plus:before{content:"\e541"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-sack-xmark:before{content:"\e56a"}.fa-file-excel:before{content:"\f1c3"}.fa-file-contract:before{content:"\f56c"}.fa-fish-fins:before{content:"\e4f2"}.fa-building-flag:before{content:"\e4d5"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-object-ungroup:before{content:"\f248"}.fa-poop:before{content:"\f619"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-kaaba:before{content:"\f66b"}.fa-toilet-paper:before{content:"\f71e"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-eject:before{content:"\f052"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-plane-circle-check:before{content:"\e555"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-object-group:before{content:"\f247"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-mask-ventilator:before{content:"\e524"}.fa-arrow-right:before{content:"\f061"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-cash-register:before{content:"\f788"}.fa-person-circle-question:before{content:"\e542"}.fa-h:before{content:"\48"}.fa-tarp:before{content:"\e57b"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-heart:before{content:"\f004"}.fa-mars-and-venus:before{content:"\f224"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-dumpster-fire:before{content:"\f794"}.fa-house-crack:before{content:"\e3b1"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-bottle-water:before{content:"\e4c5"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-kitchen-set:before{content:"\e51a"}.fa-r:before{content:"\52"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-cube:before{content:"\f1b2"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-shield-dog:before{content:"\e573"}.fa-solar-panel:before{content:"\f5ba"}.fa-lock-open:before{content:"\f3c1"}.fa-elevator:before{content:"\e16d"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-circle:before{content:"\f111"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-recycle:before{content:"\f1b8"}.fa-user-astronaut:before{content:"\f4fb"}.fa-plane-slash:before{content:"\e069"}.fa-trademark:before{content:"\f25c"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-satellite-dish:before{content:"\f7c0"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-users-rays:before{content:"\e593"}.fa-wallet:before{content:"\f555"}.fa-clipboard-check:before{content:"\f46c"}.fa-file-audio:before{content:"\f1c7"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-wrench:before{content:"\f0ad"}.fa-bugs:before{content:"\e4d0"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-file-image:before{content:"\f1c5"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-plane-departure:before{content:"\f5b0"}.fa-handshake-slash:before{content:"\e060"}.fa-book-bookmark:before{content:"\e0bb"}.fa-code-branch:before{content:"\f126"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-bridge:before{content:"\e4c8"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-truck-front:before{content:"\e2b7"}.fa-cat:before{content:"\f6be"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-truck-field:before{content:"\e58d"}.fa-route:before{content:"\f4d7"}.fa-clipboard-question:before{content:"\e4e3"}.fa-panorama:before{content:"\e209"}.fa-comment-medical:before{content:"\f7f5"}.fa-teeth-open:before{content:"\f62f"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-tags:before{content:"\f02c"}.fa-wine-glass:before{content:"\f4e3"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-house-signal:before{content:"\e012"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-faucet-drip:before{content:"\e006"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-terminal:before{content:"\f120"}.fa-mobile-button:before{content:"\f10b"}.fa-house-medical-flag:before{content:"\e514"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-tape:before{content:"\f4db"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-eye:before{content:"\f06e"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-audio-description:before{content:"\f29e"}.fa-person-military-to-person:before{content:"\e54c"}.fa-file-shield:before{content:"\e4f0"}.fa-user-slash:before{content:"\f506"}.fa-pen:before{content:"\f304"}.fa-tower-observation:before{content:"\e586"}.fa-file-code:before{content:"\f1c9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-bus:before{content:"\f207"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-window-maximize:before{content:"\f2d0"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-prescription:before{content:"\f5b1"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-vihara:before{content:"\f6a7"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-plant-wilt:before{content:"\e5aa"}.fa-diamond:before{content:"\f219"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-bacterium:before{content:"\e05a"}.fa-hand-pointer:before{content:"\f25a"}.fa-drum-steelpan:before{content:"\f56a"}.fa-hand-scissors:before{content:"\f257"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-biohazard:before{content:"\f780"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-mars-double:before{content:"\f227"}.fa-child-dress:before{content:"\e59c"}.fa-users-between-lines:before{content:"\e591"}.fa-lungs-virus:before{content:"\e067"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-phone:before{content:"\f095"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-child-reaching:before{content:"\e59d"}.fa-head-side-virus:before{content:"\e064"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-door-closed:before{content:"\f52a"}.fa-shield-virus:before{content:"\e06c"}.fa-dice-six:before{content:"\f526"}.fa-mosquito-net:before{content:"\e52c"}.fa-bridge-water:before{content:"\e4ce"}.fa-person-booth:before{content:"\f756"}.fa-text-width:before{content:"\f035"}.fa-hat-wizard:before{content:"\f6e8"}.fa-pen-fancy:before{content:"\f5ac"}.fa-digging:before,.fa-person-digging:before{content:"\f85e"}.fa-trash:before{content:"\f1f8"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-book-medical:before{content:"\f7e6"}.fa-poo:before{content:"\f2fe"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-cubes:before{content:"\f1b3"}.fa-divide:before{content:"\f529"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-headphones:before{content:"\f025"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-clapping:before{content:"\e1a8"}.fa-republican:before{content:"\f75e"}.fa-arrow-left:before{content:"\f060"}.fa-person-circle-xmark:before{content:"\e543"}.fa-ruler:before{content:"\f545"}.fa-align-left:before{content:"\f036"}.fa-dice-d6:before{content:"\f6d1"}.fa-restroom:before{content:"\f7bd"}.fa-j:before{content:"\4a"}.fa-users-viewfinder:before{content:"\e595"}.fa-file-video:before{content:"\f1c8"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-file-pdf:before{content:"\f1c1"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-o:before{content:"\4f"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-user-secret:before{content:"\f21b"}.fa-otter:before{content:"\f700"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-comment-dollar:before{content:"\f651"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-book-tanakh:before,.fa-tanakh:before{content:"\f827"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-clipboard-user:before{content:"\f7f3"}.fa-child:before{content:"\f1ae"}.fa-lira-sign:before{content:"\f195"}.fa-satellite:before{content:"\f7bf"}.fa-plane-lock:before{content:"\e558"}.fa-tag:before{content:"\f02b"}.fa-comment:before{content:"\f075"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-envelope:before{content:"\f0e0"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-paperclip:before{content:"\f0c6"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-ribbon:before{content:"\f4d6"}.fa-lungs:before{content:"\f604"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-border-none:before{content:"\f850"}.fa-circle-nodes:before{content:"\e4e2"}.fa-parachute-box:before{content:"\f4cd"}.fa-indent:before{content:"\f03c"}.fa-truck-field-un:before{content:"\e58e"}.fa-hourglass-empty:before,.fa-hourglass:before{content:"\f254"}.fa-mountain:before{content:"\f6fc"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-cloud-meatball:before{content:"\f73b"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-square-virus:before{content:"\e578"}.fa-meteor:before{content:"\f753"}.fa-car-on:before{content:"\e4dd"}.fa-sleigh:before{content:"\f7cc"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-water:before{content:"\f773"}.fa-calendar-check:before{content:"\f274"}.fa-braille:before{content:"\f2a1"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-landmark:before{content:"\f66f"}.fa-truck:before{content:"\f0d1"}.fa-crosshairs:before{content:"\f05b"}.fa-person-cane:before{content:"\e53c"}.fa-tent:before{content:"\e57d"}.fa-vest-patches:before{content:"\e086"}.fa-check-double:before{content:"\f560"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-cookie:before{content:"\f563"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-dumbbell:before{content:"\f44b"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-tarp-droplet:before{content:"\e57c"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-calendar-plus:before{content:"\f271"}.fa-plane-arrival:before{content:"\f5af"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-chart-gantt:before{content:"\e0e4"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-dna:before{content:"\f471"}.fa-virus-slash:before{content:"\e075"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-chess:before{content:"\f439"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-plug-circle-check:before{content:"\e55c"}.fa-street-view:before{content:"\f21d"}.fa-franc-sign:before{content:"\e18f"}.fa-volume-off:before{content:"\f026"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-mosque:before{content:"\f678"}.fa-mosquito:before{content:"\e52b"}.fa-star-of-david:before{content:"\f69a"}.fa-person-military-rifle:before{content:"\e54b"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-vials:before{content:"\f493"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-place-of-worship:before{content:"\f67f"}.fa-grip-vertical:before{content:"\f58e"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-u:before{content:"\55"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-pallet:before{content:"\f482"}.fa-faucet:before{content:"\e005"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-s:before{content:"\53"}.fa-timeline:before{content:"\e29c"}.fa-keyboard:before{content:"\f11c"}.fa-caret-down:before{content:"\f0d7"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:"\f3cf"}.fa-plane-up:before{content:"\e22d"}.fa-piggy-bank:before{content:"\f4d3"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-mountain-city:before{content:"\e52e"}.fa-coins:before{content:"\f51e"}.fa-khanda:before{content:"\f66d"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-folder-tree:before{content:"\f802"}.fa-network-wired:before{content:"\f6ff"}.fa-map-pin:before{content:"\f276"}.fa-hamsa:before{content:"\f665"}.fa-cent-sign:before{content:"\e3f5"}.fa-flask:before{content:"\f0c3"}.fa-person-pregnant:before{content:"\e31e"}.fa-wand-sparkles:before{content:"\f72b"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-ticket:before{content:"\f145"}.fa-power-off:before{content:"\f011"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-flag-usa:before{content:"\f74d"}.fa-laptop-file:before{content:"\e51d"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-diagram-next:before{content:"\e476"}.fa-person-rifle:before{content:"\e54e"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-closed-captioning:before{content:"\f20a"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-venus-double:before{content:"\f226"}.fa-images:before{content:"\f302"}.fa-calculator:before{content:"\f1ec"}.fa-people-pulling:before{content:"\e535"}.fa-n:before{content:"\4e"}.fa-cable-car:before,.fa-tram:before{content:"\f7da"}.fa-cloud-rain:before{content:"\f73d"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-ship:before{content:"\f21a"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-download:before{content:"\f019"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-file-circle-check:before{content:"\e5a0"}.fa-forward:before{content:"\f04e"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-align-center:before{content:"\f037"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-calendar-week:before{content:"\f784"}.fa-laptop-medical:before{content:"\f812"}.fa-b:before{content:"\42"}.fa-file-medical:before{content:"\f477"}.fa-dice-one:before{content:"\f525"}.fa-kiwi-bird:before{content:"\f535"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-mill-sign:before{content:"\e1ed"}.fa-bowl-rice:before{content:"\e2eb"}.fa-skull:before{content:"\f54c"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-truck-pickup:before{content:"\f63c"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-stop:before{content:"\f04d"}.fa-code-merge:before{content:"\f387"}.fa-upload:before{content:"\f093"}.fa-hurricane:before{content:"\f751"}.fa-mound:before{content:"\e52d"}.fa-toilet-portable:before{content:"\e583"}.fa-compact-disc:before{content:"\f51f"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-caravan:before{content:"\f8ff"}.fa-shield-cat:before{content:"\e572"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-glass-water:before{content:"\e4f4"}.fa-oil-well:before{content:"\e532"}.fa-vault:before{content:"\e2c5"}.fa-mars:before{content:"\f222"}.fa-toilet:before{content:"\f7d8"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-sun:before{content:"\f185"}.fa-guitar:before{content:"\f7a6"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-horse-head:before{content:"\f7ab"}.fa-bore-hole:before{content:"\e4c3"}.fa-industry:before{content:"\f275"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-florin-sign:before{content:"\e184"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-less-than:before{content:"\3c"}.fa-angle-down:before{content:"\f107"}.fa-car-tunnel:before{content:"\e4de"}.fa-head-side-cough:before{content:"\e061"}.fa-grip-lines:before{content:"\f7a4"}.fa-thumbs-down:before{content:"\f165"}.fa-user-lock:before{content:"\f502"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-chess-pawn:before{content:"\f443"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-person-through-window:before{content:"\e5a9"}.fa-toolbox:before{content:"\f552"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-bug:before{content:"\f188"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-mountain-sun:before{content:"\e52f"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-dice-d20:before{content:"\f6cf"}.fa-truck-droplet:before{content:"\e58c"}.fa-file-circle-xmark:before{content:"\e5a1"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:"\e040"}.fa-medal:before{content:"\f5a2"}.fa-bed:before{content:"\f236"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-podcast:before{content:"\f2ce"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-bell:before{content:"\f0f3"}.fa-superscript:before{content:"\f12b"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-star-of-life:before{content:"\f621"}.fa-phone-slash:before{content:"\f3dd"}.fa-paint-roller:before{content:"\f5aa"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-file:before{content:"\f15b"}.fa-greater-than:before{content:"\3e"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-arrow-down:before{content:"\f063"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-eraser:before{content:"\f12d"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-person-burst:before{content:"\e53b"}.fa-dove:before{content:"\f4ba"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-socks:before{content:"\f696"}.fa-inbox:before{content:"\f01c"}.fa-section:before{content:"\e447"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-envelope-open-text:before{content:"\f658"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-wine-bottle:before{content:"\f72f"}.fa-chess-rook:before{content:"\f447"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-dharmachakra:before{content:"\f655"}.fa-hotdog:before{content:"\f80f"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-drum:before{content:"\f569"}.fa-ice-cream:before{content:"\f810"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-fax:before{content:"\f1ac"}.fa-paragraph:before{content:"\f1dd"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-star-half:before{content:"\f089"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-tree-city:before{content:"\e587"}.fa-play:before{content:"\f04b"}.fa-font:before{content:"\f031"}.fa-table-cells-row-lock:before{content:"\e67a"}.fa-rupiah-sign:before{content:"\e23d"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-naira-sign:before{content:"\e1f6"}.fa-cart-arrow-down:before{content:"\f218"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-file-edit:before,.fa-file-pen:before{content:"\f31c"}.fa-receipt:before{content:"\f543"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-chevron-down:before{content:"\f078"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-skull-crossbones:before{content:"\f714"}.fa-code-compare:before{content:"\e13a"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-school-lock:before{content:"\e56f"}.fa-tower-cell:before{content:"\e585"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-ranking-star:before{content:"\e561"}.fa-chess-king:before{content:"\f43f"}.fa-person-harassing:before{content:"\e549"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:"\f752"}.fa-arrow-up:before{content:"\f062"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-shrimp:before{content:"\e448"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-jug-detergent:before{content:"\e519"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-user-shield:before{content:"\f505"}.fa-wind:before{content:"\f72e"}.fa-car-burst:before,.fa-car-crash:before{content:"\f5e1"}.fa-y:before{content:"\59"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-fish:before{content:"\f578"}.fa-user-graduate:before{content:"\f501"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-clapperboard:before{content:"\e131"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-jet-fighter-up:before{content:"\e518"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-copy:before{content:"\f0c5"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-hand-sparkles:before{content:"\e05d"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-child-combatant:before,.fa-child-rifle:before{content:"\e4e0"}.fa-gun:before{content:"\e19b"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-expand:before{content:"\f065"}.fa-computer:before{content:"\e4e5"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-peso-sign:before{content:"\e222"}.fa-building-shield:before{content:"\e4d8"}.fa-baby:before{content:"\f77c"}.fa-users-line:before{content:"\e592"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-tractor:before{content:"\f722"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-lines-leaning:before{content:"\e51e"}.fa-ruler-combined:before{content:"\f546"}.fa-copyright:before{content:"\f1f9"}.fa-equals:before{content:"\3d"}.fa-blender:before{content:"\f517"}.fa-teeth:before{content:"\f62e"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-map:before{content:"\f279"}.fa-rocket:before{content:"\f135"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-folder-minus:before{content:"\f65d"}.fa-store:before{content:"\f54e"}.fa-arrow-trend-up:before{content:"\e098"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-bezier-curve:before{content:"\f55b"}.fa-bell-slash:before{content:"\f1f6"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-school-flag:before{content:"\e56e"}.fa-fill:before{content:"\f575"}.fa-angle-up:before{content:"\f106"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-holly-berry:before{content:"\f7aa"}.fa-chevron-left:before{content:"\f053"}.fa-bacteria:before{content:"\e059"}.fa-hand-lizard:before{content:"\f258"}.fa-notdef:before{content:"\e1fe"}.fa-disease:before{content:"\f7fa"}.fa-briefcase-medical:before{content:"\f469"}.fa-genderless:before{content:"\f22d"}.fa-chevron-right:before{content:"\f054"}.fa-retweet:before{content:"\f079"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-pump-soap:before{content:"\e06b"}.fa-video-slash:before{content:"\f4e2"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-radio:before{content:"\f8d7"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-traffic-light:before{content:"\f637"}.fa-thermometer:before{content:"\f491"}.fa-vr-cardboard:before{content:"\f729"}.fa-hand-middle-finger:before{content:"\f806"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-truck-moving:before{content:"\f4df"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-display:before{content:"\e163"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-trophy:before{content:"\f091"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-hammer:before{content:"\f6e3"}.fa-hand-peace:before{content:"\f25b"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-spinner:before{content:"\f110"}.fa-robot:before{content:"\f544"}.fa-peace:before{content:"\f67c"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-warehouse:before{content:"\f494"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-splotch:before{content:"\f5bc"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-dice-four:before{content:"\f524"}.fa-sim-card:before{content:"\f7c4"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-mercury:before{content:"\f223"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-person-falling-burst:before{content:"\e547"}.fa-award:before{content:"\f559"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-building:before{content:"\f1ad"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-qrcode:before{content:"\f029"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-shield-blank:before,.fa-shield:before{content:"\f132"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-house-medical:before{content:"\e3b2"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-house-chimney-window:before{content:"\e00d"}.fa-pen-nib:before{content:"\f5ad"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-tents:before{content:"\e582"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-dog:before{content:"\f6d3"}.fa-carrot:before{content:"\f787"}.fa-moon:before{content:"\f186"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-cheese:before{content:"\f7ef"}.fa-yin-yang:before{content:"\f6ad"}.fa-music:before{content:"\f001"}.fa-code-commit:before{content:"\f386"}.fa-temperature-low:before{content:"\f76b"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-broom:before{content:"\f51a"}.fa-shield-heart:before{content:"\e574"}.fa-gopuram:before{content:"\f664"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-hashtag:before{content:"\23"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-oil-can:before{content:"\f613"}.fa-t:before{content:"\54"}.fa-hippo:before{content:"\f6ed"}.fa-chart-column:before{content:"\e0e3"}.fa-infinity:before{content:"\f534"}.fa-vial-circle-check:before{content:"\e596"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-voicemail:before{content:"\f897"}.fa-fan:before{content:"\f863"}.fa-person-walking-luggage:before{content:"\e554"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-calendar:before{content:"\f133"}.fa-trailer:before{content:"\e041"}.fa-bahai:before,.fa-haykal:before{content:"\f666"}.fa-sd-card:before{content:"\f7c2"}.fa-dragon:before{content:"\f6d5"}.fa-shoe-prints:before{content:"\f54b"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-hand-holding:before{content:"\f4bd"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-clone:before{content:"\f24d"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-tornado:before{content:"\f76f"}.fa-file-circle-plus:before{content:"\e494"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-anchor:before{content:"\f13d"}.fa-border-all:before{content:"\f84c"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-cookie-bite:before{content:"\f564"}.fa-arrow-trend-down:before{content:"\e097"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-draw-polygon:before{content:"\f5ee"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-shower:before{content:"\f2cc"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-m:before{content:"\4d"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-book:before{content:"\f02d"}.fa-user-plus:before{content:"\f234"}.fa-check:before{content:"\f00c"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-house-circle-check:before{content:"\e509"}.fa-angle-left:before{content:"\f104"}.fa-diagram-successor:before{content:"\e47a"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-cloud-moon:before{content:"\f6c3"}.fa-briefcase:before{content:"\f0b1"}.fa-person-falling:before{content:"\e546"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-user-tag:before{content:"\f507"}.fa-rug:before{content:"\e569"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-baht-sign:before{content:"\e0ac"}.fa-book-open:before{content:"\f518"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-handcuffs:before{content:"\e4f8"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-database:before{content:"\f1c0"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-mask-face:before{content:"\e1d7"}.fa-hill-rockslide:before{content:"\e508"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-paper-plane:before{content:"\f1d8"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-dungeon:before{content:"\f6d9"}.fa-align-right:before{content:"\f038"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-life-ring:before{content:"\f1cd"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-calendar-day:before{content:"\f783"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:"\e2ce"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-dice:before{content:"\f522"}.fa-bowling-ball:before{content:"\f436"}.fa-brain:before{content:"\f5dc"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-calendar-minus:before{content:"\f272"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-gifts:before{content:"\f79c"}.fa-hotel:before{content:"\f594"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-thumbs-up:before{content:"\f164"}.fa-user-clock:before{content:"\f4fd"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-file-invoice:before{content:"\f570"}.fa-window-minimize:before{content:"\f2d1"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-brush:before{content:"\f55d"}.fa-mask:before{content:"\f6fa"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-ruler-vertical:before{content:"\f548"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-train-tram:before{content:"\e5b4"}.fa-user-nurse:before{content:"\f82f"}.fa-syringe:before{content:"\f48e"}.fa-cloud-sun:before{content:"\f6c4"}.fa-stopwatch-20:before{content:"\e06f"}.fa-square-full:before{content:"\f45c"}.fa-magnet:before{content:"\f076"}.fa-jar:before{content:"\e516"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-bug-slash:before{content:"\e490"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-bone:before{content:"\f5d7"}.fa-table-cells-row-unlock:before{content:"\e691"}.fa-user-injured:before{content:"\f728"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-plane:before{content:"\f072"}.fa-tent-arrows-down:before{content:"\e581"}.fa-exclamation:before{content:"\21"}.fa-arrows-spin:before{content:"\e4bb"}.fa-print:before{content:"\f02f"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-x:before{content:"\58"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-person-military-pointing:before{content:"\e54a"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-umbrella:before{content:"\f0e9"}.fa-trowel:before{content:"\e589"}.fa-d:before{content:"\44"}.fa-stapler:before{content:"\e5af"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-kip-sign:before{content:"\e1c4"}.fa-hand-point-left:before{content:"\f0a5"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:"\f4c6"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-barcode:before{content:"\f02a"}.fa-plus-minus:before{content:"\e43c"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-person-circle-check:before{content:"\e53e"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"} +.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0} \ No newline at end of file diff --git a/system/resources/css/jquery-ui.css b/system/resources/css/jquery-ui.css new file mode 100644 index 0000000..0d56356 --- /dev/null +++ b/system/resources/css/jquery-ui.css @@ -0,0 +1,582 @@ +/*! jQuery UI - v1.12.1 - 2021-03-23 +* http://jqueryui.com +* Includes: core.css, autocomplete.css, menu.css, theme.css +* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=base&cornerRadiusShadow=8px&offsetLeftShadow=0px&offsetTopShadow=0px&thicknessShadow=5px&opacityShadow=30&bgImgOpacityShadow=0&bgTextureShadow=flat&bgColorShadow=666666&opacityOverlay=30&bgImgOpacityOverlay=0&bgTextureOverlay=flat&bgColorOverlay=aaaaaa&iconColorError=cc0000&fcError=5f3f3f&borderColorError=f1a899&bgTextureError=flat&bgColorError=fddfdf&iconColorHighlight=777620&fcHighlight=777620&borderColorHighlight=dad55e&bgTextureHighlight=flat&bgColorHighlight=fffa90&iconColorActive=ffffff&fcActive=ffffff&borderColorActive=003eff&bgTextureActive=flat&bgColorActive=007fff&iconColorHover=555555&fcHover=2b2b2b&borderColorHover=cccccc&bgTextureHover=flat&bgColorHover=ededed&iconColorDefault=777777&fcDefault=454545&borderColorDefault=c5c5c5&bgTextureDefault=flat&bgColorDefault=f6f6f6&iconColorContent=444444&fcContent=333333&borderColorContent=dddddd&bgTextureContent=flat&bgColorContent=ffffff&iconColorHeader=444444&fcHeader=333333&borderColorHeader=dddddd&bgTextureHeader=flat&bgColorHeader=e9e9e9&cornerRadius=3px&fwDefault=normal&fsDefault=1em&ffDefault=Arial%2CHelvetica%2Csans-serif +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { + display: none; +} +.ui-helper-hidden-accessible { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} +.ui-helper-reset { + margin: 0; + padding: 0; + border: 0; + outline: 0; + line-height: 1.3; + text-decoration: none; + font-size: 100%; + list-style: none; +} +.ui-helper-clearfix:before, +.ui-helper-clearfix:after { + content: ""; + display: table; + border-collapse: collapse; +} +.ui-helper-clearfix:after { + clear: both; +} +.ui-helper-zfix { + width: 100%; + height: 100%; + top: 0; + left: 0; + position: absolute; + opacity: 0; + filter:Alpha(Opacity=0); /* support: IE8 */ +} + +.ui-front { + z-index: 100; +} + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { + cursor: default !important; + pointer-events: none; +} + + +/* Icons +----------------------------------*/ +.ui-icon { + display: inline-block; + vertical-align: middle; + margin-top: -.25em; + position: relative; + text-indent: -99999px; + overflow: hidden; + background-repeat: no-repeat; +} + +.ui-widget-icon-block { + left: 50%; + margin-left: -8px; + display: block; +} + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.ui-autocomplete { + position: absolute; + top: 0; + left: 0; + cursor: default; +} +.ui-menu { + list-style: none; + padding: 0; + margin: 0; + display: block; + outline: 0; +} +.ui-menu .ui-menu { + position: absolute; +} +.ui-menu .ui-menu-item { + margin: 0; + cursor: pointer; + /* support: IE10, see #8844 */ + list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"); +} +.ui-menu .ui-menu-item-wrapper { + position: relative; + padding: 3px 1em 3px .4em; +} +.ui-menu .ui-menu-divider { + margin: 5px 0; + height: 0; + font-size: 0; + line-height: 0; + border-width: 1px 0 0 0; +} +.ui-menu .ui-state-focus, +.ui-menu .ui-state-active { + margin: -1px; +} + +/* icon support */ +.ui-menu-icons { + position: relative; +} +.ui-menu-icons .ui-menu-item-wrapper { + padding-left: 2em; +} + +/* left-aligned */ +.ui-menu .ui-icon { + position: absolute; + top: 0; + bottom: 0; + left: .2em; + margin: auto 0; +} + +/* right-aligned */ +.ui-menu .ui-menu-icon { + left: auto; + right: 0; +} + +/* Component containers +----------------------------------*/ +.ui-widget { + font-family: Arial,Helvetica,sans-serif; + font-size: 1em; +} +.ui-widget .ui-widget { + font-size: 1em; +} +.ui-widget input, +.ui-widget select, +.ui-widget textarea, +.ui-widget button { + font-family: Arial,Helvetica,sans-serif; + font-size: 1em; +} +.ui-widget.ui-widget-content { + border: 1px solid #c5c5c5; +} +.ui-widget-content { + border: 1px solid #dddddd; + background: #ffffff; + color: #333333; +} +.ui-widget-content a { + color: #333333; +} +.ui-widget-header { + border: 1px solid #dddddd; + background: #e9e9e9; + color: #333333; + font-weight: bold; +} +.ui-widget-header a { + color: #333333; +} + +/* Interaction states +----------------------------------*/ +.ui-state-default, +.ui-widget-content .ui-state-default, +.ui-widget-header .ui-state-default, +.ui-button, + +/* We use html here because we need a greater specificity to make sure disabled +works properly when clicked or hovered */ +html .ui-button.ui-state-disabled:hover, +html .ui-button.ui-state-disabled:active { + border: 1px solid #c5c5c5; + background: #f6f6f6; + font-weight: normal; + color: #454545; +} +.ui-state-default a, +.ui-state-default a:link, +.ui-state-default a:visited, +a.ui-button, +a:link.ui-button, +a:visited.ui-button, +.ui-button { + color: #454545; + text-decoration: none; +} +.ui-state-hover, +.ui-widget-content .ui-state-hover, +.ui-widget-header .ui-state-hover, +.ui-state-focus, +.ui-widget-content .ui-state-focus, +.ui-widget-header .ui-state-focus, +.ui-button:hover, +.ui-button:focus { + border: 1px solid #cccccc; + background: #ededed; + font-weight: normal; + color: #2b2b2b; +} +.ui-state-hover a, +.ui-state-hover a:hover, +.ui-state-hover a:link, +.ui-state-hover a:visited, +.ui-state-focus a, +.ui-state-focus a:hover, +.ui-state-focus a:link, +.ui-state-focus a:visited, +a.ui-button:hover, +a.ui-button:focus { + color: #2b2b2b; + text-decoration: none; +} + +.ui-visual-focus { + box-shadow: 0 0 3px 1px rgb(94, 158, 214); +} +.ui-state-active, +.ui-widget-content .ui-state-active, +.ui-widget-header .ui-state-active, +a.ui-button:active, +.ui-button:active, +.ui-button.ui-state-active:hover { + border: 1px solid #003eff; + background: #007fff; + font-weight: normal; + color: #ffffff; +} +.ui-icon-background, +.ui-state-active .ui-icon-background { + border: #003eff; + background-color: #ffffff; +} +.ui-state-active a, +.ui-state-active a:link, +.ui-state-active a:visited { + color: #ffffff; + text-decoration: none; +} + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, +.ui-widget-content .ui-state-highlight, +.ui-widget-header .ui-state-highlight { + border: 1px solid #dad55e; + background: #fffa90; + color: #777620; +} +.ui-state-checked { + border: 1px solid #dad55e; + background: #fffa90; +} +.ui-state-highlight a, +.ui-widget-content .ui-state-highlight a, +.ui-widget-header .ui-state-highlight a { + color: #777620; +} +.ui-state-error, +.ui-widget-content .ui-state-error, +.ui-widget-header .ui-state-error { + border: 1px solid #f1a899; + background: #fddfdf; + color: #5f3f3f; +} +.ui-state-error a, +.ui-widget-content .ui-state-error a, +.ui-widget-header .ui-state-error a { + color: #5f3f3f; +} +.ui-state-error-text, +.ui-widget-content .ui-state-error-text, +.ui-widget-header .ui-state-error-text { + color: #5f3f3f; +} +.ui-priority-primary, +.ui-widget-content .ui-priority-primary, +.ui-widget-header .ui-priority-primary { + font-weight: bold; +} +.ui-priority-secondary, +.ui-widget-content .ui-priority-secondary, +.ui-widget-header .ui-priority-secondary { + opacity: .7; + filter:Alpha(Opacity=70); /* support: IE8 */ + font-weight: normal; +} +.ui-state-disabled, +.ui-widget-content .ui-state-disabled, +.ui-widget-header .ui-state-disabled { + opacity: .35; + filter:Alpha(Opacity=35); /* support: IE8 */ + background-image: none; +} +.ui-state-disabled .ui-icon { + filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */ +} + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { + width: 16px; + height: 16px; +} +.ui-icon, +.ui-widget-content .ui-icon { + background-image: url("images/ui-icons_444444_256x240.png"); +} +.ui-widget-header .ui-icon { + background-image: url("images/ui-icons_444444_256x240.png"); +} +.ui-state-hover .ui-icon, +.ui-state-focus .ui-icon, +.ui-button:hover .ui-icon, +.ui-button:focus .ui-icon { + background-image: url("images/ui-icons_555555_256x240.png"); +} +.ui-state-active .ui-icon, +.ui-button:active .ui-icon { + background-image: url("images/ui-icons_ffffff_256x240.png"); +} +.ui-state-highlight .ui-icon, +.ui-button .ui-state-highlight.ui-icon { + background-image: url("images/ui-icons_777620_256x240.png"); +} +.ui-state-error .ui-icon, +.ui-state-error-text .ui-icon { + background-image: url("images/ui-icons_cc0000_256x240.png"); +} +.ui-button .ui-icon { + background-image: url("images/ui-icons_777777_256x240.png"); +} + +/* positioning */ +.ui-icon-blank { background-position: 16px 16px; } +.ui-icon-caret-1-n { background-position: 0 0; } +.ui-icon-caret-1-ne { background-position: -16px 0; } +.ui-icon-caret-1-e { background-position: -32px 0; } +.ui-icon-caret-1-se { background-position: -48px 0; } +.ui-icon-caret-1-s { background-position: -65px 0; } +.ui-icon-caret-1-sw { background-position: -80px 0; } +.ui-icon-caret-1-w { background-position: -96px 0; } +.ui-icon-caret-1-nw { background-position: -112px 0; } +.ui-icon-caret-2-n-s { background-position: -128px 0; } +.ui-icon-caret-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -65px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -65px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 1px -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-on { background-position: -96px -144px; } +.ui-icon-radio-off { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-all, +.ui-corner-top, +.ui-corner-left, +.ui-corner-tl { + border-top-left-radius: 3px; +} +.ui-corner-all, +.ui-corner-top, +.ui-corner-right, +.ui-corner-tr { + border-top-right-radius: 3px; +} +.ui-corner-all, +.ui-corner-bottom, +.ui-corner-left, +.ui-corner-bl { + border-bottom-left-radius: 3px; +} +.ui-corner-all, +.ui-corner-bottom, +.ui-corner-right, +.ui-corner-br { + border-bottom-right-radius: 3px; +} + +/* Overlays */ +.ui-widget-overlay { + background: #aaaaaa; + opacity: .3; + filter: Alpha(Opacity=30); /* support: IE8 */ +} +.ui-widget-shadow { + -webkit-box-shadow: 0px 0px 5px #666666; + box-shadow: 0px 0px 5px #666666; +} diff --git a/system/resources/css/social-logos.css b/system/resources/css/social-logos.css new file mode 100644 index 0000000..40cd4d3 --- /dev/null +++ b/system/resources/css/social-logos.css @@ -0,0 +1,286 @@ +/* Generated by grunt-webfont */ +/* Based on https://github.com/endtwist/fontcustom/blob/master/lib/fontcustom/templates/fontcustom.css */ + +/* +Name: Social Logos by Automattic +License: GPL v2 or later +*/ + +@font-face { + font-family:"social-logos"; + src:url("data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAACF0AAsAAAAAM7gAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADsAAABUIIslek9TLzIAAAFEAAAAQAAAAGBAtVMZY21hcAAAAYQAAAHZAAAE8oV8QGNnbHlmAAADYAAAGk4AACa8G860O2hlYWQAAB2wAAAAKgAAADYkZrJ9aGhlYQAAHdwAAAAZAAAAJAP4AjpobXR4AAAd+AAAAA8AAADkcAAAAGxvY2EAAB4IAAAAdAAAAHQXdR+abWF4cAAAHnwAAAAfAAAAIAFXAKNuYW1lAAAenAAAATQAAAJGA4c4LHBvc3QAAB/QAAABowAAAnuy2p9LeJxjYGRgYOBiMGCwY2BycfMJYeDLSSzJY5BiYGGAAJA8MpsxJzM9kYEDxgPKsYBpDiBmg4gCACY7BUgAeJxjYGH8zjiBgZWBgdGFMY2BgcEdSn9lkGRoYWBgYmBlZsAKAtJcUxgOfGT8pswE4uox6YGFGVEUMQEAFFMJW3ic3dRLUxNBFMXx/2TyIBDIQEhAQY0B4vv9YuHCcuHCj+CScoNLP5lfrW9NeounOSlc6trp+mUyU13pmdxzG+gBtTyVLnQ+U+kb1Ufdra7v12xe3+9Wja5PmWteN42jjkEM4zDmsWybdtJO28vVLNd5mJt8nE+uriBVQfQ0q9Gsxc2saSb3/sz661Fp1U984avGN42Lm/GdH/y8HnpEdtnnLXe4zRM994xbbHHMY97rLRsGvNSbvGPCAfe4yzavOec5U/rcZ48zTniot9tgh0NGWnPBkhdavdYbD3nAI57xhg+8YsyRHqv/D8/+vx+j8tH5tb46LzU31YO0psqQalONSF1TtUg9U91IfVMFSQNTLUkbVlKahqb6kjZNlSZtGeU8MlWftG3KAWnHlAjS2EoHBKaUEJUpL0THlByittIN0TOlieibckUMTAkjhqasEY0pdcSuKX/EnimJxMTKfxj7pnQSU6OcZ0ZZ88CUXeLQKL83N+WZWJiSTawp48SpUeaemXJPLE0dQNuYeoF2YqXa7dTUH7SXpk5hNTX1DKuZqXvIWNlN8lrZcXLHyq6Ta1OXaWcw9Ru5b+o88sDUg+QNUzeSh6a+JDemDiUfm3qVfGIc/Qb+5q10AAAAeJx1enmMHcd5Z1dVd1Xf9/Xuo997PTNv5s28m3MfJIcUKR6iJIoSY5mkfIiivZJt2Y6ilcSYiSPbUbJwVjKiZLNZHwpiGgg2DmAnQLIU7Dh/BPY6wJJrOMEiuxso2MTAYm9gg4z3q35zUfbOvFdVXV3dVfWdv++rJ4gC/KG/RfeEDeGccFX4OFzVGZ38B34U9nujcRTy/3F3NB4N5lErba2iQdri/0k2NqygNTReQ/1eGUVhwEyU1FvDwXjUD3xGIxgB12lrFJVhyHgURrQFL2sx6B3DO8sIRqA61ep2yS07bj43VW3nRFlkOmO5kBBRJZRQ1y5EuV59RkVUXBYpIgVXc1WMdBYajlcMpzD+jcagu7D58TlRErsfX338EcpkIiLfGCCCiOHbJSYyGT2ERCIqei7fmMvFXo5pkqxINHSJIkqGbDjXEzvv2DL14i6liCEqOZ5s6dT8nG7FfmJpdqjaLxcsc26aUFyqJESdJoR0HSZhRcQiK1suJyvNaPvv0S8JjlAUUmFLeFA4Lwher4x9ysoo8E3cRk7UGw0HHWgFUW8NDwctaI0zuvc5ITt4sIYjeIYlfjgGips46LfS/jB5y6uEuuvEkZWvO688b/lUN9l4TbF0Fnnr/0sPrYh0tE41SvKmmW8GcSNW8WfYlurrtiY+ip+8cQN9mlq5VkFmSc4vuQqiz1iOolOy9iyRDTVwTiLdVupls9icaRZs5NbSSPOf1GTDYN6jedgeyfb4b9DbsMOW0IN20gVedwcd1EZ1E5WQX0bLqLeGQGZg1b2QQj+IAvB+MIIboU/RW4Fqovpibb22WIfq01BZ/3vbhL9t0zB+4zXFNBVeoDlDhftw+9VJdUm1OlEcR980PAM+sJSJPL+N7gi6EAtTINVC08+mnMwGKxhxCtcpENPxaVIDSXUGo36tF7LsBl98NgCWHsIjoyFakuljVM6K97eZLLM2VZT/lnN37rm5nItm3NwphRpUQXOVtDo3V71QnbsL43VZ3pQNGT4vHIzMvQnPUj7qEV5ky82Ke0DDNahbu9rXmmgYb/u7CghNKEFj1tFuz2g4gkFZH7RBKdG3dSOo1Jp1y643k4qvGyCRRMJavdzacOPxdCX2VAOJumLHpZkmyodpWq6rVAKVQH8kIjHIz85UqtNzuYhgKhlKNNdVE9uU1Ki6Oi3TZjiLzBm3SqRmsxg7JiWGXVcXpm1d4eQX5N293BNcIRTyQkmoCU1hWpiF3uE8btUtElRQ2FvHacTmUcBSFrEoHUdj+LJhVqN7BP+ZqIvfJqLI6+9I3/pnG+cb5zesTudfQsvd3Nycz67QUUTJLxLyKcI+p/wCIbeUv73SHl68OGzXK5VPQbPabrf/1eRSENj+2nQhEKpCRxiDfJwBCal30GANgfXyTTTmRA+jNQQcSDgjQBXTjOatlFsyGqZgw2AUDA0jTvgOirJx0Qh4MmghYena4uK153nxc3aYNvNqZfqDWhFtzkZad735NTO/sMKYvHgsKaDYi6rLo0ojHb7cKk+XQdku/rLiVtsKS+dybtDefQ8U35SIJG2vBOvv3zoZzcVhuprL9zxsWw4lydYvEskc972j1/pH7NjUy8FJw8q7rsv5Wl0SBGl3738GGssETbCECK5ZOmZA8QoCqgMjLJQG0XjIkPDKxZdeeunSK69ceunixaxuvfxyC7109viFv7rwwNmzD1w4fhzqJx/IFU+fLubg1Xhf7yxhBVrNOg0cP+w3J4rPXULK+j0utFyi24iNR9AJ9OTOIW2to0yEK5wJ6Od3dvLNZh7hQqPRJ4pxTd00qIwRFhVJOa0+FWHEmKg+VDADgnCCMdWodV03Mfqa38zzh33UyP8w33hcoWgOY1mSTYx7CIEZh7cgm2lvqZJKMELUPNC/eyCpAjdaAdisaJgM+0MwDL0KCribK6E+SwJuoDsoY/H8hd5wONu0HKvoKmxF6fYuzC9eQ3cXry0NLq/Ir6/Np7MYDzXFaq29Lq9cHsAzgp/N9SP0I7BUimAKHlipEsw7LwyFZWFTOAHy+IhwWXif8GHhE8IrwqvgLyjwCJQEJBAaLQuFEWfWXoumCQheH+jqs6g15KOgm8sqCGeatSM6jyrwMJB3Hvngk7P3wdhxGq6hDjLhRXsN1ttt7N/ab7zEjGcLpcIRZp5bF09qH3hdJa8NTwZnrA80LLV2XjPEAL5TCEmfQUj8yLqlrVtXmHmNGX/0okpe1LbgrlaK8pouxX8qbZtTxldg3AtuAccN+H590kDRxb2ef+vmcZxAw8164AJtGew5s2QumuzXq+WmmjyoWSd/8FrwOn7rBNHWH6PoVYqmJElVAhGKf/4i1l7Ef2iyq/DYmmataeBt0LbU+ApUv7nFh2gFVshLoqpcRdmcjcIXUTZnI//daNLR2Ov4a8QXAb17fo/LjCbkhDpwKQDJDfoTXBRkgr57RbivybwOCMCJtLm5debKw+cXFk4sHbn61HpYqcxWKujECRCbM1ubzfRXTiwsnH/4yvNPXT2ytHOH35yt7OnXf0Q3wHaBvnkgpSCkwCuQxv7hi8+VuqVSd6lbLHa/W+LlEr9GN0qTxn3Fvt7+NuwjEpa49wZJB8XlrmUdg/fjdm/E1feQRwwtNLm2EOW+k3cx9Mm/CTTZlJgqfZiQbVeVyDR15pEiPs5UlZ2mMlJB3VcVWTqNZOkbEujzXUMzd97wKNfDV7DOzD8vFJ4VmSJrTFVoVwS09gRCKM99r7Bnw+6AjdmzYZ4gjJPhMkqC/rAW1FKox/D94ZtvvvPmmzs30c0333nnzTNnNs6ceefBd86cOXNY1x/e03Xg1GgVUc6qDNxCMRj3obeCMhfLHQKA2dawNc4M2KjHrf4y4goXcoDLQk4YwL/7puGhTcYCy1AYWF8GYFSWJHD6EjEC0yTabFgJRSxTWbO8/DjnWRq0sRhWorbJ5M3zu0Zk+9kAM6khEiJLjMEYQgCOIklkUoAR9VQJnq7FiuZ6IgWkrFPRczUlqo/znqQXlySGg+eOc6Ozz+eJ75ua7HxfZMjE/cHmGMBLLqywabB+sDl62JktJ8v1+nLSazT9EmCXTc8i2z9LjvHF7jmpndv15e3leq3hdTY6nuXPm/p4+2D+v0dvCAVAwoLHXw6Y76dN3EyGSQBcBJ72b7+GG5sPH5+aOj69NDMdJ+lodDZ2ySNoo92emWkDUja09lZz6tiFY1NpGo3PjmM37MO9dvuwjupgYbs/sWuAhD9tyyBBSWb8YQWHt/9U0u0ej3OmF1QqbUMlCw/hzq/nq4VCNX8fCe72t/thbIDaGqpRU+Xm/DaMKRR2Ze97sJ4a1EE/w3nJPg0ybM/X1+9xUUqR8Amim1GxmSwn8Fmoryw/vHRtCT4r7+lLKD3vu5FhJysnVpLK8jibe/jeFT8+pCdVYVHYhrjuElz3ojKJQp+ZhNF62iEpSPkagW3XTdEvi701cdAR2WEKsYxCANDHdRpmuBkJw1xQ8FRQSqR6hSD3zP2Xw9EgLdkY26V08KFJ0yqng1FhrlCYG/GiUGg2R83macMwTI7o/8VPf9HeZZI9f+hVk+Z7dt8GxZf460bNP4kj0zMPeH4DWgWhD9gOODkGFgP44GoKyCOLR0YclUjBBOHDfR7Sgk5nUQtFN+7dCwAIW89w1P6MNZsPkl5v59Ve8u7Ov5+5GPk5F3C9H/UaM43eRfge9BzEI29n1qoCiFNAtV1sVIPYwhm0CKww3ZMCoHaUcCCfIY6EyyAYG253AvTlnW/qtq2jk1DuLC6WZFtRbNn0vL9ZFGkq08URoobtTcGQO7Z+MHjnD7+RUyzXUryi9/3HIXY1tfCJb+R0Wc177UO24Tas0f/J9QEqHNbQ7Z2vOrmcgy7y8vZtdBHdzrk/FrKwBsrLTz+9cKDnb6PvCQPhIY5dLJSJOZA+2A1ZxhyW0El0M+zyrjWUhS9d7i67rZQB5OJ7DjkBBkn9cDX68eVpVVV1WcFONO52SjkdzFw+atp5ETU75UFrRZQwKlnmzOXVmq1pdq2YtIuVmUqxnYDueZKs2X6u7CTeufaSZRAki6QuSQgxrcyoAoZVmgpLs6EzbrjUQ9s5182ltQ9dr00tLk7Vrn+olu7K2F+jm5kvrmcRPdq3ZtH9F8BQrka/lSzV60vHefEjp+Q4pTovPqYYhmsY6GZmNbOC1cZb41pWGOtPrMNnl6YTvwe223NqDlAVKMqR6XAMosySNKC7V+lwMI+G/Wjc30A3NwJC/A+EeEk+hsTCgwUJifHppf5JdId7x8s+Jp8n2BfFAIvP/9qvXWNSTRRrEvuoJBbFl1/e5+f/Qf8DZGMV5jYxo2W8hjsobUV7GlXnypTBg92LjLWtUT/qcab3e+toDf3j6vWjEh1fv/X8aX18fdMQZxYJnpVy0zleSQ1DQwR3JAD5GiHImEP/HS29b3UrGw3PUPSZYesGxuJTbqnkPgWNKxKSQ6eJCRJdpkvIj/Zj6dvoB4CqhclCJuH0JIbuTSJl+F9D6HYc1aevpe3ARSKzg0bB02xDMXyjONVF15JyQTdEL5ifGk8nw0qKIrNR1l2VMm1lb54/AFu+lWXMOJDgMwBaSjtgvTOl5d5kN8c14G4mAI7xED7yd6P4PVsPsIEuzU61LSfHsIyIoleKpbS/1WsFeYnIuusEZVGqUYIhSmeGTx3WDKa3Wp1z6G4UnmpXylVNZBWRaHWnPLKc1YXR8ZKvRVOVsFWwTO3TYStwIPJRwlq4YbhzD3ZmT0wdwkInD7AQRGIc7vDV+1lur8/TU1miL4NKIHkHG8wknef2JmFy5jUyl3katDBHSGgbpiph0bNLrV7aLuYUBgoG2CWulWtzjZWk2K/YRcmUgko1c7QZ8Dn6oXgqfEbW9LDs5CqeYkfjdqtbyreMgkxITsJKN5csO271yIlViDz6YV3JvN9hnPM2WP8OtDooqXHJjMpoAuf6Iy6M67AD2El9Hgas4ZDbG9gv+neib+x8yY6w2G6Q1txsG802SKMt4ve8T47l90uSqFkWPX9eiRz0O5oZ2Tfz7dMFXFRkRc3jwul2/ia7eUWWr1DL0iRROnOGudGuD5jgkGmI6t54FxJhPGsadTJAPQk++70x7ZA1HHWwCUKyxmEpD5ZhFyC4KVc+kLioCyNpdjUqw5OwFVSGBzp4DbYKL+1m3Em5gWV1zjQwtOD/uf7yp3iIAngAHQY5zdZ2rMjxsVNbsei4yUrDdcrHllIlHpz4MGqvHXHyo6GXz9lVHyGXhWroaZKtQoEJcTVNlVVECtOxnLZjZWpQl4rDYUMsjdZzfg6XB+XQKxZqM+8dPj6Yf7grt0/MkPrRc+dGjqHMFBcbqZl7z2Eo1UBJWdPLtUpB9DoxiItokGT1xPFB8RvVgVpbGvtxvwc8ydmRwygWp1yYHqJ7R1ZNwMmW7BVxfSbSpudKYnPU9q35pV5Jcq25fKVfUZisjn9z8Piwd3EkYtZ74LHTQ6OweL5Z6mhqOnWkUl1YPsibvA22d5LJGkLM0Q8ApQaTvOJq5paW0XASCJW4Ew+a/WES8WgE2DtRrN7ozs2bKNjIOfecHJRh1gid3M6de/xvQ7EcS3YL3u12sMF97MZtN8fzhe5Mzm3P3Ln554qpwMfwvMN5tq/vZ7EuCu8Vnhb+Kbd6HZ67GkeTqJNjHzCCXLRYq54pMQ0msgc4A6RpFNIEnNVI4kofUdaK3pUOm1gyaR8NTjwaxHzcQiTdetoCRxf2u2Bce+huMTV727ljUS2ObcOTThOKSo3NvJEWdQ0PHnv6sQHSjGOGZQE6Nnb+wDNUuahp354/Pz9//klefFYtyprh7fyD7rqx43zeyTnwyWEcLCwEBCuiPT1tw1tFv4jMGjln2xFMZmgOIuQy8my96BshZWwSrfCc6W0Ux8jwzN8yPBoWlS+Ue6u9cla8VoyoZ9gdPlHsliczPkIYDkOiYuI4eN+nvA36W+e5QpYCyh1ntOXkjDhVeQDByZr1ops59wsYv+ENODKd1APvDcyR6m33kqIrl9zWsNksUOUxBzqdS4wBLB629s8M7qG7YMkkQQWvuyG8AH53HLEgkgbdIaCjYBmNfRODZvdT4Fe9gyE8jdIAzPYa5sFUP+2O+qMyBu1Oo2GYDnYjWx7vZCAss+mdSbDvZ4EuCHN9AskmIhLyg5ofYPxFhD6HvowQ+T23NhtXikTCjjt9alwhCFm8q5zHIva8qVNHqiJ0/RPDbsy7shGmpqxQEZylVZoLpwsVzUrW47htyioTqWdGYa7eLeTRdxD6bYxPwgRfQh+MZuuuDU1UHZ+adlx4caHC+0zeVzlyatr1YP4CSIMva6LIYlsWNYZFXbXytuO3IsuXbeobniIZCpEM1Swqapil3A7b4IIwy7HMfTbYM7lNpR2ehuRW1uRWdvea29JJKr7FcQMn4P2B8RTRxAefk1RMpRcfkUgkGrT9yT7VYftLv9ClIu4+uD3UbElrfaA7bKnBfeHidyVCOjkkaQouDog2gjC/YNqYGTp27bJojEqU2sSKiE5ULaSxtr+Xrwqx0BZWskxGqw7uDMRvPfMBoO28ORqwrL/OuQp8zrrSg6FcHHieOxvTGqxP3lLGfBj64/hYfIvqDr0lB4FNqXxTr+tPxUepS29Bizo6jY/lbtFeVuqTXjmmQ+rwZqxPxqOFo/AatBRDCY/ckmE3QSD/vK6/Lz7mUXrLMPjD/Lb7mazUeZ8MYRDc1OO6ng09uoD4C/b9+1cA381xHmaoM7PCmfbxMI4b4WgMoIXtdnFTDSMYEqbGpmuePHKOV+WZsXPk7JGTUTSDvjyeehWwuLK6PjUeT32WHzgVDcCB46+tpuNxurIC8aqxatyfR2m9W4YoONN5AOMUtG2edFCWPIPA7ZCoyCDKCh0lOPvzRqKEJIL/UpLvk4nvYHCnZLoK4TCh6x4mMsHoUUyk3fn/CqqTwqOc79yRcxMf8YwUiGYGDDigyFBuGTEwFFz1x5nu81xW2uV4mAdeUbeXgeGJ5EMrs/8UvQCTL/VQecFqeC1Us3WxVF84gpHnlNJeIaCxJ4rzi9M/MzczM/fN+Uhrm6WVj3xkuY9Qf/kjvQdKwDnL/WKUYNOq2nEoghvxEB6toFyULyHPiAEt9Ft+VfMJTgozJvjjToAWR98ZLS4WZ7R+4xRCp7Y+9rGtU6hYqnda9faj2G/oJhbnXPP+s4Y+z4XeF64mrD8xclGQcpMW+RNEtIyCVsYs8Hs39k/j3M/OIiRR3QxVXYNwuTjXravedKzroWlGkYnuHD7m21A0BcJmNItESXkinvaUZKFTmCXMjz3GfH3PV3wd5KMB9f5KkiwrvB8WTtYCOAwNkfQAwrLqxw3b9/J+Y+2B9UZjrel5rQhFLSjumq4VGjbYSCpbrzfX4O6ptcYpalSnqrpe9ffm/DnwGWXwTzSh/IAeAMgwqQec1UF/Epv0Af6h95teqLILF1aIaAYzM7qZK8+EbfoaQ6bq3Fy7LtZyTWv46VxcsF1kyYdjek7vmZ+Sv8jmS4aZKMHOABwF4Rj8IZjt1w8dfL7a8O1cbMgYoWRhAYW6rJH8/fTd+T4KvfhsRQksD682TsdIrEvKgf2+g/44y/06PAfOs74845sypw9Iqz8eWihhsO0aupIk8Hkrf2UwPHs9Wb0yOIeq6OGnn376L7Z3/stgcP1//ufVweAfD85e/xL9HlhSAVE2GlPGDzsAjqdgJKN6mgGmFDSKn1NlbpFH3CP0wzhfVPMlf3kYs+GTdT1wAzet+L4yV1xYVdXVBx5cGVZKOfQpjTgVi4ZKcVQiC9PBXKprqLpAqZivoyZK02T5yIrmvYvOR36SzswHM8Zzd+FoXOeHvh20isI+KC4srsUhP188fO+j+kmItB5J/JZl5yRNc0DMbUX1hiXRLNc0x5Rs01TvZ8KviqS26Qch0XTPgoCz4CCqteyogOyKJelE4b8TsPZp95/Qt4RqRjsgEBi+hAMkTqRdoDEeQQ9coP9ALj2xnhYSP5LKQa06G/Z1Q7Jc8wgW67ZT+5nj6IObz33i5K2TQaFUbGHp9AX/2CWwZzcI3svr3c3OlaeExwQBnFWWMOMox+Q/OgDAyzFoFk7jJAPdEG03WzzEy36lwhvZQSN8eDtJeXLKz8LCLLAis+XS4rXFmbPL1cWri6N5ic4sLJxfKHQ3E16JLjIQJSVNIqIuMRLWDUJlDGE1sTFEITJFbogMq1wxKx44Qtz+cPejVxery2dnlq4u5lskN//QQrLRK8DL+m26+VFMsEVEaokAasuhRBUiYlFKKUArirweWEq7bFIFY8sx78/hu8L6RD4mJzIR/1VDdszK0a7PMijHnRHjP7tJedjHEzHZL3Si7MwaKp+LSbHRKD56M3gG6jWLqgRCdaXi5xTFZRKTHA9JAKbMAZEBgqiaCtGiQtHdRvHvio2Njay6UhksljVRUSpH+5YbYCZ3X6aUSe7mkSuM+t3So1OayLi47MdS90CbVWFt4sGaLBzPwy6ilEp7OJWnHyIOT3nWdh2CKprwY2rwXHWeVAoP+kZjQK4WN+kDcjhqQWRxeRnvLHcvO2hTIgwcqOSapHC0sXAxrxu+C6G8FG7PlFWVH6u7fm6vyzNTbC3P9e8c+Oz/+jtuQH5//GT8D82KbaoGMZmmGgHK5TvTYLtl/P2XLyAkc8PGr7630byhaNXGV/OP97s7//fArR/w8Fug4xpYMQGNE5YmgNjHUX8e970Ezfxy7YWrz33+87WbH3z2T61P9P+uj0pfeu21u7dff/13g9/d+df/v3MwD8wu/1GQBF9nt4aIE/6QwMsfQ4k2so4dXhySpy+AtVnOsERr9xAMQMxe4tbCk0wjhxSgKpUJqMnSV5jLXMqGEfoLjCVZMZhGmiuDwUqTaMxQZEnEWBQlR5d1Gmys3NePf/wx9KisQMAucrLxxD+vRVV2nSAfVpO67boiV669WxIIpc1vhflP/izAd+H/ARlZPhsAAHicY2BkYGAA4i6hRVvi+W2+MnAzMYDAwxU7DiDTjN/B4hwMYAoAObsKpwAAeJxjYGRgYGIAAQjJ+J2BkQEVWAIAE24BOAAAAHicY2BgYGAa5hgAMsQAcQAAAAAAAK4BIAFoAcICKAJ2AvQDJAOCA7gEnATUBQAFVgV4BfQGNAZuBrYG6gdoB7AIAggoCJoI0gkQCWgJnAn+CmgKsguQC9wMkgzIDXQN2g5YDpgO2A9aD6gP4hASEFQQgBDGER4RVBHWEjYSuBLaEv4TXnicY2BkYGCwZJjOIMIAAkxAzAWEDAz/wXwGAB7YAfsAeJx1kT9OwzAYxV/atIgWISQkxIYnFtT0z8DQkaHdO3RgS1MnTeXGUexW6sYxOAHHYOQInIJD8BK+oUKqIzs///LetwTADb4QoF4BrpqzXi1c8PbHbdKtcEh+EO6gjyfhLv2zcI/2RbjP5o4TgvCS5h5vwi1c4124Tf8hHJI/hTu4w7dwl/5HuIdlEAr38Ri8OpvksRkYm1m30NnexNWpOuWlrlxuCzWORqd6rgtdxV6v1eqo3CGbeJ+qtLI7NbOF18ZYVVZ2qxMfbbwvp8NhKj5K7A4OFglyxDAYcFtk3A4LaNKeJkZ1NnXOL9muWzlvBRTGiDA6m54zXTSNGJ7vNRsrHHk6HJiZ0HqkvKfMWP4VhVkzuU6bZpJC2Xzb0iT0ETZNq8QUQz7pv3zEFCf9AkQtapF4nG2R15acMAyG598MZSCbTe+9t01vm7cxWIAPYDm2mJKnDwxzcnIRXVifZB3rl7w4WswWLf5vZzjCOSwRIUaCFCtkyHEex7iAE1zEJVzGFVzFNVzHDdzELdzGHdzFPdzHAzzEIzzGEzzFMzzHC7zEK7zGG7zFKd7hPT7gIz7hM77gK77hO37gDD8XserVb7ZJQY2yJeVFx3VN/lR1khx49AOFdpeUrMmRTbU3RVF0lGjPruBtRmuyUngjlFaqpIK5XVWkzZp8oGVFpOOqM2Xrs4oHH34NylNUNxwkro00Q5HVzHVHU9eTA7puCFOc/xPHM6+MDaJqr/plZ2ybTsfYzS57Zbq0V0FYs836MTf00xvxjKmlrWhmnzglntgeO2OFPAWZqlZ/o9hx2dKY4K7TSutd5Px4F3vS2kgUmkn/uBFHSXAsptrl81DBjePnQYZ+XM/g2KZCHU1KE2k8KR0yMa1wu1c1Y7av9nNmj7FsjJRNPjk5/MWBo7XpidNNoyQo5/INc8l9T76k1Ya9dqOGgG20VbZWyY4HGQpaLP4APN+66AA=") format("woff"), + url("social-logos.ttf?d7118d6fafb7af6608dc3cb7115ffd49") format("truetype"); + font-weight:normal; + font-style:normal; +} + + +/* Bootstrap Overrides */ +[class^="social-logo-"]:before, +[class*=" social-logo-"]:before, +.social-logo a:before { + font-family:"social-logos"; + display:inline-block; + line-height:1; + font-weight:normal; + font-style:normal; + speak:none; + text-decoration:inherit; + text-transform:none; + text-rendering:auto; + -webkit-font-smoothing:antialiased; + -moz-osx-font-smoothing:grayscale; +} + + +/* Icons */ + +.social-logo-amazon:before { + content:"\f600"; +} + +.social-logo-behance:before { + content:"\f101"; +} + +.social-logo-blogger-alt:before { + content:"\f601"; +} + +.social-logo-blogger:before { + content:"\f602"; +} + +.social-logo-bluesky:before { + content:"\f10f"; +} + +.social-logo-codepen:before { + content:"\f216"; +} + +.social-logo-dribbble:before { + content:"\f201"; +} + +.social-logo-dropbox:before { + content:"\f225"; +} + +.social-logo-eventbrite:before { + content:"\f603"; +} + +.social-logo-facebook:before { + content:"\f203"; +} + +.social-logo-fediverse:before { + content:"\f10b"; +} + +.social-logo-feed:before { + content:"\f413"; +} + +.social-logo-flickr:before { + content:"\f211"; +} + +.social-logo-foursquare:before { + content:"\f226"; +} + +.social-logo-ghost:before { + content:"\f61c"; +} + +.social-logo-github:before { + content:"\f200"; +} + +.social-logo-google-alt:before { + content:"\f102"; +} + +.social-logo-google-plus-alt:before { + content:"\f218"; +} + +.social-logo-google-plus:before { + content:"\f206"; +} + +.social-logo-google:before { + content:"\f103"; +} + +.social-logo-instagram:before { + content:"\f215"; +} + +.social-logo-link:before { + content:"\f109"; +} + +.social-logo-linkedin:before { + content:"\f207"; +} + +.social-logo-mail:before { + content:"\f410"; +} + +.social-logo-mastodon:before { + content:"\f10a"; +} + +.social-logo-medium-alt:before { + content:"\f106"; +} + +.social-logo-medium:before { + content:"\f623"; +} + +.social-logo-nextdoor:before { + content:"\f10c"; +} + +.social-logo-patreon:before { + content:"\f105"; +} + +.social-logo-pinterest-alt:before { + content:"\f210"; +} + +.social-logo-pinterest:before { + content:"\f209"; +} + +.social-logo-pocket:before { + content:"\f224"; +} + +.social-logo-polldaddy:before { + content:"\f217"; +} + +.social-logo-print:before { + content:"\f469"; +} + +.social-logo-reddit:before { + content:"\f222"; +} + +.social-logo-share:before { + content:"\f415"; +} + +.social-logo-skype:before { + content:"\f220"; +} + +.social-logo-spotify:before { + content:"\f515"; +} + +.social-logo-squarespace:before { + content:"\f605"; +} + +.social-logo-stumbleupon:before { + content:"\f223"; +} + +.social-logo-telegram:before { + content:"\f606"; +} + +.social-logo-threads:before { + content:"\f10d"; +} + +.social-logo-tiktok-alt:before { + content:"\f107"; +} + +.social-logo-tiktok:before { + content:"\f108"; +} + +.social-logo-tumblr-alt:before { + content:"\f607"; +} + +.social-logo-tumblr:before { + content:"\f214"; +} + +.social-logo-twitch:before { + content:"\f516"; +} + +.social-logo-twitter-alt:before { + content:"\f202"; +} + +.social-logo-twitter:before { + content:"\f610"; +} + +.social-logo-vimeo:before { + content:"\f212"; +} + +.social-logo-whatsapp:before { + content:"\f608"; +} + +.social-logo-woocommerce:before { + content:"\f104"; +} + +.social-logo-wordpress:before { + content:"\f205"; +} + +.social-logo-x:before { + content:"\f10e"; +} + +.social-logo-xanga:before { + content:"\f609"; +} + +.social-logo-youtube:before { + content:"\f213"; +} + +/* Starting the custom style */ + +.social-logo a { + display: inline-block; + position: relative; + font-size: 24px; + margin-right: 5px; + text-decoration: none; +} + +.social-logo a:hover { + text-decoration: none; +} + +.social-logo a:last-child { + margin-right:0; +} + +.screen-reader-text { + clip: rect(1px, 1px, 1px, 1px); + height: 1px; + overflow: hidden; + position: absolute !important; + width: 1px; +} \ No newline at end of file diff --git a/system/resources/css/social-logos.ttf b/system/resources/css/social-logos.ttf new file mode 100644 index 0000000..fc1956a Binary files /dev/null and b/system/resources/css/social-logos.ttf differ diff --git a/system/resources/css/social-logos.woff2 b/system/resources/css/social-logos.woff2 new file mode 100644 index 0000000..3c62274 Binary files /dev/null and b/system/resources/css/social-logos.woff2 differ diff --git a/system/resources/css/solid.min.css b/system/resources/css/solid.min.css new file mode 100644 index 0000000..eab276e --- /dev/null +++ b/system/resources/css/solid.min.css @@ -0,0 +1,6 @@ +/*! + * Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2024 Fonticons, Inc. + */ +:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900} \ No newline at end of file diff --git a/system/resources/css/toc.css b/system/resources/css/toc.css new file mode 100644 index 0000000..2e9f723 --- /dev/null +++ b/system/resources/css/toc.css @@ -0,0 +1,52 @@ +summary { + display: list-item; + cursor: pointer; +} + +.toc-wrapper { + background: #f9f9f9; + border: 1px solid #aaa; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0,0,0,.05); + box-shadow: 0 1px 1px rgba(0,0,0,.05); + margin-bottom: 1.5em; + padding: 10px; + position: relative; + width: auto; + font-size: 90%; +} + +.toc-wrapper .inner { + margin-top:5px; +} + +.toc-wrapper .inner a { + border: none; + box-shadow:none; +} + +.toc { + padding: 5px; +} + +.toc .h3-toc { + margin-left: .20in; +} + +.toc .h4-toc { + margin-left: .35in; +} + +.toc .h5-toc { + margin-left: .50in; +} + +.toc .h6-toc { + margin-left: .65in; +} + +.toc-link a.anchor { + border:none; + margin-left: 5px; + box-shadow:none; +} \ No newline at end of file diff --git a/system/resources/css/toolbar.css b/system/resources/css/toolbar.css new file mode 100644 index 0000000..7a85f5f --- /dev/null +++ b/system/resources/css/toolbar.css @@ -0,0 +1,83 @@ +body { + padding-top: 30px +} + +.admin-front .tb-admin, +.all-posts .tb-posts, +.admin-popular .tb-popular, +.admin-mine .tb-mine, +.admin-draft .tb-draft, +.admin-content .tb-addcontent, +.admin-categories .tb-categories, +.edit-profile .tb-editprofile, +.admin-import .tb-import, +.admin-backup .tb-backup, +.admin-config .tb-config, +.admin-clear-cache .tb-clearcache, +.admin-update .tb-update { + background:#400; +} + +#toolbar { + background: #666; + box-shadow: 0 5px 15px #000; + color: #CCC; + font-family: Georgia, sans-serif; + left: 0; + margin: 0 -20px; + padding: 0 25px; + position: fixed; + right: 0; + top: 0; + z-index: 6000; + border: 0; + font-size: 15px; + text-align: left; + vertical-align: baseline; + min-height: 30px +} + +#toolbar ul { + margin: 0; + padding: 0; + padding-left: 30px; +} + +#toolbar ul li, #toolbar ul li a { + display:inline-block; + list-style: none; + margin: 0; + height: 30px; + line-height: 30px; +} + +#toolbar a { + color: #FFF; + font-size: .846em; + text-decoration: none; + border-radius: 10px; + padding: 0 10px; +} + +@media all and (max-width: 550px) { + body { + padding-top: 60px + } +} + +table#config td:first-child { + width: 30% +} + +table#config td:last-child { + width: 70% +} + +table#config input { + width: 100%; + box-sizing: border-box +} + +table#config tr:last-child td { + border-bottom: none +} \ No newline at end of file diff --git a/system/resources/fonts/glyphicons-halflings-regular.eot b/system/resources/fonts/glyphicons-halflings-regular.eot new file mode 100644 index 0000000..4a4ca86 Binary files /dev/null and b/system/resources/fonts/glyphicons-halflings-regular.eot differ diff --git a/system/resources/fonts/glyphicons-halflings-regular.svg b/system/resources/fonts/glyphicons-halflings-regular.svg new file mode 100644 index 0000000..25691af --- /dev/null +++ b/system/resources/fonts/glyphicons-halflings-regular.svg @@ -0,0 +1,229 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/system/resources/fonts/glyphicons-halflings-regular.ttf b/system/resources/fonts/glyphicons-halflings-regular.ttf new file mode 100644 index 0000000..67fa00b Binary files /dev/null and b/system/resources/fonts/glyphicons-halflings-regular.ttf differ diff --git a/system/resources/fonts/glyphicons-halflings-regular.woff b/system/resources/fonts/glyphicons-halflings-regular.woff new file mode 100644 index 0000000..8c54182 Binary files /dev/null and b/system/resources/fonts/glyphicons-halflings-regular.woff differ diff --git a/system/resources/images/htmly-gray-bg.png b/system/resources/images/htmly-gray-bg.png new file mode 100644 index 0000000..32f06bb Binary files /dev/null and b/system/resources/images/htmly-gray-bg.png differ diff --git a/system/resources/images/htmly-small.png b/system/resources/images/htmly-small.png new file mode 100644 index 0000000..5b61e75 Binary files /dev/null and b/system/resources/images/htmly-small.png differ diff --git a/system/resources/images/logo-big.png b/system/resources/images/logo-big.png new file mode 100644 index 0000000..5c7dac6 Binary files /dev/null and b/system/resources/images/logo-big.png differ diff --git a/system/resources/images/logo-small.png b/system/resources/images/logo-small.png new file mode 100644 index 0000000..00603ab Binary files /dev/null and b/system/resources/images/logo-small.png differ diff --git a/system/resources/images/logo.png b/system/resources/images/logo.png new file mode 100644 index 0000000..e522787 Binary files /dev/null and b/system/resources/images/logo.png differ diff --git a/system/resources/images/share-facebook.png b/system/resources/images/share-facebook.png new file mode 100644 index 0000000..5541821 Binary files /dev/null and b/system/resources/images/share-facebook.png differ diff --git a/system/resources/images/share-twitter.png b/system/resources/images/share-twitter.png new file mode 100644 index 0000000..26f102b Binary files /dev/null and b/system/resources/images/share-twitter.png differ diff --git a/system/resources/js/adminlte.min.js b/system/resources/js/adminlte.min.js new file mode 100644 index 0000000..3f62fc4 --- /dev/null +++ b/system/resources/js/adminlte.min.js @@ -0,0 +1,6 @@ +/*! + * AdminLTE v3.0.5 (https://adminlte.io) + * Copyright 2014-2020 Colorlib + * Licensed under MIT (https://github.com/ColorlibHQ/AdminLTE/blob/master/LICENSE) + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t=t||self).adminlte={})}(this,(function(t){"use strict";var e=function(t){var e="ControlSidebar",i="lte.controlsidebar",n=t.fn[e],s={COLLAPSED:"collapsed.lte.controlsidebar",EXPANDED:"expanded.lte.controlsidebar"},o=".control-sidebar",a=".control-sidebar-content",r='[data-widget="control-sidebar"]',l=".main-header",c=".main-footer",d="control-sidebar-animate",h="control-sidebar-open",f="control-sidebar-slide-open",u="layout-fixed",g="layout-navbar-fixed",p="layout-sm-navbar-fixed",_="layout-md-navbar-fixed",m="layout-lg-navbar-fixed",v="layout-xl-navbar-fixed",C="layout-footer-fixed",y="layout-sm-footer-fixed",b="layout-md-footer-fixed",w="layout-lg-footer-fixed",x="layout-xl-footer-fixed",E={controlsidebarSlide:!0,scrollbarTheme:"os-theme-light",scrollbarAutoHide:"l"},A=function(){function e(t,e){this._element=t,this._config=e,this._init()}var n=e.prototype;return n.collapse=function(){this._config.controlsidebarSlide?(t("html").addClass(d),t("body").removeClass(f).delay(300).queue((function(){t(o).hide(),t("html").removeClass(d),t(this).dequeue()}))):t("body").removeClass(h);var e=t.Event(s.COLLAPSED);t(this._element).trigger(e)},n.show=function(){this._config.controlsidebarSlide?(t("html").addClass(d),t(o).show().delay(10).queue((function(){t("body").addClass(f).delay(300).queue((function(){t("html").removeClass(d),t(this).dequeue()})),t(this).dequeue()}))):t("body").addClass(h);var e=t.Event(s.EXPANDED);t(this._element).trigger(e)},n.toggle=function(){t("body").hasClass(h)||t("body").hasClass(f)?this.collapse():this.show()},n._init=function(){var e=this;this._fixHeight(),this._fixScrollHeight(),t(window).resize((function(){e._fixHeight(),e._fixScrollHeight()})),t(window).scroll((function(){(t("body").hasClass(h)||t("body").hasClass(f))&&e._fixScrollHeight()}))},n._fixScrollHeight=function(){var e={scroll:t(document).height(),window:t(window).height(),header:t(l).outerHeight(),footer:t(c).outerHeight()},i=Math.abs(e.window+t(window).scrollTop()-e.scroll),n=t(window).scrollTop(),s=!1,r=!1;t("body").hasClass(u)&&((t("body").hasClass(g)||t("body").hasClass(p)||t("body").hasClass(_)||t("body").hasClass(m)||t("body").hasClass(v))&&"fixed"===t(l).css("position")&&(s=!0),(t("body").hasClass(C)||t("body").hasClass(y)||t("body").hasClass(b)||t("body").hasClass(w)||t("body").hasClass(x))&&"fixed"===t(c).css("position")&&(r=!0),0===n&&0===i?(t(o).css("bottom",e.footer),t(o).css("top",e.header),t(o+", "+o+" "+a).css("height",e.window-(e.header+e.footer))):i<=e.footer?!1===r?(t(o).css("bottom",e.footer-i),t(o+", "+o+" "+a).css("height",e.window-(e.footer-i))):t(o).css("bottom",e.footer):n<=e.header?!1===s?(t(o).css("top",e.header-n),t(o+", "+o+" "+a).css("height",e.window-(e.header-n))):t(o).css("top",e.header):!1===s?(t(o).css("top",0),t(o+", "+o+" "+a).css("height",e.window)):t(o).css("top",e.header))},n._fixHeight=function(){var e=t(window).height(),i=t(l).outerHeight(),n=t(c).outerHeight();if(t("body").hasClass(u)){var s=e-i;(t("body").hasClass(C)||t("body").hasClass(y)||t("body").hasClass(b)||t("body").hasClass(w)||t("body").hasClass(x))&&"fixed"===t(c).css("position")&&(s=e-i-n),t(o+" "+a).css("height",s),"undefined"!=typeof t.fn.overlayScrollbars&&t(o+" "+a).overlayScrollbars({className:this._config.scrollbarTheme,sizeAutoCapable:!0,scrollbars:{autoHide:this._config.scrollbarAutoHide,clickScrolling:!0}})}},e._jQueryInterface=function(n){return this.each((function(){var s=t(this).data(i),o=t.extend({},E,t(this).data());if(s||(s=new e(this,o),t(this).data(i,s)),"undefined"===s[n])throw new Error(n+" is not a function");s[n]()}))},e}();return t(document).on("click",r,(function(e){e.preventDefault(),A._jQueryInterface.call(t(this),"toggle")})),t.fn[e]=A._jQueryInterface,t.fn[e].Constructor=A,t.fn[e].noConflict=function(){return t.fn[e]=n,A._jQueryInterface},A}(jQuery),i=function(t){var e="Layout",i=t.fn[e],n=".main-header",s=".main-sidebar",o=".main-sidebar .sidebar",a=".content-wrapper",r=".control-sidebar-content",l='[data-widget="control-sidebar"]',c=".main-footer",d='[data-widget="pushmenu"]',h=".login-box",f=".register-box",u="sidebar-focused",g="layout-fixed",p="control-sidebar-slide-open",_="control-sidebar-open",m={scrollbarTheme:"os-theme-light",scrollbarAutoHide:"l",panelAutoHeight:!0,loginRegisterAutoHeight:!0},v=function(){function e(t,e){this._config=e,this._element=t,this._init()}var i=e.prototype;return i.fixLayoutHeight=function(e){void 0===e&&(e=null);var i=0;(t("body").hasClass(p)||t("body").hasClass(_)||"control_sidebar"==e)&&(i=t(r).height());var s={window:t(window).height(),header:0!==t(n).length?t(n).outerHeight():0,footer:0!==t(c).length?t(c).outerHeight():0,sidebar:0!==t(o).length?t(o).height():0,control_sidebar:i},l=this._max(s),d=this._config.panelAutoHeight;!0===d&&(d=0),!1!==d&&(l==s.control_sidebar?t(a).css("min-height",l+d):l==s.window?t(a).css("min-height",l+d-s.header-s.footer):t(a).css("min-height",l+d-s.header),this._isFooterFixed()&&t(a).css("min-height",parseFloat(t(a).css("min-height"))+s.footer)),t("body").hasClass(g)&&(!1!==d&&t(a).css("min-height",l+d-s.header-s.footer),"undefined"!=typeof t.fn.overlayScrollbars&&t(o).overlayScrollbars({className:this._config.scrollbarTheme,sizeAutoCapable:!0,scrollbars:{autoHide:this._config.scrollbarAutoHide,clickScrolling:!0}}))},i.fixLoginRegisterHeight=function(){if(0===t(h+", "+f).length)t("body, html").css("height","auto");else if(0!==t(h+", "+f).length){var e=t(h+", "+f).height();t("body").css("min-height")!==e&&t("body").css("min-height",e)}},i._init=function(){var e=this;this.fixLayoutHeight(),!0===this._config.loginRegisterAutoHeight?this.fixLoginRegisterHeight():Number.isInteger(this._config.loginRegisterAutoHeight)&&setInterval(this.fixLoginRegisterHeight,this._config.loginRegisterAutoHeight),t(o).on("collapsed.lte.treeview expanded.lte.treeview",(function(){e.fixLayoutHeight()})),t(d).on("collapsed.lte.pushmenu shown.lte.pushmenu",(function(){e.fixLayoutHeight()})),t(l).on("collapsed.lte.controlsidebar",(function(){e.fixLayoutHeight()})).on("expanded.lte.controlsidebar",(function(){e.fixLayoutHeight("control_sidebar")})),t(window).resize((function(){e.fixLayoutHeight()})),setTimeout((function(){t("body.hold-transition").removeClass("hold-transition")}),50)},i._max=function(t){var e=0;return Object.keys(t).forEach((function(i){t[i]>e&&(e=t[i])})),e},i._isFooterFixed=function(){return"fixed"===t(".main-footer").css("position")},e._jQueryInterface=function(i){return void 0===i&&(i=""),this.each((function(){var n=t(this).data("lte.layout"),s=t.extend({},m,t(this).data());n||(n=new e(t(this),s),t(this).data("lte.layout",n)),"init"===i||""===i?n._init():"fixLayoutHeight"!==i&&"fixLoginRegisterHeight"!==i||n[i]()}))},e}();return t(window).on("load",(function(){v._jQueryInterface.call(t("body"))})),t(o+" a").on("focusin",(function(){t(s).addClass(u)})),t(o+" a").on("focusout",(function(){t(s).removeClass(u)})),t.fn[e]=v._jQueryInterface,t.fn[e].Constructor=v,t.fn[e].noConflict=function(){return t.fn[e]=i,v._jQueryInterface},v}(jQuery),n=function(t){var e="PushMenu",i=".lte.pushmenu",n=t.fn[e],s={COLLAPSED:"collapsed"+i,SHOWN:"shown"+i},o={autoCollapseSize:992,enableRemember:!1,noTransitionAfterReload:!0},a='[data-widget="pushmenu"]',r="body",l="#sidebar-overlay",c=".wrapper",d="sidebar-collapse",h="sidebar-open",f="sidebar-closed",u=function(){function e(e,i){this._element=e,this._options=t.extend({},o,i),t(l).length||this._addOverlay(),this._init()}var n=e.prototype;return n.expand=function(){this._options.autoCollapseSize&&t(window).width()<=this._options.autoCollapseSize&&t(r).addClass(h),t(r).removeClass(d).removeClass(f),this._options.enableRemember&&localStorage.setItem("remember"+i,h);var e=t.Event(s.SHOWN);t(this._element).trigger(e)},n.collapse=function(){this._options.autoCollapseSize&&t(window).width()<=this._options.autoCollapseSize&&t(r).removeClass(h).addClass(f),t(r).addClass(d),this._options.enableRemember&&localStorage.setItem("remember"+i,d);var e=t.Event(s.COLLAPSED);t(this._element).trigger(e)},n.toggle=function(){t(r).hasClass(d)?this.expand():this.collapse()},n.autoCollapse=function(e){void 0===e&&(e=!1),this._options.autoCollapseSize&&(t(window).width()<=this._options.autoCollapseSize?t(r).hasClass(h)||this.collapse():1==e&&(t(r).hasClass(h)?t(r).removeClass(h):t(r).hasClass(f)&&this.expand()))},n.remember=function(){this._options.enableRemember&&(localStorage.getItem("remember"+i)==d?this._options.noTransitionAfterReload?t("body").addClass("hold-transition").addClass(d).delay(50).queue((function(){t(this).removeClass("hold-transition"),t(this).dequeue()})):t("body").addClass(d):this._options.noTransitionAfterReload?t("body").addClass("hold-transition").removeClass(d).delay(50).queue((function(){t(this).removeClass("hold-transition"),t(this).dequeue()})):t("body").removeClass(d))},n._init=function(){var e=this;this.remember(),this.autoCollapse(),t(window).resize((function(){e.autoCollapse(!0)}))},n._addOverlay=function(){var e=this,i=t("
        ",{id:"sidebar-overlay"});i.on("click",(function(){e.collapse()})),t(c).append(i)},e._jQueryInterface=function(i){return this.each((function(){var n=t(this).data("lte.pushmenu"),s=t.extend({},o,t(this).data());n||(n=new e(this,s),t(this).data("lte.pushmenu",n)),"string"==typeof i&&i.match(/collapse|expand|toggle/)&&n[i]()}))},e}();return t(document).on("click",a,(function(e){e.preventDefault();var i=e.currentTarget;"pushmenu"!==t(i).data("widget")&&(i=t(i).closest(a)),u._jQueryInterface.call(t(i),"toggle")})),t(window).on("load",(function(){u._jQueryInterface.call(t(a))})),t.fn[e]=u._jQueryInterface,t.fn[e].Constructor=u,t.fn[e].noConflict=function(){return t.fn[e]=n,u._jQueryInterface},u}(jQuery),s=function(t){var e="Treeview",i=t.fn[e],n={SELECTED:"selected.lte.treeview",EXPANDED:"expanded.lte.treeview",COLLAPSED:"collapsed.lte.treeview",LOAD_DATA_API:"load.lte.treeview"},s=".nav-item",o=".nav-treeview",a=".menu-open",r='[data-widget="treeview"]',l="menu-open",c="sidebar-collapse",d={trigger:r+" "+".nav-link",animationSpeed:300,accordion:!0,expandSidebar:!1,sidebarButtonSelector:'[data-widget="pushmenu"]'},h=function(){function e(t,e){this._config=e,this._element=t}var i=e.prototype;return i.init=function(){this._setupListeners()},i.expand=function(e,i){var s=this,r=t.Event(n.EXPANDED);if(this._config.accordion){var c=i.siblings(a).first(),d=c.find(o).first();this.collapse(d,c)}e.stop().slideDown(this._config.animationSpeed,(function(){i.addClass(l),t(s._element).trigger(r)})),this._config.expandSidebar&&this._expandSidebar()},i.collapse=function(e,i){var s=this,r=t.Event(n.COLLAPSED);e.stop().slideUp(this._config.animationSpeed,(function(){i.removeClass(l),t(s._element).trigger(r),e.find(a+" > "+o).slideUp(),e.find(a).removeClass(l)}))},i.toggle=function(e){var i=t(e.currentTarget),n=i.parent(),a=n.find("> "+o);if(a.is(o)||(n.is(s)||(a=n.parent().find("> "+o)),a.is(o))){e.preventDefault();var r=i.parents(s).first();r.hasClass(l)?this.collapse(t(a),r):this.expand(t(a),r)}},i._setupListeners=function(){var e=this;t(document).on("click",this._config.trigger,(function(t){e.toggle(t)}))},i._expandSidebar=function(){t("body").hasClass(c)&&t(this._config.sidebarButtonSelector).PushMenu("expand")},e._jQueryInterface=function(i){return this.each((function(){var n=t(this).data("lte.treeview"),s=t.extend({},d,t(this).data());n||(n=new e(t(this),s),t(this).data("lte.treeview",n)),"init"===i&&n[i]()}))},e}();return t(window).on(n.LOAD_DATA_API,(function(){t(r).each((function(){h._jQueryInterface.call(t(this),"init")}))})),t.fn[e]=h._jQueryInterface,t.fn[e].Constructor=h,t.fn[e].noConflict=function(){return t.fn[e]=i,h._jQueryInterface},h}(jQuery),o=function(t){var e="DirectChat",i=t.fn[e],n="toggled{EVENT_KEY}",s='[data-widget="chat-pane-toggle"]',o=".direct-chat",a="direct-chat-contacts-open",r=function(){function e(t,e){this._element=t}return e.prototype.toggle=function(){t(this._element).parents(o).first().toggleClass(a);var e=t.Event(n);t(this._element).trigger(e)},e._jQueryInterface=function(i){return this.each((function(){var n=t(this).data("lte.directchat");n||(n=new e(t(this)),t(this).data("lte.directchat",n)),n[i]()}))},e}();return t(document).on("click",s,(function(e){e&&e.preventDefault(),r._jQueryInterface.call(t(this),"toggle")})),t.fn[e]=r._jQueryInterface,t.fn[e].Constructor=r,t.fn[e].noConflict=function(){return t.fn[e]=i,r._jQueryInterface},r}(jQuery),a=function(t){var e="TodoList",i=t.fn[e],n='[data-widget="todo-list"]',s="done",o={onCheck:function(t){return t},onUnCheck:function(t){return t}},a=function(){function e(t,e){this._config=e,this._element=t,this._init()}var i=e.prototype;return i.toggle=function(e){e.parents("li").toggleClass(s),t(e).prop("checked")?this.check(e):this.unCheck(t(e))},i.check=function(t){this._config.onCheck.call(t)},i.unCheck=function(t){this._config.onUnCheck.call(t)},i._init=function(){var e=this;t(n).find("input:checkbox:checked").parents("li").toggleClass(s),t(n).on("change","input:checkbox",(function(i){e.toggle(t(i.target))}))},e._jQueryInterface=function(i){return this.each((function(){var n=t(this).data("lte.todolist"),s=t.extend({},o,t(this).data());n||(n=new e(t(this),s),t(this).data("lte.todolist",n)),"init"===i&&n[i]()}))},e}();return t(window).on("load",(function(){a._jQueryInterface.call(t(n))})),t.fn[e]=a._jQueryInterface,t.fn[e].Constructor=a,t.fn[e].noConflict=function(){return t.fn[e]=i,a._jQueryInterface},a}(jQuery),r=function(t){var e="CardWidget",i=".lte.cardwidget",n=t.fn[e],s={EXPANDED:"expanded"+i,COLLAPSED:"collapsed"+i,MAXIMIZED:"maximized"+i,MINIMIZED:"minimized"+i,REMOVED:"removed"+i},o="card",a="collapsed-card",r="collapsing-card",l="expanding-card",c="was-collapsed",d="maximized-card",h={DATA_REMOVE:'[data-card-widget="remove"]',DATA_COLLAPSE:'[data-card-widget="collapse"]',DATA_MAXIMIZE:'[data-card-widget="maximize"]',CARD:"."+o,CARD_HEADER:".card-header",CARD_BODY:".card-body",CARD_FOOTER:".card-footer",COLLAPSED:"."+a},f={animationSpeed:"normal",collapseTrigger:h.DATA_COLLAPSE,removeTrigger:h.DATA_REMOVE,maximizeTrigger:h.DATA_MAXIMIZE,collapseIcon:"fa-minus",expandIcon:"fa-plus",maximizeIcon:"fa-expand",minimizeIcon:"fa-compress"},u=function(){function e(e,i){this._element=e,this._parent=e.parents(h.CARD).first(),e.hasClass(o)&&(this._parent=e),this._settings=t.extend({},f,i)}var i=e.prototype;return i.collapse=function(){var e=this;this._parent.addClass(r).children(h.CARD_BODY+", "+h.CARD_FOOTER).slideUp(this._settings.animationSpeed,(function(){e._parent.addClass(a).removeClass(r)})),this._parent.find("> "+h.CARD_HEADER+" "+this._settings.collapseTrigger+" ."+this._settings.collapseIcon).addClass(this._settings.expandIcon).removeClass(this._settings.collapseIcon);var i=t.Event(s.COLLAPSED);this._element.trigger(i,this._parent)},i.expand=function(){var e=this;this._parent.addClass(l).children(h.CARD_BODY+", "+h.CARD_FOOTER).slideDown(this._settings.animationSpeed,(function(){e._parent.removeClass(a).removeClass(l)})),this._parent.find("> "+h.CARD_HEADER+" "+this._settings.collapseTrigger+" ."+this._settings.expandIcon).addClass(this._settings.collapseIcon).removeClass(this._settings.expandIcon);var i=t.Event(s.EXPANDED);this._element.trigger(i,this._parent)},i.remove=function(){this._parent.slideUp();var e=t.Event(s.REMOVED);this._element.trigger(e,this._parent)},i.toggle=function(){this._parent.hasClass(a)?this.expand():this.collapse()},i.maximize=function(){this._parent.find(this._settings.maximizeTrigger+" ."+this._settings.maximizeIcon).addClass(this._settings.minimizeIcon).removeClass(this._settings.maximizeIcon),this._parent.css({height:this._parent.height(),width:this._parent.width(),transition:"all .15s"}).delay(150).queue((function(){t(this).addClass(d),t("html").addClass(d),t(this).hasClass(a)&&t(this).addClass(c),t(this).dequeue()}));var e=t.Event(s.MAXIMIZED);this._element.trigger(e,this._parent)},i.minimize=function(){this._parent.find(this._settings.maximizeTrigger+" ."+this._settings.minimizeIcon).addClass(this._settings.maximizeIcon).removeClass(this._settings.minimizeIcon),this._parent.css("cssText","height:"+this._parent[0].style.height+" !important;width:"+this._parent[0].style.width+" !important; transition: all .15s;").delay(10).queue((function(){t(this).removeClass(d),t("html").removeClass(d),t(this).css({height:"inherit",width:"inherit"}),t(this).hasClass(c)&&t(this).removeClass(c),t(this).dequeue()}));var e=t.Event(s.MINIMIZED);this._element.trigger(e,this._parent)},i.toggleMaximize=function(){this._parent.hasClass(d)?this.minimize():this.maximize()},i._init=function(e){var i=this;this._parent=e,t(this).find(this._settings.collapseTrigger).click((function(){i.toggle()})),t(this).find(this._settings.maximizeTrigger).click((function(){i.toggleMaximize()})),t(this).find(this._settings.removeTrigger).click((function(){i.remove()}))},e._jQueryInterface=function(i){var n=t(this).data("lte.cardwidget"),s=t.extend({},f,t(this).data());n||(n=new e(t(this),s),t(this).data("lte.cardwidget","string"==typeof i?n:i)),"string"==typeof i&&i.match(/collapse|expand|remove|toggle|maximize|minimize|toggleMaximize/)?n[i]():"object"==typeof i&&n._init(t(this))},e}();return t(document).on("click",h.DATA_COLLAPSE,(function(e){e&&e.preventDefault(),u._jQueryInterface.call(t(this),"toggle")})),t(document).on("click",h.DATA_REMOVE,(function(e){e&&e.preventDefault(),u._jQueryInterface.call(t(this),"remove")})),t(document).on("click",h.DATA_MAXIMIZE,(function(e){e&&e.preventDefault(),u._jQueryInterface.call(t(this),"toggleMaximize")})),t.fn[e]=u._jQueryInterface,t.fn[e].Constructor=u,t.fn[e].noConflict=function(){return t.fn[e]=n,u._jQueryInterface},u}(jQuery),l=function(t){var e="CardRefresh",i=t.fn[e],n={LOADED:"loaded.lte.cardrefresh",OVERLAY_ADDED:"overlay.added.lte.cardrefresh",OVERLAY_REMOVED:"overlay.removed.lte.cardrefresh"},s="card",o={CARD:"."+s,DATA_REFRESH:'[data-card-widget="card-refresh"]'},a={source:"",sourceSelector:"",params:{},trigger:o.DATA_REFRESH,content:".card-body",loadInContent:!0,loadOnInit:!0,responseType:"",overlayTemplate:'
        ',onLoadStart:function(){},onLoadDone:function(t){return t}},r=function(){function e(e,i){if(this._element=e,this._parent=e.parents(o.CARD).first(),this._settings=t.extend({},a,i),this._overlay=t(this._settings.overlayTemplate),e.hasClass(s)&&(this._parent=e),""===this._settings.source)throw new Error("Source url was not defined. Please specify a url in your CardRefresh source option.")}var i=e.prototype;return i.load=function(){this._addOverlay(),this._settings.onLoadStart.call(t(this)),t.get(this._settings.source,this._settings.params,function(e){this._settings.loadInContent&&(""!=this._settings.sourceSelector&&(e=t(e).find(this._settings.sourceSelector).html()),this._parent.find(this._settings.content).html(e)),this._settings.onLoadDone.call(t(this),e),this._removeOverlay()}.bind(this),""!==this._settings.responseType&&this._settings.responseType);var e=t.Event(n.LOADED);t(this._element).trigger(e)},i._addOverlay=function(){this._parent.append(this._overlay);var e=t.Event(n.OVERLAY_ADDED);t(this._element).trigger(e)},i._removeOverlay=function(){this._parent.find(this._overlay).remove();var e=t.Event(n.OVERLAY_REMOVED);t(this._element).trigger(e)},i._init=function(e){var i=this;t(this).find(this._settings.trigger).on("click",(function(){i.load()})),this._settings.loadOnInit&&this.load()},e._jQueryInterface=function(i){var n=t(this).data("lte.cardrefresh"),s=t.extend({},a,t(this).data());n||(n=new e(t(this),s),t(this).data("lte.cardrefresh","string"==typeof i?n:i)),"string"==typeof i&&i.match(/load/)?n[i]():n._init(t(this))},e}();return t(document).on("click",o.DATA_REFRESH,(function(e){e&&e.preventDefault(),r._jQueryInterface.call(t(this),"load")})),t(document).ready((function(){t(o.DATA_REFRESH).each((function(){r._jQueryInterface.call(t(this))}))})),t.fn[e]=r._jQueryInterface,t.fn[e].Constructor=r,t.fn[e].noConflict=function(){return t.fn[e]=i,r._jQueryInterface},r}(jQuery),c=function(t){var e="Dropdown",i=t.fn[e],n=".navbar",s=".dropdown-menu",o=".dropdown-menu.show",a='[data-toggle="dropdown"]',r="dropdown-menu-right",l={},c=function(){function e(t,e){this._config=e,this._element=t}var i=e.prototype;return i.toggleSubmenu=function(){this._element.siblings().show().toggleClass("show"),this._element.next().hasClass("show")||this._element.parents(".dropdown-menu").first().find(".show").removeClass("show").hide(),this._element.parents("li.nav-item.dropdown.show").on("hidden.bs.dropdown",(function(e){t(".dropdown-submenu .show").removeClass("show").hide()}))},i.fixPosition=function(){var e=t(o);if(0!==e.length){e.hasClass(r)?(e.css("left","inherit"),e.css("right",0)):(e.css("left",0),e.css("right","inherit"));var i=e.offset(),n=e.width(),s=t(window).width()-i.left;i.left<0?(e.css("left","inherit"),e.css("right",i.left-5)):s');e.data("autohide",this._config.autohide),e.data("animation",this._config.fade),this._config.class&&e.addClass(this._config.class),this._config.delay&&500!=this._config.delay&&e.data("delay",this._config.delay);var i=t('
        ');if(null!=this._config.image){var s=t("").addClass("rounded mr-2").attr("src",this._config.image).attr("alt",this._config.imageAlt);null!=this._config.imageHeight&&s.height(this._config.imageHeight).width("auto"),i.append(s)}if(null!=this._config.icon&&i.append(t("").addClass("mr-2").addClass(this._config.icon)),null!=this._config.title&&i.append(t("").addClass("mr-auto").html(this._config.title)),null!=this._config.subtitle&&i.append(t("").html(this._config.subtitle)),1==this._config.close){var o=t('").addClass(this._triggerClass).html(o?t("").attr({src:o,alt:n,title:n}):n)),e[r?"before":"after"](i.trigger),i.trigger.on("click",function(){return t.datepicker._datepickerShowing&&t.datepicker._lastInput===e[0]?t.datepicker._hideDatepicker():t.datepicker._datepickerShowing&&t.datepicker._lastInput!==e[0]?(t.datepicker._hideDatepicker(),t.datepicker._showDatepicker(e[0])):t.datepicker._showDatepicker(e[0]),!1}))},_autoSize:function(t){if(this._get(t,"autoSize")&&!t.inline){var e,i,s,n,o=new Date(2009,11,20),a=this._get(t,"dateFormat");a.match(/[DM]/)&&(e=function(t){for(i=0,s=0,n=0;t.length>n;n++)t[n].length>i&&(i=t[n].length,s=n);return s},o.setMonth(e(this._get(t,a.match(/MM/)?"monthNames":"monthNamesShort"))),o.setDate(e(this._get(t,a.match(/DD/)?"dayNames":"dayNamesShort"))+20-o.getDay())),t.input.attr("size",this._formatDate(t,o).length)}},_inlineDatepicker:function(e,i){var s=t(e);s.hasClass(this.markerClassName)||(s.addClass(this.markerClassName).append(i.dpDiv),t.data(e,"datepicker",i),this._setDate(i,this._getDefaultDate(i),!0),this._updateDatepicker(i),this._updateAlternate(i),i.settings.disabled&&this._disableDatepicker(e),i.dpDiv.css("display","block"))},_dialogDatepicker:function(e,i,s,n,o){var r,h,l,c,u,d=this._dialogInst;return d||(this.uuid+=1,r="dp"+this.uuid,this._dialogInput=t(""),this._dialogInput.on("keydown",this._doKeyDown),t("body").append(this._dialogInput),d=this._dialogInst=this._newInst(this._dialogInput,!1),d.settings={},t.data(this._dialogInput[0],"datepicker",d)),a(d.settings,n||{}),i=i&&i.constructor===Date?this._formatDate(d,i):i,this._dialogInput.val(i),this._pos=o?o.length?o:[o.pageX,o.pageY]:null,this._pos||(h=document.documentElement.clientWidth,l=document.documentElement.clientHeight,c=document.documentElement.scrollLeft||document.body.scrollLeft,u=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[h/2-100+c,l/2-150+u]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),d.settings.onSelect=s,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),t.blockUI&&t.blockUI(this.dpDiv),t.data(this._dialogInput[0],"datepicker",d),this},_destroyDatepicker:function(e){var i,s=t(e),n=t.data(e,"datepicker");s.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),t.removeData(e,"datepicker"),"input"===i?(n.append.remove(),n.trigger.remove(),s.removeClass(this.markerClassName).off("focus",this._showDatepicker).off("keydown",this._doKeyDown).off("keypress",this._doKeyPress).off("keyup",this._doKeyUp)):("div"===i||"span"===i)&&s.removeClass(this.markerClassName).empty(),m===n&&(m=null))},_enableDatepicker:function(e){var i,s,n=t(e),o=t.data(e,"datepicker");n.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),"input"===i?(e.disabled=!1,o.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().removeClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)),this._disabledInputs=t.map(this._disabledInputs,function(t){return t===e?null:t}))},_disableDatepicker:function(e){var i,s,n=t(e),o=t.data(e,"datepicker");n.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),"input"===i?(e.disabled=!0,o.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().addClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)),this._disabledInputs=t.map(this._disabledInputs,function(t){return t===e?null:t}),this._disabledInputs[this._disabledInputs.length]=e)},_isDisabledDatepicker:function(t){if(!t)return!1;for(var e=0;this._disabledInputs.length>e;e++)if(this._disabledInputs[e]===t)return!0;return!1},_getInst:function(e){try{return t.data(e,"datepicker")}catch(i){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(e,i,s){var n,o,r,h,l=this._getInst(e);return 2===arguments.length&&"string"==typeof i?"defaults"===i?t.extend({},t.datepicker._defaults):l?"all"===i?t.extend({},l.settings):this._get(l,i):null:(n=i||{},"string"==typeof i&&(n={},n[i]=s),l&&(this._curInst===l&&this._hideDatepicker(),o=this._getDateDatepicker(e,!0),r=this._getMinMaxDate(l,"min"),h=this._getMinMaxDate(l,"max"),a(l.settings,n),null!==r&&void 0!==n.dateFormat&&void 0===n.minDate&&(l.settings.minDate=this._formatDate(l,r)),null!==h&&void 0!==n.dateFormat&&void 0===n.maxDate&&(l.settings.maxDate=this._formatDate(l,h)),"disabled"in n&&(n.disabled?this._disableDatepicker(e):this._enableDatepicker(e)),this._attachments(t(e),l),this._autoSize(l),this._setDate(l,o),this._updateAlternate(l),this._updateDatepicker(l)),void 0)},_changeDatepicker:function(t,e,i){this._optionDatepicker(t,e,i)},_refreshDatepicker:function(t){var e=this._getInst(t);e&&this._updateDatepicker(e)},_setDateDatepicker:function(t,e){var i=this._getInst(t);i&&(this._setDate(i,e),this._updateDatepicker(i),this._updateAlternate(i))},_getDateDatepicker:function(t,e){var i=this._getInst(t);return i&&!i.inline&&this._setDateFromField(i,e),i?this._getDate(i):null},_doKeyDown:function(e){var i,s,n,o=t.datepicker._getInst(e.target),a=!0,r=o.dpDiv.is(".ui-datepicker-rtl");if(o._keyEvent=!0,t.datepicker._datepickerShowing)switch(e.keyCode){case 9:t.datepicker._hideDatepicker(),a=!1;break;case 13:return n=t("td."+t.datepicker._dayOverClass+":not(."+t.datepicker._currentClass+")",o.dpDiv),n[0]&&t.datepicker._selectDay(e.target,o.selectedMonth,o.selectedYear,n[0]),i=t.datepicker._get(o,"onSelect"),i?(s=t.datepicker._formatDate(o),i.apply(o.input?o.input[0]:null,[s,o])):t.datepicker._hideDatepicker(),!1;case 27:t.datepicker._hideDatepicker();break;case 33:t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(o,"stepBigMonths"):-t.datepicker._get(o,"stepMonths"),"M");break;case 34:t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(o,"stepBigMonths"):+t.datepicker._get(o,"stepMonths"),"M");break;case 35:(e.ctrlKey||e.metaKey)&&t.datepicker._clearDate(e.target),a=e.ctrlKey||e.metaKey;break;case 36:(e.ctrlKey||e.metaKey)&&t.datepicker._gotoToday(e.target),a=e.ctrlKey||e.metaKey;break;case 37:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,r?1:-1,"D"),a=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(o,"stepBigMonths"):-t.datepicker._get(o,"stepMonths"),"M");break;case 38:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,-7,"D"),a=e.ctrlKey||e.metaKey;break;case 39:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,r?-1:1,"D"),a=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(o,"stepBigMonths"):+t.datepicker._get(o,"stepMonths"),"M");break;case 40:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,7,"D"),a=e.ctrlKey||e.metaKey;break;default:a=!1}else 36===e.keyCode&&e.ctrlKey?t.datepicker._showDatepicker(this):a=!1;a&&(e.preventDefault(),e.stopPropagation())},_doKeyPress:function(e){var i,s,n=t.datepicker._getInst(e.target);return t.datepicker._get(n,"constrainInput")?(i=t.datepicker._possibleChars(t.datepicker._get(n,"dateFormat")),s=String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),e.ctrlKey||e.metaKey||" ">s||!i||i.indexOf(s)>-1):void 0},_doKeyUp:function(e){var i,s=t.datepicker._getInst(e.target);if(s.input.val()!==s.lastVal)try{i=t.datepicker.parseDate(t.datepicker._get(s,"dateFormat"),s.input?s.input.val():null,t.datepicker._getFormatConfig(s)),i&&(t.datepicker._setDateFromField(s),t.datepicker._updateAlternate(s),t.datepicker._updateDatepicker(s))}catch(n){}return!0},_showDatepicker:function(e){if(e=e.target||e,"input"!==e.nodeName.toLowerCase()&&(e=t("input",e.parentNode)[0]),!t.datepicker._isDisabledDatepicker(e)&&t.datepicker._lastInput!==e){var s,n,o,r,h,l,c;s=t.datepicker._getInst(e),t.datepicker._curInst&&t.datepicker._curInst!==s&&(t.datepicker._curInst.dpDiv.stop(!0,!0),s&&t.datepicker._datepickerShowing&&t.datepicker._hideDatepicker(t.datepicker._curInst.input[0])),n=t.datepicker._get(s,"beforeShow"),o=n?n.apply(e,[e,s]):{},o!==!1&&(a(s.settings,o),s.lastVal=null,t.datepicker._lastInput=e,t.datepicker._setDateFromField(s),t.datepicker._inDialog&&(e.value=""),t.datepicker._pos||(t.datepicker._pos=t.datepicker._findPos(e),t.datepicker._pos[1]+=e.offsetHeight),r=!1,t(e).parents().each(function(){return r|="fixed"===t(this).css("position"),!r}),h={left:t.datepicker._pos[0],top:t.datepicker._pos[1]},t.datepicker._pos=null,s.dpDiv.empty(),s.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),t.datepicker._updateDatepicker(s),h=t.datepicker._checkOffset(s,h,r),s.dpDiv.css({position:t.datepicker._inDialog&&t.blockUI?"static":r?"fixed":"absolute",display:"none",left:h.left+"px",top:h.top+"px"}),s.inline||(l=t.datepicker._get(s,"showAnim"),c=t.datepicker._get(s,"duration"),s.dpDiv.css("z-index",i(t(e))+1),t.datepicker._datepickerShowing=!0,t.effects&&t.effects.effect[l]?s.dpDiv.show(l,t.datepicker._get(s,"showOptions"),c):s.dpDiv[l||"show"](l?c:null),t.datepicker._shouldFocusInput(s)&&s.input.trigger("focus"),t.datepicker._curInst=s)) +}},_updateDatepicker:function(e){this.maxRows=4,m=e,e.dpDiv.empty().append(this._generateHTML(e)),this._attachHandlers(e);var i,s=this._getNumberOfMonths(e),n=s[1],a=17,r=e.dpDiv.find("."+this._dayOverClass+" a");r.length>0&&o.apply(r.get(0)),e.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),n>1&&e.dpDiv.addClass("ui-datepicker-multi-"+n).css("width",a*n+"em"),e.dpDiv[(1!==s[0]||1!==s[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),e.dpDiv[(this._get(e,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),e===t.datepicker._curInst&&t.datepicker._datepickerShowing&&t.datepicker._shouldFocusInput(e)&&e.input.trigger("focus"),e.yearshtml&&(i=e.yearshtml,setTimeout(function(){i===e.yearshtml&&e.yearshtml&&e.dpDiv.find("select.ui-datepicker-year:first").replaceWith(e.yearshtml),i=e.yearshtml=null},0))},_shouldFocusInput:function(t){return t.input&&t.input.is(":visible")&&!t.input.is(":disabled")&&!t.input.is(":focus")},_checkOffset:function(e,i,s){var n=e.dpDiv.outerWidth(),o=e.dpDiv.outerHeight(),a=e.input?e.input.outerWidth():0,r=e.input?e.input.outerHeight():0,h=document.documentElement.clientWidth+(s?0:t(document).scrollLeft()),l=document.documentElement.clientHeight+(s?0:t(document).scrollTop());return i.left-=this._get(e,"isRTL")?n-a:0,i.left-=s&&i.left===e.input.offset().left?t(document).scrollLeft():0,i.top-=s&&i.top===e.input.offset().top+r?t(document).scrollTop():0,i.left-=Math.min(i.left,i.left+n>h&&h>n?Math.abs(i.left+n-h):0),i.top-=Math.min(i.top,i.top+o>l&&l>o?Math.abs(o+r):0),i},_findPos:function(e){for(var i,s=this._getInst(e),n=this._get(s,"isRTL");e&&("hidden"===e.type||1!==e.nodeType||t.expr.filters.hidden(e));)e=e[n?"previousSibling":"nextSibling"];return i=t(e).offset(),[i.left,i.top]},_hideDatepicker:function(e){var i,s,n,o,a=this._curInst;!a||e&&a!==t.data(e,"datepicker")||this._datepickerShowing&&(i=this._get(a,"showAnim"),s=this._get(a,"duration"),n=function(){t.datepicker._tidyDialog(a)},t.effects&&(t.effects.effect[i]||t.effects[i])?a.dpDiv.hide(i,t.datepicker._get(a,"showOptions"),s,n):a.dpDiv["slideDown"===i?"slideUp":"fadeIn"===i?"fadeOut":"hide"](i?s:null,n),i||n(),this._datepickerShowing=!1,o=this._get(a,"onClose"),o&&o.apply(a.input?a.input[0]:null,[a.input?a.input.val():"",a]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),t.blockUI&&(t.unblockUI(),t("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(t){t.dpDiv.removeClass(this._dialogClass).off(".ui-datepicker-calendar")},_checkExternalClick:function(e){if(t.datepicker._curInst){var i=t(e.target),s=t.datepicker._getInst(i[0]);(i[0].id!==t.datepicker._mainDivId&&0===i.parents("#"+t.datepicker._mainDivId).length&&!i.hasClass(t.datepicker.markerClassName)&&!i.closest("."+t.datepicker._triggerClass).length&&t.datepicker._datepickerShowing&&(!t.datepicker._inDialog||!t.blockUI)||i.hasClass(t.datepicker.markerClassName)&&t.datepicker._curInst!==s)&&t.datepicker._hideDatepicker()}},_adjustDate:function(e,i,s){var n=t(e),o=this._getInst(n[0]);this._isDisabledDatepicker(n[0])||(this._adjustInstDate(o,i+("M"===s?this._get(o,"showCurrentAtPos"):0),s),this._updateDatepicker(o))},_gotoToday:function(e){var i,s=t(e),n=this._getInst(s[0]);this._get(n,"gotoCurrent")&&n.currentDay?(n.selectedDay=n.currentDay,n.drawMonth=n.selectedMonth=n.currentMonth,n.drawYear=n.selectedYear=n.currentYear):(i=new Date,n.selectedDay=i.getDate(),n.drawMonth=n.selectedMonth=i.getMonth(),n.drawYear=n.selectedYear=i.getFullYear()),this._notifyChange(n),this._adjustDate(s)},_selectMonthYear:function(e,i,s){var n=t(e),o=this._getInst(n[0]);o["selected"+("M"===s?"Month":"Year")]=o["draw"+("M"===s?"Month":"Year")]=parseInt(i.options[i.selectedIndex].value,10),this._notifyChange(o),this._adjustDate(n)},_selectDay:function(e,i,s,n){var o,a=t(e);t(n).hasClass(this._unselectableClass)||this._isDisabledDatepicker(a[0])||(o=this._getInst(a[0]),o.selectedDay=o.currentDay=t("a",n).html(),o.selectedMonth=o.currentMonth=i,o.selectedYear=o.currentYear=s,this._selectDate(e,this._formatDate(o,o.currentDay,o.currentMonth,o.currentYear)))},_clearDate:function(e){var i=t(e);this._selectDate(i,"")},_selectDate:function(e,i){var s,n=t(e),o=this._getInst(n[0]);i=null!=i?i:this._formatDate(o),o.input&&o.input.val(i),this._updateAlternate(o),s=this._get(o,"onSelect"),s?s.apply(o.input?o.input[0]:null,[i,o]):o.input&&o.input.trigger("change"),o.inline?this._updateDatepicker(o):(this._hideDatepicker(),this._lastInput=o.input[0],"object"!=typeof o.input[0]&&o.input.trigger("focus"),this._lastInput=null)},_updateAlternate:function(e){var i,s,n,o=this._get(e,"altField");o&&(i=this._get(e,"altFormat")||this._get(e,"dateFormat"),s=this._getDate(e),n=this.formatDate(i,s,this._getFormatConfig(e)),t(o).val(n))},noWeekends:function(t){var e=t.getDay();return[e>0&&6>e,""]},iso8601Week:function(t){var e,i=new Date(t.getTime());return i.setDate(i.getDate()+4-(i.getDay()||7)),e=i.getTime(),i.setMonth(0),i.setDate(1),Math.floor(Math.round((e-i)/864e5)/7)+1},parseDate:function(e,i,s){if(null==e||null==i)throw"Invalid arguments";if(i="object"==typeof i?""+i:i+"",""===i)return null;var n,o,a,r,h=0,l=(s?s.shortYearCutoff:null)||this._defaults.shortYearCutoff,c="string"!=typeof l?l:(new Date).getFullYear()%100+parseInt(l,10),u=(s?s.dayNamesShort:null)||this._defaults.dayNamesShort,d=(s?s.dayNames:null)||this._defaults.dayNames,p=(s?s.monthNamesShort:null)||this._defaults.monthNamesShort,f=(s?s.monthNames:null)||this._defaults.monthNames,g=-1,m=-1,_=-1,v=-1,b=!1,y=function(t){var i=e.length>n+1&&e.charAt(n+1)===t;return i&&n++,i},w=function(t){var e=y(t),s="@"===t?14:"!"===t?20:"y"===t&&e?4:"o"===t?3:2,n="y"===t?s:1,o=RegExp("^\\d{"+n+","+s+"}"),a=i.substring(h).match(o);if(!a)throw"Missing number at position "+h;return h+=a[0].length,parseInt(a[0],10)},k=function(e,s,n){var o=-1,a=t.map(y(e)?n:s,function(t,e){return[[e,t]]}).sort(function(t,e){return-(t[1].length-e[1].length)});if(t.each(a,function(t,e){var s=e[1];return i.substr(h,s.length).toLowerCase()===s.toLowerCase()?(o=e[0],h+=s.length,!1):void 0}),-1!==o)return o+1;throw"Unknown name at position "+h},x=function(){if(i.charAt(h)!==e.charAt(n))throw"Unexpected literal at position "+h;h++};for(n=0;e.length>n;n++)if(b)"'"!==e.charAt(n)||y("'")?x():b=!1;else switch(e.charAt(n)){case"d":_=w("d");break;case"D":k("D",u,d);break;case"o":v=w("o");break;case"m":m=w("m");break;case"M":m=k("M",p,f);break;case"y":g=w("y");break;case"@":r=new Date(w("@")),g=r.getFullYear(),m=r.getMonth()+1,_=r.getDate();break;case"!":r=new Date((w("!")-this._ticksTo1970)/1e4),g=r.getFullYear(),m=r.getMonth()+1,_=r.getDate();break;case"'":y("'")?x():b=!0;break;default:x()}if(i.length>h&&(a=i.substr(h),!/^\s+/.test(a)))throw"Extra/unparsed characters found in date: "+a;if(-1===g?g=(new Date).getFullYear():100>g&&(g+=(new Date).getFullYear()-(new Date).getFullYear()%100+(c>=g?0:-100)),v>-1)for(m=1,_=v;;){if(o=this._getDaysInMonth(g,m-1),o>=_)break;m++,_-=o}if(r=this._daylightSavingAdjust(new Date(g,m-1,_)),r.getFullYear()!==g||r.getMonth()+1!==m||r.getDate()!==_)throw"Invalid date";return r},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:1e7*60*60*24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925)),formatDate:function(t,e,i){if(!e)return"";var s,n=(i?i.dayNamesShort:null)||this._defaults.dayNamesShort,o=(i?i.dayNames:null)||this._defaults.dayNames,a=(i?i.monthNamesShort:null)||this._defaults.monthNamesShort,r=(i?i.monthNames:null)||this._defaults.monthNames,h=function(e){var i=t.length>s+1&&t.charAt(s+1)===e;return i&&s++,i},l=function(t,e,i){var s=""+e;if(h(t))for(;i>s.length;)s="0"+s;return s},c=function(t,e,i,s){return h(t)?s[e]:i[e]},u="",d=!1;if(e)for(s=0;t.length>s;s++)if(d)"'"!==t.charAt(s)||h("'")?u+=t.charAt(s):d=!1;else switch(t.charAt(s)){case"d":u+=l("d",e.getDate(),2);break;case"D":u+=c("D",e.getDay(),n,o);break;case"o":u+=l("o",Math.round((new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime()-new Date(e.getFullYear(),0,0).getTime())/864e5),3);break;case"m":u+=l("m",e.getMonth()+1,2);break;case"M":u+=c("M",e.getMonth(),a,r);break;case"y":u+=h("y")?e.getFullYear():(10>e.getFullYear()%100?"0":"")+e.getFullYear()%100;break;case"@":u+=e.getTime();break;case"!":u+=1e4*e.getTime()+this._ticksTo1970;break;case"'":h("'")?u+="'":d=!0;break;default:u+=t.charAt(s)}return u},_possibleChars:function(t){var e,i="",s=!1,n=function(i){var s=t.length>e+1&&t.charAt(e+1)===i;return s&&e++,s};for(e=0;t.length>e;e++)if(s)"'"!==t.charAt(e)||n("'")?i+=t.charAt(e):s=!1;else switch(t.charAt(e)){case"d":case"m":case"y":case"@":i+="0123456789";break;case"D":case"M":return null;case"'":n("'")?i+="'":s=!0;break;default:i+=t.charAt(e)}return i},_get:function(t,e){return void 0!==t.settings[e]?t.settings[e]:this._defaults[e]},_setDateFromField:function(t,e){if(t.input.val()!==t.lastVal){var i=this._get(t,"dateFormat"),s=t.lastVal=t.input?t.input.val():null,n=this._getDefaultDate(t),o=n,a=this._getFormatConfig(t);try{o=this.parseDate(i,s,a)||n}catch(r){s=e?"":s}t.selectedDay=o.getDate(),t.drawMonth=t.selectedMonth=o.getMonth(),t.drawYear=t.selectedYear=o.getFullYear(),t.currentDay=s?o.getDate():0,t.currentMonth=s?o.getMonth():0,t.currentYear=s?o.getFullYear():0,this._adjustInstDate(t)}},_getDefaultDate:function(t){return this._restrictMinMax(t,this._determineDate(t,this._get(t,"defaultDate"),new Date))},_determineDate:function(e,i,s){var n=function(t){var e=new Date;return e.setDate(e.getDate()+t),e},o=function(i){try{return t.datepicker.parseDate(t.datepicker._get(e,"dateFormat"),i,t.datepicker._getFormatConfig(e))}catch(s){}for(var n=(i.toLowerCase().match(/^c/)?t.datepicker._getDate(e):null)||new Date,o=n.getFullYear(),a=n.getMonth(),r=n.getDate(),h=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,l=h.exec(i);l;){switch(l[2]||"d"){case"d":case"D":r+=parseInt(l[1],10);break;case"w":case"W":r+=7*parseInt(l[1],10);break;case"m":case"M":a+=parseInt(l[1],10),r=Math.min(r,t.datepicker._getDaysInMonth(o,a));break;case"y":case"Y":o+=parseInt(l[1],10),r=Math.min(r,t.datepicker._getDaysInMonth(o,a))}l=h.exec(i)}return new Date(o,a,r)},a=null==i||""===i?s:"string"==typeof i?o(i):"number"==typeof i?isNaN(i)?s:n(i):new Date(i.getTime());return a=a&&"Invalid Date"==""+a?s:a,a&&(a.setHours(0),a.setMinutes(0),a.setSeconds(0),a.setMilliseconds(0)),this._daylightSavingAdjust(a)},_daylightSavingAdjust:function(t){return t?(t.setHours(t.getHours()>12?t.getHours()+2:0),t):null},_setDate:function(t,e,i){var s=!e,n=t.selectedMonth,o=t.selectedYear,a=this._restrictMinMax(t,this._determineDate(t,e,new Date));t.selectedDay=t.currentDay=a.getDate(),t.drawMonth=t.selectedMonth=t.currentMonth=a.getMonth(),t.drawYear=t.selectedYear=t.currentYear=a.getFullYear(),n===t.selectedMonth&&o===t.selectedYear||i||this._notifyChange(t),this._adjustInstDate(t),t.input&&t.input.val(s?"":this._formatDate(t))},_getDate:function(t){var e=!t.currentYear||t.input&&""===t.input.val()?null:this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return e},_attachHandlers:function(e){var i=this._get(e,"stepMonths"),s="#"+e.id.replace(/\\\\/g,"\\");e.dpDiv.find("[data-handler]").map(function(){var e={prev:function(){t.datepicker._adjustDate(s,-i,"M")},next:function(){t.datepicker._adjustDate(s,+i,"M")},hide:function(){t.datepicker._hideDatepicker()},today:function(){t.datepicker._gotoToday(s)},selectDay:function(){return t.datepicker._selectDay(s,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return t.datepicker._selectMonthYear(s,this,"M"),!1},selectYear:function(){return t.datepicker._selectMonthYear(s,this,"Y"),!1}};t(this).on(this.getAttribute("data-event"),e[this.getAttribute("data-handler")])})},_generateHTML:function(t){var e,i,s,n,o,a,r,h,l,c,u,d,p,f,g,m,_,v,b,y,w,k,x,C,D,I,T,P,M,S,H,z,O,A,N,W,E,F,L,R=new Date,B=this._daylightSavingAdjust(new Date(R.getFullYear(),R.getMonth(),R.getDate())),Y=this._get(t,"isRTL"),j=this._get(t,"showButtonPanel"),q=this._get(t,"hideIfNoPrevNext"),K=this._get(t,"navigationAsDateFormat"),U=this._getNumberOfMonths(t),V=this._get(t,"showCurrentAtPos"),$=this._get(t,"stepMonths"),X=1!==U[0]||1!==U[1],G=this._daylightSavingAdjust(t.currentDay?new Date(t.currentYear,t.currentMonth,t.currentDay):new Date(9999,9,9)),Q=this._getMinMaxDate(t,"min"),J=this._getMinMaxDate(t,"max"),Z=t.drawMonth-V,te=t.drawYear;if(0>Z&&(Z+=12,te--),J)for(e=this._daylightSavingAdjust(new Date(J.getFullYear(),J.getMonth()-U[0]*U[1]+1,J.getDate())),e=Q&&Q>e?Q:e;this._daylightSavingAdjust(new Date(te,Z,1))>e;)Z--,0>Z&&(Z=11,te--);for(t.drawMonth=Z,t.drawYear=te,i=this._get(t,"prevText"),i=K?this.formatDate(i,this._daylightSavingAdjust(new Date(te,Z-$,1)),this._getFormatConfig(t)):i,s=this._canAdjustMonth(t,-1,te,Z)?""+i+"":q?"":""+i+"",n=this._get(t,"nextText"),n=K?this.formatDate(n,this._daylightSavingAdjust(new Date(te,Z+$,1)),this._getFormatConfig(t)):n,o=this._canAdjustMonth(t,1,te,Z)?""+n+"":q?"":""+n+"",a=this._get(t,"currentText"),r=this._get(t,"gotoCurrent")&&t.currentDay?G:B,a=K?this.formatDate(a,r,this._getFormatConfig(t)):a,h=t.inline?"":"",l=j?"
        "+(Y?h:"")+(this._isInRange(t,r)?"":"")+(Y?"":h)+"
        ":"",c=parseInt(this._get(t,"firstDay"),10),c=isNaN(c)?0:c,u=this._get(t,"showWeek"),d=this._get(t,"dayNames"),p=this._get(t,"dayNamesMin"),f=this._get(t,"monthNames"),g=this._get(t,"monthNamesShort"),m=this._get(t,"beforeShowDay"),_=this._get(t,"showOtherMonths"),v=this._get(t,"selectOtherMonths"),b=this._getDefaultDate(t),y="",k=0;U[0]>k;k++){for(x="",this.maxRows=4,C=0;U[1]>C;C++){if(D=this._daylightSavingAdjust(new Date(te,Z,t.selectedDay)),I=" ui-corner-all",T="",X){if(T+="
        "}for(T+="
        "+(/all|left/.test(I)&&0===k?Y?o:s:"")+(/all|right/.test(I)&&0===k?Y?s:o:"")+this._generateMonthYearHeader(t,Z,te,Q,J,k>0||C>0,f,g)+"
        "+"",P=u?"":"",w=0;7>w;w++)M=(w+c)%7,P+="";for(T+=P+"",S=this._getDaysInMonth(te,Z),te===t.selectedYear&&Z===t.selectedMonth&&(t.selectedDay=Math.min(t.selectedDay,S)),H=(this._getFirstDayOfMonth(te,Z)-c+7)%7,z=Math.ceil((H+S)/7),O=X?this.maxRows>z?this.maxRows:z:z,this.maxRows=O,A=this._daylightSavingAdjust(new Date(te,Z,1-H)),N=0;O>N;N++){for(T+="",W=u?"":"",w=0;7>w;w++)E=m?m.apply(t.input?t.input[0]:null,[A]):[!0,""],F=A.getMonth()!==Z,L=F&&!v||!E[0]||Q&&Q>A||J&&A>J,W+="",A.setDate(A.getDate()+1),A=this._daylightSavingAdjust(A);T+=W+""}Z++,Z>11&&(Z=0,te++),T+="
        "+this._get(t,"weekHeader")+"=5?" class='ui-datepicker-week-end'":"")+">"+""+p[M]+"
        "+this._get(t,"calculateWeek")(A)+""+(F&&!_?" ":L?""+A.getDate()+"":""+A.getDate()+"")+"
        "+(X?"
        "+(U[0]>0&&C===U[1]-1?"
        ":""):""),x+=T}y+=x}return y+=l,t._keyEvent=!1,y},_generateMonthYearHeader:function(t,e,i,s,n,o,a,r){var h,l,c,u,d,p,f,g,m=this._get(t,"changeMonth"),_=this._get(t,"changeYear"),v=this._get(t,"showMonthAfterYear"),b="
        ",y="";if(o||!m)y+=""+a[e]+"";else{for(h=s&&s.getFullYear()===i,l=n&&n.getFullYear()===i,y+=""}if(v||(b+=y+(!o&&m&&_?"":" ")),!t.yearshtml)if(t.yearshtml="",o||!_)b+=""+i+"";else{for(u=this._get(t,"yearRange").split(":"),d=(new Date).getFullYear(),p=function(t){var e=t.match(/c[+\-].*/)?i+parseInt(t.substring(1),10):t.match(/[+\-].*/)?d+parseInt(t,10):parseInt(t,10);return isNaN(e)?d:e},f=p(u[0]),g=Math.max(f,p(u[1]||"")),f=s?Math.max(f,s.getFullYear()):f,g=n?Math.min(g,n.getFullYear()):g,t.yearshtml+="",b+=t.yearshtml,t.yearshtml=null}return b+=this._get(t,"yearSuffix"),v&&(b+=(!o&&m&&_?"":" ")+y),b+="
        "},_adjustInstDate:function(t,e,i){var s=t.selectedYear+("Y"===i?e:0),n=t.selectedMonth+("M"===i?e:0),o=Math.min(t.selectedDay,this._getDaysInMonth(s,n))+("D"===i?e:0),a=this._restrictMinMax(t,this._daylightSavingAdjust(new Date(s,n,o)));t.selectedDay=a.getDate(),t.drawMonth=t.selectedMonth=a.getMonth(),t.drawYear=t.selectedYear=a.getFullYear(),("M"===i||"Y"===i)&&this._notifyChange(t)},_restrictMinMax:function(t,e){var i=this._getMinMaxDate(t,"min"),s=this._getMinMaxDate(t,"max"),n=i&&i>e?i:e;return s&&n>s?s:n},_notifyChange:function(t){var e=this._get(t,"onChangeMonthYear");e&&e.apply(t.input?t.input[0]:null,[t.selectedYear,t.selectedMonth+1,t])},_getNumberOfMonths:function(t){var e=this._get(t,"numberOfMonths");return null==e?[1,1]:"number"==typeof e?[1,e]:e},_getMinMaxDate:function(t,e){return this._determineDate(t,this._get(t,e+"Date"),null)},_getDaysInMonth:function(t,e){return 32-this._daylightSavingAdjust(new Date(t,e,32)).getDate()},_getFirstDayOfMonth:function(t,e){return new Date(t,e,1).getDay()},_canAdjustMonth:function(t,e,i,s){var n=this._getNumberOfMonths(t),o=this._daylightSavingAdjust(new Date(i,s+(0>e?e:n[0]*n[1]),1));return 0>e&&o.setDate(this._getDaysInMonth(o.getFullYear(),o.getMonth())),this._isInRange(t,o)},_isInRange:function(t,e){var i,s,n=this._getMinMaxDate(t,"min"),o=this._getMinMaxDate(t,"max"),a=null,r=null,h=this._get(t,"yearRange");return h&&(i=h.split(":"),s=(new Date).getFullYear(),a=parseInt(i[0],10),r=parseInt(i[1],10),i[0].match(/[+\-].*/)&&(a+=s),i[1].match(/[+\-].*/)&&(r+=s)),(!n||e.getTime()>=n.getTime())&&(!o||e.getTime()<=o.getTime())&&(!a||e.getFullYear()>=a)&&(!r||r>=e.getFullYear())},_getFormatConfig:function(t){var e=this._get(t,"shortYearCutoff");return e="string"!=typeof e?e:(new Date).getFullYear()%100+parseInt(e,10),{shortYearCutoff:e,dayNamesShort:this._get(t,"dayNamesShort"),dayNames:this._get(t,"dayNames"),monthNamesShort:this._get(t,"monthNamesShort"),monthNames:this._get(t,"monthNames")}},_formatDate:function(t,e,i,s){e||(t.currentDay=t.selectedDay,t.currentMonth=t.selectedMonth,t.currentYear=t.selectedYear);var n=e?"object"==typeof e?e:this._daylightSavingAdjust(new Date(s,i,e)):this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return this.formatDate(this._get(t,"dateFormat"),n,this._getFormatConfig(t))}}),t.fn.datepicker=function(e){if(!this.length)return this;t.datepicker.initialized||(t(document).on("mousedown",t.datepicker._checkExternalClick),t.datepicker.initialized=!0),0===t("#"+t.datepicker._mainDivId).length&&t("body").append(t.datepicker.dpDiv);var i=Array.prototype.slice.call(arguments,1);return"string"!=typeof e||"isDisabled"!==e&&"getDate"!==e&&"widget"!==e?"option"===e&&2===arguments.length&&"string"==typeof arguments[1]?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(i)):this.each(function(){"string"==typeof e?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this].concat(i)):t.datepicker._attachDatepicker(this,e)}):t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(i))},t.datepicker=new s,t.datepicker.initialized=!1,t.datepicker.uuid=(new Date).getTime(),t.datepicker.version="1.12.1",t.datepicker,t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var _=!1;t(document).on("mouseup",function(){_=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!_){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,n="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!n&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),_=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,_=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.ui.safeBlur=function(e){e&&"body"!==e.nodeName.toLowerCase()&&t(e).trigger("blur")},t.widget("ui.draggable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this._addClass("ui-draggable"),this._setHandleClassName(),this._mouseInit()},_setOption:function(t,e){this._super(t,e),"handle"===t&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?(this.destroyOnClear=!0,void 0):(this._removeHandleClassName(),this._mouseDestroy(),void 0)},_mouseCapture:function(e){var i=this.options;return this.helper||i.disabled||t(e.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(e),this.handle?(this._blurActiveElement(e),this._blockFrames(i.iframeFix===!0?"iframe":i.iframeFix),!0):!1)},_blockFrames:function(e){this.iframeBlocks=this.document.find(e).map(function(){var e=t(this);return t("
        ").css("position","absolute").appendTo(e.parent()).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(e){var i=t.ui.safeActiveElement(this.document[0]),s=t(e.target);s.closest(i).length||t.ui.safeBlur(i)},_mouseStart:function(e){var i=this.options;return this.helper=this._createHelper(e),this._addClass(this.helper,"ui-draggable-dragging"),this._cacheHelperProportions(),t.ui.ddmanager&&(t.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return"fixed"===t(this).css("position")}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(e),this.originalPosition=this.position=this._generatePosition(e,!1),this.originalPageX=e.pageX,this.originalPageY=e.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),this._trigger("start",e)===!1?(this._clear(),!1):(this._cacheHelperProportions(),t.ui.ddmanager&&!i.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this._mouseDrag(e,!0),t.ui.ddmanager&&t.ui.ddmanager.dragStart(this,e),!0)},_refreshOffsets:function(t){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:t.pageX-this.offset.left,top:t.pageY-this.offset.top}},_mouseDrag:function(e,i){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(e,!0),this.positionAbs=this._convertPositionTo("absolute"),!i){var s=this._uiHash();if(this._trigger("drag",e,s)===!1)return this._mouseUp(new t.Event("mouseup",e)),!1;this.position=s.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),!1},_mouseStop:function(e){var i=this,s=!1;return t.ui.ddmanager&&!this.options.dropBehaviour&&(s=t.ui.ddmanager.drop(this,e)),this.dropped&&(s=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!s||"valid"===this.options.revert&&s||this.options.revert===!0||t.isFunction(this.options.revert)&&this.options.revert.call(this.element,s)?t(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){i._trigger("stop",e)!==!1&&i._clear()}):this._trigger("stop",e)!==!1&&this._clear(),!1},_mouseUp:function(e){return this._unblockFrames(),t.ui.ddmanager&&t.ui.ddmanager.dragStop(this,e),this.handleElement.is(e.target)&&this.element.trigger("focus"),t.ui.mouse.prototype._mouseUp.call(this,e)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp(new t.Event("mouseup",{target:this.element[0]})):this._clear(),this},_getHandle:function(e){return this.options.handle?!!t(e.target).closest(this.element.find(this.options.handle)).length:!0},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this._addClass(this.handleElement,"ui-draggable-handle")},_removeHandleClassName:function(){this._removeClass(this.handleElement,"ui-draggable-handle")},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper),n=s?t(i.helper.apply(this.element[0],[e])):"clone"===i.helper?this.element.clone().removeAttr("id"):this.element;return n.parents("body").length||n.appendTo("parent"===i.appendTo?this.element[0].parentNode:i.appendTo),s&&n[0]===this.element[0]&&this._setPositionRelative(),n[0]===this.element[0]||/(fixed|absolute)/.test(n.css("position"))||n.css("position","absolute"),n},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_isRootNode:function(t){return/(html|body)/i.test(t.tagName)||t===this.document[0]},_getParentOffset:function(){var e=this.offsetParent.offset(),i=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==i&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var t=this.element.position(),e=this._isRootNode(this.scrollParent[0]);return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+(e?0:this.scrollParent.scrollTop()),left:t.left-(parseInt(this.helper.css("left"),10)||0)+(e?0:this.scrollParent.scrollLeft())} +},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options,o=this.document[0];return this.relativeContainer=null,n.containment?"window"===n.containment?(this.containment=[t(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,t(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,t(window).scrollLeft()+t(window).width()-this.helperProportions.width-this.margins.left,t(window).scrollTop()+(t(window).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):"document"===n.containment?(this.containment=[0,0,t(o).width()-this.helperProportions.width-this.margins.left,(t(o).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):n.containment.constructor===Array?(this.containment=n.containment,void 0):("parent"===n.containment&&(n.containment=this.helper[0].parentNode),i=t(n.containment),s=i[0],s&&(e=/(scroll|auto)/.test(i.css("overflow")),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(e?Math.max(s.scrollWidth,s.offsetWidth):s.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(e?Math.max(s.scrollHeight,s.offsetHeight):s.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=i),void 0):(this.containment=null,void 0)},_convertPositionTo:function(t,e){e||(e=this.position);var i="absolute"===t?1:-1,s=this._isRootNode(this.scrollParent[0]);return{top:e.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.offset.scroll.top:s?0:this.offset.scroll.top)*i,left:e.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.offset.scroll.left:s?0:this.offset.scroll.left)*i}},_generatePosition:function(t,e){var i,s,n,o,a=this.options,r=this._isRootNode(this.scrollParent[0]),h=t.pageX,l=t.pageY;return r&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),e&&(this.containment&&(this.relativeContainer?(s=this.relativeContainer.offset(),i=[this.containment[0]+s.left,this.containment[1]+s.top,this.containment[2]+s.left,this.containment[3]+s.top]):i=this.containment,t.pageX-this.offset.click.lefti[2]&&(h=i[2]+this.offset.click.left),t.pageY-this.offset.click.top>i[3]&&(l=i[3]+this.offset.click.top)),a.grid&&(n=a.grid[1]?this.originalPageY+Math.round((l-this.originalPageY)/a.grid[1])*a.grid[1]:this.originalPageY,l=i?n-this.offset.click.top>=i[1]||n-this.offset.click.top>i[3]?n:n-this.offset.click.top>=i[1]?n-a.grid[1]:n+a.grid[1]:n,o=a.grid[0]?this.originalPageX+Math.round((h-this.originalPageX)/a.grid[0])*a.grid[0]:this.originalPageX,h=i?o-this.offset.click.left>=i[0]||o-this.offset.click.left>i[2]?o:o-this.offset.click.left>=i[0]?o-a.grid[0]:o+a.grid[0]:o),"y"===a.axis&&(h=this.originalPageX),"x"===a.axis&&(l=this.originalPageY)),{top:l-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:r?0:this.offset.scroll.top),left:h-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:r?0:this.offset.scroll.left)}},_clear:function(){this._removeClass(this.helper,"ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_trigger:function(e,i,s){return s=s||this._uiHash(),t.ui.plugin.call(this,e,[i,s,this],!0),/^(drag|start|stop)/.test(e)&&(this.positionAbs=this._convertPositionTo("absolute"),s.offset=this.positionAbs),t.Widget.prototype._trigger.call(this,e,i,s)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),t.ui.plugin.add("draggable","connectToSortable",{start:function(e,i,s){var n=t.extend({},i,{item:s.element});s.sortables=[],t(s.options.connectToSortable).each(function(){var i=t(this).sortable("instance");i&&!i.options.disabled&&(s.sortables.push(i),i.refreshPositions(),i._trigger("activate",e,n))})},stop:function(e,i,s){var n=t.extend({},i,{item:s.element});s.cancelHelperRemoval=!1,t.each(s.sortables,function(){var t=this;t.isOver?(t.isOver=0,s.cancelHelperRemoval=!0,t.cancelHelperRemoval=!1,t._storedCSS={position:t.placeholder.css("position"),top:t.placeholder.css("top"),left:t.placeholder.css("left")},t._mouseStop(e),t.options.helper=t.options._helper):(t.cancelHelperRemoval=!0,t._trigger("deactivate",e,n))})},drag:function(e,i,s){t.each(s.sortables,function(){var n=!1,o=this;o.positionAbs=s.positionAbs,o.helperProportions=s.helperProportions,o.offset.click=s.offset.click,o._intersectsWith(o.containerCache)&&(n=!0,t.each(s.sortables,function(){return this.positionAbs=s.positionAbs,this.helperProportions=s.helperProportions,this.offset.click=s.offset.click,this!==o&&this._intersectsWith(this.containerCache)&&t.contains(o.element[0],this.element[0])&&(n=!1),n})),n?(o.isOver||(o.isOver=1,s._parent=i.helper.parent(),o.currentItem=i.helper.appendTo(o.element).data("ui-sortable-item",!0),o.options._helper=o.options.helper,o.options.helper=function(){return i.helper[0]},e.target=o.currentItem[0],o._mouseCapture(e,!0),o._mouseStart(e,!0,!0),o.offset.click.top=s.offset.click.top,o.offset.click.left=s.offset.click.left,o.offset.parent.left-=s.offset.parent.left-o.offset.parent.left,o.offset.parent.top-=s.offset.parent.top-o.offset.parent.top,s._trigger("toSortable",e),s.dropped=o.element,t.each(s.sortables,function(){this.refreshPositions()}),s.currentItem=s.element,o.fromOutside=s),o.currentItem&&(o._mouseDrag(e),i.position=o.position)):o.isOver&&(o.isOver=0,o.cancelHelperRemoval=!0,o.options._revert=o.options.revert,o.options.revert=!1,o._trigger("out",e,o._uiHash(o)),o._mouseStop(e,!0),o.options.revert=o.options._revert,o.options.helper=o.options._helper,o.placeholder&&o.placeholder.remove(),i.helper.appendTo(s._parent),s._refreshOffsets(e),i.position=s._generatePosition(e,!0),s._trigger("fromSortable",e),s.dropped=!1,t.each(s.sortables,function(){this.refreshPositions()}))})}}),t.ui.plugin.add("draggable","cursor",{start:function(e,i,s){var n=t("body"),o=s.options;n.css("cursor")&&(o._cursor=n.css("cursor")),n.css("cursor",o.cursor)},stop:function(e,i,s){var n=s.options;n._cursor&&t("body").css("cursor",n._cursor)}}),t.ui.plugin.add("draggable","opacity",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("opacity")&&(o._opacity=n.css("opacity")),n.css("opacity",o.opacity)},stop:function(e,i,s){var n=s.options;n._opacity&&t(i.helper).css("opacity",n._opacity)}}),t.ui.plugin.add("draggable","scroll",{start:function(t,e,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&"HTML"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(e,i,s){var n=s.options,o=!1,a=s.scrollParentNotHidden[0],r=s.document[0];a!==r&&"HTML"!==a.tagName?(n.axis&&"x"===n.axis||(s.overflowOffset.top+a.offsetHeight-e.pageY=0;d--)h=s.snapElements[d].left-s.margins.left,l=h+s.snapElements[d].width,c=s.snapElements[d].top-s.margins.top,u=c+s.snapElements[d].height,h-g>_||m>l+g||c-g>b||v>u+g||!t.contains(s.snapElements[d].item.ownerDocument,s.snapElements[d].item)?(s.snapElements[d].snapping&&s.options.snap.release&&s.options.snap.release.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=!1):("inner"!==f.snapMode&&(n=g>=Math.abs(c-b),o=g>=Math.abs(u-v),a=g>=Math.abs(h-_),r=g>=Math.abs(l-m),n&&(i.position.top=s._convertPositionTo("relative",{top:c-s.helperProportions.height,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u,left:0}).top),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h-s.helperProportions.width}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l}).left)),p=n||o||a||r,"outer"!==f.snapMode&&(n=g>=Math.abs(c-v),o=g>=Math.abs(u-b),a=g>=Math.abs(h-m),r=g>=Math.abs(l-_),n&&(i.position.top=s._convertPositionTo("relative",{top:c,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u-s.helperProportions.height,left:0}).top),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l-s.helperProportions.width}).left)),!s.snapElements[d].snapping&&(n||o||a||r||p)&&s.options.snap.snap&&s.options.snap.snap.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=n||o||a||r||p)}}),t.ui.plugin.add("draggable","stack",{start:function(e,i,s){var n,o=s.options,a=t.makeArray(t(o.stack)).sort(function(e,i){return(parseInt(t(e).css("zIndex"),10)||0)-(parseInt(t(i).css("zIndex"),10)||0)});a.length&&(n=parseInt(t(a[0]).css("zIndex"),10)||0,t(a).each(function(e){t(this).css("zIndex",n+e)}),this.css("zIndex",n+a.length))}}),t.ui.plugin.add("draggable","zIndex",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("zIndex")&&(o._zIndex=n.css("zIndex")),n.css("zIndex",o.zIndex)},stop:function(e,i,s){var n=s.options;n._zIndex&&t(i.helper).css("zIndex",n._zIndex)}}),t.ui.draggable,t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
        ").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
        "),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
        "),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,g=s.maxWidth&&p>s.maxWidth,m=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),g&&(p-=l),m&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable,t.widget("ui.dialog",{version:"1.12.1",options:{appendTo:"body",autoOpen:!0,buttons:[],classes:{"ui-dialog":"ui-corner-all","ui-dialog-titlebar":"ui-corner-all"},closeOnEscape:!0,closeText:"Close",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(e){var i=t(this).css(e).offset().top;0>i&&t(this).css("top",e.top-i)}},resizable:!0,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},sizeRelatedOptions:{buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},resizableRelatedOptions:{maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),null==this.options.title&&null!=this.originalTitle&&(this.options.title=this.originalTitle),this.options.disabled&&(this.options.disabled=!1),this._createWrapper(),this.element.show().removeAttr("title").appendTo(this.uiDialog),this._addClass("ui-dialog-content","ui-widget-content"),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&t.fn.draggable&&this._makeDraggable(),this.options.resizable&&t.fn.resizable&&this._makeResizable(),this._isOpen=!1,this._trackFocus()},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var e=this.options.appendTo;return e&&(e.jquery||e.nodeType)?t(e):this.document.find(e||"body").eq(0)},_destroy:function(){var t,e=this.originalPosition;this._untrackInstance(),this._destroyOverlay(),this.element.removeUniqueId().css(this.originalCss).detach(),this.uiDialog.remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),t=e.parent.children().eq(e.index),t.length&&t[0]!==this.element[0]?t.before(this.element):e.parent.append(this.element)},widget:function(){return this.uiDialog +},disable:t.noop,enable:t.noop,close:function(e){var i=this;this._isOpen&&this._trigger("beforeClose",e)!==!1&&(this._isOpen=!1,this._focusedElement=null,this._destroyOverlay(),this._untrackInstance(),this.opener.filter(":focusable").trigger("focus").length||t.ui.safeBlur(t.ui.safeActiveElement(this.document[0])),this._hide(this.uiDialog,this.options.hide,function(){i._trigger("close",e)}))},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(e,i){var s=!1,n=this.uiDialog.siblings(".ui-front:visible").map(function(){return+t(this).css("z-index")}).get(),o=Math.max.apply(null,n);return o>=+this.uiDialog.css("z-index")&&(this.uiDialog.css("z-index",o+1),s=!0),s&&!i&&this._trigger("focus",e),s},open:function(){var e=this;return this._isOpen?(this._moveToTop()&&this._focusTabbable(),void 0):(this._isOpen=!0,this.opener=t(t.ui.safeActiveElement(this.document[0])),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this.overlay&&this.overlay.css("z-index",this.uiDialog.css("z-index")-1),this._show(this.uiDialog,this.options.show,function(){e._focusTabbable(),e._trigger("focus")}),this._makeFocusTarget(),this._trigger("open"),void 0)},_focusTabbable:function(){var t=this._focusedElement;t||(t=this.element.find("[autofocus]")),t.length||(t=this.element.find(":tabbable")),t.length||(t=this.uiDialogButtonPane.find(":tabbable")),t.length||(t=this.uiDialogTitlebarClose.filter(":tabbable")),t.length||(t=this.uiDialog),t.eq(0).trigger("focus")},_keepFocus:function(e){function i(){var e=t.ui.safeActiveElement(this.document[0]),i=this.uiDialog[0]===e||t.contains(this.uiDialog[0],e);i||this._focusTabbable()}e.preventDefault(),i.call(this),this._delay(i)},_createWrapper:function(){this.uiDialog=t("
        ").hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._addClass(this.uiDialog,"ui-dialog","ui-widget ui-widget-content ui-front"),this._on(this.uiDialog,{keydown:function(e){if(this.options.closeOnEscape&&!e.isDefaultPrevented()&&e.keyCode&&e.keyCode===t.ui.keyCode.ESCAPE)return e.preventDefault(),this.close(e),void 0;if(e.keyCode===t.ui.keyCode.TAB&&!e.isDefaultPrevented()){var i=this.uiDialog.find(":tabbable"),s=i.filter(":first"),n=i.filter(":last");e.target!==n[0]&&e.target!==this.uiDialog[0]||e.shiftKey?e.target!==s[0]&&e.target!==this.uiDialog[0]||!e.shiftKey||(this._delay(function(){n.trigger("focus")}),e.preventDefault()):(this._delay(function(){s.trigger("focus")}),e.preventDefault())}},mousedown:function(t){this._moveToTop(t)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var e;this.uiDialogTitlebar=t("
        "),this._addClass(this.uiDialogTitlebar,"ui-dialog-titlebar","ui-widget-header ui-helper-clearfix"),this._on(this.uiDialogTitlebar,{mousedown:function(e){t(e.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.trigger("focus")}}),this.uiDialogTitlebarClose=t("").button({label:t("").text(this.options.closeText).html(),icon:"ui-icon-closethick",showLabel:!1}).appendTo(this.uiDialogTitlebar),this._addClass(this.uiDialogTitlebarClose,"ui-dialog-titlebar-close"),this._on(this.uiDialogTitlebarClose,{click:function(t){t.preventDefault(),this.close(t)}}),e=t("").uniqueId().prependTo(this.uiDialogTitlebar),this._addClass(e,"ui-dialog-title"),this._title(e),this.uiDialogTitlebar.prependTo(this.uiDialog),this.uiDialog.attr({"aria-labelledby":e.attr("id")})},_title:function(t){this.options.title?t.text(this.options.title):t.html(" ")},_createButtonPane:function(){this.uiDialogButtonPane=t("
        "),this._addClass(this.uiDialogButtonPane,"ui-dialog-buttonpane","ui-widget-content ui-helper-clearfix"),this.uiButtonSet=t("
        ").appendTo(this.uiDialogButtonPane),this._addClass(this.uiButtonSet,"ui-dialog-buttonset"),this._createButtons()},_createButtons:function(){var e=this,i=this.options.buttons;return this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),t.isEmptyObject(i)||t.isArray(i)&&!i.length?(this._removeClass(this.uiDialog,"ui-dialog-buttons"),void 0):(t.each(i,function(i,s){var n,o;s=t.isFunction(s)?{click:s,text:i}:s,s=t.extend({type:"button"},s),n=s.click,o={icon:s.icon,iconPosition:s.iconPosition,showLabel:s.showLabel,icons:s.icons,text:s.text},delete s.click,delete s.icon,delete s.iconPosition,delete s.showLabel,delete s.icons,"boolean"==typeof s.text&&delete s.text,t("",s).button(o).appendTo(e.uiButtonSet).on("click",function(){n.apply(e.element[0],arguments)})}),this._addClass(this.uiDialog,"ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog),void 0)},_makeDraggable:function(){function e(t){return{position:t.position,offset:t.offset}}var i=this,s=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(s,n){i._addClass(t(this),"ui-dialog-dragging"),i._blockFrames(),i._trigger("dragStart",s,e(n))},drag:function(t,s){i._trigger("drag",t,e(s))},stop:function(n,o){var a=o.offset.left-i.document.scrollLeft(),r=o.offset.top-i.document.scrollTop();s.position={my:"left top",at:"left"+(a>=0?"+":"")+a+" "+"top"+(r>=0?"+":"")+r,of:i.window},i._removeClass(t(this),"ui-dialog-dragging"),i._unblockFrames(),i._trigger("dragStop",n,e(o))}})},_makeResizable:function(){function e(t){return{originalPosition:t.originalPosition,originalSize:t.originalSize,position:t.position,size:t.size}}var i=this,s=this.options,n=s.resizable,o=this.uiDialog.css("position"),a="string"==typeof n?n:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:s.maxWidth,maxHeight:s.maxHeight,minWidth:s.minWidth,minHeight:this._minHeight(),handles:a,start:function(s,n){i._addClass(t(this),"ui-dialog-resizing"),i._blockFrames(),i._trigger("resizeStart",s,e(n))},resize:function(t,s){i._trigger("resize",t,e(s))},stop:function(n,o){var a=i.uiDialog.offset(),r=a.left-i.document.scrollLeft(),h=a.top-i.document.scrollTop();s.height=i.uiDialog.height(),s.width=i.uiDialog.width(),s.position={my:"left top",at:"left"+(r>=0?"+":"")+r+" "+"top"+(h>=0?"+":"")+h,of:i.window},i._removeClass(t(this),"ui-dialog-resizing"),i._unblockFrames(),i._trigger("resizeStop",n,e(o))}}).css("position",o)},_trackFocus:function(){this._on(this.widget(),{focusin:function(e){this._makeFocusTarget(),this._focusedElement=t(e.target)}})},_makeFocusTarget:function(){this._untrackInstance(),this._trackingInstances().unshift(this)},_untrackInstance:function(){var e=this._trackingInstances(),i=t.inArray(this,e);-1!==i&&e.splice(i,1)},_trackingInstances:function(){var t=this.document.data("ui-dialog-instances");return t||(t=[],this.document.data("ui-dialog-instances",t)),t},_minHeight:function(){var t=this.options;return"auto"===t.height?t.minHeight:Math.min(t.minHeight,t.height)},_position:function(){var t=this.uiDialog.is(":visible");t||this.uiDialog.show(),this.uiDialog.position(this.options.position),t||this.uiDialog.hide()},_setOptions:function(e){var i=this,s=!1,n={};t.each(e,function(t,e){i._setOption(t,e),t in i.sizeRelatedOptions&&(s=!0),t in i.resizableRelatedOptions&&(n[t]=e)}),s&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",n)},_setOption:function(e,i){var s,n,o=this.uiDialog;"disabled"!==e&&(this._super(e,i),"appendTo"===e&&this.uiDialog.appendTo(this._appendTo()),"buttons"===e&&this._createButtons(),"closeText"===e&&this.uiDialogTitlebarClose.button({label:t("").text(""+this.options.closeText).html()}),"draggable"===e&&(s=o.is(":data(ui-draggable)"),s&&!i&&o.draggable("destroy"),!s&&i&&this._makeDraggable()),"position"===e&&this._position(),"resizable"===e&&(n=o.is(":data(ui-resizable)"),n&&!i&&o.resizable("destroy"),n&&"string"==typeof i&&o.resizable("option","handles",i),n||i===!1||this._makeResizable()),"title"===e&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))},_size:function(){var t,e,i,s=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),s.minWidth>s.width&&(s.width=s.minWidth),t=this.uiDialog.css({height:"auto",width:s.width}).outerHeight(),e=Math.max(0,s.minHeight-t),i="number"==typeof s.maxHeight?Math.max(0,s.maxHeight-t):"none","auto"===s.height?this.element.css({minHeight:e,maxHeight:i,height:"auto"}):this.element.height(Math.max(0,s.height-t)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var e=t(this);return t("
        ").css({position:"absolute",width:e.outerWidth(),height:e.outerHeight()}).appendTo(e.parent()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(e){return t(e.target).closest(".ui-dialog").length?!0:!!t(e.target).closest(".ui-datepicker").length},_createOverlay:function(){if(this.options.modal){var e=!0;this._delay(function(){e=!1}),this.document.data("ui-dialog-overlays")||this._on(this.document,{focusin:function(t){e||this._allowInteraction(t)||(t.preventDefault(),this._trackingInstances()[0]._focusTabbable())}}),this.overlay=t("
        ").appendTo(this._appendTo()),this._addClass(this.overlay,null,"ui-widget-overlay ui-front"),this._on(this.overlay,{mousedown:"_keepFocus"}),this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1)}},_destroyOverlay:function(){if(this.options.modal&&this.overlay){var t=this.document.data("ui-dialog-overlays")-1;t?this.document.data("ui-dialog-overlays",t):(this._off(this.document,"focusin"),this.document.removeData("ui-dialog-overlays")),this.overlay.remove(),this.overlay=null}}}),t.uiBackCompat!==!1&&t.widget("ui.dialog",t.ui.dialog,{options:{dialogClass:""},_createWrapper:function(){this._super(),this.uiDialog.addClass(this.options.dialogClass)},_setOption:function(t,e){"dialogClass"===t&&this.uiDialog.removeClass(this.options.dialogClass).addClass(e),this._superApply(arguments)}}),t.ui.dialog,t.widget("ui.droppable",{version:"1.12.1",widgetEventPrefix:"drop",options:{accept:"*",addClasses:!0,greedy:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var e,i=this.options,s=i.accept;this.isover=!1,this.isout=!0,this.accept=t.isFunction(s)?s:function(t){return t.is(s)},this.proportions=function(){return arguments.length?(e=arguments[0],void 0):e?e:e={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight}},this._addToManager(i.scope),i.addClasses&&this._addClass("ui-droppable")},_addToManager:function(e){t.ui.ddmanager.droppables[e]=t.ui.ddmanager.droppables[e]||[],t.ui.ddmanager.droppables[e].push(this)},_splice:function(t){for(var e=0;t.length>e;e++)t[e]===this&&t.splice(e,1)},_destroy:function(){var e=t.ui.ddmanager.droppables[this.options.scope];this._splice(e)},_setOption:function(e,i){if("accept"===e)this.accept=t.isFunction(i)?i:function(t){return t.is(i)};else if("scope"===e){var s=t.ui.ddmanager.droppables[this.options.scope];this._splice(s),this._addToManager(i)}this._super(e,i)},_activate:function(e){var i=t.ui.ddmanager.current;this._addActiveClass(),i&&this._trigger("activate",e,this.ui(i))},_deactivate:function(e){var i=t.ui.ddmanager.current;this._removeActiveClass(),i&&this._trigger("deactivate",e,this.ui(i))},_over:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this._addHoverClass(),this._trigger("over",e,this.ui(i)))},_out:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this._removeHoverClass(),this._trigger("out",e,this.ui(i)))},_drop:function(e,i){var s=i||t.ui.ddmanager.current,n=!1;return s&&(s.currentItem||s.element)[0]!==this.element[0]?(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var i=t(this).droppable("instance");return i.options.greedy&&!i.options.disabled&&i.options.scope===s.options.scope&&i.accept.call(i.element[0],s.currentItem||s.element)&&v(s,t.extend(i,{offset:i.element.offset()}),i.options.tolerance,e)?(n=!0,!1):void 0}),n?!1:this.accept.call(this.element[0],s.currentItem||s.element)?(this._removeActiveClass(),this._removeHoverClass(),this._trigger("drop",e,this.ui(s)),this.element):!1):!1},ui:function(t){return{draggable:t.currentItem||t.element,helper:t.helper,position:t.position,offset:t.positionAbs}},_addHoverClass:function(){this._addClass("ui-droppable-hover")},_removeHoverClass:function(){this._removeClass("ui-droppable-hover")},_addActiveClass:function(){this._addClass("ui-droppable-active")},_removeActiveClass:function(){this._removeClass("ui-droppable-active")}});var v=t.ui.intersect=function(){function t(t,e,i){return t>=e&&e+i>t}return function(e,i,s,n){if(!i.offset)return!1;var o=(e.positionAbs||e.position.absolute).left+e.margins.left,a=(e.positionAbs||e.position.absolute).top+e.margins.top,r=o+e.helperProportions.width,h=a+e.helperProportions.height,l=i.offset.left,c=i.offset.top,u=l+i.proportions().width,d=c+i.proportions().height;switch(s){case"fit":return o>=l&&u>=r&&a>=c&&d>=h;case"intersect":return o+e.helperProportions.width/2>l&&u>r-e.helperProportions.width/2&&a+e.helperProportions.height/2>c&&d>h-e.helperProportions.height/2;case"pointer":return t(n.pageY,c,i.proportions().height)&&t(n.pageX,l,i.proportions().width);case"touch":return(a>=c&&d>=a||h>=c&&d>=h||c>a&&h>d)&&(o>=l&&u>=o||r>=l&&u>=r||l>o&&r>u);default:return!1}}}();t.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(e,i){var s,n,o=t.ui.ddmanager.droppables[e.options.scope]||[],a=i?i.type:null,r=(e.currentItem||e.element).find(":data(ui-droppable)").addBack();t:for(s=0;o.length>s;s++)if(!(o[s].options.disabled||e&&!o[s].accept.call(o[s].element[0],e.currentItem||e.element))){for(n=0;r.length>n;n++)if(r[n]===o[s].element[0]){o[s].proportions().height=0;continue t}o[s].visible="none"!==o[s].element.css("display"),o[s].visible&&("mousedown"===a&&o[s]._activate.call(o[s],i),o[s].offset=o[s].element.offset(),o[s].proportions({width:o[s].element[0].offsetWidth,height:o[s].element[0].offsetHeight}))}},drop:function(e,i){var s=!1;return t.each((t.ui.ddmanager.droppables[e.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&v(e,this,this.options.tolerance,i)&&(s=this._drop.call(this,i)||s),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],e.currentItem||e.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,i)))}),s},dragStart:function(e,i){e.element.parentsUntil("body").on("scroll.droppable",function(){e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)})},drag:function(e,i){e.options.refreshPositions&&t.ui.ddmanager.prepareOffsets(e,i),t.each(t.ui.ddmanager.droppables[e.options.scope]||[],function(){if(!this.options.disabled&&!this.greedyChild&&this.visible){var s,n,o,a=v(e,this,this.options.tolerance,i),r=!a&&this.isover?"isout":a&&!this.isover?"isover":null;r&&(this.options.greedy&&(n=this.options.scope,o=this.element.parents(":data(ui-droppable)").filter(function(){return t(this).droppable("instance").options.scope===n}),o.length&&(s=t(o[0]).droppable("instance"),s.greedyChild="isover"===r)),s&&"isover"===r&&(s.isover=!1,s.isout=!0,s._out.call(s,i)),this[r]=!0,this["isout"===r?"isover":"isout"]=!1,this["isover"===r?"_over":"_out"].call(this,i),s&&"isout"===r&&(s.isout=!1,s.isover=!0,s._over.call(s,i)))}})},dragStop:function(e,i){e.element.parentsUntil("body").off("scroll.droppable"),e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)}},t.uiBackCompat!==!1&&t.widget("ui.droppable",t.ui.droppable,{options:{hoverClass:!1,activeClass:!1},_addActiveClass:function(){this._super(),this.options.activeClass&&this.element.addClass(this.options.activeClass)},_removeActiveClass:function(){this._super(),this.options.activeClass&&this.element.removeClass(this.options.activeClass)},_addHoverClass:function(){this._super(),this.options.hoverClass&&this.element.addClass(this.options.hoverClass)},_removeHoverClass:function(){this._super(),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass)}}),t.ui.droppable,t.widget("ui.progressbar",{version:"1.12.1",options:{classes:{"ui-progressbar":"ui-corner-all","ui-progressbar-value":"ui-corner-left","ui-progressbar-complete":"ui-corner-right"},max:100,value:0,change:null,complete:null},min:0,_create:function(){this.oldValue=this.options.value=this._constrainedValue(),this.element.attr({role:"progressbar","aria-valuemin":this.min}),this._addClass("ui-progressbar","ui-widget ui-widget-content"),this.valueDiv=t("
        ").appendTo(this.element),this._addClass(this.valueDiv,"ui-progressbar-value","ui-widget-header"),this._refreshValue()},_destroy:function(){this.element.removeAttr("role aria-valuemin aria-valuemax aria-valuenow"),this.valueDiv.remove()},value:function(t){return void 0===t?this.options.value:(this.options.value=this._constrainedValue(t),this._refreshValue(),void 0)},_constrainedValue:function(t){return void 0===t&&(t=this.options.value),this.indeterminate=t===!1,"number"!=typeof t&&(t=0),this.indeterminate?!1:Math.min(this.options.max,Math.max(this.min,t))},_setOptions:function(t){var e=t.value;delete t.value,this._super(t),this.options.value=this._constrainedValue(e),this._refreshValue()},_setOption:function(t,e){"max"===t&&(e=Math.max(this.min,e)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var e=this.options.value,i=this._percentage();this.valueDiv.toggle(this.indeterminate||e>this.min).width(i.toFixed(0)+"%"),this._toggleClass(this.valueDiv,"ui-progressbar-complete",null,e===this.options.max)._toggleClass("ui-progressbar-indeterminate",null,this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=t("
        ").appendTo(this.valueDiv),this._addClass(this.overlayDiv,"ui-progressbar-overlay"))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":e}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==e&&(this.oldValue=e,this._trigger("change")),e===this.options.max&&this._trigger("complete")}}),t.widget("ui.selectable",t.ui.mouse,{version:"1.12.1",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var e=this;this._addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){e.elementPos=t(e.element[0]).offset(),e.selectees=t(e.options.filter,e.element[0]),e._addClass(e.selectees,"ui-selectee"),e.selectees.each(function(){var i=t(this),s=i.offset(),n={left:s.left-e.elementPos.left,top:s.top-e.elementPos.top};t.data(this,"selectable-item",{element:this,$element:i,left:n.left,top:n.top,right:n.left+i.outerWidth(),bottom:n.top+i.outerHeight(),startselected:!1,selected:i.hasClass("ui-selected"),selecting:i.hasClass("ui-selecting"),unselecting:i.hasClass("ui-unselecting")})})},this.refresh(),this._mouseInit(),this.helper=t("
        "),this._addClass(this.helper,"ui-selectable-helper")},_destroy:function(){this.selectees.removeData("selectable-item"),this._mouseDestroy()},_mouseStart:function(e){var i=this,s=this.options;this.opos=[e.pageX,e.pageY],this.elementPos=t(this.element[0]).offset(),this.options.disabled||(this.selectees=t(s.filter,this.element[0]),this._trigger("start",e),t(s.appendTo).append(this.helper),this.helper.css({left:e.pageX,top:e.pageY,width:0,height:0}),s.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var s=t.data(this,"selectable-item");s.startselected=!0,e.metaKey||e.ctrlKey||(i._removeClass(s.$element,"ui-selected"),s.selected=!1,i._addClass(s.$element,"ui-unselecting"),s.unselecting=!0,i._trigger("unselecting",e,{unselecting:s.element}))}),t(e.target).parents().addBack().each(function(){var s,n=t.data(this,"selectable-item");return n?(s=!e.metaKey&&!e.ctrlKey||!n.$element.hasClass("ui-selected"),i._removeClass(n.$element,s?"ui-unselecting":"ui-selected")._addClass(n.$element,s?"ui-selecting":"ui-unselecting"),n.unselecting=!s,n.selecting=s,n.selected=s,s?i._trigger("selecting",e,{selecting:n.element}):i._trigger("unselecting",e,{unselecting:n.element}),!1):void 0}))},_mouseDrag:function(e){if(this.dragged=!0,!this.options.disabled){var i,s=this,n=this.options,o=this.opos[0],a=this.opos[1],r=e.pageX,h=e.pageY;return o>r&&(i=r,r=o,o=i),a>h&&(i=h,h=a,a=i),this.helper.css({left:o,top:a,width:r-o,height:h-a}),this.selectees.each(function(){var i=t.data(this,"selectable-item"),l=!1,c={};i&&i.element!==s.element[0]&&(c.left=i.left+s.elementPos.left,c.right=i.right+s.elementPos.left,c.top=i.top+s.elementPos.top,c.bottom=i.bottom+s.elementPos.top,"touch"===n.tolerance?l=!(c.left>r||o>c.right||c.top>h||a>c.bottom):"fit"===n.tolerance&&(l=c.left>o&&r>c.right&&c.top>a&&h>c.bottom),l?(i.selected&&(s._removeClass(i.$element,"ui-selected"),i.selected=!1),i.unselecting&&(s._removeClass(i.$element,"ui-unselecting"),i.unselecting=!1),i.selecting||(s._addClass(i.$element,"ui-selecting"),i.selecting=!0,s._trigger("selecting",e,{selecting:i.element}))):(i.selecting&&((e.metaKey||e.ctrlKey)&&i.startselected?(s._removeClass(i.$element,"ui-selecting"),i.selecting=!1,s._addClass(i.$element,"ui-selected"),i.selected=!0):(s._removeClass(i.$element,"ui-selecting"),i.selecting=!1,i.startselected&&(s._addClass(i.$element,"ui-unselecting"),i.unselecting=!0),s._trigger("unselecting",e,{unselecting:i.element}))),i.selected&&(e.metaKey||e.ctrlKey||i.startselected||(s._removeClass(i.$element,"ui-selected"),i.selected=!1,s._addClass(i.$element,"ui-unselecting"),i.unselecting=!0,s._trigger("unselecting",e,{unselecting:i.element})))))}),!1}},_mouseStop:function(e){var i=this;return this.dragged=!1,t(".ui-unselecting",this.element[0]).each(function(){var s=t.data(this,"selectable-item");i._removeClass(s.$element,"ui-unselecting"),s.unselecting=!1,s.startselected=!1,i._trigger("unselected",e,{unselected:s.element})}),t(".ui-selecting",this.element[0]).each(function(){var s=t.data(this,"selectable-item");i._removeClass(s.$element,"ui-selecting")._addClass(s.$element,"ui-selected"),s.selecting=!1,s.selected=!0,s.startselected=!0,i._trigger("selected",e,{selected:s.element})}),this._trigger("stop",e),this.helper.remove(),!1}}),t.widget("ui.selectmenu",[t.ui.formResetMixin,{version:"1.12.1",defaultElement:"",widgetEventPrefix:"spin",options:{classes:{"ui-spinner":"ui-corner-all","ui-spinner-down":"ui-corner-br","ui-spinner-up":"ui-corner-tr"},culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),""!==this.value()&&this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var e=this._super(),i=this.element;return t.each(["min","max","step"],function(t,s){var n=i.attr(s);null!=n&&n.length&&(e[s]=n)}),e},_events:{keydown:function(t){this._start(t)&&this._keydown(t)&&t.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(this._stop(),this._refresh(),this.previous!==this.element.val()&&this._trigger("change",t),void 0)},mousewheel:function(t,e){if(e){if(!this.spinning&&!this._start(t))return!1;this._spin((e>0?1:-1)*this.options.step,t),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(t)},100),t.preventDefault()}},"mousedown .ui-spinner-button":function(e){function i(){var e=this.element[0]===t.ui.safeActiveElement(this.document[0]);e||(this.element.trigger("focus"),this.previous=s,this._delay(function(){this.previous=s}))}var s;s=this.element[0]===t.ui.safeActiveElement(this.document[0])?this.previous:this.element.val(),e.preventDefault(),i.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,i.call(this)}),this._start(e)!==!1&&this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(e){return t(e.currentTarget).hasClass("ui-state-active")?this._start(e)===!1?!1:(this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e),void 0):void 0},"mouseleave .ui-spinner-button":"_stop"},_enhance:function(){this.uiSpinner=this.element.attr("autocomplete","off").wrap("").parent().append("")},_draw:function(){this._enhance(),this._addClass(this.uiSpinner,"ui-spinner","ui-widget ui-widget-content"),this._addClass("ui-spinner-input"),this.element.attr("role","spinbutton"),this.buttons=this.uiSpinner.children("a").attr("tabIndex",-1).attr("aria-hidden",!0).button({classes:{"ui-button":""}}),this._removeClass(this.buttons,"ui-corner-all"),this._addClass(this.buttons.first(),"ui-spinner-button ui-spinner-up"),this._addClass(this.buttons.last(),"ui-spinner-button ui-spinner-down"),this.buttons.first().button({icon:this.options.icons.up,showLabel:!1}),this.buttons.last().button({icon:this.options.icons.down,showLabel:!1}),this.buttons.height()>Math.ceil(.5*this.uiSpinner.height())&&this.uiSpinner.height()>0&&this.uiSpinner.height(this.uiSpinner.height())},_keydown:function(e){var i=this.options,s=t.ui.keyCode;switch(e.keyCode){case s.UP:return this._repeat(null,1,e),!0;case s.DOWN:return this._repeat(null,-1,e),!0;case s.PAGE_UP:return this._repeat(null,i.page,e),!0;case s.PAGE_DOWN:return this._repeat(null,-i.page,e),!0}return!1},_start:function(t){return this.spinning||this._trigger("start",t)!==!1?(this.counter||(this.counter=1),this.spinning=!0,!0):!1},_repeat:function(t,e,i){t=t||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,e,i)},t),this._spin(e*this.options.step,i)},_spin:function(t,e){var i=this.value()||0;this.counter||(this.counter=1),i=this._adjustValue(i+t*this._increment(this.counter)),this.spinning&&this._trigger("spin",e,{value:i})===!1||(this._value(i),this.counter++)},_increment:function(e){var i=this.options.incremental;return i?t.isFunction(i)?i(e):Math.floor(e*e*e/5e4-e*e/500+17*e/200+1):1},_precision:function(){var t=this._precisionOf(this.options.step);return null!==this.options.min&&(t=Math.max(t,this._precisionOf(this.options.min))),t},_precisionOf:function(t){var e=""+t,i=e.indexOf(".");return-1===i?0:e.length-i-1},_adjustValue:function(t){var e,i,s=this.options;return e=null!==s.min?s.min:0,i=t-e,i=Math.round(i/s.step)*s.step,t=e+i,t=parseFloat(t.toFixed(this._precision())),null!==s.max&&t>s.max?s.max:null!==s.min&&s.min>t?s.min:t},_stop:function(t){this.spinning&&(clearTimeout(this.timer),clearTimeout(this.mousewheelTimer),this.counter=0,this.spinning=!1,this._trigger("stop",t))},_setOption:function(t,e){var i,s,n;return"culture"===t||"numberFormat"===t?(i=this._parse(this.element.val()),this.options[t]=e,this.element.val(this._format(i)),void 0):(("max"===t||"min"===t||"step"===t)&&"string"==typeof e&&(e=this._parse(e)),"icons"===t&&(s=this.buttons.first().find(".ui-icon"),this._removeClass(s,null,this.options.icons.up),this._addClass(s,null,e.up),n=this.buttons.last().find(".ui-icon"),this._removeClass(n,null,this.options.icons.down),this._addClass(n,null,e.down)),this._super(t,e),void 0)},_setOptionDisabled:function(t){this._super(t),this._toggleClass(this.uiSpinner,null,"ui-state-disabled",!!t),this.element.prop("disabled",!!t),this.buttons.button(t?"disable":"enable")},_setOptions:r(function(t){this._super(t)}),_parse:function(t){return"string"==typeof t&&""!==t&&(t=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(t,10,this.options.culture):+t),""===t||isNaN(t)?null:t},_format:function(t){return""===t?"":window.Globalize&&this.options.numberFormat?Globalize.format(t,this.options.numberFormat,this.options.culture):t},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,"aria-valuenow":this._parse(this.element.val())})},isValid:function(){var t=this.value();return null===t?!1:t===this._adjustValue(t)},_value:function(t,e){var i;""!==t&&(i=this._parse(t),null!==i&&(e||(i=this._adjustValue(i)),t=this._format(i))),this.element.val(t),this._refresh()},_destroy:function(){this.element.prop("disabled",!1).removeAttr("autocomplete role aria-valuemin aria-valuemax aria-valuenow"),this.uiSpinner.replaceWith(this.element)},stepUp:r(function(t){this._stepUp(t)}),_stepUp:function(t){this._start()&&(this._spin((t||1)*this.options.step),this._stop())},stepDown:r(function(t){this._stepDown(t)}),_stepDown:function(t){this._start()&&(this._spin((t||1)*-this.options.step),this._stop())},pageUp:r(function(t){this._stepUp((t||1)*this.options.page)}),pageDown:r(function(t){this._stepDown((t||1)*this.options.page)}),value:function(t){return arguments.length?(r(this._value).call(this,t),void 0):this._parse(this.element.val())},widget:function(){return this.uiSpinner}}),t.uiBackCompat!==!1&&t.widget("ui.spinner",t.ui.spinner,{_enhance:function(){this.uiSpinner=this.element.attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml())},_uiSpinnerHtml:function(){return""},_buttonHtml:function(){return""}}),t.ui.spinner,t.widget("ui.tabs",{version:"1.12.1",delay:300,options:{active:null,classes:{"ui-tabs":"ui-corner-all","ui-tabs-nav":"ui-corner-all","ui-tabs-panel":"ui-corner-bottom","ui-tabs-tab":"ui-corner-top"},collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_isLocal:function(){var t=/#.*$/;return function(e){var i,s;i=e.href.replace(t,""),s=location.href.replace(t,"");try{i=decodeURIComponent(i)}catch(n){}try{s=decodeURIComponent(s)}catch(n){}return e.hash.length>1&&i===s}}(),_create:function(){var e=this,i=this.options;this.running=!1,this._addClass("ui-tabs","ui-widget ui-widget-content"),this._toggleClass("ui-tabs-collapsible",null,i.collapsible),this._processTabs(),i.active=this._initialActive(),t.isArray(i.disabled)&&(i.disabled=t.unique(i.disabled.concat(t.map(this.tabs.filter(".ui-state-disabled"),function(t){return e.tabs.index(t)}))).sort()),this.active=this.options.active!==!1&&this.anchors.length?this._findActive(i.active):t(),this._refresh(),this.active.length&&this.load(i.active)},_initialActive:function(){var e=this.options.active,i=this.options.collapsible,s=location.hash.substring(1);return null===e&&(s&&this.tabs.each(function(i,n){return t(n).attr("aria-controls")===s?(e=i,!1):void 0}),null===e&&(e=this.tabs.index(this.tabs.filter(".ui-tabs-active"))),(null===e||-1===e)&&(e=this.tabs.length?0:!1)),e!==!1&&(e=this.tabs.index(this.tabs.eq(e)),-1===e&&(e=i?!1:0)),!i&&e===!1&&this.anchors.length&&(e=0),e},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):t()}},_tabKeydown:function(e){var i=t(t.ui.safeActiveElement(this.document[0])).closest("li"),s=this.tabs.index(i),n=!0;if(!this._handlePageNav(e)){switch(e.keyCode){case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:s++;break;case t.ui.keyCode.UP:case t.ui.keyCode.LEFT:n=!1,s--;break;case t.ui.keyCode.END:s=this.anchors.length-1;break;case t.ui.keyCode.HOME:s=0;break;case t.ui.keyCode.SPACE:return e.preventDefault(),clearTimeout(this.activating),this._activate(s),void 0;case t.ui.keyCode.ENTER:return e.preventDefault(),clearTimeout(this.activating),this._activate(s===this.options.active?!1:s),void 0;default:return}e.preventDefault(),clearTimeout(this.activating),s=this._focusNextTab(s,n),e.ctrlKey||e.metaKey||(i.attr("aria-selected","false"),this.tabs.eq(s).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",s)},this.delay))}},_panelKeydown:function(e){this._handlePageNav(e)||e.ctrlKey&&e.keyCode===t.ui.keyCode.UP&&(e.preventDefault(),this.active.trigger("focus"))},_handlePageNav:function(e){return e.altKey&&e.keyCode===t.ui.keyCode.PAGE_UP?(this._activate(this._focusNextTab(this.options.active-1,!1)),!0):e.altKey&&e.keyCode===t.ui.keyCode.PAGE_DOWN?(this._activate(this._focusNextTab(this.options.active+1,!0)),!0):void 0},_findNextTab:function(e,i){function s(){return e>n&&(e=0),0>e&&(e=n),e}for(var n=this.tabs.length-1;-1!==t.inArray(s(),this.options.disabled);)e=i?e+1:e-1;return e},_focusNextTab:function(t,e){return t=this._findNextTab(t,e),this.tabs.eq(t).trigger("focus"),t},_setOption:function(t,e){return"active"===t?(this._activate(e),void 0):(this._super(t,e),"collapsible"===t&&(this._toggleClass("ui-tabs-collapsible",null,e),e||this.options.active!==!1||this._activate(0)),"event"===t&&this._setupEvents(e),"heightStyle"===t&&this._setupHeightStyle(e),void 0)},_sanitizeSelector:function(t){return t?t.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var e=this.options,i=this.tablist.children(":has(a[href])");e.disabled=t.map(i.filter(".ui-state-disabled"),function(t){return i.index(t)}),this._processTabs(),e.active!==!1&&this.anchors.length?this.active.length&&!t.contains(this.tablist[0],this.active[0])?this.tabs.length===e.disabled.length?(e.active=!1,this.active=t()):this._activate(this._findNextTab(Math.max(0,e.active-1),!1)):e.active=this.tabs.index(this.active):(e.active=!1,this.active=t()),this._refresh()},_refresh:function(){this._setOptionDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-hidden":"true"}),this.active.length?(this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}),this._addClass(this.active,"ui-tabs-active","ui-state-active"),this._getPanelForTab(this.active).show().attr({"aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var e=this,i=this.tabs,s=this.anchors,n=this.panels;this.tablist=this._getList().attr("role","tablist"),this._addClass(this.tablist,"ui-tabs-nav","ui-helper-reset ui-helper-clearfix ui-widget-header"),this.tablist.on("mousedown"+this.eventNamespace,"> li",function(e){t(this).is(".ui-state-disabled")&&e.preventDefault()}).on("focus"+this.eventNamespace,".ui-tabs-anchor",function(){t(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this.tabs=this.tablist.find("> li:has(a[href])").attr({role:"tab",tabIndex:-1}),this._addClass(this.tabs,"ui-tabs-tab","ui-state-default"),this.anchors=this.tabs.map(function(){return t("a",this)[0]}).attr({role:"presentation",tabIndex:-1}),this._addClass(this.anchors,"ui-tabs-anchor"),this.panels=t(),this.anchors.each(function(i,s){var n,o,a,r=t(s).uniqueId().attr("id"),h=t(s).closest("li"),l=h.attr("aria-controls");e._isLocal(s)?(n=s.hash,a=n.substring(1),o=e.element.find(e._sanitizeSelector(n))):(a=h.attr("aria-controls")||t({}).uniqueId()[0].id,n="#"+a,o=e.element.find(n),o.length||(o=e._createPanel(a),o.insertAfter(e.panels[i-1]||e.tablist)),o.attr("aria-live","polite")),o.length&&(e.panels=e.panels.add(o)),l&&h.data("ui-tabs-aria-controls",l),h.attr({"aria-controls":a,"aria-labelledby":r}),o.attr("aria-labelledby",r)}),this.panels.attr("role","tabpanel"),this._addClass(this.panels,"ui-tabs-panel","ui-widget-content"),i&&(this._off(i.not(this.tabs)),this._off(s.not(this.anchors)),this._off(n.not(this.panels)))},_getList:function(){return this.tablist||this.element.find("ol, ul").eq(0)},_createPanel:function(e){return t("
        ").attr("id",e).data("ui-tabs-destroy",!0)},_setOptionDisabled:function(e){var i,s,n;for(t.isArray(e)&&(e.length?e.length===this.anchors.length&&(e=!0):e=!1),n=0;s=this.tabs[n];n++)i=t(s),e===!0||-1!==t.inArray(n,e)?(i.attr("aria-disabled","true"),this._addClass(i,null,"ui-state-disabled")):(i.removeAttr("aria-disabled"),this._removeClass(i,null,"ui-state-disabled"));this.options.disabled=e,this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,e===!0)},_setupEvents:function(e){var i={};e&&t.each(e.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(!0,this.anchors,{click:function(t){t.preventDefault()}}),this._on(this.anchors,i),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(e){var i,s=this.element.parent();"fill"===e?(i=s.height(),i-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var e=t(this),s=e.css("position");"absolute"!==s&&"fixed"!==s&&(i-=e.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){i-=t(this).outerHeight(!0)}),this.panels.each(function(){t(this).height(Math.max(0,i-t(this).innerHeight()+t(this).height()))}).css("overflow","auto")):"auto"===e&&(i=0,this.panels.each(function(){i=Math.max(i,t(this).height("").height())}).height(i))},_eventHandler:function(e){var i=this.options,s=this.active,n=t(e.currentTarget),o=n.closest("li"),a=o[0]===s[0],r=a&&i.collapsible,h=r?t():this._getPanelForTab(o),l=s.length?this._getPanelForTab(s):t(),c={oldTab:s,oldPanel:l,newTab:r?t():o,newPanel:h};e.preventDefault(),o.hasClass("ui-state-disabled")||o.hasClass("ui-tabs-loading")||this.running||a&&!i.collapsible||this._trigger("beforeActivate",e,c)===!1||(i.active=r?!1:this.tabs.index(o),this.active=a?t():o,this.xhr&&this.xhr.abort(),l.length||h.length||t.error("jQuery UI Tabs: Mismatching fragment identifier."),h.length&&this.load(this.tabs.index(o),e),this._toggle(e,c))},_toggle:function(e,i){function s(){o.running=!1,o._trigger("activate",e,i)}function n(){o._addClass(i.newTab.closest("li"),"ui-tabs-active","ui-state-active"),a.length&&o.options.show?o._show(a,o.options.show,s):(a.show(),s())}var o=this,a=i.newPanel,r=i.oldPanel;this.running=!0,r.length&&this.options.hide?this._hide(r,this.options.hide,function(){o._removeClass(i.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),n()}):(this._removeClass(i.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),r.hide(),n()),r.attr("aria-hidden","true"),i.oldTab.attr({"aria-selected":"false","aria-expanded":"false"}),a.length&&r.length?i.oldTab.attr("tabIndex",-1):a.length&&this.tabs.filter(function(){return 0===t(this).attr("tabIndex")}).attr("tabIndex",-1),a.attr("aria-hidden","false"),i.newTab.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_activate:function(e){var i,s=this._findActive(e);s[0]!==this.active[0]&&(s.length||(s=this.active),i=s.find(".ui-tabs-anchor")[0],this._eventHandler({target:i,currentTarget:i,preventDefault:t.noop}))},_findActive:function(e){return e===!1?t():this.tabs.eq(e)},_getIndex:function(e){return"string"==typeof e&&(e=this.anchors.index(this.anchors.filter("[href$='"+t.ui.escapeSelector(e)+"']"))),e},_destroy:function(){this.xhr&&this.xhr.abort(),this.tablist.removeAttr("role").off(this.eventNamespace),this.anchors.removeAttr("role tabIndex").removeUniqueId(),this.tabs.add(this.panels).each(function(){t.data(this,"ui-tabs-destroy")?t(this).remove():t(this).removeAttr("role tabIndex aria-live aria-busy aria-selected aria-labelledby aria-hidden aria-expanded")}),this.tabs.each(function(){var e=t(this),i=e.data("ui-tabs-aria-controls");i?e.attr("aria-controls",i).removeData("ui-tabs-aria-controls"):e.removeAttr("aria-controls")}),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(e){var i=this.options.disabled;i!==!1&&(void 0===e?i=!1:(e=this._getIndex(e),i=t.isArray(i)?t.map(i,function(t){return t!==e?t:null}):t.map(this.tabs,function(t,i){return i!==e?i:null})),this._setOptionDisabled(i))},disable:function(e){var i=this.options.disabled;if(i!==!0){if(void 0===e)i=!0;else{if(e=this._getIndex(e),-1!==t.inArray(e,i))return;i=t.isArray(i)?t.merge([e],i).sort():[e]}this._setOptionDisabled(i)}},load:function(e,i){e=this._getIndex(e);var s=this,n=this.tabs.eq(e),o=n.find(".ui-tabs-anchor"),a=this._getPanelForTab(n),r={tab:n,panel:a},h=function(t,e){"abort"===e&&s.panels.stop(!1,!0),s._removeClass(n,"ui-tabs-loading"),a.removeAttr("aria-busy"),t===s.xhr&&delete s.xhr};this._isLocal(o[0])||(this.xhr=t.ajax(this._ajaxSettings(o,i,r)),this.xhr&&"canceled"!==this.xhr.statusText&&(this._addClass(n,"ui-tabs-loading"),a.attr("aria-busy","true"),this.xhr.done(function(t,e,n){setTimeout(function(){a.html(t),s._trigger("load",i,r),h(n,e)},1)}).fail(function(t,e){setTimeout(function(){h(t,e)},1)})))},_ajaxSettings:function(e,i,s){var n=this;return{url:e.attr("href").replace(/#.*$/,""),beforeSend:function(e,o){return n._trigger("beforeLoad",i,t.extend({jqXHR:e,ajaxSettings:o},s))}}},_getPanelForTab:function(e){var i=t(e).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+i))}}),t.uiBackCompat!==!1&&t.widget("ui.tabs",t.ui.tabs,{_processTabs:function(){this._superApply(arguments),this._addClass(this.tabs,"ui-tab")}}),t.ui.tabs,t.widget("ui.tooltip",{version:"1.12.1",options:{classes:{"ui-tooltip":"ui-corner-all ui-widget-shadow"},content:function(){var e=t(this).attr("title")||"";return t("").text(e).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,track:!1,close:null,open:null},_addDescribedBy:function(e,i){var s=(e.attr("aria-describedby")||"").split(/\s+/);s.push(i),e.data("ui-tooltip-id",i).attr("aria-describedby",t.trim(s.join(" ")))},_removeDescribedBy:function(e){var i=e.data("ui-tooltip-id"),s=(e.attr("aria-describedby")||"").split(/\s+/),n=t.inArray(i,s);-1!==n&&s.splice(n,1),e.removeData("ui-tooltip-id"),s=t.trim(s.join(" ")),s?e.attr("aria-describedby",s):e.removeAttr("aria-describedby")},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.liveRegion=t("
        ").attr({role:"log","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this.disabledTitles=t([])},_setOption:function(e,i){var s=this;this._super(e,i),"content"===e&&t.each(this.tooltips,function(t,e){s._updateContent(e.element)})},_setOptionDisabled:function(t){this[t?"_disable":"_enable"]()},_disable:function(){var e=this;t.each(this.tooltips,function(i,s){var n=t.Event("blur");n.target=n.currentTarget=s.element[0],e.close(n,!0)}),this.disabledTitles=this.disabledTitles.add(this.element.find(this.options.items).addBack().filter(function(){var e=t(this);return e.is("[title]")?e.data("ui-tooltip-title",e.attr("title")).removeAttr("title"):void 0}))},_enable:function(){this.disabledTitles.each(function(){var e=t(this);e.data("ui-tooltip-title")&&e.attr("title",e.data("ui-tooltip-title"))}),this.disabledTitles=t([])},open:function(e){var i=this,s=t(e?e.target:this.element).closest(this.options.items);s.length&&!s.data("ui-tooltip-id")&&(s.attr("title")&&s.data("ui-tooltip-title",s.attr("title")),s.data("ui-tooltip-open",!0),e&&"mouseover"===e.type&&s.parents().each(function(){var e,s=t(this);s.data("ui-tooltip-open")&&(e=t.Event("blur"),e.target=e.currentTarget=this,i.close(e,!0)),s.attr("title")&&(s.uniqueId(),i.parents[this.id]={element:this,title:s.attr("title")},s.attr("title",""))}),this._registerCloseHandlers(e,s),this._updateContent(s,e))},_updateContent:function(t,e){var i,s=this.options.content,n=this,o=e?e.type:null;return"string"==typeof s||s.nodeType||s.jquery?this._open(e,t,s):(i=s.call(t[0],function(i){n._delay(function(){t.data("ui-tooltip-open")&&(e&&(e.type=o),this._open(e,t,i))})}),i&&this._open(e,t,i),void 0)},_open:function(e,i,s){function n(t){l.of=t,a.is(":hidden")||a.position(l)}var o,a,r,h,l=t.extend({},this.options.position);if(s){if(o=this._find(i))return o.tooltip.find(".ui-tooltip-content").html(s),void 0;i.is("[title]")&&(e&&"mouseover"===e.type?i.attr("title",""):i.removeAttr("title")),o=this._tooltip(i),a=o.tooltip,this._addDescribedBy(i,a.attr("id")),a.find(".ui-tooltip-content").html(s),this.liveRegion.children().hide(),h=t("
        ").html(a.find(".ui-tooltip-content").html()),h.removeAttr("name").find("[name]").removeAttr("name"),h.removeAttr("id").find("[id]").removeAttr("id"),h.appendTo(this.liveRegion),this.options.track&&e&&/^mouse/.test(e.type)?(this._on(this.document,{mousemove:n}),n(e)):a.position(t.extend({of:i},this.options.position)),a.hide(),this._show(a,this.options.show),this.options.track&&this.options.show&&this.options.show.delay&&(r=this.delayedShow=setInterval(function(){a.is(":visible")&&(n(l.of),clearInterval(r))},t.fx.interval)),this._trigger("open",e,{tooltip:a})}},_registerCloseHandlers:function(e,i){var s={keyup:function(e){if(e.keyCode===t.ui.keyCode.ESCAPE){var s=t.Event(e);s.currentTarget=i[0],this.close(s,!0)}}};i[0]!==this.element[0]&&(s.remove=function(){this._removeTooltip(this._find(i).tooltip)}),e&&"mouseover"!==e.type||(s.mouseleave="close"),e&&"focusin"!==e.type||(s.focusout="close"),this._on(!0,i,s)},close:function(e){var i,s=this,n=t(e?e.currentTarget:this.element),o=this._find(n);return o?(i=o.tooltip,o.closing||(clearInterval(this.delayedShow),n.data("ui-tooltip-title")&&!n.attr("title")&&n.attr("title",n.data("ui-tooltip-title")),this._removeDescribedBy(n),o.hiding=!0,i.stop(!0),this._hide(i,this.options.hide,function(){s._removeTooltip(t(this))}),n.removeData("ui-tooltip-open"),this._off(n,"mouseleave focusout keyup"),n[0]!==this.element[0]&&this._off(n,"remove"),this._off(this.document,"mousemove"),e&&"mouseleave"===e.type&&t.each(this.parents,function(e,i){t(i.element).attr("title",i.title),delete s.parents[e]}),o.closing=!0,this._trigger("close",e,{tooltip:i}),o.hiding||(o.closing=!1)),void 0):(n.removeData("ui-tooltip-open"),void 0)},_tooltip:function(e){var i=t("
        ").attr("role","tooltip"),s=t("
        ").appendTo(i),n=i.uniqueId().attr("id");return this._addClass(s,"ui-tooltip-content"),this._addClass(i,"ui-tooltip","ui-widget ui-widget-content"),i.appendTo(this._appendTo(e)),this.tooltips[n]={element:e,tooltip:i}},_find:function(t){var e=t.data("ui-tooltip-id");return e?this.tooltips[e]:null},_removeTooltip:function(t){t.remove(),delete this.tooltips[t.attr("id")]},_appendTo:function(t){var e=t.closest(".ui-front, dialog");return e.length||(e=this.document[0].body),e},_destroy:function(){var e=this;t.each(this.tooltips,function(i,s){var n=t.Event("blur"),o=s.element;n.target=n.currentTarget=o[0],e.close(n,!0),t("#"+i).remove(),o.data("ui-tooltip-title")&&(o.attr("title")||o.attr("title",o.data("ui-tooltip-title")),o.removeData("ui-tooltip-title"))}),this.liveRegion.remove()}}),t.uiBackCompat!==!1&&t.widget("ui.tooltip",t.ui.tooltip,{options:{tooltipClass:null},_tooltip:function(){var t=this._superApply(arguments);return this.options.tooltipClass&&t.tooltip.addClass(this.options.tooltipClass),t}}),t.ui.tooltip}); \ No newline at end of file diff --git a/system/resources/js/jquery.min.js b/system/resources/js/jquery.min.js new file mode 100644 index 0000000..dad7cf0 --- /dev/null +++ b/system/resources/js/jquery.min.js @@ -0,0 +1,5 @@ +/*! jQuery v1.12.5-pre | (c) jQuery Foundation | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=a.document,e=c.slice,f=c.concat,g=c.push,h=c.indexOf,i={},j=i.toString,k=i.hasOwnProperty,l={},m="1.12.5-pre e09907ce152fb6ef7537a3733b1d65ead8ee6303",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return e.call(this)},get:function(a){return null!=a?a<0?this[a+this.length]:this[a]:e.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a){return n.each(this,a)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(e.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;try{if(a.constructor&&!k.call(a,"constructor")&&!k.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(!l.ownFirst)for(b in a)return k.call(a,b);for(b in a);return void 0===b||k.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?i[j.call(a)]||"object":typeof a},globalEval:function(b){b&&n.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(s(a)){for(c=a.length;d0&&b-1 in a)}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ga(),z=ga(),A=ga(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;c+~]|"+L+")"+L+"*"),T=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),U=new RegExp(O),V=new RegExp("^"+M+"$"),W={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},X=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,$=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_=/[+~]/,aa=/'|\\/g,ba=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),ca=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},da=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(ea){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fa(a,b,d,e){var f,h,j,k,l,o,r,s,w=b&&b.ownerDocument,x=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==x&&9!==x&&11!==x)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==x&&(o=$.exec(a)))if(f=o[1]){if(9===x){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(w&&(j=w.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(o[2])return H.apply(d,b.getElementsByTagName(a)),d;if((f=o[3])&&c.getElementsByClassName&&b.getElementsByClassName)return H.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==x)w=b,s=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(aa,"\\$&"):b.setAttribute("id",k=u),r=g(a),h=r.length,l=V.test(k)?"#"+k:"[id='"+k+"']";while(h--)r[h]=l+" "+qa(r[h]);s=r.join(","),w=_.test(a)&&oa(b.parentNode)||b}if(s)try{return H.apply(d,w.querySelectorAll(s)),d}catch(y){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(Q,"$1"),b,d,e)}function ga(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ha(a){return a[u]=!0,a}function ia(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ja(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function ka(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function la(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function na(a){return ha(function(b){return b=+b,ha(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function oa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=fa.support={},f=fa.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=fa.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ia(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ia(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Z.test(n.getElementsByClassName),c.getById=ia(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Z.test(n.querySelectorAll))&&(ia(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ia(function(a){var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Z.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ia(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",O)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Z.test(o.compareDocumentPosition),t=b||Z.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return ka(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?ka(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},fa.matches=function(a,b){return fa(a,null,null,b)},fa.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(T,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fa(b,n,null,[a]).length>0},fa.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fa.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fa.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fa.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fa.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fa.selectors={cacheLength:50,createPseudo:ha,match:W,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ba,ca),a[3]=(a[3]||a[4]||a[5]||"").replace(ba,ca),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fa.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fa.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return W.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&U.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ba,ca).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fa.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(P," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fa.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ha(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ha(function(a){var b=[],c=[],d=h(a.replace(Q,"$1"));return d[u]?ha(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ha(function(a){return function(b){return fa(a,b).length>0}}),contains:ha(function(a){return a=a.replace(ba,ca),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ha(function(a){return V.test(a||"")||fa.error("unsupported lang: "+a),a=a.replace(ba,ca).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Y.test(a.nodeName)},input:function(a){return X.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:na(function(){return[0]}),last:na(function(a,b){return[b-1]}),eq:na(function(a,b,c){return[c<0?c+b:c]}),even:na(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:na(function(a,b,c){for(var d=c<0?c+b:c;++d1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ta(a,b,c){for(var d=0,e=b.length;d-1&&(f[j]=!(g[j]=l))}}else r=ua(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function wa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ra(function(a){return a===b},h,!0),l=ra(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i1&&sa(m),i>1&&qa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(Q,"$1"),c,i0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=F.call(i));u=ua(u)}H.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&fa.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ha(f):f}return h=fa.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xa(e,d)),f.selector=a}return f},i=fa.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ba,ca),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=W.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ba,ca),_.test(j[0].type)&&oa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qa(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||_.test(a)&&oa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ia(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ia(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ja("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ia(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ja("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ia(function(a){return null==a.getAttribute("disabled")})||ja(K,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fa}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.uniqueSort=n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},v=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},w=n.expr.match.needsContext,x=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,y=/^.[^:#\[\.,]*$/;function z(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(y.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return n.inArray(a,b)>-1!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;b1?n.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(z(this,a||[],!1))},not:function(a){return this.pushStack(z(this,a||[],!0))},is:function(a){return!!z(this,"string"==typeof a&&w.test(a)?n(a):a||[],!1).length}});var A,B=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=n.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||A,"string"==typeof a){if(e="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:B.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),x.test(e[1])&&n.isPlainObject(b))for(e in b)n.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}if(f=d.getElementById(e[2]),f&&f.parentNode){if(f.id!==e[2])return A.find(a);this.length=1,this[0]=f}return this.context=d,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof c.ready?c.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};C.prototype=n.fn,A=n(d);var D=/^(?:parents|prev(?:Until|All))/,E={children:!0,contents:!0,next:!0,prev:!0};n.fn.extend({has:function(a){var b,c=n(a,this),d=c.length;return this.filter(function(){for(b=0;b-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?n.inArray(this[0],n(a)):n.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.uniqueSort(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function F(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return u(a,"parentNode")},parentsUntil:function(a,b,c){return u(a,"parentNode",c)},next:function(a){return F(a,"nextSibling")},prev:function(a){return F(a,"previousSibling")},nextAll:function(a){return u(a,"nextSibling")},prevAll:function(a){return u(a,"previousSibling")},nextUntil:function(a,b,c){return u(a,"nextSibling",c)},prevUntil:function(a,b,c){return u(a,"previousSibling",c)},siblings:function(a){return v((a.parentNode||{}).firstChild,a)},children:function(a){return v(a.firstChild)},contents:function(a){return n.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(E[a]||(e=n.uniqueSort(e)),D.test(a)&&(e=e.reverse())),this.pushStack(e)}});var G=/\S+/g;function H(a){var b={};return n.each(a.match(G)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?H(a):n.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?n.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=!0,c||j.disable(),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().progress(c.notify).done(c.resolve).fail(c.reject):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=e.call(arguments),d=c.length,f=1!==d||a&&n.isFunction(a.promise)?d:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?e.call(arguments):d,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(d>1)for(i=new Array(d),j=new Array(d),k=new Array(d);b0||(I.resolveWith(d,[n]),n.fn.triggerHandler&&(n(d).triggerHandler("ready"),n(d).off("ready"))))}});function J(){d.addEventListener?(d.removeEventListener("DOMContentLoaded",K),a.removeEventListener("load",K)):(d.detachEvent("onreadystatechange",K),a.detachEvent("onload",K))}function K(){(d.addEventListener||"load"===a.event.type||"complete"===d.readyState)&&(J(),n.ready())}n.ready.promise=function(b){if(!I)if(I=n.Deferred(),"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll)a.setTimeout(n.ready);else if(d.addEventListener)d.addEventListener("DOMContentLoaded",K),a.addEventListener("load",K);else{d.attachEvent("onreadystatechange",K),a.attachEvent("onload",K);var c=!1;try{c=null==a.frameElement&&d.documentElement}catch(e){}c&&c.doScroll&&!function f(){if(!n.isReady){try{c.doScroll("left")}catch(b){return a.setTimeout(f,50)}J(),n.ready()}}()}return I.promise(b)},n.ready.promise();var L;for(L in n(l))break;l.ownFirst="0"===L,l.inlineBlockNeedsLayout=!1,n(function(){var a,b,c,e;c=d.getElementsByTagName("body")[0],c&&c.style&&(b=d.createElement("div"),e=d.createElement("div"),e.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(e).appendChild(b),"undefined"!=typeof b.style.zoom&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",l.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(e))}),function(){var a=d.createElement("div");l.deleteExpando=!0;try{delete a.test}catch(b){l.deleteExpando=!1}a=null}();var M=function(a){var b=n.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return(1===c||9===c)&&(!b||b!==!0&&a.getAttribute("classid")===b)},N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(O,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c||"false"!==c&&("null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c)}catch(e){} +n.data(a,b,c)}else c=void 0}return c}function Q(a){var b;for(b in a)if(("data"!==b||!n.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function R(a,b,d,e){if(M(a)){var f,g,h=n.expando,i=a.nodeType,j=i?n.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||n.guid++:h),j[k]||(j[k]=i?{}:{toJSON:n.noop}),"object"!=typeof b&&"function"!=typeof b||(e?j[k]=n.extend(j[k],b):j[k].data=n.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[n.camelCase(b)])):f=g,f}}function S(a,b,c){if(M(a)){var d,e,f=a.nodeType,g=f?n.cache:a,h=f?a[n.expando]:n.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){n.isArray(b)?b=b.concat(n.map(b,n.camelCase)):b in d?b=[b]:(b=n.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!Q(d):!n.isEmptyObject(d))return}(c||(delete g[h].data,Q(g[h])))&&(f?n.cleanData([a],!0):l.deleteExpando||g!=g.window?delete g[h]:g[h]=void 0)}}}n.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?n.cache[a[n.expando]]:a[n.expando],!!a&&!Q(a)},data:function(a,b,c){return R(a,b,c)},removeData:function(a,b){return S(a,b)},_data:function(a,b,c){return R(a,b,c,!0)},_removeData:function(a,b){return S(a,b,!0)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=n.data(f),1===f.nodeType&&!n._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));n._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){n.data(this,a)}):arguments.length>1?this.each(function(){n.data(this,a,b)}):f?P(f,a,n.data(f,a)):void 0},removeData:function(a){return this.each(function(){n.removeData(this,a)})}}),n.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=n._data(a,b),c&&(!d||n.isArray(c)?d=n._data(a,b,n.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return n._data(a,c)||n._data(a,c,{empty:n.Callbacks("once memory").add(function(){n._removeData(a,b+"queue"),n._removeData(a,c)})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length
        a",l.leadingWhitespace=3===a.firstChild.nodeType,l.tbody=!a.getElementsByTagName("tbody").length,l.htmlSerialize=!!a.getElementsByTagName("link").length,l.html5Clone="<:nav>"!==d.createElement("nav").cloneNode(!0).outerHTML,c.type="checkbox",c.checked=!0,b.appendChild(c),l.appendChecked=c.checked,a.innerHTML="",l.noCloneChecked=!!a.cloneNode(!0).lastChild.defaultValue,b.appendChild(a),c=d.createElement("input"),c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),a.appendChild(c),l.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,l.noCloneEvent=!!a.addEventListener,a[n.expando]=1,l.attributes=!a.getAttribute(n.expando)}();var da={option:[1,""],legend:[1,"
        ","
        "],area:[1,"",""],param:[1,"",""],thead:[1,"","
        "],tr:[2,"","
        "],col:[2,"","
        "],td:[3,"","
        "],_default:l.htmlSerialize?[0,"",""]:[1,"X
        ","
        "]};da.optgroup=da.option,da.tbody=da.tfoot=da.colgroup=da.caption=da.thead,da.th=da.td;function ea(a,b){var c,d,e=0,f="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||n.nodeName(d,b)?f.push(d):n.merge(f,ea(d,b));return void 0===b||b&&n.nodeName(a,b)?n.merge([a],f):f}function fa(a,b){for(var c,d=0;null!=(c=a[d]);d++)n._data(c,"globalEval",!b||n._data(b[d],"globalEval"))}var ga=/<|&#?\w+;/,ha=/"!==m[1]||ha.test(g)?0:i:i.firstChild,f=g&&g.childNodes.length;while(f--)n.nodeName(k=g.childNodes[f],"tbody")&&!k.childNodes.length&&g.removeChild(k)}n.merge(q,i.childNodes),i.textContent="";while(i.firstChild)i.removeChild(i.firstChild);i=p.lastChild}else q.push(b.createTextNode(g));i&&p.removeChild(i),l.appendChecked||n.grep(ea(q,"input"),ia),r=0;while(g=q[r++])if(d&&n.inArray(g,d)>-1)e&&e.push(g);else if(h=n.contains(g.ownerDocument,g),i=ea(p.appendChild(g),"script"),h&&fa(i),c){f=0;while(g=i[f++])_.test(g.type||"")&&c.push(g)}return i=null,p}!function(){var b,c,e=d.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(l[b]=c in a)||(e.setAttribute(c,"t"),l[b]=e.attributes[c].expando===!1);e=null}();var ka=/^(?:input|select|textarea)$/i,la=/^key/,ma=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,na=/^(?:focusinfocus|focusoutblur)$/,oa=/^([^.]*)(?:\.(.+)|)/;function pa(){return!0}function qa(){return!1}function ra(){try{return d.activeElement}catch(a){}}function sa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)sa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=qa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return n().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=n.guid++)),a.each(function(){n.event.add(this,b,e,d,c)})}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=n.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return"undefined"==typeof n||a&&n.event.triggered===a.type?void 0:n.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(G)||[""],h=b.length;while(h--)f=oa.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=n.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=n.event.special[o]||{},l=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},i),(m=g[o])||(m=g[o]=[],m.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,l):m.push(l),n.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n.hasData(a)&&n._data(a);if(r&&(k=r.events)){b=(b||"").match(G)||[""],j=b.length;while(j--)if(h=oa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m.length;while(f--)g=m[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(m.splice(f,1),g.selector&&m.delegateCount--,l.remove&&l.remove.call(a,g));i&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(k)&&(delete r.handle,n._removeData(a,"events"))}},trigger:function(b,c,e,f){var g,h,i,j,l,m,o,p=[e||d],q=k.call(b,"type")?b.type:b,r=k.call(b,"namespace")?b.namespace.split("."):[];if(i=m=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!na.test(q+n.event.triggered)&&(q.indexOf(".")>-1&&(r=q.split("."),q=r.shift(),r.sort()),h=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=r.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:n.makeArray(c,[b]),l=n.event.special[q]||{},f||!l.trigger||l.trigger.apply(e,c)!==!1)){if(!f&&!l.noBubble&&!n.isWindow(e)){for(j=l.delegateType||q,na.test(j+q)||(i=i.parentNode);i;i=i.parentNode)p.push(i),m=i;m===(e.ownerDocument||d)&&p.push(m.defaultView||m.parentWindow||a)}o=0;while((i=p[o++])&&!b.isPropagationStopped())b.type=o>1?j:l.bindType||q,g=(n._data(i,"events")||{})[b.type]&&n._data(i,"handle"),g&&g.apply(i,c),g=h&&i[h],g&&g.apply&&M(i)&&(b.result=g.apply(i,c),b.result===!1&&b.preventDefault());if(b.type=q,!f&&!b.isDefaultPrevented()&&(!l._default||l._default.apply(p.pop(),c)===!1)&&M(e)&&h&&e[q]&&!n.isWindow(e)){m=e[h],m&&(e[h]=null),n.event.triggered=q;try{e[q]()}catch(s){}n.event.triggered=void 0,m&&(e[h]=m)}return b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,d,f,g,h=[],i=e.call(arguments),j=(n._data(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())a.rnamespace&&!a.rnamespace.test(g.namespace)||(a.handleObj=g,a.data=g.data,d=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;c-1:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]","i"),va=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,wa=/\s*$/g,Aa=ca(d),Ba=Aa.appendChild(d.createElement("div"));function Ca(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function Da(a){return a.type=(null!==n.find.attr(a,"type"))+"/"+a.type,a}function Ea(a){var b=ya.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Fa(a,b){if(1===b.nodeType&&n.hasData(a)){var c,d,e,f=n._data(a),g=n._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;d1&&"string"==typeof q&&!l.checkClone&&xa.test(q))return a.each(function(e){var f=a.eq(e);r&&(b[0]=q.call(this,e,f.html())),Ha(f,b,c,d)});if(o&&(k=ja(b,a[0].ownerDocument,!1,a,d),e=k.firstChild,1===k.childNodes.length&&(k=e),e||d)){for(i=n.map(ea(k,"script"),Da),h=i.length;m")},clone:function(a,b,c){var d,e,f,g,h,i=n.contains(a.ownerDocument,a);if(l.html5Clone||n.isXMLDoc(a)||!ua.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(Ba.innerHTML=a.outerHTML,Ba.removeChild(f=Ba.firstChild)),!(l.noCloneEvent&&l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(d=ea(f),h=ea(a),g=0;null!=(e=h[g]);++g)d[g]&&Ga(e,d[g]);if(b)if(c)for(h=h||ea(a),d=d||ea(f),g=0;null!=(e=h[g]);g++)Fa(e,d[g]);else Fa(a,f);return d=ea(f,"script"),d.length>0&&fa(d,!i&&ea(a,"script")),d=h=e=null,f},cleanData:function(a,b){for(var d,e,f,g,h=0,i=n.expando,j=n.cache,k=l.attributes,m=n.event.special;null!=(d=a[h]);h++)if((b||M(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)m[e]?n.event.remove(d,e):n.removeEvent(d,e,g.handle);j[f]&&(delete j[f],k||"undefined"==typeof d.removeAttribute?d[i]=void 0:d.removeAttribute(i),c.push(f))}}}),n.fn.extend({domManip:Ha,detach:function(a){return Ia(this,a,!0)},remove:function(a){return Ia(this,a)},text:function(a){return Y(this,function(a){return void 0===a?n.text(this):this.empty().append((this[0]&&this[0].ownerDocument||d).createTextNode(a))},null,a,arguments.length)},append:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.appendChild(a)}})},prepend:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&n.cleanData(ea(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&n.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return Y(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(ta,""):void 0;if("string"==typeof a&&!wa.test(a)&&(l.htmlSerialize||!ua.test(a))&&(l.leadingWhitespace||!aa.test(a))&&!da[($.exec(a)||["",""])[1].toLowerCase()]){a=n.htmlPrefilter(a);try{for(;c")).appendTo(b.documentElement),b=(Ja[0].contentWindow||Ja[0].contentDocument).document,b.write(),b.close(),c=La(a,b),Ja.detach()),Ka[a]=c),c}var Na=/^margin/,Oa=new RegExp("^("+T+")(?!px)[a-z%]+$","i"),Pa=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e},Qa=d.documentElement;!function(){var b,c,e,f,g,h,i=d.createElement("div"),j=d.createElement("div");function k(){var k,l,m=d.documentElement;m.appendChild(i),j.style.cssText="-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",b=e=h=!1,c=g=!0,a.getComputedStyle&&(l=a.getComputedStyle(j),b="1%"!==(l||{}).top,h="2px"===(l||{}).marginLeft,e="4px"===(l||{width:"4px"}).width,j.style.marginRight="50%",c="4px"===(l||{marginRight:"4px"}).marginRight,k=j.appendChild(d.createElement("div")),k.style.cssText=j.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",k.style.marginRight=k.style.width="0",j.style.width="1px",g=!parseFloat((a.getComputedStyle(k)||{}).marginRight),j.removeChild(k)),j.style.display="none",f=0===j.getClientRects().length,f&&(j.style.display="",j.innerHTML="
        t
        ",j.childNodes[0].style.borderCollapse="separate",k=j.getElementsByTagName("td"),k[0].style.cssText="margin:0;border:0;padding:0;display:none",f=0===k[0].offsetHeight,f&&(k[0].style.display="",k[1].style.display="none",f=0===k[0].offsetHeight)),m.removeChild(i)}j.style&&(j.style.cssText="float:left;opacity:.5",l.opacity="0.5"===j.style.opacity,l.cssFloat=!!j.style.cssFloat,j.style.backgroundClip="content-box",j.cloneNode(!0).style.backgroundClip="",l.clearCloneStyle="content-box"===j.style.backgroundClip,i=d.createElement("div"),i.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",j.innerHTML="",i.appendChild(j),l.boxSizing=""===j.style.boxSizing||""===j.style.MozBoxSizing||""===j.style.WebkitBoxSizing,n.extend(l,{reliableHiddenOffsets:function(){return null==b&&k(),f},boxSizingReliable:function(){return null==b&&k(),e},pixelMarginRight:function(){return null==b&&k(),c},pixelPosition:function(){return null==b&&k(),b},reliableMarginRight:function(){return null==b&&k(),g},reliableMarginLeft:function(){return null==b&&k(),h}}))}();var Ra,Sa,Ta=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ra=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)},Sa=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ra(a),g=c?c.getPropertyValue(b)||c[b]:void 0,""!==g&&void 0!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),c&&!l.pixelMarginRight()&&Oa.test(g)&&Na.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f),void 0===g?g:g+""}):Qa.currentStyle&&(Ra=function(a){return a.currentStyle},Sa=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ra(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Oa.test(g)&&!Ta.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Ua(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Va=/alpha\([^)]*\)/i,Wa=/opacity\s*=\s*([^)]*)/i,Xa=/^(none|table(?!-c[ea]).+)/,Ya=new RegExp("^("+T+")(.*)$","i"),Za={position:"absolute",visibility:"hidden",display:"block"},$a={letterSpacing:"0",fontWeight:"400"},_a=["Webkit","O","Moz","ms"],ab=d.createElement("div").style;function bb(a){if(a in ab)return a;var b=a.charAt(0).toUpperCase()+a.slice(1),c=_a.length;while(c--)if(a=_a[c]+b,a in ab)return a}function cb(a,b){for(var c,d,e,f=[],g=0,h=a.length;g=1||""===b)&&""===n.trim(f.replace(Va,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Va.test(f)?f.replace(Va,e):f+" "+e)}}),n.cssHooks.marginRight=Ua(l.reliableMarginRight,function(a,b){if(b)return Pa(a,{display:"inline-block"},Sa,[a,"marginRight"])}),n.cssHooks.marginLeft=Ua(l.reliableMarginLeft,function(a,b){if(b)return(parseFloat(Sa(a,"marginLeft"))||(n.contains(a.ownerDocument,a)?a.getBoundingClientRect().left-Pa(a,{ +marginLeft:0},function(){return a.getBoundingClientRect().left}):0))+"px"}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];d<4;d++)e[a+V[d]+b]=f[d]||f[d-2]||f[0];return e}},Na.test(a)||(n.cssHooks[a+b].set=db)}),n.fn.extend({css:function(a,b){return Y(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=Ra(a),e=b.length;g1)},show:function(){return cb(this,!0)},hide:function(){return cb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){W(this)?n(this).show():n(this).hide()})}});function gb(a,b,c,d,e){return new gb.prototype.init(a,b,c,d,e)}n.Tween=gb,gb.prototype={constructor:gb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||n.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?"":"px")},cur:function(){var a=gb.propHooks[this.prop];return a&&a.get?a.get(this):gb.propHooks._default.get(this)},run:function(a){var b,c=gb.propHooks[this.prop];return this.options.duration?this.pos=b=n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):gb.propHooks._default.set(this),this}},gb.prototype.init.prototype=gb.prototype,gb.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[n.cssProps[a.prop]]&&!n.cssHooks[a.prop]?a.elem[a.prop]=a.now:n.style(a.elem,a.prop,a.now+a.unit)}}},gb.propHooks.scrollTop=gb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},n.fx=gb.prototype.init,n.fx.step={};var hb,ib,jb=/^(?:toggle|show|hide)$/,kb=/queueHooks$/;function lb(){return a.setTimeout(function(){hb=void 0}),hb=n.now()}function mb(a,b){var c,d={height:a},e=0;for(b=b?1:0;e<4;e+=2-b)c=V[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function nb(a,b,c){for(var d,e=(qb.tweeners[b]||[]).concat(qb.tweeners["*"]),f=0,g=e.length;f
        a",a=c.getElementsByTagName("a")[0],b.setAttribute("type","checkbox"),c.appendChild(b),a=c.getElementsByTagName("a")[0],a.style.cssText="top:1px",l.getSetAttribute="t"!==c.className,l.style=/top/.test(a.getAttribute("style")),l.hrefNormalized="/a"===a.getAttribute("href"),l.checkOn=!!b.value,l.optSelected=f.selected,l.enctype=!!d.createElement("form").enctype,e.disabled=!0,l.optDisabled=!f.disabled,b=d.createElement("input"),b.setAttribute("value",""),l.input=""===b.getAttribute("value"),b.value="t",b.setAttribute("type","radio"),l.radioValue="t"===b.value}();var rb=/\r/g,sb=/[\x20\t\r\n\f]+/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.text(a)).replace(sb," ")}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||e<0,g=f?null:[],h=f?e+1:d.length,i=e<0?h:f?e:0;i-1)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){if(n.isArray(b))return a.checked=n.inArray(n(a).val(),b)>-1}},l.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var tb,ub,vb=n.expr.attrHandle,wb=/^(?:checked|selected)$/i,xb=l.getSetAttribute,yb=l.input;n.fn.extend({attr:function(a,b){return Y(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),e=n.attrHooks[b]||(n.expr.match.bool.test(b)?ub:tb)),void 0!==c?null===c?void n.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=n.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!l.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(G);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)?yb&&xb||!wb.test(c)?a[d]=!1:a[n.camelCase("default-"+c)]=a[d]=!1:n.attr(a,c,""),a.removeAttribute(xb?c:d)}}),ub={set:function(a,b,c){return b===!1?n.removeAttr(a,c):yb&&xb||!wb.test(c)?a.setAttribute(!xb&&n.propFix[c]||c,c):a[n.camelCase("default-"+c)]=a[c]=!0,c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=vb[b]||n.find.attr;yb&&xb||!wb.test(b)?vb[b]=function(a,b,d){var e,f;return d||(f=vb[b],vb[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,vb[b]=f),e}:vb[b]=function(a,b,c){if(!c)return a[n.camelCase("default-"+b)]?b.toLowerCase():null}}),yb&&xb||(n.attrHooks.value={set:function(a,b,c){return n.nodeName(a,"input")?void(a.defaultValue=b):tb&&tb.set(a,b,c)}}),xb||(tb={set:function(a,b,c){var d=a.getAttributeNode(c);if(d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c))return b}},vb.id=vb.name=vb.coords=function(a,b,c){var d;if(!c)return(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},n.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);if(c&&c.specified)return c.value},set:tb.set},n.attrHooks.contenteditable={set:function(a,b,c){tb.set(a,""!==b&&b,c)}},n.each(["width","height"],function(a,b){n.attrHooks[b]={set:function(a,c){if(""===c)return a.setAttribute(b,"auto"),c}}})),l.style||(n.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var zb=/^(?:input|select|textarea|button|object)$/i,Ab=/^(?:a|area)$/i;n.fn.extend({prop:function(a,b){return Y(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return a=n.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),n.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&n.isXMLDoc(a)||(b=n.propFix[b]||b,e=n.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=n.find.attr(a,"tabindex");return b?parseInt(b,10):zb.test(a.nodeName)||Ab.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),l.hrefNormalized||n.each(["href","src"],function(a,b){n.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),l.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this}),l.enctype||(n.propFix.enctype="encoding");var Bb=/[\t\r\n\f]/g;function Cb(a){return n.attr(a,"class")||""}n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,Cb(this)))});if("string"==typeof a&&a){b=a.match(G)||[];while(c=this[i++])if(e=Cb(c),d=1===c.nodeType&&(" "+e+" ").replace(Bb," ")){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=n.trim(d),e!==h&&n.attr(c,"class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,Cb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(G)||[];while(c=this[i++])if(e=Cb(c),d=1===c.nodeType&&(" "+e+" ").replace(Bb," ")){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=n.trim(d),e!==h&&n.attr(c,"class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):n.isFunction(a)?this.each(function(c){n(this).toggleClass(a.call(this,c,Cb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=n(this),f=a.match(G)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=Cb(this),b&&n._data(this,"__className__",b),n.attr(this,"class",b||a===!1?"":n._data(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+Cb(c)+" ").replace(Bb," ").indexOf(b)>-1)return!0;return!1}}),n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Db=a.location,Eb=n.now(),Fb=/\?/,Gb=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;n.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=n.trim(b+"");return e&&!n.trim(e.replace(Gb,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():n.error("Invalid JSON: "+b)},n.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new a.DOMParser,c=d.parseFromString(b,"text/xml")):(c=new a.ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||n.error("Invalid XML: "+b),c};var Hb=/#.*$/,Ib=/([?&])_=[^&]*/,Jb=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Kb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Lb=/^(?:GET|HEAD)$/,Mb=/^\/\//,Nb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Ob={},Pb={},Qb="*/".concat("*"),Rb=Db.href,Sb=Nb.exec(Rb.toLowerCase())||[];function Tb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(G)||[];if(n.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Ub(a,b,c,d){var e={},f=a===Pb;function g(h){var i;return e[h]=!0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Vb(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&n.extend(!0,a,c),a}function Wb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Xb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Rb,type:"GET",isLocal:Kb.test(Sb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Qb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Vb(Vb(a,n.ajaxSettings),b):Vb(n.ajaxSettings,a)},ajaxPrefilter:Tb(Ob),ajaxTransport:Tb(Pb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var d,e,f,g,h,i,j,k,l=n.ajaxSetup({},c),m=l.context||l,o=l.context&&(m.nodeType||m.jquery)?n(m):n.event,p=n.Deferred(),q=n.Callbacks("once memory"),r=l.statusCode||{},s={},t={},u=0,v="canceled",w={readyState:0,getResponseHeader:function(a){var b;if(2===u){if(!k){k={};while(b=Jb.exec(g))k[b[1].toLowerCase()]=b[2]}b=k[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===u?g:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return u||(a=t[c]=t[c]||a,s[a]=b),this},overrideMimeType:function(a){return u||(l.mimeType=a),this},statusCode:function(a){var b;if(a)if(u<2)for(b in a)r[b]=[r[b],a[b]];else w.always(a[w.status]);return this},abort:function(a){var b=a||v;return j&&j.abort(b),y(0,b),this}};if(p.promise(w).complete=q.add,w.success=w.done,w.error=w.fail,l.url=((b||l.url||Rb)+"").replace(Hb,"").replace(Mb,Sb[1]+"//"),l.type=c.method||c.type||l.method||l.type,l.dataTypes=n.trim(l.dataType||"*").toLowerCase().match(G)||[""],null==l.crossDomain&&(d=Nb.exec(l.url.toLowerCase()),l.crossDomain=!(!d||d[1]===Sb[1]&&d[2]===Sb[2]&&(d[3]||("http:"===d[1]?"80":"443"))===(Sb[3]||("http:"===Sb[1]?"80":"443")))),l.data&&l.processData&&"string"!=typeof l.data&&(l.data=n.param(l.data,l.traditional)),Ub(Ob,l,c,w),2===u)return w;i=n.event&&l.global,i&&0===n.active++&&n.event.trigger("ajaxStart"),l.type=l.type.toUpperCase(),l.hasContent=!Lb.test(l.type),f=l.url,l.hasContent||(l.data&&(f=l.url+=(Fb.test(f)?"&":"?")+l.data,delete l.data),l.cache===!1&&(l.url=Ib.test(f)?f.replace(Ib,"$1_="+Eb++):f+(Fb.test(f)?"&":"?")+"_="+Eb++)),l.ifModified&&(n.lastModified[f]&&w.setRequestHeader("If-Modified-Since",n.lastModified[f]),n.etag[f]&&w.setRequestHeader("If-None-Match",n.etag[f])),(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&w.setRequestHeader("Content-Type",l.contentType),w.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+("*"!==l.dataTypes[0]?", "+Qb+"; q=0.01":""):l.accepts["*"]);for(e in l.headers)w.setRequestHeader(e,l.headers[e]);if(l.beforeSend&&(l.beforeSend.call(m,w,l)===!1||2===u))return w.abort();v="abort";for(e in{success:1,error:1,complete:1})w[e](l[e]);if(j=Ub(Pb,l,c,w)){if(w.readyState=1,i&&o.trigger("ajaxSend",[w,l]),2===u)return w;l.async&&l.timeout>0&&(h=a.setTimeout(function(){w.abort("timeout")},l.timeout));try{u=1,j.send(s,y)}catch(x){if(!(u<2))throw x;y(-1,x)}}else y(-1,"No Transport");function y(b,c,d,e){var k,s,t,v,x,y=c;2!==u&&(u=2,h&&a.clearTimeout(h),j=void 0,g=e||"",w.readyState=b>0?4:0,k=b>=200&&b<300||304===b,d&&(v=Wb(l,w,d)),v=Xb(l,v,w,k),k?(l.ifModified&&(x=w.getResponseHeader("Last-Modified"),x&&(n.lastModified[f]=x),x=w.getResponseHeader("etag"),x&&(n.etag[f]=x)),204===b||"HEAD"===l.type?y="nocontent":304===b?y="notmodified":(y=v.state,s=v.data,t=v.error,k=!t)):(t=y,!b&&y||(y="error",b<0&&(b=0))),w.status=b,w.statusText=(c||y)+"",k?p.resolveWith(m,[s,y,w]):p.rejectWith(m,[w,y,t]),w.statusCode(r),r=void 0,i&&o.trigger(k?"ajaxSuccess":"ajaxError",[w,l,k?s:t]),q.fireWith(m,[w,y]),i&&(o.trigger("ajaxComplete",[w,l]),--n.active||n.event.trigger("ajaxStop")))}return w},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax(n.extend({url:a,type:b,dataType:e,data:c,success:d},n.isPlainObject(a)&&a))}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){if(n.isFunction(a))return this.each(function(b){n(this).wrapAll(a.call(this,b))});if(this[0]){var b=n(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return n.isFunction(a)?this.each(function(b){n(this).wrapInner(a.call(this,b))}):this.each(function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}});function Yb(a){return a.style&&a.style.display||n.css(a,"display")}function Zb(a){if(!n.contains(a.ownerDocument||d,a))return!0;while(a&&1===a.nodeType){if("none"===Yb(a)||"hidden"===a.type)return!0;a=a.parentNode}return!1}n.expr.filters.hidden=function(a){return l.reliableHiddenOffsets()?a.offsetWidth<=0&&a.offsetHeight<=0&&!a.getClientRects().length:Zb(a)},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var $b=/%20/g,_b=/\[\]$/,ac=/\r?\n/g,bc=/^(?:submit|button|image|reset|file)$/i,cc=/^(?:input|select|textarea|keygen)/i;function dc(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||_b.test(a)?d(a,e):dc(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)dc(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)dc(c,a[c],b,e);return d.join("&").replace($b,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&cc.test(this.nodeName)&&!bc.test(a)&&(this.checked||!Z.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(ac,"\r\n")}}):{name:b.name,value:c.replace(ac,"\r\n")}}).get()}}),n.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return this.isLocal?ic():d.documentMode>8?hc():/^(get|post|head|put|delete|options)$/i.test(this.type)&&hc()||ic()}:hc;var ec=0,fc={},gc=n.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in fc)fc[a](void 0,!0)}),l.cors=!!gc&&"withCredentials"in gc,gc=l.ajax=!!gc,gc&&n.ajaxTransport(function(b){if(!b.crossDomain||l.cors){var c;return{send:function(d,e){var f,g=b.xhr(),h=++ec;if(g.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(f in b.xhrFields)g[f]=b.xhrFields[f];b.mimeType&&g.overrideMimeType&&g.overrideMimeType(b.mimeType),b.crossDomain||d["X-Requested-With"]||(d["X-Requested-With"]="XMLHttpRequest");for(f in d)void 0!==d[f]&&g.setRequestHeader(f,d[f]+"");g.send(b.hasContent&&b.data||null),c=function(a,d){var f,i,j;if(c&&(d||4===g.readyState))if(delete fc[h],c=void 0,g.onreadystatechange=n.noop,d)4!==g.readyState&&g.abort();else{j={},f=g.status,"string"==typeof g.responseText&&(j.text=g.responseText);try{i=g.statusText}catch(k){i=""}f||!b.isLocal||b.crossDomain?1223===f&&(f=204):f=j.text?200:404}j&&e(f,i,j,g.getAllResponseHeaders())},b.async?4===g.readyState?a.setTimeout(c):g.onreadystatechange=fc[h]=c:c()},abort:function(){c&&c(void 0,!0)}}}});function hc(){try{return new a.XMLHttpRequest}catch(b){}}function ic(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=d.head||n("head")[0]||d.documentElement;return{send:function(e,f){b=d.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||f(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var jc=[],kc=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=jc.pop()||n.expando+"_"+Eb++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(kc.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&kc.test(b.data)&&"data");if(h||"jsonp"===b.dataTypes[0])return e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(kc,"$1"+e):b.jsonp!==!1&&(b.url+=(Fb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?n(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,jc.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||d;var e=x.exec(a),f=!c&&[];return e?[b.createElement(e[1])]:(e=ja([a],b,f),f&&f.length&&n(f).remove(),n.merge([],e.childNodes))};var lc=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&lc)return lc.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=n.trim(a.slice(h,a.length)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&n.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("
        ").append(n.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};function mc(a){return n.isWindow(a)?a:9===a.nodeType&&(a.defaultView||a.parentWindow)}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&n.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,n.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,n.contains(b,e)?("undefined"!=typeof e.getBoundingClientRect&&(d=e.getBoundingClientRect()),c=mc(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===n.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(c=a.offset()),c.top+=n.css(a[0],"borderTopWidth",!0),c.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-n.css(d,"marginTop",!0),left:b.left-c.left-n.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Qa})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);n.fn[a]=function(d){return Y(this,function(a,d,e){var f=mc(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?n(f).scrollLeft():e,c?e:n(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=Ua(l.pixelPosition,function(a,c){if(c)return c=Sa(a,b),Oa.test(c)?n(a).position()[b]+"px":c})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){ +n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return Y(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var nc=a.jQuery,oc=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=oc),b&&a.jQuery===n&&(a.jQuery=nc),n},b||(a.jQuery=a.$=n),n}); diff --git a/system/resources/js/jquery.nestable++.js b/system/resources/js/jquery.nestable++.js new file mode 100644 index 0000000..15ddacd --- /dev/null +++ b/system/resources/js/jquery.nestable++.js @@ -0,0 +1,194 @@ +/*jslint browser: true, devel: true, white: true, eqeq: true, plusplus: true, sloppy: true, vars: true*/ +/*global $ */ + +/*************** General ***************/ + +var updateOutput = function (e) { + var list = e.length ? e : $(e.target), + output = list.data('output'); + if (window.JSON) { + if (output) { + output.val(window.JSON.stringify(list.nestable('serialize'))); + } + } else { + alert('JSON browser support required for this page.'); + } +}; + +var nestableList = $(".dd.nestable > .dd-list"); + +/***************************************/ + + +/*************** Delete ***************/ + +var deleteFromMenuHelper = function (target) { + /** + if (target.data('new') == 1) { + // if it's not yet saved in the database, just remove it from DOM + target.fadeOut(function () { + target.remove(); + updateOutput($('.dd.nestable').data('output', $('#json-output'))); + }); + } else { + // otherwise hide and mark it for deletion + target.appendTo(nestableList); // if children, move to the top level + target.data('deleted', '1'); + target.fadeOut(); + } + **/ + + target.remove(); + updateOutput($('.dd.nestable').data('output', $('#json-output'))); + +}; + +var deleteFromMenu = function () { + var targetId = $(this).data('owner-id'); + var target = $('[data-id="' + targetId + '"]'); + + var result = confirm("Delete " + target.data('name') + " and all its subitems ?"); + if (!result) { + return; + } + + // Remove children (if any) + target.find("li").each(function () { + deleteFromMenuHelper($(this)); + }); + + // Remove parent + deleteFromMenuHelper(target); + + // update JSON + updateOutput($('.dd.nestable').data('output', $('#json-output'))); +}; + +/***************************************/ + + +/*************** Edit ***************/ + +var menuAdd = $("#menu-add"); +var menuEditor = $("#menu-editor"); +var editButton = $("#editButton"); +var editInputName = $("#editInputName"); +var editInputSlug = $("#editInputSlug"); +var editInputClass = $("#editInputClass"); +var currentEditName = $("#currentEditName"); + +// Prepares and shows the Edit Form +var prepareEdit = function () { + var targetId = $(this).data('owner-id'); + var target = $('[data-id="' + targetId + '"]'); + + editInputName.val(target.data("name")); + editInputSlug.val(target.data("slug")); + editInputClass.val(target.data("class")); + currentEditName.html(target.data("name")); + editButton.data("owner-id", target.data("id")); + + console.log("[INFO] Editing Menu Item " + editButton.data("owner-id")); + + menuEditor.fadeIn('fast'); + menuAdd.fadeOut('fast'); +}; + +// Edits the Menu item and hides the Edit Form +var editMenuItem = function () { + var targetId = $(this).data('owner-id'); + var target = $('[data-id="' + targetId + '"]'); + + var newName = editInputName.val(); + var newSlug = editInputSlug.val(); + var newClass = editInputClass.val(); + + target.data("name", newName); + target.data("slug", newSlug); + target.data("class", newClass); + + target.find("> .dd-handle").html(newName); + + menuEditor.fadeOut('fast'); + menuAdd.fadeIn('fast'); + + // update JSON + updateOutput($('.dd.nestable').data('output', $('#json-output'))); +}; + +/***************************************/ + + +/*************** Add ***************/ + +var newIdCount = new Date().getTime(); + +var addToMenu = function () { + var newName = $("#addInputName").val(); + var newSlug = $("#addInputSlug").val(); + var newClass = $("#addInputClass").val(); + var newId = newIdCount; + + nestableList.append( + '
      • ' + + '
        ' + newName + '
        ' + + ' ' + + 'Delete' + + '' + + '' + + 'Edit' + + '' + + '
      • ' + ); + + newIdCount++; + + // update JSON + updateOutput($('.dd.nestable').data('output', $('#json-output'))); + + // set events + $(".dd.nestable .button-delete-"+newId).on("click", deleteFromMenu); + $(".dd.nestable .button-edit-"+newId).on("click", prepareEdit); + + // clear input + $("#addInputName").val(''); + $("#addInputSlug").val(''); + $("#addInputClass").val(''); + +}; + + + +/***************************************/ + + + +$(function () { + + // output initial serialised data + updateOutput($('.dd.nestable').data('output', $('#json-output'))); + + // set onclick events + editButton.on("click", editMenuItem); + + $(".dd.nestable .button-delete").on("click", deleteFromMenu); + + $(".dd.nestable .button-edit").on("click", prepareEdit); + + $("#menu-editor").submit(function (e) { + e.preventDefault(); + }); + + $("#menu-add").submit(function (e) { + e.preventDefault(); + addToMenu(); + }); + +}); + diff --git a/system/resources/js/jquery.nestable.js b/system/resources/js/jquery.nestable.js new file mode 100644 index 0000000..7323fb4 --- /dev/null +++ b/system/resources/js/jquery.nestable.js @@ -0,0 +1,484 @@ +/*! + * Nestable jQuery Plugin - Copyright (c) 2012 David Bushell - http://dbushell.com/ + * Dual-licensed under the BSD or MIT licenses + */ +;(function($, window, document, undefined) +{ + var hasTouch = 'ontouchstart' in document; + + /** + * Detect CSS pointer-events property + * events are normally disabled on the dragging element to avoid conflicts + * https://github.com/ausi/Feature-detection-technique-for-pointer-events/blob/master/modernizr-pointerevents.js + */ + var hasPointerEvents = (function() + { + var el = document.createElement('div'), + docEl = document.documentElement; + if (!('pointerEvents' in el.style)) { + return false; + } + el.style.pointerEvents = 'auto'; + el.style.pointerEvents = 'x'; + docEl.appendChild(el); + var supports = window.getComputedStyle && window.getComputedStyle(el, '').pointerEvents === 'auto'; + docEl.removeChild(el); + return !!supports; + })(); + + var defaults = { + listNodeName : 'ol', + itemNodeName : 'li', + rootClass : 'dd', + listClass : 'dd-list', + itemClass : 'dd-item', + dragClass : 'dd-dragel', + handleClass : 'dd-handle', + collapsedClass : 'dd-collapsed', + placeClass : 'dd-placeholder', + noDragClass : 'dd-nodrag', + emptyClass : 'dd-empty', + expandBtnHTML : '', + collapseBtnHTML : '', + group : 0, + maxDepth : 5, + threshold : 20 + }; + + function Plugin(element, options) + { + this.w = $(document); + this.el = $(element); + this.options = $.extend({}, defaults, options); + this.init(); + } + + Plugin.prototype = { + + init: function() + { + var list = this; + + list.reset(); + + list.el.data('nestable-group', this.options.group); + + list.placeEl = $('
        '); + + $.each(this.el.find(list.options.itemNodeName), function(k, el) { + list.setParent($(el)); + }); + + list.el.on('click', 'button', function(e) { + if (list.dragEl) { + return; + } + var target = $(e.currentTarget), + action = target.data('action'), + item = target.parent(list.options.itemNodeName); + if (action === 'collapse') { + list.collapseItem(item); + } + if (action === 'expand') { + list.expandItem(item); + } + }); + + var onStartEvent = function(e) + { + var handle = $(e.target); + if (!handle.hasClass(list.options.handleClass)) { + if (handle.closest('.' + list.options.noDragClass).length) { + return; + } + handle = handle.closest('.' + list.options.handleClass); + } + + if (!handle.length || list.dragEl) { + return; + } + + list.isTouch = /^touch/.test(e.type); + if (list.isTouch && e.touches.length !== 1) { + return; + } + + e.preventDefault(); + list.dragStart(e.touches ? e.touches[0] : e); + }; + + var onMoveEvent = function(e) + { + if (list.dragEl) { + e.preventDefault(); + list.dragMove(e.touches ? e.touches[0] : e); + } + }; + + var onEndEvent = function(e) + { + if (list.dragEl) { + e.preventDefault(); + list.dragStop(e.touches ? e.touches[0] : e); + } + }; + + if (hasTouch) { + list.el[0].addEventListener('touchstart', onStartEvent, false); + window.addEventListener('touchmove', onMoveEvent, false); + window.addEventListener('touchend', onEndEvent, false); + window.addEventListener('touchcancel', onEndEvent, false); + } + + list.el.on('mousedown', onStartEvent); + list.w.on('mousemove', onMoveEvent); + list.w.on('mouseup', onEndEvent); + + }, + + serialize: function() + { + var data, + depth = 0, + list = this; + step = function(level, depth) + { + var array = [ ], + items = level.children(list.options.itemNodeName); + items.each(function() + { + var li = $(this), + item = $.extend({}, li.data()), + sub = li.children(list.options.listNodeName); + if (sub.length) { + item.children = step(sub, depth + 1); + } + array.push(item); + }); + return array; + }; + data = step(list.el.find(list.options.listNodeName).first(), depth); + return data; + }, + + serialise: function() + { + return this.serialize(); + }, + + reset: function() + { + this.mouse = { + offsetX : 0, + offsetY : 0, + startX : 0, + startY : 0, + lastX : 0, + lastY : 0, + nowX : 0, + nowY : 0, + distX : 0, + distY : 0, + dirAx : 0, + dirX : 0, + dirY : 0, + lastDirX : 0, + lastDirY : 0, + distAxX : 0, + distAxY : 0 + }; + this.isTouch = false; + this.moving = false; + this.dragEl = null; + this.dragRootEl = null; + this.dragDepth = 0; + this.hasNewRoot = false; + this.pointEl = null; + }, + + expandItem: function(li) + { + li.removeClass(this.options.collapsedClass); + li.children('[data-action="expand"]').hide(); + li.children('[data-action="collapse"]').show(); + li.children(this.options.listNodeName).show(); + }, + + collapseItem: function(li) + { + var lists = li.children(this.options.listNodeName); + if (lists.length) { + li.addClass(this.options.collapsedClass); + li.children('[data-action="collapse"]').hide(); + li.children('[data-action="expand"]').show(); + li.children(this.options.listNodeName).hide(); + } + }, + + expandAll: function() + { + var list = this; + list.el.find(list.options.itemNodeName).each(function() { + list.expandItem($(this)); + }); + }, + + collapseAll: function() + { + var list = this; + list.el.find(list.options.itemNodeName).each(function() { + list.collapseItem($(this)); + }); + }, + + setParent: function(li) + { + if (li.children(this.options.listNodeName).length) { + li.prepend($(this.options.expandBtnHTML)); + li.prepend($(this.options.collapseBtnHTML)); + } + li.children('[data-action="expand"]').hide(); + }, + + unsetParent: function(li) + { + li.removeClass(this.options.collapsedClass); + li.children('[data-action]').remove(); + li.children(this.options.listNodeName).remove(); + }, + + dragStart: function(e) + { + var mouse = this.mouse, + target = $(e.target), + dragItem = target.closest(this.options.itemNodeName); + + this.placeEl.css('height', dragItem.height()); + + mouse.offsetX = e.offsetX !== undefined ? e.offsetX : e.pageX - target.offset().left; + mouse.offsetY = e.offsetY !== undefined ? e.offsetY : e.pageY - target.offset().top; + mouse.startX = mouse.lastX = e.pageX; + mouse.startY = mouse.lastY = e.pageY; + + this.dragRootEl = this.el; + + this.dragEl = $(document.createElement(this.options.listNodeName)).addClass(this.options.listClass + ' ' + this.options.dragClass); + this.dragEl.css('width', dragItem.width()); + + dragItem.after(this.placeEl); + dragItem[0].parentNode.removeChild(dragItem[0]); + dragItem.appendTo(this.dragEl); + + $(document.body).append(this.dragEl); + this.dragEl.css({ + 'left' : e.pageX - mouse.offsetX, + 'top' : e.pageY - mouse.offsetY + }); + // total depth of dragging item + var i, depth, + items = this.dragEl.find(this.options.itemNodeName); + for (i = 0; i < items.length; i++) { + depth = $(items[i]).parents(this.options.listNodeName).length; + if (depth > this.dragDepth) { + this.dragDepth = depth; + } + } + }, + + dragStop: function(e) + { + var el = this.dragEl.children(this.options.itemNodeName).first(); + el[0].parentNode.removeChild(el[0]); + this.placeEl.replaceWith(el); + + this.dragEl.remove(); + this.el.trigger('change'); + if (this.hasNewRoot) { + this.dragRootEl.trigger('change'); + } + this.reset(); + }, + + dragMove: function(e) + { + var list, parent, prev, next, depth, + opt = this.options, + mouse = this.mouse; + + this.dragEl.css({ + 'left' : e.pageX - mouse.offsetX, + 'top' : e.pageY - mouse.offsetY + }); + + // mouse position last events + mouse.lastX = mouse.nowX; + mouse.lastY = mouse.nowY; + // mouse position this events + mouse.nowX = e.pageX; + mouse.nowY = e.pageY; + // distance mouse moved between events + mouse.distX = mouse.nowX - mouse.lastX; + mouse.distY = mouse.nowY - mouse.lastY; + // direction mouse was moving + mouse.lastDirX = mouse.dirX; + mouse.lastDirY = mouse.dirY; + // direction mouse is now moving (on both axis) + mouse.dirX = mouse.distX === 0 ? 0 : mouse.distX > 0 ? 1 : -1; + mouse.dirY = mouse.distY === 0 ? 0 : mouse.distY > 0 ? 1 : -1; + // axis mouse is now moving on + var newAx = Math.abs(mouse.distX) > Math.abs(mouse.distY) ? 1 : 0; + + // do nothing on first move + if (!mouse.moving) { + mouse.dirAx = newAx; + mouse.moving = true; + return; + } + + // calc distance moved on this axis (and direction) + if (mouse.dirAx !== newAx) { + mouse.distAxX = 0; + mouse.distAxY = 0; + } else { + mouse.distAxX += Math.abs(mouse.distX); + if (mouse.dirX !== 0 && mouse.dirX !== mouse.lastDirX) { + mouse.distAxX = 0; + } + mouse.distAxY += Math.abs(mouse.distY); + if (mouse.dirY !== 0 && mouse.dirY !== mouse.lastDirY) { + mouse.distAxY = 0; + } + } + mouse.dirAx = newAx; + + /** + * move horizontal + */ + if (mouse.dirAx && mouse.distAxX >= opt.threshold) { + // reset move distance on x-axis for new phase + mouse.distAxX = 0; + prev = this.placeEl.prev(opt.itemNodeName); + // increase horizontal level if previous sibling exists and is not collapsed + if (mouse.distX > 0 && prev.length && !prev.hasClass(opt.collapsedClass)) { + // cannot increase level when item above is collapsed + list = prev.find(opt.listNodeName).last(); + // check if depth limit has reached + depth = this.placeEl.parents(opt.listNodeName).length; + if (depth + this.dragDepth <= opt.maxDepth) { + // create new sub-level if one doesn't exist + if (!list.length) { + list = $('<' + opt.listNodeName + '/>').addClass(opt.listClass); + list.append(this.placeEl); + prev.append(list); + this.setParent(prev); + } else { + // else append to next level up + list = prev.children(opt.listNodeName).last(); + list.append(this.placeEl); + } + } + } + // decrease horizontal level + if (mouse.distX < 0) { + // we can't decrease a level if an item preceeds the current one + next = this.placeEl.next(opt.itemNodeName); + if (!next.length) { + parent = this.placeEl.parent(); + this.placeEl.closest(opt.itemNodeName).after(this.placeEl); + if (!parent.children().length) { + this.unsetParent(parent.parent()); + } + } + } + } + + var isEmpty = false; + + // find list item under cursor + if (!hasPointerEvents) { + this.dragEl[0].style.visibility = 'hidden'; + } + this.pointEl = $(document.elementFromPoint(e.pageX - document.body.scrollLeft, e.pageY - (window.pageYOffset || document.documentElement.scrollTop))); + if (!hasPointerEvents) { + this.dragEl[0].style.visibility = 'visible'; + } + if (this.pointEl.hasClass(opt.handleClass)) { + this.pointEl = this.pointEl.parent(opt.itemNodeName); + } + if (this.pointEl.hasClass(opt.emptyClass)) { + isEmpty = true; + } + else if (!this.pointEl.length || !this.pointEl.hasClass(opt.itemClass)) { + return; + } + + // find parent list of item under cursor + var pointElRoot = this.pointEl.closest('.' + opt.rootClass), + isNewRoot = this.dragRootEl.data('nestable-id') !== pointElRoot.data('nestable-id'); + + /** + * move vertical + */ + if (!mouse.dirAx || isNewRoot || isEmpty) { + // check if groups match if dragging over new root + if (isNewRoot && opt.group !== pointElRoot.data('nestable-group')) { + return; + } + // check depth limit + depth = this.dragDepth - 1 + this.pointEl.parents(opt.listNodeName).length; + if (depth > opt.maxDepth) { + return; + } + var before = e.pageY < (this.pointEl.offset().top + this.pointEl.height() / 2); + parent = this.placeEl.parent(); + // if empty create new list to replace empty placeholder + if (isEmpty) { + list = $(document.createElement(opt.listNodeName)).addClass(opt.listClass); + list.append(this.placeEl); + this.pointEl.replaceWith(list); + } + else if (before) { + this.pointEl.before(this.placeEl); + } + else { + this.pointEl.after(this.placeEl); + } + if (!parent.children().length) { + this.unsetParent(parent.parent()); + } + if (!this.dragRootEl.find(opt.itemNodeName).length) { + this.dragRootEl.append('
        '); + } + // parent root list has changed + if (isNewRoot) { + this.dragRootEl = pointElRoot; + this.hasNewRoot = this.el[0] !== this.dragRootEl[0]; + } + } + } + + }; + + $.fn.nestable = function(params) + { + var lists = this, + retval = this; + + lists.each(function() + { + var plugin = $(this).data("nestable"); + + if (!plugin) { + $(this).data("nestable", new Plugin(this, params)); + $(this).data("nestable-id", new Date().getTime()); + } else { + if (typeof params === 'string' && typeof plugin[params] === 'function') { + retval = plugin[params](); + } + } + }); + + return retval || lists; + }; + +})(window.jQuery || window.Zepto, window, document); diff --git a/system/resources/js/media.uploader.js b/system/resources/js/media.uploader.js new file mode 100644 index 0000000..0e7087c --- /dev/null +++ b/system/resources/js/media.uploader.js @@ -0,0 +1,70 @@ +(function () { + + //======Media Uploader===== + + var dialogClose = function() { + $('#insertMediaDialog').modal('hide'); + $('#insertImageDialogURL').val(''); + $('#insertImageDialogFile').val(''); + $('#insertMediaDialogURL').val(''); + $('#insertMediaDialogFile').val(''); + $('#gallery-1').html(initial_image); + $('#gallery-2').html(initial_image); + }; + $('#insertMediaDialogInsert').click( function() { + $('.media-uploader').val(''); + $('.imgPrev > img').remove(); + $('.media-uploader').val( $('#insertMediaDialogURL').val().length > 0 ? $('#insertMediaDialogURL').val() : null ); + $('.imgPrev').prepend($('',{id:'imgFile',src: $('#insertMediaDialogURL').val()})); + dialogClose(); + }); + $('#insertMediaDialogClose').click( function() { + dialogClose(); + }); + $('#insertMediaDialogCancel').click( function() { + dialogClose(); + }); + $('#insertMediaDialogFile').on('input', function(){ + var file = $("#insertMediaDialogFile").prop("files"); + var formData = new FormData(); + formData.append('file', file[0], file[0].name); + // Set up the request. + $.ajax({ + type: "POST", + url: base_path + 'upload.php', + data: formData, + processData: false, + contentType: false, + success: function (response) { + if (response.error == '0') + { + $('.media-uploader').val(''); + $('.imgPrev > img').remove(); + $('.media-uploader').val(base_path + response.path); + $('.imgPrev').prepend($('',{id:'imgFile',src: base_path + response.path})); + dialogClose(); + } + else + { + if (response.error !== '') alert(response.error); + else alert("An unknown error has occurred"); + console.error("Bad Response"); + console.error(response); + $('#insertMediaDialogFile').val(''); + } + }, + failure: function (response) { + if (response.error !== '') alert(response.error); + else alert("An unknown error has occurred"); + console.error("Unable to Upload"); + console.error(response); + $('#insertMediaDialogFile').val(''); + } + });//ajax + });//oninput + + $('#insertButton').click(function() { + $('#insertMediaDialog').modal('show'); + }); + +})(); \ No newline at end of file diff --git a/system/resources/js/save_draft.js b/system/resources/js/save_draft.js new file mode 100644 index 0000000..094e141 --- /dev/null +++ b/system/resources/js/save_draft.js @@ -0,0 +1,64 @@ +const response = document.getElementById("response"); + +function updateData() { + var title = $("#pTitle").val(); + var url = $("#pURL").val(); + var content = $("#wmd-input").val(); + var description = $("#pMeta").val(); + var tag = $("#pTag").val(); + var category = $("#pCategory").val(); + var posttype = $("#pType").val(); + var pimage = $("#pImage").val(); + var paudio = $("#pAudio").val(); + var pvideo = $("#pVideo").val(); + var pquote = $("#pQuote").val(); + var plink = $("#pLink").val(); + var pDate = $("#pDate").val(); + var pTime = $("#pTime").val(); + var oldfile = $("#oldfile").val(); + var dateTime = pDate + " " + pTime; + var autoSave = 'autoSave'; + + // Prepare data to send to PHP + var data = { + title: title, + url: url, + content: content, + description: description, + tag: tag, + category: category, + posttype: posttype, + pimage: pimage, + paudio: paudio, + pvideo: pvideo, + pquote: pquote, + plink: plink, + dateTime: dateTime, + autoSave: autoSave, + addEdit: addEdit, + oldfile: oldfile, + parent_page: parent_page + }; + + $.ajax({ + url: base_path + 'admin/autosave', + type: "POST", + data: data, + success: function(response) { + $("#response").html(response.message); + $("#oldfile").val(response.file); + $("#response").fadeIn(600, function() { + $("#response").css("display", "block"); + }); + setTimeout(function() { + $("#response").fadeOut(600, function() { + $("#response").css("display", "none"); + }); + }, 6000); + } + }); +} + +$(document).ready(function() { + setInterval(updateData, saveInterval); +}); diff --git a/system/resources/js/toc.generator.js b/system/resources/js/toc.generator.js new file mode 100644 index 0000000..a5f461a --- /dev/null +++ b/system/resources/js/toc.generator.js @@ -0,0 +1,78 @@ +/*jslint + white: true, + browser: true, + vars: true +*/ + +/** + * Generates a table of contents for your document based on the headings + * present. Anchors are injected into the document and the + * entries in the table of contents are linked to them. The table of + * contents will be generated inside of the first element with the id `toc`. + * @param {HTMLDOMDocument} documentRef Optional A reference to the document + * object. Defaults to `document`. + * @author Matthew Christopher Kastor-Inare III + * @version 20130726 + * @example + * // call this after the page has loaded + * generateTOC(); + */ + + /** + * Modified by @danpros + * select only in selector ID + * using the heading title as the slug IDs + * insert the anchor inside the heading + * fix browser not scrolling to the hash + */ +function generateTOC (id) { + var documentRef = document; + var selector = id + ' h1,' + id + ' h2,' + id + ' h3,' + id + ' h4,' + id + ' h5,' + id + ' h6'; + var toc = documentRef.getElementById('toc' + id); + var headings = [].slice.call(documentRef.body.querySelectorAll(selector)); + if (headings && headings.length) { + headings.forEach(function (heading, index) { + heading.setAttribute('id', heading.textContent.replace(/\s+/g, '-').toLowerCase() + id); + heading.setAttribute('class', 'toc-link'); + + var anchor = documentRef.createElement('a'); + anchor.setAttribute('href', '#' + heading.textContent.replace(/\s+/g, '-').toLowerCase() + id); + anchor.setAttribute('class', 'anchor'); + anchor.setAttribute('aria-label', heading.textContent); + anchor.innerHTML = ''; + + var link = documentRef.createElement('a'); + link.setAttribute('href', '#' + heading.textContent.replace(/\s+/g, '-').toLowerCase() + id); + link.textContent = heading.textContent; + + var div = documentRef.createElement('div'); + div.setAttribute('class', heading.tagName.toLowerCase() + '-toc'); + + heading.appendChild(anchor); + div.appendChild(link); + toc.appendChild(div); + }); + documentRef.getElementById('toc-wrapper' + id).classList.add('visible'); + documentRef.getElementById('toc-wrapper' + id).style.display = 'inline-block'; + } + + if (window.location.hash) { + var hash = window.location.hash; + scrollToHash(hash); + } +} + +// fix browser not scrolling to the hash +function scrollToHash (hash) { + setTimeout(function() { + hashtag = hash; + location.hash = ''; + location.hash = hashtag; + }, 300); +} + +try { + module.exports = generateTOC; +} catch (e) { + // module.exports is not defined +} diff --git a/system/resources/readme.txt b/system/resources/readme.txt new file mode 100644 index 0000000..8237ff4 --- /dev/null +++ b/system/resources/readme.txt @@ -0,0 +1 @@ +Resources for the system diff --git a/system/resources/webfonts/fa-solid-900.ttf b/system/resources/webfonts/fa-solid-900.ttf new file mode 100644 index 0000000..e7e2ecf Binary files /dev/null and b/system/resources/webfonts/fa-solid-900.ttf differ diff --git a/system/resources/webfonts/fa-solid-900.woff2 b/system/resources/webfonts/fa-solid-900.woff2 new file mode 100644 index 0000000..fec1fae Binary files /dev/null and b/system/resources/webfonts/fa-solid-900.woff2 differ diff --git a/system/vendor/autoload.php b/system/vendor/autoload.php new file mode 100644 index 0000000..b81c1a6 --- /dev/null +++ b/system/vendor/autoload.php @@ -0,0 +1,25 @@ +writeFile('Hello World!', 'qrcode.png'); +``` + +## Available image renderer back ends +BaconQrCode comes with multiple back ends for rendering images. Currently included are the following: + +- `ImagickImageBackEnd`: renders raster images using the Imagick library +- `SvgImageBackEnd`: renders SVG files using XMLWriter +- `EpsImageBackEnd`: renders EPS files + +### GDLib Renderer +GD library has so many limitations, that GD support is not added as backend, but as separated renderer. +Use `GDLibRenderer` instead of `ImageRenderer`. These are the limitations: + +- Does not support gradient. +- Does not support any curves, so you QR code is always squared. + +Example usage: + +```php +use BaconQrCode\Renderer\GDLibRenderer; +use BaconQrCode\Writer; + +$renderer = new GDLibRenderer(400); +$writer = new Writer($renderer); +$writer->writeFile('Hello World!', 'qrcode.png'); +``` diff --git a/system/vendor/bacon/bacon-qr-code/composer.json b/system/vendor/bacon/bacon-qr-code/composer.json new file mode 100644 index 0000000..41f4166 --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/composer.json @@ -0,0 +1,50 @@ +{ + "name": "bacon/bacon-qr-code", + "description": "BaconQrCode is a QR code generator for PHP.", + "license": "BSD-2-Clause", + "homepage": "https://github.com/Bacon/BaconQrCode", + "require": { + "php": "^8.1", + "ext-iconv": "*", + "dasprid/enum": "^1.0.3" + }, + "suggest": { + "ext-imagick": "to generate QR code images" + }, + "authors": [ + { + "name": "Ben Scholzen 'DASPRiD'", + "email": "mail@dasprids.de", + "homepage": "https://dasprids.de/", + "role": "Developer" + } + ], + "autoload": { + "psr-4": { + "BaconQrCode\\": "src/" + } + }, + "autoload-dev": { + "psr-4": { + "BaconQrCodeTest\\": "test/" + } + }, + "require-dev": { + "phpunit/phpunit": "^10.5.11 || 11.0.4", + "spatie/phpunit-snapshot-assertions": "^5.1.5", + "squizlabs/php_codesniffer": "^3.9", + "phly/keep-a-changelog": "^2.12" + }, + "config": { + "allow-plugins": { + "ocramius/package-versions": true, + "php-http/discovery": true + } + }, + "archive": { + "exclude": [ + "/test", + "/phpunit.xml.dist" + ] + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Common/BitArray.php b/system/vendor/bacon/bacon-qr-code/src/Common/BitArray.php new file mode 100644 index 0000000..9ec8629 --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Common/BitArray.php @@ -0,0 +1,364 @@ + + */ + private SplFixedArray $bits; + + /** + * Creates a new bit array with a given size. + */ + public function __construct(private int $size = 0) + { + $this->bits = SplFixedArray::fromArray(array_fill(0, ($this->size + 31) >> 3, 0)); + } + + /** + * Gets the size in bits. + */ + public function getSize() : int + { + return $this->size; + } + + /** + * Gets the size in bytes. + */ + public function getSizeInBytes() : int + { + return ($this->size + 7) >> 3; + } + + /** + * Ensures that the array has a minimum capacity. + */ + public function ensureCapacity(int $size) : void + { + if ($size > count($this->bits) << 5) { + $this->bits->setSize(($size + 31) >> 5); + } + } + + /** + * Gets a specific bit. + */ + public function get(int $i) : bool + { + return 0 !== ($this->bits[$i >> 5] & (1 << ($i & 0x1f))); + } + + /** + * Sets a specific bit. + */ + public function set(int $i) : void + { + $this->bits[$i >> 5] = $this->bits[$i >> 5] | 1 << ($i & 0x1f); + } + + /** + * Flips a specific bit. + */ + public function flip(int $i) : void + { + $this->bits[$i >> 5] ^= 1 << ($i & 0x1f); + } + + /** + * Gets the next set bit position from a given position. + */ + public function getNextSet(int $from) : int + { + if ($from >= $this->size) { + return $this->size; + } + + $bitsOffset = $from >> 5; + $currentBits = $this->bits[$bitsOffset]; + $bitsLength = count($this->bits); + $currentBits &= ~((1 << ($from & 0x1f)) - 1); + + while (0 === $currentBits) { + if (++$bitsOffset === $bitsLength) { + return $this->size; + } + + $currentBits = $this->bits[$bitsOffset]; + } + + $result = ($bitsOffset << 5) + BitUtils::numberOfTrailingZeros($currentBits); + return min($result, $this->size); + } + + /** + * Gets the next unset bit position from a given position. + */ + public function getNextUnset(int $from) : int + { + if ($from >= $this->size) { + return $this->size; + } + + $bitsOffset = $from >> 5; + $currentBits = ~$this->bits[$bitsOffset]; + $bitsLength = count($this->bits); + $currentBits &= ~((1 << ($from & 0x1f)) - 1); + + while (0 === $currentBits) { + if (++$bitsOffset === $bitsLength) { + return $this->size; + } + + $currentBits = ~$this->bits[$bitsOffset]; + } + + $result = ($bitsOffset << 5) + BitUtils::numberOfTrailingZeros($currentBits); + return min($result, $this->size); + } + + /** + * Sets a bulk of bits. + */ + public function setBulk(int $i, int $newBits) : void + { + $this->bits[$i >> 5] = $newBits; + } + + /** + * Sets a range of bits. + * + * @throws InvalidArgumentException if end is smaller than start + */ + public function setRange(int $start, int $end) : void + { + if ($end < $start) { + throw new InvalidArgumentException('End must be greater or equal to start'); + } + + if ($end === $start) { + return; + } + + --$end; + + $firstInt = $start >> 5; + $lastInt = $end >> 5; + + for ($i = $firstInt; $i <= $lastInt; ++$i) { + $firstBit = $i > $firstInt ? 0 : $start & 0x1f; + $lastBit = $i < $lastInt ? 31 : $end & 0x1f; + + if (0 === $firstBit && 31 === $lastBit) { + $mask = 0x7fffffff; + } else { + $mask = 0; + + for ($j = $firstBit; $j < $lastBit; ++$j) { + $mask |= 1 << $j; + } + } + + $this->bits[$i] = $this->bits[$i] | $mask; + } + } + + /** + * Clears the bit array, unsetting every bit. + */ + public function clear() : void + { + $bitsLength = count($this->bits); + + for ($i = 0; $i < $bitsLength; ++$i) { + $this->bits[$i] = 0; + } + } + + /** + * Checks if a range of bits is set or not set. + + * @throws InvalidArgumentException if end is smaller than start + */ + public function isRange(int $start, int $end, bool $value) : bool + { + if ($end < $start) { + throw new InvalidArgumentException('End must be greater or equal to start'); + } + + if ($end === $start) { + return true; + } + + --$end; + + $firstInt = $start >> 5; + $lastInt = $end >> 5; + + for ($i = $firstInt; $i <= $lastInt; ++$i) { + $firstBit = $i > $firstInt ? 0 : $start & 0x1f; + $lastBit = $i < $lastInt ? 31 : $end & 0x1f; + + if (0 === $firstBit && 31 === $lastBit) { + $mask = 0x7fffffff; + } else { + $mask = 0; + + for ($j = $firstBit; $j <= $lastBit; ++$j) { + $mask |= 1 << $j; + } + } + + if (($this->bits[$i] & $mask) !== ($value ? $mask : 0)) { + return false; + } + } + + return true; + } + + /** + * Appends a bit to the array. + */ + public function appendBit(bool $bit) : void + { + $this->ensureCapacity($this->size + 1); + + if ($bit) { + $this->bits[$this->size >> 5] = $this->bits[$this->size >> 5] | (1 << ($this->size & 0x1f)); + } + + ++$this->size; + } + + /** + * Appends a number of bits (up to 32) to the array. + + * @throws InvalidArgumentException if num bits is not between 0 and 32 + */ + public function appendBits(int $value, int $numBits) : void + { + if ($numBits < 0 || $numBits > 32) { + throw new InvalidArgumentException('Num bits must be between 0 and 32'); + } + + $this->ensureCapacity($this->size + $numBits); + + for ($numBitsLeft = $numBits; $numBitsLeft > 0; $numBitsLeft--) { + $this->appendBit((($value >> ($numBitsLeft - 1)) & 0x01) === 1); + } + } + + /** + * Appends another bit array to this array. + */ + public function appendBitArray(self $other) : void + { + $otherSize = $other->getSize(); + $this->ensureCapacity($this->size + $other->getSize()); + + for ($i = 0; $i < $otherSize; ++$i) { + $this->appendBit($other->get($i)); + } + } + + /** + * Makes an exclusive-or comparision on the current bit array. + * + * @throws InvalidArgumentException if sizes don't match + */ + public function xorBits(self $other) : void + { + $bitsLength = count($this->bits); + $otherBits = $other->getBitArray(); + + if ($bitsLength !== count($otherBits)) { + throw new InvalidArgumentException('Sizes don\'t match'); + } + + for ($i = 0; $i < $bitsLength; ++$i) { + $this->bits[$i] = $this->bits[$i] ^ $otherBits[$i]; + } + } + + /** + * Converts the bit array to a byte array. + * + * @return SplFixedArray + */ + public function toBytes(int $bitOffset, int $numBytes) : SplFixedArray + { + $bytes = new SplFixedArray($numBytes); + + for ($i = 0; $i < $numBytes; ++$i) { + $byte = 0; + + for ($j = 0; $j < 8; ++$j) { + if ($this->get($bitOffset)) { + $byte |= 1 << (7 - $j); + } + + ++$bitOffset; + } + + $bytes[$i] = $byte; + } + + return $bytes; + } + + /** + * Gets the internal bit array. + * + * @return SplFixedArray + */ + public function getBitArray() : SplFixedArray + { + return $this->bits; + } + + /** + * Reverses the array. + */ + public function reverse() : void + { + $newBits = new SplFixedArray(count($this->bits)); + + for ($i = 0; $i < $this->size; ++$i) { + if ($this->get($this->size - $i - 1)) { + $newBits[$i >> 5] = $newBits[$i >> 5] | (1 << ($i & 0x1f)); + } + } + + $this->bits = $newBits; + } + + /** + * Returns a string representation of the bit array. + */ + public function __toString() : string + { + $result = ''; + + for ($i = 0; $i < $this->size; ++$i) { + if (0 === ($i & 0x07)) { + $result .= ' '; + } + + $result .= $this->get($i) ? 'X' : '.'; + } + + return $result; + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Common/BitMatrix.php b/system/vendor/bacon/bacon-qr-code/src/Common/BitMatrix.php new file mode 100644 index 0000000..294afb4 --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Common/BitMatrix.php @@ -0,0 +1,307 @@ + + */ + private SplFixedArray $bits; + + /** + * @throws InvalidArgumentException if a dimension is smaller than zero + */ + public function __construct(int $width, ?int $height = null) + { + if (null === $height) { + $height = $width; + } + + if ($width < 1 || $height < 1) { + throw new InvalidArgumentException('Both dimensions must be greater than zero'); + } + + $this->width = $width; + $this->height = $height; + $this->rowSize = ($width + 31) >> 5; + $this->bits = SplFixedArray::fromArray(array_fill(0, $this->rowSize * $height, 0)); + } + + /** + * Gets the requested bit, where true means black. + */ + public function get(int $x, int $y) : bool + { + $offset = $y * $this->rowSize + ($x >> 5); + return 0 !== (BitUtils::unsignedRightShift($this->bits[$offset], ($x & 0x1f)) & 1); + } + + /** + * Sets the given bit to true. + */ + public function set(int $x, int $y) : void + { + $offset = $y * $this->rowSize + ($x >> 5); + $this->bits[$offset] = $this->bits[$offset] | (1 << ($x & 0x1f)); + } + + /** + * Flips the given bit. + */ + public function flip(int $x, int $y) : void + { + $offset = $y * $this->rowSize + ($x >> 5); + $this->bits[$offset] = $this->bits[$offset] ^ (1 << ($x & 0x1f)); + } + + /** + * Clears all bits (set to false). + */ + public function clear() : void + { + $max = count($this->bits); + + for ($i = 0; $i < $max; ++$i) { + $this->bits[$i] = 0; + } + } + + /** + * Sets a square region of the bit matrix to true. + * + * @throws InvalidArgumentException if left or top are negative + * @throws InvalidArgumentException if width or height are smaller than 1 + * @throws InvalidArgumentException if region does not fit into the matix + */ + public function setRegion(int $left, int $top, int $width, int $height) : void + { + if ($top < 0 || $left < 0) { + throw new InvalidArgumentException('Left and top must be non-negative'); + } + + if ($height < 1 || $width < 1) { + throw new InvalidArgumentException('Width and height must be at least 1'); + } + + $right = $left + $width; + $bottom = $top + $height; + + if ($bottom > $this->height || $right > $this->width) { + throw new InvalidArgumentException('The region must fit inside the matrix'); + } + + for ($y = $top; $y < $bottom; ++$y) { + $offset = $y * $this->rowSize; + + for ($x = $left; $x < $right; ++$x) { + $index = $offset + ($x >> 5); + $this->bits[$index] = $this->bits[$index] | (1 << ($x & 0x1f)); + } + } + } + + /** + * A fast method to retrieve one row of data from the matrix as a BitArray. + */ + public function getRow(int $y, ?BitArray $row = null) : BitArray + { + if (null === $row || $row->getSize() < $this->width) { + $row = new BitArray($this->width); + } + + $offset = $y * $this->rowSize; + + for ($x = 0; $x < $this->rowSize; ++$x) { + $row->setBulk($x << 5, $this->bits[$offset + $x]); + } + + return $row; + } + + /** + * Sets a row of data from a BitArray. + */ + public function setRow(int $y, BitArray $row) : void + { + $bits = $row->getBitArray(); + + for ($i = 0; $i < $this->rowSize; ++$i) { + $this->bits[$y * $this->rowSize + $i] = $bits[$i]; + } + } + + /** + * This is useful in detecting the enclosing rectangle of a 'pure' barcode. + * + * @return int[]|null + */ + public function getEnclosingRectangle() : ?array + { + $left = $this->width; + $top = $this->height; + $right = -1; + $bottom = -1; + + for ($y = 0; $y < $this->height; ++$y) { + for ($x32 = 0; $x32 < $this->rowSize; ++$x32) { + $bits = $this->bits[$y * $this->rowSize + $x32]; + + if (0 !== $bits) { + if ($y < $top) { + $top = $y; + } + + if ($y > $bottom) { + $bottom = $y; + } + + if ($x32 * 32 < $left) { + $bit = 0; + + while (($bits << (31 - $bit)) === 0) { + $bit++; + } + + if (($x32 * 32 + $bit) < $left) { + $left = $x32 * 32 + $bit; + } + } + } + + if ($x32 * 32 + 31 > $right) { + $bit = 31; + + while (0 === BitUtils::unsignedRightShift($bits, $bit)) { + --$bit; + } + + if (($x32 * 32 + $bit) > $right) { + $right = $x32 * 32 + $bit; + } + } + } + } + + $width = $right - $left; + $height = $bottom - $top; + + if ($width < 0 || $height < 0) { + return null; + } + + return [$left, $top, $width, $height]; + } + + /** + * Gets the most top left set bit. + * + * This is useful in detecting a corner of a 'pure' barcode. + * + * @return int[]|null + */ + public function getTopLeftOnBit() : ?array + { + $bitsOffset = 0; + + while ($bitsOffset < count($this->bits) && 0 === $this->bits[$bitsOffset]) { + ++$bitsOffset; + } + + if (count($this->bits) === $bitsOffset) { + return null; + } + + $x = intdiv($bitsOffset, $this->rowSize); + $y = ($bitsOffset % $this->rowSize) << 5; + + $bits = $this->bits[$bitsOffset]; + $bit = 0; + + while (0 === ($bits << (31 - $bit))) { + ++$bit; + } + + $x += $bit; + + return [$x, $y]; + } + + /** + * Gets the most bottom right set bit. + * + * This is useful in detecting a corner of a 'pure' barcode. + * + * @return int[]|null + */ + public function getBottomRightOnBit() : ?array + { + $bitsOffset = count($this->bits) - 1; + + while ($bitsOffset >= 0 && 0 === $this->bits[$bitsOffset]) { + --$bitsOffset; + } + + if ($bitsOffset < 0) { + return null; + } + + $x = intdiv($bitsOffset, $this->rowSize); + $y = ($bitsOffset % $this->rowSize) << 5; + + $bits = $this->bits[$bitsOffset]; + $bit = 0; + + while (0 === BitUtils::unsignedRightShift($bits, $bit)) { + --$bit; + } + + $x += $bit; + + return [$x, $y]; + } + + /** + * Gets the width of the matrix, + */ + public function getWidth() : int + { + return $this->width; + } + + /** + * Gets the height of the matrix. + */ + public function getHeight() : int + { + return $this->height; + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Common/BitUtils.php b/system/vendor/bacon/bacon-qr-code/src/Common/BitUtils.php new file mode 100644 index 0000000..0c575b4 --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Common/BitUtils.php @@ -0,0 +1,41 @@ +>>" in other + * languages. + */ + public static function unsignedRightShift(int $a, int $b) : int + { + return ( + $a >= 0 + ? $a >> $b + : (($a & 0x7fffffff) >> $b) | (0x40000000 >> ($b - 1)) + ); + } + + /** + * Gets the number of trailing zeros. + */ + public static function numberOfTrailingZeros(int $i) : int + { + $lastPos = strrpos(str_pad(decbin($i), 32, '0', STR_PAD_LEFT), '1'); + return $lastPos === false ? 32 : 31 - $lastPos; + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Common/CharacterSetEci.php b/system/vendor/bacon/bacon-qr-code/src/Common/CharacterSetEci.php new file mode 100644 index 0000000..8b62b8c --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Common/CharacterSetEci.php @@ -0,0 +1,177 @@ +|null + */ + private static ?array $valueToEci; + + /** + * @var array|null + */ + private static ?array $nameToEci = null; + + /** + * @param int[] $values + */ + public function __construct(private readonly array $values, string ...$otherEncodingNames) + { + $this->otherEncodingNames = $otherEncodingNames; + } + + /** + * Returns the primary value. + */ + public function getValue() : int + { + return $this->values[0]; + } + + /** + * Gets character set ECI by value. + * + * Returns the representing ECI of a given value, or null if it is legal but unsupported. + * + * @throws InvalidArgumentException if value is not between 0 and 900 + */ + public static function getCharacterSetEciByValue(int $value) : ?self + { + if ($value < 0 || $value >= 900) { + throw new InvalidArgumentException('Value must be between 0 and 900'); + } + + $valueToEci = self::valueToEci(); + + if (! array_key_exists($value, $valueToEci)) { + return null; + } + + return $valueToEci[$value]; + } + + /** + * Returns character set ECI by name. + * + * Returns the representing ECI of a given name, or null if it is legal but unsupported + */ + public static function getCharacterSetEciByName(string $name) : ?self + { + $nameToEci = self::nameToEci(); + $name = strtolower($name); + + if (! array_key_exists($name, $nameToEci)) { + return null; + } + + return $nameToEci[$name]; + } + + private static function valueToEci() : array + { + if (null !== self::$valueToEci) { + return self::$valueToEci; + } + + self::$valueToEci = []; + + foreach (self::values() as $eci) { + foreach ($eci->values as $value) { + self::$valueToEci[$value] = $eci; + } + } + + return self::$valueToEci; + } + + private static function nameToEci() : array + { + if (null !== self::$nameToEci) { + return self::$nameToEci; + } + + self::$nameToEci = []; + + foreach (self::values() as $eci) { + self::$nameToEci[strtolower($eci->name())] = $eci; + + foreach ($eci->otherEncodingNames as $name) { + self::$nameToEci[strtolower($name)] = $eci; + } + } + + return self::$nameToEci; + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Common/EcBlock.php b/system/vendor/bacon/bacon-qr-code/src/Common/EcBlock.php new file mode 100644 index 0000000..bc9e865 --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Common/EcBlock.php @@ -0,0 +1,33 @@ +count; + } + + /** + * Returns the number of data codewords. + */ + public function getDataCodewords() : int + { + return $this->dataCodewords; + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Common/EcBlocks.php b/system/vendor/bacon/bacon-qr-code/src/Common/EcBlocks.php new file mode 100644 index 0000000..63c52a9 --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Common/EcBlocks.php @@ -0,0 +1,66 @@ +ecBlocks = $ecBlocks; + } + + /** + * Returns the number of EC codewords per block. + */ + public function getEcCodewordsPerBlock() : int + { + return $this->ecCodewordsPerBlock; + } + + /** + * Returns the total number of EC block appearances. + */ + public function getNumBlocks() : int + { + $total = 0; + + foreach ($this->ecBlocks as $ecBlock) { + $total += $ecBlock->getCount(); + } + + return $total; + } + + /** + * Returns the total count of EC codewords. + */ + public function getTotalEcCodewords() : int + { + return $this->ecCodewordsPerBlock * $this->getNumBlocks(); + } + + /** + * Returns the EC blocks included in this collection. + * + * @return EcBlock[] + */ + public function getEcBlocks() : array + { + return $this->ecBlocks; + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Common/ErrorCorrectionLevel.php b/system/vendor/bacon/bacon-qr-code/src/Common/ErrorCorrectionLevel.php new file mode 100644 index 0000000..ac84d66 --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Common/ErrorCorrectionLevel.php @@ -0,0 +1,57 @@ +bits; + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Common/FormatInformation.php b/system/vendor/bacon/bacon-qr-code/src/Common/FormatInformation.php new file mode 100644 index 0000000..6a5da0b --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Common/FormatInformation.php @@ -0,0 +1,196 @@ +ecLevel = ErrorCorrectionLevel::forBits(($formatInfo >> 3) & 0x3); + $this->dataMask = $formatInfo & 0x7; + } + + /** + * Checks how many bits are different between two integers. + */ + public static function numBitsDiffering(int $a, int $b) : int + { + $a ^= $b; + + return ( + self::BITS_SET_IN_HALF_BYTE[$a & 0xf] + + self::BITS_SET_IN_HALF_BYTE[(BitUtils::unsignedRightShift($a, 4) & 0xf)] + + self::BITS_SET_IN_HALF_BYTE[(BitUtils::unsignedRightShift($a, 8) & 0xf)] + + self::BITS_SET_IN_HALF_BYTE[(BitUtils::unsignedRightShift($a, 12) & 0xf)] + + self::BITS_SET_IN_HALF_BYTE[(BitUtils::unsignedRightShift($a, 16) & 0xf)] + + self::BITS_SET_IN_HALF_BYTE[(BitUtils::unsignedRightShift($a, 20) & 0xf)] + + self::BITS_SET_IN_HALF_BYTE[(BitUtils::unsignedRightShift($a, 24) & 0xf)] + + self::BITS_SET_IN_HALF_BYTE[(BitUtils::unsignedRightShift($a, 28) & 0xf)] + ); + } + + /** + * Decodes format information. + */ + public static function decodeFormatInformation(int $maskedFormatInfo1, int $maskedFormatInfo2) : ?self + { + $formatInfo = self::doDecodeFormatInformation($maskedFormatInfo1, $maskedFormatInfo2); + + if (null !== $formatInfo) { + return $formatInfo; + } + + // Should return null, but, some QR codes apparently do not mask this info. Try again by actually masking the + // pattern first. + return self::doDecodeFormatInformation( + $maskedFormatInfo1 ^ self::FORMAT_INFO_MASK_QR, + $maskedFormatInfo2 ^ self::FORMAT_INFO_MASK_QR + ); + } + + /** + * Internal method for decoding format information. + */ + private static function doDecodeFormatInformation(int $maskedFormatInfo1, int $maskedFormatInfo2) : ?self + { + $bestDifference = PHP_INT_MAX; + $bestFormatInfo = 0; + + foreach (self::FORMAT_INFO_DECODE_LOOKUP as $decodeInfo) { + $targetInfo = $decodeInfo[0]; + + if ($targetInfo === $maskedFormatInfo1 || $targetInfo === $maskedFormatInfo2) { + // Found an exact match + return new self($decodeInfo[1]); + } + + $bitsDifference = self::numBitsDiffering($maskedFormatInfo1, $targetInfo); + + if ($bitsDifference < $bestDifference) { + $bestFormatInfo = $decodeInfo[1]; + $bestDifference = $bitsDifference; + } + + if ($maskedFormatInfo1 !== $maskedFormatInfo2) { + // Also try the other option + $bitsDifference = self::numBitsDiffering($maskedFormatInfo2, $targetInfo); + + if ($bitsDifference < $bestDifference) { + $bestFormatInfo = $decodeInfo[1]; + $bestDifference = $bitsDifference; + } + } + } + + // Hamming distance of the 32 masked codes is 7, by construction, so <= 3 bits differing means we found a match. + if ($bestDifference <= 3) { + return new self($bestFormatInfo); + } + + return null; + } + + /** + * Returns the error correction level. + */ + public function getErrorCorrectionLevel() : ErrorCorrectionLevel + { + return $this->ecLevel; + } + + /** + * Returns the data mask. + */ + public function getDataMask() : int + { + return $this->dataMask; + } + + /** + * Hashes the code of the EC level. + */ + public function hashCode() : int + { + return ($this->ecLevel->getBits() << 3) | $this->dataMask; + } + + /** + * Verifies if this instance equals another one. + */ + public function equals(self $other) : bool + { + return ( + $this->ecLevel === $other->ecLevel + && $this->dataMask === $other->dataMask + ); + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Common/Mode.php b/system/vendor/bacon/bacon-qr-code/src/Common/Mode.php new file mode 100644 index 0000000..f5fb153 --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Common/Mode.php @@ -0,0 +1,69 @@ +getVersionNumber(); + + if ($number <= 9) { + $offset = 0; + } elseif ($number <= 26) { + $offset = 1; + } else { + $offset = 2; + } + + return $this->characterCountBitsForVersions[$offset]; + } + + /** + * Returns the four bits used to encode this mode. + */ + public function getBits() : int + { + return $this->bits; + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Common/ReedSolomonCodec.php b/system/vendor/bacon/bacon-qr-code/src/Common/ReedSolomonCodec.php new file mode 100644 index 0000000..d16a75e --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Common/ReedSolomonCodec.php @@ -0,0 +1,454 @@ + 8) { + throw new InvalidArgumentException('Symbol size must be between 0 and 8'); + } + + if ($firstRoot < 0 || $firstRoot >= (1 << $symbolSize)) { + throw new InvalidArgumentException('First root must be between 0 and ' . (1 << $symbolSize)); + } + + if ($numRoots < 0 || $numRoots >= (1 << $symbolSize)) { + throw new InvalidArgumentException('Num roots must be between 0 and ' . (1 << $symbolSize)); + } + + if ($padding < 0 || $padding >= ((1 << $symbolSize) - 1 - $numRoots)) { + throw new InvalidArgumentException( + 'Padding must be between 0 and ' . ((1 << $symbolSize) - 1 - $numRoots) + ); + } + + $this->symbolSize = $symbolSize; + $this->blockSize = (1 << $symbolSize) - 1; + $this->padding = $padding; + $this->alphaTo = SplFixedArray::fromArray(array_fill(0, $this->blockSize + 1, 0), false); + $this->indexOf = SplFixedArray::fromArray(array_fill(0, $this->blockSize + 1, 0), false); + + // Generate galous field lookup table + $this->indexOf[0] = $this->blockSize; + $this->alphaTo[$this->blockSize] = 0; + + $sr = 1; + + for ($i = 0; $i < $this->blockSize; ++$i) { + $this->indexOf[$sr] = $i; + $this->alphaTo[$i] = $sr; + + $sr <<= 1; + + if ($sr & (1 << $symbolSize)) { + $sr ^= $gfPoly; + } + + $sr &= $this->blockSize; + } + + if (1 !== $sr) { + throw new RuntimeException('Field generator polynomial is not primitive'); + } + + // Form RS code generator polynomial from its roots + $this->generatorPoly = SplFixedArray::fromArray(array_fill(0, $numRoots + 1, 0), false); + $this->firstRoot = $firstRoot; + $this->primitive = $primitive; + $this->numRoots = $numRoots; + + // Find prim-th root of 1, used in decoding + for ($iPrimitive = 1; ($iPrimitive % $primitive) !== 0; $iPrimitive += $this->blockSize) { + } + + $this->iPrimitive = intdiv($iPrimitive, $primitive); + + $this->generatorPoly[0] = 1; + + for ($i = 0, $root = $firstRoot * $primitive; $i < $numRoots; ++$i, $root += $primitive) { + $this->generatorPoly[$i + 1] = 1; + + for ($j = $i; $j > 0; $j--) { + if ($this->generatorPoly[$j] !== 0) { + $this->generatorPoly[$j] = $this->generatorPoly[$j - 1] ^ $this->alphaTo[ + $this->modNn($this->indexOf[$this->generatorPoly[$j]] + $root) + ]; + } else { + $this->generatorPoly[$j] = $this->generatorPoly[$j - 1]; + } + } + + $this->generatorPoly[$j] = $this->alphaTo[$this->modNn($this->indexOf[$this->generatorPoly[0]] + $root)]; + } + + // Convert generator poly to index form for quicker encoding + for ($i = 0; $i <= $numRoots; ++$i) { + $this->generatorPoly[$i] = $this->indexOf[$this->generatorPoly[$i]]; + } + } + + /** + * Encodes data and writes result back into parity array. + */ + public function encode(SplFixedArray $data, SplFixedArray $parity) : void + { + for ($i = 0; $i < $this->numRoots; ++$i) { + $parity[$i] = 0; + } + + $iterations = $this->blockSize - $this->numRoots - $this->padding; + + for ($i = 0; $i < $iterations; ++$i) { + $feedback = $this->indexOf[$data[$i] ^ $parity[0]]; + + if ($feedback !== $this->blockSize) { + // Feedback term is non-zero + $feedback = $this->modNn($this->blockSize - $this->generatorPoly[$this->numRoots] + $feedback); + + for ($j = 1; $j < $this->numRoots; ++$j) { + $parity[$j] = $parity[$j] ^ $this->alphaTo[ + $this->modNn($feedback + $this->generatorPoly[$this->numRoots - $j]) + ]; + } + } + + for ($j = 0; $j < $this->numRoots - 1; ++$j) { + $parity[$j] = $parity[$j + 1]; + } + + if ($feedback !== $this->blockSize) { + $parity[$this->numRoots - 1] = $this->alphaTo[$this->modNn($feedback + $this->generatorPoly[0])]; + } else { + $parity[$this->numRoots - 1] = 0; + } + } + } + + /** + * Decodes received data. + */ + public function decode(SplFixedArray $data, ?SplFixedArray $erasures = null) : ?int + { + // This speeds up the initialization a bit. + $numRootsPlusOne = SplFixedArray::fromArray(array_fill(0, $this->numRoots + 1, 0), false); + $numRoots = SplFixedArray::fromArray(array_fill(0, $this->numRoots, 0), false); + + $lambda = clone $numRootsPlusOne; + $b = clone $numRootsPlusOne; + $t = clone $numRootsPlusOne; + $omega = clone $numRootsPlusOne; + $root = clone $numRoots; + $loc = clone $numRoots; + + $numErasures = (null !== $erasures ? count($erasures) : 0); + + // Form the Syndromes; i.e., evaluate data(x) at roots of g(x) + $syndromes = SplFixedArray::fromArray(array_fill(0, $this->numRoots, $data[0]), false); + + for ($i = 1; $i < $this->blockSize - $this->padding; ++$i) { + for ($j = 0; $j < $this->numRoots; ++$j) { + if ($syndromes[$j] === 0) { + $syndromes[$j] = $data[$i]; + } else { + $syndromes[$j] = $data[$i] ^ $this->alphaTo[ + $this->modNn($this->indexOf[$syndromes[$j]] + ($this->firstRoot + $j) * $this->primitive) + ]; + } + } + } + + // Convert syndromes to index form, checking for nonzero conditions + $syndromeError = 0; + + for ($i = 0; $i < $this->numRoots; ++$i) { + $syndromeError |= $syndromes[$i]; + $syndromes[$i] = $this->indexOf[$syndromes[$i]]; + } + + if (! $syndromeError) { + // If syndrome is zero, data[] is a codeword and there are no errors to correct, so return data[] + // unmodified. + return 0; + } + + $lambda[0] = 1; + + if ($numErasures > 0) { + // Init lambda to be the erasure locator polynomial + $lambda[1] = $this->alphaTo[$this->modNn($this->primitive * ($this->blockSize - 1 - $erasures[0]))]; + + for ($i = 1; $i < $numErasures; ++$i) { + $u = $this->modNn($this->primitive * ($this->blockSize - 1 - $erasures[$i])); + + for ($j = $i + 1; $j > 0; --$j) { + $tmp = $this->indexOf[$lambda[$j - 1]]; + + if ($tmp !== $this->blockSize) { + $lambda[$j] = $lambda[$j] ^ $this->alphaTo[$this->modNn($u + $tmp)]; + } + } + } + } + + for ($i = 0; $i <= $this->numRoots; ++$i) { + $b[$i] = $this->indexOf[$lambda[$i]]; + } + + // Begin Berlekamp-Massey algorithm to determine error+erasure locator polynomial + $r = $numErasures; + $el = $numErasures; + + while (++$r <= $this->numRoots) { + // Compute discrepancy at the r-th step in poly form + $discrepancyR = 0; + + for ($i = 0; $i < $r; ++$i) { + if ($lambda[$i] !== 0 && $syndromes[$r - $i - 1] !== $this->blockSize) { + $discrepancyR ^= $this->alphaTo[ + $this->modNn($this->indexOf[$lambda[$i]] + $syndromes[$r - $i - 1]) + ]; + } + } + + $discrepancyR = $this->indexOf[$discrepancyR]; + + if ($discrepancyR === $this->blockSize) { + $tmp = $b->toArray(); + array_unshift($tmp, $this->blockSize); + array_pop($tmp); + $b = SplFixedArray::fromArray($tmp, false); + continue; + } + + $t[0] = $lambda[0]; + + for ($i = 0; $i < $this->numRoots; ++$i) { + if ($b[$i] !== $this->blockSize) { + $t[$i + 1] = $lambda[$i + 1] ^ $this->alphaTo[$this->modNn($discrepancyR + $b[$i])]; + } else { + $t[$i + 1] = $lambda[$i + 1]; + } + } + + if (2 * $el <= $r + $numErasures - 1) { + $el = $r + $numErasures - $el; + + for ($i = 0; $i <= $this->numRoots; ++$i) { + $b[$i] = ( + $lambda[$i] === 0 + ? $this->blockSize + : $this->modNn($this->indexOf[$lambda[$i]] - $discrepancyR + $this->blockSize) + ); + } + } else { + $tmp = $b->toArray(); + array_unshift($tmp, $this->blockSize); + array_pop($tmp); + $b = SplFixedArray::fromArray($tmp, false); + } + + $lambda = clone $t; + } + + // Convert lambda to index form and compute deg(lambda(x)) + $degLambda = 0; + + for ($i = 0; $i <= $this->numRoots; ++$i) { + $lambda[$i] = $this->indexOf[$lambda[$i]]; + + if ($lambda[$i] !== $this->blockSize) { + $degLambda = $i; + } + } + + // Find roots of the error+erasure locator polynomial by Chien search. + $reg = clone $lambda; + $reg[0] = 0; + $count = 0; + $i = 1; + + for ($k = $this->iPrimitive - 1; $i <= $this->blockSize; ++$i, $k = $this->modNn($k + $this->iPrimitive)) { + $q = 1; + + for ($j = $degLambda; $j > 0; $j--) { + if ($reg[$j] !== $this->blockSize) { + $reg[$j] = $this->modNn($reg[$j] + $j); + $q ^= $this->alphaTo[$reg[$j]]; + } + } + + if ($q !== 0) { + // Not a root + continue; + } + + // Store root (index-form) and error location number + $root[$count] = $i; + $loc[$count] = $k; + + if (++$count === $degLambda) { + break; + } + } + + if ($degLambda !== $count) { + // deg(lambda) unequal to number of roots: uncorrectable error detected + return null; + } + + // Compute err+eras evaluate poly omega(x) = s(x)*lambda(x) (modulo x**numRoots). In index form. Also find + // deg(omega). + $degOmega = $degLambda - 1; + + for ($i = 0; $i <= $degOmega; ++$i) { + $tmp = 0; + + for ($j = $i; $j >= 0; --$j) { + if ($syndromes[$i - $j] !== $this->blockSize && $lambda[$j] !== $this->blockSize) { + $tmp ^= $this->alphaTo[$this->modNn($syndromes[$i - $j] + $lambda[$j])]; + } + } + + $omega[$i] = $this->indexOf[$tmp]; + } + + // Compute error values in poly-form. num1 = omega(inv(X(l))), num2 = inv(X(l))**(firstRoot-1) and + // den = lambda_pr(inv(X(l))) all in poly form. + for ($j = $count - 1; $j >= 0; --$j) { + $num1 = 0; + + for ($i = $degOmega; $i >= 0; $i--) { + if ($omega[$i] !== $this->blockSize) { + $num1 ^= $this->alphaTo[$this->modNn($omega[$i] + $i * $root[$j])]; + } + } + + $num2 = $this->alphaTo[$this->modNn($root[$j] * ($this->firstRoot - 1) + $this->blockSize)]; + $den = 0; + + // lambda[i+1] for i even is the formal derivativelambda_pr of lambda[i] + for ($i = min($degLambda, $this->numRoots - 1) & ~1; $i >= 0; $i -= 2) { + if ($lambda[$i + 1] !== $this->blockSize) { + $den ^= $this->alphaTo[$this->modNn($lambda[$i + 1] + $i * $root[$j])]; + } + } + + // Apply error to data + if ($num1 !== 0 && $loc[$j] >= $this->padding) { + $data[$loc[$j] - $this->padding] = $data[$loc[$j] - $this->padding] ^ ( + $this->alphaTo[ + $this->modNn( + $this->indexOf[$num1] + $this->indexOf[$num2] + $this->blockSize - $this->indexOf[$den] + ) + ] + ); + } + } + + if (null !== $erasures) { + if (count($erasures) < $count) { + $erasures->setSize($count); + } + + for ($i = 0; $i < $count; $i++) { + $erasures[$i] = $loc[$i]; + } + } + + return $count; + } + + /** + * Computes $x % GF_SIZE, where GF_SIZE is 2**GF_BITS - 1, without a slow divide. + */ + private function modNn(int $x) : int + { + while ($x >= $this->blockSize) { + $x -= $this->blockSize; + $x = ($x >> $this->symbolSize) + ($x & $this->blockSize); + } + + return $x; + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Common/Version.php b/system/vendor/bacon/bacon-qr-code/src/Common/Version.php new file mode 100644 index 0000000..68d3d16 --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Common/Version.php @@ -0,0 +1,592 @@ +|null + */ + private static ?array $versions = null; + + /** + * @param int[] $alignmentPatternCenters + */ + private function __construct( + int $versionNumber, + array $alignmentPatternCenters, + EcBlocks ...$ecBlocks + ) { + $this->versionNumber = $versionNumber; + $this->alignmentPatternCenters = $alignmentPatternCenters; + $this->ecBlocks = $ecBlocks; + + $totalCodewords = 0; + $ecCodewords = $ecBlocks[0]->getEcCodewordsPerBlock(); + + foreach ($ecBlocks[0]->getEcBlocks() as $ecBlock) { + $totalCodewords += $ecBlock->getCount() * ($ecBlock->getDataCodewords() + $ecCodewords); + } + + $this->totalCodewords = $totalCodewords; + } + + /** + * Returns the version number. + */ + public function getVersionNumber() : int + { + return $this->versionNumber; + } + + /** + * Returns the alignment pattern centers. + * + * @return int[] + */ + public function getAlignmentPatternCenters() : array + { + return $this->alignmentPatternCenters; + } + + /** + * Returns the total number of codewords. + */ + public function getTotalCodewords() : int + { + return $this->totalCodewords; + } + + /** + * Calculates the dimension for the current version. + */ + public function getDimensionForVersion() : int + { + return 17 + 4 * $this->versionNumber; + } + + /** + * Returns the number of EC blocks for a specific EC level. + */ + public function getEcBlocksForLevel(ErrorCorrectionLevel $ecLevel) : EcBlocks + { + return $this->ecBlocks[$ecLevel->ordinal()]; + } + + /** + * Gets a provisional version number for a specific dimension. + * + * @throws InvalidArgumentException if dimension is not 1 mod 4 + */ + public static function getProvisionalVersionForDimension(int $dimension) : self + { + if (1 !== $dimension % 4) { + throw new InvalidArgumentException('Dimension is not 1 mod 4'); + } + + return self::getVersionForNumber(intdiv($dimension - 17, 4)); + } + + /** + * Gets a version instance for a specific version number. + * + * @throws InvalidArgumentException if version number is out of range + */ + public static function getVersionForNumber(int $versionNumber) : self + { + if ($versionNumber < 1 || $versionNumber > 40) { + throw new InvalidArgumentException('Version number must be between 1 and 40'); + } + + return self::versions()[$versionNumber - 1]; + } + + /** + * Decodes version information from an integer and returns the version. + */ + public static function decodeVersionInformation(int $versionBits) : ?self + { + $bestDifference = PHP_INT_MAX; + $bestVersion = 0; + + foreach (self::VERSION_DECODE_INFO as $i => $targetVersion) { + if ($targetVersion === $versionBits) { + return self::getVersionForNumber($i + 7); + } + + $bitsDifference = FormatInformation::numBitsDiffering($versionBits, $targetVersion); + + if ($bitsDifference < $bestDifference) { + $bestVersion = $i + 7; + $bestDifference = $bitsDifference; + } + } + + if ($bestDifference <= 3) { + return self::getVersionForNumber($bestVersion); + } + + return null; + } + + /** + * Builds the function pattern for the current version. + */ + public function buildFunctionPattern() : BitMatrix + { + $dimension = $this->getDimensionForVersion(); + $bitMatrix = new BitMatrix($dimension); + + // Top left finder pattern + separator + format + $bitMatrix->setRegion(0, 0, 9, 9); + // Top right finder pattern + separator + format + $bitMatrix->setRegion($dimension - 8, 0, 8, 9); + // Bottom left finder pattern + separator + format + $bitMatrix->setRegion(0, $dimension - 8, 9, 8); + + // Alignment patterns + $max = count($this->alignmentPatternCenters); + + for ($x = 0; $x < $max; ++$x) { + $i = $this->alignmentPatternCenters[$x] - 2; + + for ($y = 0; $y < $max; ++$y) { + if (($x === 0 && ($y === 0 || $y === $max - 1)) || ($x === $max - 1 && $y === 0)) { + // No alignment patterns near the three finder paterns + continue; + } + + $bitMatrix->setRegion($this->alignmentPatternCenters[$y] - 2, $i, 5, 5); + } + } + + // Vertical timing pattern + $bitMatrix->setRegion(6, 9, 1, $dimension - 17); + // Horizontal timing pattern + $bitMatrix->setRegion(9, 6, $dimension - 17, 1); + + if ($this->versionNumber > 6) { + // Version info, top right + $bitMatrix->setRegion($dimension - 11, 0, 3, 6); + // Version info, bottom left + $bitMatrix->setRegion(0, $dimension - 11, 6, 3); + } + + return $bitMatrix; + } + + /** + * Returns a string representation for the version. + */ + public function __toString() : string + { + return (string) $this->versionNumber; + } + + /** + * Build and cache a specific version. + * + * See ISO 18004:2006 6.5.1 Table 9. + * + * @return array + */ + private static function versions() : array + { + if (null !== self::$versions) { + return self::$versions; + } + + return self::$versions = [ + new self( + 1, + [], + new EcBlocks(7, new EcBlock(1, 19)), + new EcBlocks(10, new EcBlock(1, 16)), + new EcBlocks(13, new EcBlock(1, 13)), + new EcBlocks(17, new EcBlock(1, 9)) + ), + new self( + 2, + [6, 18], + new EcBlocks(10, new EcBlock(1, 34)), + new EcBlocks(16, new EcBlock(1, 28)), + new EcBlocks(22, new EcBlock(1, 22)), + new EcBlocks(28, new EcBlock(1, 16)) + ), + new self( + 3, + [6, 22], + new EcBlocks(15, new EcBlock(1, 55)), + new EcBlocks(26, new EcBlock(1, 44)), + new EcBlocks(18, new EcBlock(2, 17)), + new EcBlocks(22, new EcBlock(2, 13)) + ), + new self( + 4, + [6, 26], + new EcBlocks(20, new EcBlock(1, 80)), + new EcBlocks(18, new EcBlock(2, 32)), + new EcBlocks(26, new EcBlock(2, 24)), + new EcBlocks(16, new EcBlock(4, 9)) + ), + new self( + 5, + [6, 30], + new EcBlocks(26, new EcBlock(1, 108)), + new EcBlocks(24, new EcBlock(2, 43)), + new EcBlocks(18, new EcBlock(2, 15), new EcBlock(2, 16)), + new EcBlocks(22, new EcBlock(2, 11), new EcBlock(2, 12)) + ), + new self( + 6, + [6, 34], + new EcBlocks(18, new EcBlock(2, 68)), + new EcBlocks(16, new EcBlock(4, 27)), + new EcBlocks(24, new EcBlock(4, 19)), + new EcBlocks(28, new EcBlock(4, 15)) + ), + new self( + 7, + [6, 22, 38], + new EcBlocks(20, new EcBlock(2, 78)), + new EcBlocks(18, new EcBlock(4, 31)), + new EcBlocks(18, new EcBlock(2, 14), new EcBlock(4, 15)), + new EcBlocks(26, new EcBlock(4, 13), new EcBlock(1, 14)) + ), + new self( + 8, + [6, 24, 42], + new EcBlocks(24, new EcBlock(2, 97)), + new EcBlocks(22, new EcBlock(2, 38), new EcBlock(2, 39)), + new EcBlocks(22, new EcBlock(4, 18), new EcBlock(2, 19)), + new EcBlocks(26, new EcBlock(4, 14), new EcBlock(2, 15)) + ), + new self( + 9, + [6, 26, 46], + new EcBlocks(30, new EcBlock(2, 116)), + new EcBlocks(22, new EcBlock(3, 36), new EcBlock(2, 37)), + new EcBlocks(20, new EcBlock(4, 16), new EcBlock(4, 17)), + new EcBlocks(24, new EcBlock(4, 12), new EcBlock(4, 13)) + ), + new self( + 10, + [6, 28, 50], + new EcBlocks(18, new EcBlock(2, 68), new EcBlock(2, 69)), + new EcBlocks(26, new EcBlock(4, 43), new EcBlock(1, 44)), + new EcBlocks(24, new EcBlock(6, 19), new EcBlock(2, 20)), + new EcBlocks(28, new EcBlock(6, 15), new EcBlock(2, 16)) + ), + new self( + 11, + [6, 30, 54], + new EcBlocks(20, new EcBlock(4, 81)), + new EcBlocks(30, new EcBlock(1, 50), new EcBlock(4, 51)), + new EcBlocks(28, new EcBlock(4, 22), new EcBlock(4, 23)), + new EcBlocks(24, new EcBlock(3, 12), new EcBlock(8, 13)) + ), + new self( + 12, + [6, 32, 58], + new EcBlocks(24, new EcBlock(2, 92), new EcBlock(2, 93)), + new EcBlocks(22, new EcBlock(6, 36), new EcBlock(2, 37)), + new EcBlocks(26, new EcBlock(4, 20), new EcBlock(6, 21)), + new EcBlocks(28, new EcBlock(7, 14), new EcBlock(4, 15)) + ), + new self( + 13, + [6, 34, 62], + new EcBlocks(26, new EcBlock(4, 107)), + new EcBlocks(22, new EcBlock(8, 37), new EcBlock(1, 38)), + new EcBlocks(24, new EcBlock(8, 20), new EcBlock(4, 21)), + new EcBlocks(22, new EcBlock(12, 11), new EcBlock(4, 12)) + ), + new self( + 14, + [6, 26, 46, 66], + new EcBlocks(30, new EcBlock(3, 115), new EcBlock(1, 116)), + new EcBlocks(24, new EcBlock(4, 40), new EcBlock(5, 41)), + new EcBlocks(20, new EcBlock(11, 16), new EcBlock(5, 17)), + new EcBlocks(24, new EcBlock(11, 12), new EcBlock(5, 13)) + ), + new self( + 15, + [6, 26, 48, 70], + new EcBlocks(22, new EcBlock(5, 87), new EcBlock(1, 88)), + new EcBlocks(24, new EcBlock(5, 41), new EcBlock(5, 42)), + new EcBlocks(30, new EcBlock(5, 24), new EcBlock(7, 25)), + new EcBlocks(24, new EcBlock(11, 12), new EcBlock(7, 13)) + ), + new self( + 16, + [6, 26, 50, 74], + new EcBlocks(24, new EcBlock(5, 98), new EcBlock(1, 99)), + new EcBlocks(28, new EcBlock(7, 45), new EcBlock(3, 46)), + new EcBlocks(24, new EcBlock(15, 19), new EcBlock(2, 20)), + new EcBlocks(30, new EcBlock(3, 15), new EcBlock(13, 16)) + ), + new self( + 17, + [6, 30, 54, 78], + new EcBlocks(28, new EcBlock(1, 107), new EcBlock(5, 108)), + new EcBlocks(28, new EcBlock(10, 46), new EcBlock(1, 47)), + new EcBlocks(28, new EcBlock(1, 22), new EcBlock(15, 23)), + new EcBlocks(28, new EcBlock(2, 14), new EcBlock(17, 15)) + ), + new self( + 18, + [6, 30, 56, 82], + new EcBlocks(30, new EcBlock(5, 120), new EcBlock(1, 121)), + new EcBlocks(26, new EcBlock(9, 43), new EcBlock(4, 44)), + new EcBlocks(28, new EcBlock(17, 22), new EcBlock(1, 23)), + new EcBlocks(28, new EcBlock(2, 14), new EcBlock(19, 15)) + ), + new self( + 19, + [6, 30, 58, 86], + new EcBlocks(28, new EcBlock(3, 113), new EcBlock(4, 114)), + new EcBlocks(26, new EcBlock(3, 44), new EcBlock(11, 45)), + new EcBlocks(26, new EcBlock(17, 21), new EcBlock(4, 22)), + new EcBlocks(26, new EcBlock(9, 13), new EcBlock(16, 14)) + ), + new self( + 20, + [6, 34, 62, 90], + new EcBlocks(28, new EcBlock(3, 107), new EcBlock(5, 108)), + new EcBlocks(26, new EcBlock(3, 41), new EcBlock(13, 42)), + new EcBlocks(30, new EcBlock(15, 24), new EcBlock(5, 25)), + new EcBlocks(28, new EcBlock(15, 15), new EcBlock(10, 16)) + ), + new self( + 21, + [6, 28, 50, 72, 94], + new EcBlocks(28, new EcBlock(4, 116), new EcBlock(4, 117)), + new EcBlocks(26, new EcBlock(17, 42)), + new EcBlocks(28, new EcBlock(17, 22), new EcBlock(6, 23)), + new EcBlocks(30, new EcBlock(19, 16), new EcBlock(6, 17)) + ), + new self( + 22, + [6, 26, 50, 74, 98], + new EcBlocks(28, new EcBlock(2, 111), new EcBlock(7, 112)), + new EcBlocks(28, new EcBlock(17, 46)), + new EcBlocks(30, new EcBlock(7, 24), new EcBlock(16, 25)), + new EcBlocks(24, new EcBlock(34, 13)) + ), + new self( + 23, + [6, 30, 54, 78, 102], + new EcBlocks(30, new EcBlock(4, 121), new EcBlock(5, 122)), + new EcBlocks(28, new EcBlock(4, 47), new EcBlock(14, 48)), + new EcBlocks(30, new EcBlock(11, 24), new EcBlock(14, 25)), + new EcBlocks(30, new EcBlock(16, 15), new EcBlock(14, 16)) + ), + new self( + 24, + [6, 28, 54, 80, 106], + new EcBlocks(30, new EcBlock(6, 117), new EcBlock(4, 118)), + new EcBlocks(28, new EcBlock(6, 45), new EcBlock(14, 46)), + new EcBlocks(30, new EcBlock(11, 24), new EcBlock(16, 25)), + new EcBlocks(30, new EcBlock(30, 16), new EcBlock(2, 17)) + ), + new self( + 25, + [6, 32, 58, 84, 110], + new EcBlocks(26, new EcBlock(8, 106), new EcBlock(4, 107)), + new EcBlocks(28, new EcBlock(8, 47), new EcBlock(13, 48)), + new EcBlocks(30, new EcBlock(7, 24), new EcBlock(22, 25)), + new EcBlocks(30, new EcBlock(22, 15), new EcBlock(13, 16)) + ), + new self( + 26, + [6, 30, 58, 86, 114], + new EcBlocks(28, new EcBlock(10, 114), new EcBlock(2, 115)), + new EcBlocks(28, new EcBlock(19, 46), new EcBlock(4, 47)), + new EcBlocks(28, new EcBlock(28, 22), new EcBlock(6, 23)), + new EcBlocks(30, new EcBlock(33, 16), new EcBlock(4, 17)) + ), + new self( + 27, + [6, 34, 62, 90, 118], + new EcBlocks(30, new EcBlock(8, 122), new EcBlock(4, 123)), + new EcBlocks(28, new EcBlock(22, 45), new EcBlock(3, 46)), + new EcBlocks(30, new EcBlock(8, 23), new EcBlock(26, 24)), + new EcBlocks(30, new EcBlock(12, 15), new EcBlock(28, 16)) + ), + new self( + 28, + [6, 26, 50, 74, 98, 122], + new EcBlocks(30, new EcBlock(3, 117), new EcBlock(10, 118)), + new EcBlocks(28, new EcBlock(3, 45), new EcBlock(23, 46)), + new EcBlocks(30, new EcBlock(4, 24), new EcBlock(31, 25)), + new EcBlocks(30, new EcBlock(11, 15), new EcBlock(31, 16)) + ), + new self( + 29, + [6, 30, 54, 78, 102, 126], + new EcBlocks(30, new EcBlock(7, 116), new EcBlock(7, 117)), + new EcBlocks(28, new EcBlock(21, 45), new EcBlock(7, 46)), + new EcBlocks(30, new EcBlock(1, 23), new EcBlock(37, 24)), + new EcBlocks(30, new EcBlock(19, 15), new EcBlock(26, 16)) + ), + new self( + 30, + [6, 26, 52, 78, 104, 130], + new EcBlocks(30, new EcBlock(5, 115), new EcBlock(10, 116)), + new EcBlocks(28, new EcBlock(19, 47), new EcBlock(10, 48)), + new EcBlocks(30, new EcBlock(15, 24), new EcBlock(25, 25)), + new EcBlocks(30, new EcBlock(23, 15), new EcBlock(25, 16)) + ), + new self( + 31, + [6, 30, 56, 82, 108, 134], + new EcBlocks(30, new EcBlock(13, 115), new EcBlock(3, 116)), + new EcBlocks(28, new EcBlock(2, 46), new EcBlock(29, 47)), + new EcBlocks(30, new EcBlock(42, 24), new EcBlock(1, 25)), + new EcBlocks(30, new EcBlock(23, 15), new EcBlock(28, 16)) + ), + new self( + 32, + [6, 34, 60, 86, 112, 138], + new EcBlocks(30, new EcBlock(17, 115)), + new EcBlocks(28, new EcBlock(10, 46), new EcBlock(23, 47)), + new EcBlocks(30, new EcBlock(10, 24), new EcBlock(35, 25)), + new EcBlocks(30, new EcBlock(19, 15), new EcBlock(35, 16)) + ), + new self( + 33, + [6, 30, 58, 86, 114, 142], + new EcBlocks(30, new EcBlock(17, 115), new EcBlock(1, 116)), + new EcBlocks(28, new EcBlock(14, 46), new EcBlock(21, 47)), + new EcBlocks(30, new EcBlock(29, 24), new EcBlock(19, 25)), + new EcBlocks(30, new EcBlock(11, 15), new EcBlock(46, 16)) + ), + new self( + 34, + [6, 34, 62, 90, 118, 146], + new EcBlocks(30, new EcBlock(13, 115), new EcBlock(6, 116)), + new EcBlocks(28, new EcBlock(14, 46), new EcBlock(23, 47)), + new EcBlocks(30, new EcBlock(44, 24), new EcBlock(7, 25)), + new EcBlocks(30, new EcBlock(59, 16), new EcBlock(1, 17)) + ), + new self( + 35, + [6, 30, 54, 78, 102, 126, 150], + new EcBlocks(30, new EcBlock(12, 121), new EcBlock(7, 122)), + new EcBlocks(28, new EcBlock(12, 47), new EcBlock(26, 48)), + new EcBlocks(30, new EcBlock(39, 24), new EcBlock(14, 25)), + new EcBlocks(30, new EcBlock(22, 15), new EcBlock(41, 16)) + ), + new self( + 36, + [6, 24, 50, 76, 102, 128, 154], + new EcBlocks(30, new EcBlock(6, 121), new EcBlock(14, 122)), + new EcBlocks(28, new EcBlock(6, 47), new EcBlock(34, 48)), + new EcBlocks(30, new EcBlock(46, 24), new EcBlock(10, 25)), + new EcBlocks(30, new EcBlock(2, 15), new EcBlock(64, 16)) + ), + new self( + 37, + [6, 28, 54, 80, 106, 132, 158], + new EcBlocks(30, new EcBlock(17, 122), new EcBlock(4, 123)), + new EcBlocks(28, new EcBlock(29, 46), new EcBlock(14, 47)), + new EcBlocks(30, new EcBlock(49, 24), new EcBlock(10, 25)), + new EcBlocks(30, new EcBlock(24, 15), new EcBlock(46, 16)) + ), + new self( + 38, + [6, 32, 58, 84, 110, 136, 162], + new EcBlocks(30, new EcBlock(4, 122), new EcBlock(18, 123)), + new EcBlocks(28, new EcBlock(13, 46), new EcBlock(32, 47)), + new EcBlocks(30, new EcBlock(48, 24), new EcBlock(14, 25)), + new EcBlocks(30, new EcBlock(42, 15), new EcBlock(32, 16)) + ), + new self( + 39, + [6, 26, 54, 82, 110, 138, 166], + new EcBlocks(30, new EcBlock(20, 117), new EcBlock(4, 118)), + new EcBlocks(28, new EcBlock(40, 47), new EcBlock(7, 48)), + new EcBlocks(30, new EcBlock(43, 24), new EcBlock(22, 25)), + new EcBlocks(30, new EcBlock(10, 15), new EcBlock(67, 16)) + ), + new self( + 40, + [6, 30, 58, 86, 114, 142, 170], + new EcBlocks(30, new EcBlock(19, 118), new EcBlock(6, 119)), + new EcBlocks(28, new EcBlock(18, 47), new EcBlock(31, 48)), + new EcBlocks(30, new EcBlock(34, 24), new EcBlock(34, 25)), + new EcBlocks(30, new EcBlock(20, 15), new EcBlock(61, 16)) + ), + ]; + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Encoder/BlockPair.php b/system/vendor/bacon/bacon-qr-code/src/Encoder/BlockPair.php new file mode 100644 index 0000000..b1dc5c4 --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Encoder/BlockPair.php @@ -0,0 +1,44 @@ + $dataBytes Data bytes in the block. + * @param SplFixedArray $errorCorrectionBytes Error correction bytes in the block. + */ + public function __construct( + private readonly SplFixedArray $dataBytes, + private readonly SplFixedArray $errorCorrectionBytes + ) { + } + + /** + * Gets the data bytes. + * + * @return SplFixedArray + */ + public function getDataBytes() : SplFixedArray + { + return $this->dataBytes; + } + + /** + * Gets the error correction bytes. + * + * @return SplFixedArray + */ + public function getErrorCorrectionBytes() : SplFixedArray + { + return $this->errorCorrectionBytes; + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Encoder/ByteMatrix.php b/system/vendor/bacon/bacon-qr-code/src/Encoder/ByteMatrix.php new file mode 100644 index 0000000..eefcf1c --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Encoder/ByteMatrix.php @@ -0,0 +1,134 @@ +> + */ + private SplFixedArray $bytes; + + public function __construct(private readonly int $width, private readonly int $height) + { + $this->bytes = new SplFixedArray($height); + + for ($y = 0; $y < $height; ++$y) { + $this->bytes[$y] = SplFixedArray::fromArray(array_fill(0, $width, 0)); + } + } + + /** + * Gets the width of the matrix. + */ + public function getWidth() : int + { + return $this->width; + } + + /** + * Gets the height of the matrix. + */ + public function getHeight() : int + { + return $this->height; + } + + /** + * Gets the internal representation of the matrix. + * + * @return SplFixedArray> + */ + public function getArray() : SplFixedArray + { + return $this->bytes; + } + + /** + * @return Traversable + */ + public function getBytes() : Traversable + { + foreach ($this->bytes as $row) { + foreach ($row as $byte) { + yield $byte; + } + } + } + + /** + * Gets the byte for a specific position. + */ + public function get(int $x, int $y) : int + { + return $this->bytes[$y][$x]; + } + + /** + * Sets the byte for a specific position. + */ + public function set(int $x, int $y, int $value) : void + { + $this->bytes[$y][$x] = $value; + } + + /** + * Clears the matrix with a specific value. + */ + public function clear(int $value) : void + { + for ($y = 0; $y < $this->height; ++$y) { + for ($x = 0; $x < $this->width; ++$x) { + $this->bytes[$y][$x] = $value; + } + } + } + + public function __clone() + { + $this->bytes = clone $this->bytes; + + foreach ($this->bytes as $index => $row) { + $this->bytes[$index] = clone $row; + } + } + + /** + * Returns a string representation of the matrix. + */ + public function __toString() : string + { + $result = ''; + + for ($y = 0; $y < $this->height; $y++) { + for ($x = 0; $x < $this->width; $x++) { + switch ($this->bytes[$y][$x]) { + case 0: + $result .= ' 0'; + break; + + case 1: + $result .= ' 1'; + break; + + default: + $result .= ' '; + break; + } + } + + $result .= "\n"; + } + + return $result; + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Encoder/Encoder.php b/system/vendor/bacon/bacon-qr-code/src/Encoder/Encoder.php new file mode 100644 index 0000000..c363953 --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Encoder/Encoder.php @@ -0,0 +1,679 @@ + + */ + private static array $codecs = []; + + /** + * Encodes "content" with the error correction level "ecLevel". + */ + public static function encode( + string $content, + ErrorCorrectionLevel $ecLevel, + string $encoding = self::DEFAULT_BYTE_MODE_ENCODING, + ?Version $forcedVersion = null, + // Barcode scanner might not be able to read the encoded message of the QR code with the prefix ECI of UTF-8 + bool $prefixEci = true + ) : QrCode { + // Pick an encoding mode appropriate for the content. Note that this + // will not attempt to use multiple modes / segments even if that were + // more efficient. Would be nice. + $mode = self::chooseMode($content, $encoding); + + // This will store the header information, like mode and length, as well + // as "header" segments like an ECI segment. + $headerBits = new BitArray(); + + // Append ECI segment if applicable + if ($prefixEci && Mode::BYTE() === $mode && self::DEFAULT_BYTE_MODE_ENCODING !== $encoding) { + $eci = CharacterSetEci::getCharacterSetEciByName($encoding); + + if (null !== $eci) { + self::appendEci($eci, $headerBits); + } + } + + // (With ECI in place,) Write the mode marker + self::appendModeInfo($mode, $headerBits); + + // Collect data within the main segment, separately, to count its size + // if needed. Don't add it to main payload yet. + $dataBits = new BitArray(); + self::appendBytes($content, $mode, $dataBits, $encoding); + + // Hard part: need to know version to know how many bits length takes. + // But need to know how many bits it takes to know version. First we + // take a guess at version by assuming version will be the minimum, 1: + $provisionalBitsNeeded = $headerBits->getSize() + + $mode->getCharacterCountBits(Version::getVersionForNumber(1)) + + $dataBits->getSize(); + $provisionalVersion = self::chooseVersion($provisionalBitsNeeded, $ecLevel); + + // Use that guess to calculate the right version. I am still not sure + // this works in 100% of cases. + $bitsNeeded = $headerBits->getSize() + + $mode->getCharacterCountBits($provisionalVersion) + + $dataBits->getSize(); + $version = self::chooseVersion($bitsNeeded, $ecLevel); + + if (null !== $forcedVersion) { + // Forced version check + if ($version->getVersionNumber() <= $forcedVersion->getVersionNumber()) { + // Calculated minimum version is same or equal as forced version + $version = $forcedVersion; + } else { + throw new WriterException( + 'Invalid version! Calculated version: ' + . $version->getVersionNumber() + . ', requested version: ' + . $forcedVersion->getVersionNumber() + ); + } + } + + $headerAndDataBits = new BitArray(); + $headerAndDataBits->appendBitArray($headerBits); + + // Find "length" of main segment and write it. + $numLetters = (Mode::BYTE() === $mode ? $dataBits->getSizeInBytes() : strlen($content)); + self::appendLengthInfo($numLetters, $version, $mode, $headerAndDataBits); + + // Put data together into the overall payload. + $headerAndDataBits->appendBitArray($dataBits); + $ecBlocks = $version->getEcBlocksForLevel($ecLevel); + $numDataBytes = $version->getTotalCodewords() - $ecBlocks->getTotalEcCodewords(); + + // Terminate the bits properly. + self::terminateBits($numDataBytes, $headerAndDataBits); + + // Interleave data bits with error correction code. + $finalBits = self::interleaveWithEcBytes( + $headerAndDataBits, + $version->getTotalCodewords(), + $numDataBytes, + $ecBlocks->getNumBlocks() + ); + + // Choose the mask pattern. + $dimension = $version->getDimensionForVersion(); + $matrix = new ByteMatrix($dimension, $dimension); + $maskPattern = self::chooseMaskPattern($finalBits, $ecLevel, $version, $matrix); + + // Build the matrix. + MatrixUtil::buildMatrix($finalBits, $ecLevel, $version, $maskPattern, $matrix); + + return new QrCode($mode, $ecLevel, $version, $maskPattern, $matrix); + } + + /** + * Gets the alphanumeric code for a byte. + */ + private static function getAlphanumericCode(int $code) : int + { + if (isset(self::ALPHANUMERIC_TABLE[$code])) { + return self::ALPHANUMERIC_TABLE[$code]; + } + + return -1; + } + + /** + * Chooses the best mode for a given content. + */ + private static function chooseMode(string $content, ?string $encoding = null) : Mode + { + if (null !== $encoding && 0 === strcasecmp($encoding, 'SHIFT-JIS')) { + return self::isOnlyDoubleByteKanji($content) ? Mode::KANJI() : Mode::BYTE(); + } + + $hasNumeric = false; + $hasAlphanumeric = false; + $contentLength = strlen($content); + + for ($i = 0; $i < $contentLength; ++$i) { + $char = $content[$i]; + + if (ctype_digit($char)) { + $hasNumeric = true; + } elseif (-1 !== self::getAlphanumericCode(ord($char))) { + $hasAlphanumeric = true; + } else { + return Mode::BYTE(); + } + } + + if ($hasAlphanumeric) { + return Mode::ALPHANUMERIC(); + } elseif ($hasNumeric) { + return Mode::NUMERIC(); + } + + return Mode::BYTE(); + } + + /** + * Calculates the mask penalty for a matrix. + */ + private static function calculateMaskPenalty(ByteMatrix $matrix) : int + { + return ( + MaskUtil::applyMaskPenaltyRule1($matrix) + + MaskUtil::applyMaskPenaltyRule2($matrix) + + MaskUtil::applyMaskPenaltyRule3($matrix) + + MaskUtil::applyMaskPenaltyRule4($matrix) + ); + } + + /** + * Checks if content only consists of double-byte kanji characters. + */ + private static function isOnlyDoubleByteKanji(string $content) : bool + { + $bytes = @iconv('utf-8', 'SHIFT-JIS', $content); + + if (false === $bytes) { + return false; + } + + $length = strlen($bytes); + + if (0 !== $length % 2) { + return false; + } + + for ($i = 0; $i < $length; $i += 2) { + $byte = ord($bytes[$i]) & 0xff; + + if (($byte < 0x81 || $byte > 0x9f) && $byte < 0xe0 || $byte > 0xeb) { + return false; + } + } + + return true; + } + + /** + * Chooses the best mask pattern for a matrix. + */ + private static function chooseMaskPattern( + BitArray $bits, + ErrorCorrectionLevel $ecLevel, + Version $version, + ByteMatrix $matrix + ) : int { + $minPenalty = PHP_INT_MAX; + $bestMaskPattern = -1; + + for ($maskPattern = 0; $maskPattern < QrCode::NUM_MASK_PATTERNS; ++$maskPattern) { + MatrixUtil::buildMatrix($bits, $ecLevel, $version, $maskPattern, $matrix); + $penalty = self::calculateMaskPenalty($matrix); + + if ($penalty < $minPenalty) { + $minPenalty = $penalty; + $bestMaskPattern = $maskPattern; + } + } + + return $bestMaskPattern; + } + + /** + * Chooses the best version for the input. + * + * @throws WriterException if data is too big + */ + private static function chooseVersion(int $numInputBits, ErrorCorrectionLevel $ecLevel) : Version + { + for ($versionNum = 1; $versionNum <= 40; ++$versionNum) { + $version = Version::getVersionForNumber($versionNum); + $numBytes = $version->getTotalCodewords(); + + $ecBlocks = $version->getEcBlocksForLevel($ecLevel); + $numEcBytes = $ecBlocks->getTotalEcCodewords(); + + $numDataBytes = $numBytes - $numEcBytes; + $totalInputBytes = intdiv($numInputBits + 8, 8); + + if ($numDataBytes >= $totalInputBytes) { + return $version; + } + } + + throw new WriterException('Data too big'); + } + + /** + * Terminates the bits in a bit array. + * + * @throws WriterException if data bits cannot fit in the QR code + * @throws WriterException if bits size does not equal the capacity + */ + private static function terminateBits(int $numDataBytes, BitArray $bits) : void + { + $capacity = $numDataBytes << 3; + + if ($bits->getSize() > $capacity) { + throw new WriterException('Data bits cannot fit in the QR code'); + } + + for ($i = 0; $i < 4 && $bits->getSize() < $capacity; ++$i) { + $bits->appendBit(false); + } + + $numBitsInLastByte = $bits->getSize() & 0x7; + + if ($numBitsInLastByte > 0) { + for ($i = $numBitsInLastByte; $i < 8; ++$i) { + $bits->appendBit(false); + } + } + + $numPaddingBytes = $numDataBytes - $bits->getSizeInBytes(); + + for ($i = 0; $i < $numPaddingBytes; ++$i) { + $bits->appendBits(0 === ($i & 0x1) ? 0xec : 0x11, 8); + } + + if ($bits->getSize() !== $capacity) { + throw new WriterException('Bits size does not equal capacity'); + } + } + + /** + * Gets number of data- and EC bytes for a block ID. + * + * @return int[] + * @throws WriterException if block ID is too large + * @throws WriterException if EC bytes mismatch + * @throws WriterException if RS blocks mismatch + * @throws WriterException if total bytes mismatch + */ + private static function getNumDataBytesAndNumEcBytesForBlockId( + int $numTotalBytes, + int $numDataBytes, + int $numRsBlocks, + int $blockId + ) : array { + if ($blockId >= $numRsBlocks) { + throw new WriterException('Block ID too large'); + } + + $numRsBlocksInGroup2 = $numTotalBytes % $numRsBlocks; + $numRsBlocksInGroup1 = $numRsBlocks - $numRsBlocksInGroup2; + $numTotalBytesInGroup1 = intdiv($numTotalBytes, $numRsBlocks); + $numTotalBytesInGroup2 = $numTotalBytesInGroup1 + 1; + $numDataBytesInGroup1 = intdiv($numDataBytes, $numRsBlocks); + $numDataBytesInGroup2 = $numDataBytesInGroup1 + 1; + $numEcBytesInGroup1 = $numTotalBytesInGroup1 - $numDataBytesInGroup1; + $numEcBytesInGroup2 = $numTotalBytesInGroup2 - $numDataBytesInGroup2; + + if ($numEcBytesInGroup1 !== $numEcBytesInGroup2) { + throw new WriterException('EC bytes mismatch'); + } + + if ($numRsBlocks !== $numRsBlocksInGroup1 + $numRsBlocksInGroup2) { + throw new WriterException('RS blocks mismatch'); + } + + if ($numTotalBytes !== + (($numDataBytesInGroup1 + $numEcBytesInGroup1) * $numRsBlocksInGroup1) + + (($numDataBytesInGroup2 + $numEcBytesInGroup2) * $numRsBlocksInGroup2) + ) { + throw new WriterException('Total bytes mismatch'); + } + + if ($blockId < $numRsBlocksInGroup1) { + return [$numDataBytesInGroup1, $numEcBytesInGroup1]; + } else { + return [$numDataBytesInGroup2, $numEcBytesInGroup2]; + } + } + + /** + * Interleaves data with EC bytes. + * + * @throws WriterException if number of bits and data bytes does not match + * @throws WriterException if data bytes does not match offset + * @throws WriterException if an interleaving error occurs + */ + private static function interleaveWithEcBytes( + BitArray $bits, + int $numTotalBytes, + int $numDataBytes, + int $numRsBlocks + ) : BitArray { + if ($bits->getSizeInBytes() !== $numDataBytes) { + throw new WriterException('Number of bits and data bytes does not match'); + } + + $dataBytesOffset = 0; + $maxNumDataBytes = 0; + $maxNumEcBytes = 0; + + $blocks = new SplFixedArray($numRsBlocks); + + for ($i = 0; $i < $numRsBlocks; ++$i) { + list($numDataBytesInBlock, $numEcBytesInBlock) = self::getNumDataBytesAndNumEcBytesForBlockId( + $numTotalBytes, + $numDataBytes, + $numRsBlocks, + $i + ); + + $size = $numDataBytesInBlock; + $dataBytes = $bits->toBytes(8 * $dataBytesOffset, $size); + $ecBytes = self::generateEcBytes($dataBytes, $numEcBytesInBlock); + $blocks[$i] = new BlockPair($dataBytes, $ecBytes); + + $maxNumDataBytes = max($maxNumDataBytes, $size); + $maxNumEcBytes = max($maxNumEcBytes, count($ecBytes)); + $dataBytesOffset += $numDataBytesInBlock; + } + + if ($numDataBytes !== $dataBytesOffset) { + throw new WriterException('Data bytes does not match offset'); + } + + $result = new BitArray(); + + for ($i = 0; $i < $maxNumDataBytes; ++$i) { + foreach ($blocks as $block) { + $dataBytes = $block->getDataBytes(); + + if ($i < count($dataBytes)) { + $result->appendBits($dataBytes[$i], 8); + } + } + } + + for ($i = 0; $i < $maxNumEcBytes; ++$i) { + foreach ($blocks as $block) { + $ecBytes = $block->getErrorCorrectionBytes(); + + if ($i < count($ecBytes)) { + $result->appendBits($ecBytes[$i], 8); + } + } + } + + if ($numTotalBytes !== $result->getSizeInBytes()) { + throw new WriterException( + 'Interleaving error: ' . $numTotalBytes . ' and ' . $result->getSizeInBytes() . ' differ' + ); + } + + return $result; + } + + /** + * Generates EC bytes for given data. + * + * @param SplFixedArray $dataBytes + * @return SplFixedArray + */ + private static function generateEcBytes(SplFixedArray $dataBytes, int $numEcBytesInBlock) : SplFixedArray + { + $numDataBytes = count($dataBytes); + $toEncode = new SplFixedArray($numDataBytes + $numEcBytesInBlock); + + for ($i = 0; $i < $numDataBytes; $i++) { + $toEncode[$i] = $dataBytes[$i] & 0xff; + } + + $ecBytes = new SplFixedArray($numEcBytesInBlock); + $codec = self::getCodec($numDataBytes, $numEcBytesInBlock); + $codec->encode($toEncode, $ecBytes); + + return $ecBytes; + } + + /** + * Gets an RS codec and caches it. + */ + private static function getCodec(int $numDataBytes, int $numEcBytesInBlock) : ReedSolomonCodec + { + $cacheId = $numDataBytes . '-' . $numEcBytesInBlock; + + if (isset(self::$codecs[$cacheId])) { + return self::$codecs[$cacheId]; + } + + return self::$codecs[$cacheId] = new ReedSolomonCodec( + 8, + 0x11d, + 0, + 1, + $numEcBytesInBlock, + 255 - $numDataBytes - $numEcBytesInBlock + ); + } + + /** + * Appends mode information to a bit array. + */ + private static function appendModeInfo(Mode $mode, BitArray $bits) : void + { + $bits->appendBits($mode->getBits(), 4); + } + + /** + * Appends length information to a bit array. + * + * @throws WriterException if num letters is bigger than expected + */ + private static function appendLengthInfo(int $numLetters, Version $version, Mode $mode, BitArray $bits) : void + { + $numBits = $mode->getCharacterCountBits($version); + + if ($numLetters >= (1 << $numBits)) { + throw new WriterException($numLetters . ' is bigger than ' . ((1 << $numBits) - 1)); + } + + $bits->appendBits($numLetters, $numBits); + } + + /** + * Appends bytes to a bit array in a specific mode. + * + * @throws WriterException if an invalid mode was supplied + */ + private static function appendBytes(string $content, Mode $mode, BitArray $bits, string $encoding) : void + { + switch ($mode) { + case Mode::NUMERIC(): + self::appendNumericBytes($content, $bits); + break; + + case Mode::ALPHANUMERIC(): + self::appendAlphanumericBytes($content, $bits); + break; + + case Mode::BYTE(): + self::append8BitBytes($content, $bits, $encoding); + break; + + case Mode::KANJI(): + self::appendKanjiBytes($content, $bits); + break; + + default: + throw new WriterException('Invalid mode: ' . $mode); + } + } + + /** + * Appends numeric bytes to a bit array. + */ + private static function appendNumericBytes(string $content, BitArray $bits) : void + { + $length = strlen($content); + $i = 0; + + while ($i < $length) { + $num1 = (int) $content[$i]; + + if ($i + 2 < $length) { + // Encode three numeric letters in ten bits. + $num2 = (int) $content[$i + 1]; + $num3 = (int) $content[$i + 2]; + $bits->appendBits($num1 * 100 + $num2 * 10 + $num3, 10); + $i += 3; + } elseif ($i + 1 < $length) { + // Encode two numeric letters in seven bits. + $num2 = (int) $content[$i + 1]; + $bits->appendBits($num1 * 10 + $num2, 7); + $i += 2; + } else { + // Encode one numeric letter in four bits. + $bits->appendBits($num1, 4); + ++$i; + } + } + } + + /** + * Appends alpha-numeric bytes to a bit array. + * + * @throws WriterException if an invalid alphanumeric code was found + */ + private static function appendAlphanumericBytes(string $content, BitArray $bits) : void + { + $length = strlen($content); + $i = 0; + + while ($i < $length) { + $code1 = self::getAlphanumericCode(ord($content[$i])); + + if (-1 === $code1) { + throw new WriterException('Invalid alphanumeric code'); + } + + if ($i + 1 < $length) { + $code2 = self::getAlphanumericCode(ord($content[$i + 1])); + + if (-1 === $code2) { + throw new WriterException('Invalid alphanumeric code'); + } + + // Encode two alphanumeric letters in 11 bits. + $bits->appendBits($code1 * 45 + $code2, 11); + $i += 2; + } else { + // Encode one alphanumeric letter in six bits. + $bits->appendBits($code1, 6); + ++$i; + } + } + } + + /** + * Appends regular 8-bit bytes to a bit array. + * + * @throws WriterException if content cannot be encoded to target encoding + */ + private static function append8BitBytes(string $content, BitArray $bits, string $encoding) : void + { + $bytes = @iconv('utf-8', $encoding, $content); + + if (false === $bytes) { + throw new WriterException('Could not encode content to ' . $encoding); + } + + $length = strlen($bytes); + + for ($i = 0; $i < $length; $i++) { + $bits->appendBits(ord($bytes[$i]), 8); + } + } + + /** + * Appends KANJI bytes to a bit array. + * + * @throws WriterException if content does not seem to be encoded in SHIFT-JIS + * @throws WriterException if an invalid byte sequence occurs + */ + private static function appendKanjiBytes(string $content, BitArray $bits) : void + { + $bytes = @iconv('utf-8', 'SHIFT-JIS', $content); + + if (false === $bytes) { + throw new WriterException('Content could not be converted to SHIFT-JIS'); + } + + if (strlen($bytes) % 2 > 0) { + // We just do a simple length check here. The for loop will check + // individual characters. + throw new WriterException('Content does not seem to be encoded in SHIFT-JIS'); + } + + $length = strlen($bytes); + + for ($i = 0; $i < $length; $i += 2) { + $byte1 = ord($bytes[$i]) & 0xff; + $byte2 = ord($bytes[$i + 1]) & 0xff; + $code = ($byte1 << 8) | $byte2; + + if ($code >= 0x8140 && $code <= 0x9ffc) { + $subtracted = $code - 0x8140; + } elseif ($code >= 0xe040 && $code <= 0xebbf) { + $subtracted = $code - 0xc140; + } else { + throw new WriterException('Invalid byte sequence'); + } + + $encoded = (($subtracted >> 8) * 0xc0) + ($subtracted & 0xff); + + $bits->appendBits($encoded, 13); + } + } + + /** + * Appends ECI information to a bit array. + */ + private static function appendEci(CharacterSetEci $eci, BitArray $bits) : void + { + $mode = Mode::ECI(); + $bits->appendBits($mode->getBits(), 4); + $bits->appendBits($eci->getValue(), 8); + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Encoder/MaskUtil.php b/system/vendor/bacon/bacon-qr-code/src/Encoder/MaskUtil.php new file mode 100644 index 0000000..54a07ba --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Encoder/MaskUtil.php @@ -0,0 +1,271 @@ +getArray(); + $width = $matrix->getWidth(); + $height = $matrix->getHeight(); + + for ($y = 0; $y < $height - 1; ++$y) { + for ($x = 0; $x < $width - 1; ++$x) { + $value = $array[$y][$x]; + + if ($value === $array[$y][$x + 1] + && $value === $array[$y + 1][$x] + && $value === $array[$y + 1][$x + 1] + ) { + ++$penalty; + } + } + } + + return self::N2 * $penalty; + } + + /** + * Applies mask penalty rule 3 and returns the penalty. + * + * Finds consecutive cells of 00001011101 or 10111010000, and gives penalty + * to them. If we find patterns like 000010111010000, we give penalties + * twice (i.e. 40 * 2). + */ + public static function applyMaskPenaltyRule3(ByteMatrix $matrix) : int + { + $penalty = 0; + $array = $matrix->getArray(); + $width = $matrix->getWidth(); + $height = $matrix->getHeight(); + + for ($y = 0; $y < $height; ++$y) { + for ($x = 0; $x < $width; ++$x) { + if ($x + 6 < $width + && 1 === $array[$y][$x] + && 0 === $array[$y][$x + 1] + && 1 === $array[$y][$x + 2] + && 1 === $array[$y][$x + 3] + && 1 === $array[$y][$x + 4] + && 0 === $array[$y][$x + 5] + && 1 === $array[$y][$x + 6] + && ( + ( + $x + 10 < $width + && 0 === $array[$y][$x + 7] + && 0 === $array[$y][$x + 8] + && 0 === $array[$y][$x + 9] + && 0 === $array[$y][$x + 10] + ) + || ( + $x - 4 >= 0 + && 0 === $array[$y][$x - 1] + && 0 === $array[$y][$x - 2] + && 0 === $array[$y][$x - 3] + && 0 === $array[$y][$x - 4] + ) + ) + ) { + $penalty += self::N3; + } + + if ($y + 6 < $height + && 1 === $array[$y][$x] + && 0 === $array[$y + 1][$x] + && 1 === $array[$y + 2][$x] + && 1 === $array[$y + 3][$x] + && 1 === $array[$y + 4][$x] + && 0 === $array[$y + 5][$x] + && 1 === $array[$y + 6][$x] + && ( + ( + $y + 10 < $height + && 0 === $array[$y + 7][$x] + && 0 === $array[$y + 8][$x] + && 0 === $array[$y + 9][$x] + && 0 === $array[$y + 10][$x] + ) + || ( + $y - 4 >= 0 + && 0 === $array[$y - 1][$x] + && 0 === $array[$y - 2][$x] + && 0 === $array[$y - 3][$x] + && 0 === $array[$y - 4][$x] + ) + ) + ) { + $penalty += self::N3; + } + } + } + + return $penalty; + } + + /** + * Applies mask penalty rule 4 and returns the penalty. + * + * Calculates the ratio of dark cells and gives penalty if the ratio is far + * from 50%. It gives 10 penalty for 5% distance. + */ + public static function applyMaskPenaltyRule4(ByteMatrix $matrix) : int + { + $numDarkCells = 0; + + $array = $matrix->getArray(); + $width = $matrix->getWidth(); + $height = $matrix->getHeight(); + + for ($y = 0; $y < $height; ++$y) { + $arrayY = $array[$y]; + + for ($x = 0; $x < $width; ++$x) { + if (1 === $arrayY[$x]) { + ++$numDarkCells; + } + } + } + + $numTotalCells = $height * $width; + $darkRatio = $numDarkCells / $numTotalCells; + $fixedPercentVariances = (int) (abs($darkRatio - 0.5) * 20); + + return $fixedPercentVariances * self::N4; + } + + /** + * Returns the mask bit for "getMaskPattern" at "x" and "y". + * + * See 8.8 of JISX0510:2004 for mask pattern conditions. + * + * @throws InvalidArgumentException if an invalid mask pattern was supplied + */ + public static function getDataMaskBit(int $maskPattern, int $x, int $y) : bool + { + switch ($maskPattern) { + case 0: + $intermediate = ($y + $x) & 0x1; + break; + + case 1: + $intermediate = $y & 0x1; + break; + + case 2: + $intermediate = $x % 3; + break; + + case 3: + $intermediate = ($y + $x) % 3; + break; + + case 4: + $intermediate = (BitUtils::unsignedRightShift($y, 1) + (int) ($x / 3)) & 0x1; + break; + + case 5: + $temp = $y * $x; + $intermediate = ($temp & 0x1) + ($temp % 3); + break; + + case 6: + $temp = $y * $x; + $intermediate = (($temp & 0x1) + ($temp % 3)) & 0x1; + break; + + case 7: + $temp = $y * $x; + $intermediate = (($temp % 3) + (($y + $x) & 0x1)) & 0x1; + break; + + default: + throw new InvalidArgumentException('Invalid mask pattern: ' . $maskPattern); + } + + return 0 == $intermediate; + } + + /** + * Helper function for applyMaskPenaltyRule1. + * + * We need this for doing this calculation in both vertical and horizontal + * orders respectively. + */ + private static function applyMaskPenaltyRule1Internal(ByteMatrix $matrix, bool $isHorizontal) : int + { + $penalty = 0; + $iLimit = $isHorizontal ? $matrix->getHeight() : $matrix->getWidth(); + $jLimit = $isHorizontal ? $matrix->getWidth() : $matrix->getHeight(); + $array = $matrix->getArray(); + + for ($i = 0; $i < $iLimit; ++$i) { + $numSameBitCells = 0; + $prevBit = -1; + + for ($j = 0; $j < $jLimit; $j++) { + $bit = $isHorizontal ? $array[$i][$j] : $array[$j][$i]; + + if ($bit === $prevBit) { + ++$numSameBitCells; + } else { + if ($numSameBitCells >= 5) { + $penalty += self::N1 + ($numSameBitCells - 5); + } + + $numSameBitCells = 1; + $prevBit = $bit; + } + } + + if ($numSameBitCells >= 5) { + $penalty += self::N1 + ($numSameBitCells - 5); + } + } + + return $penalty; + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Encoder/MatrixUtil.php b/system/vendor/bacon/bacon-qr-code/src/Encoder/MatrixUtil.php new file mode 100644 index 0000000..0967e29 --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Encoder/MatrixUtil.php @@ -0,0 +1,513 @@ +clear(-1); + } + + /** + * Builds a complete matrix. + */ + public static function buildMatrix( + BitArray $dataBits, + ErrorCorrectionLevel $level, + Version $version, + int $maskPattern, + ByteMatrix $matrix + ) : void { + self::clearMatrix($matrix); + self::embedBasicPatterns($version, $matrix); + self::embedTypeInfo($level, $maskPattern, $matrix); + self::maybeEmbedVersionInfo($version, $matrix); + self::embedDataBits($dataBits, $maskPattern, $matrix); + } + + /** + * Removes the position detection patterns from a matrix. + * + * This can be useful if you need to render those patterns separately. + */ + public static function removePositionDetectionPatterns(ByteMatrix $matrix) : void + { + $pdpWidth = count(self::POSITION_DETECTION_PATTERN[0]); + + self::removePositionDetectionPattern(0, 0, $matrix); + self::removePositionDetectionPattern($matrix->getWidth() - $pdpWidth, 0, $matrix); + self::removePositionDetectionPattern(0, $matrix->getWidth() - $pdpWidth, $matrix); + } + + /** + * Embeds type information into a matrix. + */ + private static function embedTypeInfo(ErrorCorrectionLevel $level, int $maskPattern, ByteMatrix $matrix) : void + { + $typeInfoBits = new BitArray(); + self::makeTypeInfoBits($level, $maskPattern, $typeInfoBits); + + $typeInfoBitsSize = $typeInfoBits->getSize(); + + for ($i = 0; $i < $typeInfoBitsSize; ++$i) { + $bit = $typeInfoBits->get($typeInfoBitsSize - 1 - $i); + + $x1 = self::TYPE_INFO_COORDINATES[$i][0]; + $y1 = self::TYPE_INFO_COORDINATES[$i][1]; + + $matrix->set($x1, $y1, (int) $bit); + + if ($i < 8) { + $x2 = $matrix->getWidth() - $i - 1; + $y2 = 8; + } else { + $x2 = 8; + $y2 = $matrix->getHeight() - 7 + ($i - 8); + } + + $matrix->set($x2, $y2, (int) $bit); + } + } + + /** + * Generates type information bits and appends them to a bit array. + * + * @throws RuntimeException if bit array resulted in invalid size + */ + private static function makeTypeInfoBits(ErrorCorrectionLevel $level, int $maskPattern, BitArray $bits) : void + { + $typeInfo = ($level->getBits() << 3) | $maskPattern; + $bits->appendBits($typeInfo, 5); + + $bchCode = self::calculateBchCode($typeInfo, self::TYPE_INFO_POLY); + $bits->appendBits($bchCode, 10); + + $maskBits = new BitArray(); + $maskBits->appendBits(self::TYPE_INFO_MASK_PATTERN, 15); + $bits->xorBits($maskBits); + + if (15 !== $bits->getSize()) { + throw new RuntimeException('Bit array resulted in invalid size: ' . $bits->getSize()); + } + } + + /** + * Embeds version information if required. + */ + private static function maybeEmbedVersionInfo(Version $version, ByteMatrix $matrix) : void + { + if ($version->getVersionNumber() < 7) { + return; + } + + $versionInfoBits = new BitArray(); + self::makeVersionInfoBits($version, $versionInfoBits); + + $bitIndex = 6 * 3 - 1; + + for ($i = 0; $i < 6; ++$i) { + for ($j = 0; $j < 3; ++$j) { + $bit = $versionInfoBits->get($bitIndex); + --$bitIndex; + + $matrix->set($i, $matrix->getHeight() - 11 + $j, (int) $bit); + $matrix->set($matrix->getHeight() - 11 + $j, $i, (int) $bit); + } + } + } + + /** + * Generates version information bits and appends them to a bit array. + * + * @throws RuntimeException if bit array resulted in invalid size + */ + private static function makeVersionInfoBits(Version $version, BitArray $bits) : void + { + $bits->appendBits($version->getVersionNumber(), 6); + + $bchCode = self::calculateBchCode($version->getVersionNumber(), self::VERSION_INFO_POLY); + $bits->appendBits($bchCode, 12); + + if (18 !== $bits->getSize()) { + throw new RuntimeException('Bit array resulted in invalid size: ' . $bits->getSize()); + } + } + + /** + * Calculates the BCH code for a value and a polynomial. + */ + private static function calculateBchCode(int $value, int $poly) : int + { + $msbSetInPoly = self::findMsbSet($poly); + $value <<= $msbSetInPoly - 1; + + while (self::findMsbSet($value) >= $msbSetInPoly) { + $value ^= $poly << (self::findMsbSet($value) - $msbSetInPoly); + } + + return $value; + } + + /** + * Finds and MSB set. + */ + private static function findMsbSet(int $value) : int + { + $numDigits = 0; + + while (0 !== $value) { + $value >>= 1; + ++$numDigits; + } + + return $numDigits; + } + + /** + * Embeds basic patterns into a matrix. + */ + private static function embedBasicPatterns(Version $version, ByteMatrix $matrix) : void + { + self::embedPositionDetectionPatternsAndSeparators($matrix); + self::embedDarkDotAtLeftBottomCorner($matrix); + self::maybeEmbedPositionAdjustmentPatterns($version, $matrix); + self::embedTimingPatterns($matrix); + } + + /** + * Embeds position detection patterns and separators into a byte matrix. + */ + private static function embedPositionDetectionPatternsAndSeparators(ByteMatrix $matrix) : void + { + $pdpWidth = count(self::POSITION_DETECTION_PATTERN[0]); + + self::embedPositionDetectionPattern(0, 0, $matrix); + self::embedPositionDetectionPattern($matrix->getWidth() - $pdpWidth, 0, $matrix); + self::embedPositionDetectionPattern(0, $matrix->getWidth() - $pdpWidth, $matrix); + + $hspWidth = 8; + + self::embedHorizontalSeparationPattern(0, $hspWidth - 1, $matrix); + self::embedHorizontalSeparationPattern($matrix->getWidth() - $hspWidth, $hspWidth - 1, $matrix); + self::embedHorizontalSeparationPattern(0, $matrix->getWidth() - $hspWidth, $matrix); + + $vspSize = 7; + + self::embedVerticalSeparationPattern($vspSize, 0, $matrix); + self::embedVerticalSeparationPattern($matrix->getHeight() - $vspSize - 1, 0, $matrix); + self::embedVerticalSeparationPattern($vspSize, $matrix->getHeight() - $vspSize, $matrix); + } + + /** + * Embeds a single position detection pattern into a byte matrix. + */ + private static function embedPositionDetectionPattern(int $xStart, int $yStart, ByteMatrix $matrix) : void + { + for ($y = 0; $y < 7; ++$y) { + for ($x = 0; $x < 7; ++$x) { + $matrix->set($xStart + $x, $yStart + $y, self::POSITION_DETECTION_PATTERN[$y][$x]); + } + } + } + + private static function removePositionDetectionPattern(int $xStart, int $yStart, ByteMatrix $matrix) : void + { + for ($y = 0; $y < 7; ++$y) { + for ($x = 0; $x < 7; ++$x) { + $matrix->set($xStart + $x, $yStart + $y, 0); + } + } + } + + /** + * Embeds a single horizontal separation pattern. + * + * @throws RuntimeException if a byte was already set + */ + private static function embedHorizontalSeparationPattern(int $xStart, int $yStart, ByteMatrix $matrix) : void + { + for ($x = 0; $x < 8; $x++) { + if (-1 !== $matrix->get($xStart + $x, $yStart)) { + throw new RuntimeException('Byte already set'); + } + + $matrix->set($xStart + $x, $yStart, 0); + } + } + + /** + * Embeds a single vertical separation pattern. + * + * @throws RuntimeException if a byte was already set + */ + private static function embedVerticalSeparationPattern(int $xStart, int $yStart, ByteMatrix $matrix) : void + { + for ($y = 0; $y < 7; $y++) { + if (-1 !== $matrix->get($xStart, $yStart + $y)) { + throw new RuntimeException('Byte already set'); + } + + $matrix->set($xStart, $yStart + $y, 0); + } + } + + /** + * Embeds a dot at the left bottom corner. + * + * @throws RuntimeException if a byte was already set to 0 + */ + private static function embedDarkDotAtLeftBottomCorner(ByteMatrix $matrix) : void + { + if (0 === $matrix->get(8, $matrix->getHeight() - 8)) { + throw new RuntimeException('Byte already set to 0'); + } + + $matrix->set(8, $matrix->getHeight() - 8, 1); + } + + /** + * Embeds position adjustment patterns if required. + */ + private static function maybeEmbedPositionAdjustmentPatterns(Version $version, ByteMatrix $matrix) : void + { + if ($version->getVersionNumber() < 2) { + return; + } + + $index = $version->getVersionNumber() - 1; + + $coordinates = self::POSITION_ADJUSTMENT_PATTERN_COORDINATE_TABLE[$index]; + $numCoordinates = count($coordinates); + + for ($i = 0; $i < $numCoordinates; ++$i) { + for ($j = 0; $j < $numCoordinates; ++$j) { + $y = $coordinates[$i]; + $x = $coordinates[$j]; + + if (null === $x || null === $y) { + continue; + } + + if (-1 === $matrix->get($x, $y)) { + self::embedPositionAdjustmentPattern($x - 2, $y - 2, $matrix); + } + } + } + } + + /** + * Embeds a single position adjustment pattern. + */ + private static function embedPositionAdjustmentPattern(int $xStart, int $yStart, ByteMatrix $matrix) : void + { + for ($y = 0; $y < 5; $y++) { + for ($x = 0; $x < 5; $x++) { + $matrix->set($xStart + $x, $yStart + $y, self::POSITION_ADJUSTMENT_PATTERN[$y][$x]); + } + } + } + + /** + * Embeds timing patterns into a matrix. + */ + private static function embedTimingPatterns(ByteMatrix $matrix) : void + { + $matrixWidth = $matrix->getWidth(); + + for ($i = 8; $i < $matrixWidth - 8; ++$i) { + $bit = ($i + 1) % 2; + + if (-1 === $matrix->get($i, 6)) { + $matrix->set($i, 6, $bit); + } + + if (-1 === $matrix->get(6, $i)) { + $matrix->set(6, $i, $bit); + } + } + } + + /** + * Embeds "dataBits" using "getMaskPattern". + * + * For debugging purposes, it skips masking process if "getMaskPattern" is -1. See 8.7 of JISX0510:2004 (p.38) for + * how to embed data bits. + * + * @throws WriterException if not all bits could be consumed + */ + private static function embedDataBits(BitArray $dataBits, int $maskPattern, ByteMatrix $matrix) : void + { + $bitIndex = 0; + $direction = -1; + + // Start from the right bottom cell. + $x = $matrix->getWidth() - 1; + $y = $matrix->getHeight() - 1; + + while ($x > 0) { + // Skip vertical timing pattern. + if (6 === $x) { + --$x; + } + + while ($y >= 0 && $y < $matrix->getHeight()) { + for ($i = 0; $i < 2; $i++) { + $xx = $x - $i; + + // Skip the cell if it's not empty. + if (-1 !== $matrix->get($xx, $y)) { + continue; + } + + if ($bitIndex < $dataBits->getSize()) { + $bit = $dataBits->get($bitIndex); + ++$bitIndex; + } else { + // Padding bit. If there is no bit left, we'll fill the + // left cells with 0, as described in 8.4.9 of + // JISX0510:2004 (p. 24). + $bit = false; + } + + // Skip masking if maskPattern is -1. + if (-1 !== $maskPattern && MaskUtil::getDataMaskBit($maskPattern, $xx, $y)) { + $bit = ! $bit; + } + + $matrix->set($xx, $y, (int) $bit); + } + + $y += $direction; + } + + $direction = -$direction; + $y += $direction; + $x -= 2; + } + + // All bits should be consumed + if ($dataBits->getSize() !== $bitIndex) { + throw new WriterException('Not all bits consumed (' . $bitIndex . ' out of ' . $dataBits->getSize() .')'); + } + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Encoder/QrCode.php b/system/vendor/bacon/bacon-qr-code/src/Encoder/QrCode.php new file mode 100644 index 0000000..c3398f4 --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Encoder/QrCode.php @@ -0,0 +1,108 @@ +maskPattern = $maskPattern; + $this->matrix = $matrix; + } + + /** + * Gets the mode. + */ + public function getMode() : Mode + { + return $this->mode; + } + + /** + * Gets the EC level. + */ + public function getErrorCorrectionLevel() : ErrorCorrectionLevel + { + return $this->errorCorrectionLevel; + } + + /** + * Gets the version. + */ + public function getVersion() : Version + { + return $this->version; + } + + /** + * Gets the mask pattern. + */ + public function getMaskPattern() : int + { + return $this->maskPattern; + } + + public function getMatrix(): ByteMatrix + { + return $this->matrix; + } + + /** + * Validates whether a mask pattern is valid. + */ + public static function isValidMaskPattern(int $maskPattern) : bool + { + return $maskPattern > 0 && $maskPattern < self::NUM_MASK_PATTERNS; + } + + /** + * Returns a string representation of the QR code. + */ + public function __toString() : string + { + $result = "<<\n" + . ' mode: ' . $this->mode . "\n" + . ' ecLevel: ' . $this->errorCorrectionLevel . "\n" + . ' version: ' . $this->version . "\n" + . ' maskPattern: ' . $this->maskPattern . "\n"; + + if ($this->matrix === null) { + $result .= " matrix: null\n"; + } else { + $result .= " matrix:\n"; + $result .= $this->matrix; + } + + $result .= ">>\n"; + + return $result; + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Exception/ExceptionInterface.php b/system/vendor/bacon/bacon-qr-code/src/Exception/ExceptionInterface.php new file mode 100644 index 0000000..6f70c20 --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Exception/ExceptionInterface.php @@ -0,0 +1,10 @@ + 100) { + throw new Exception\InvalidArgumentException('Alpha must be between 0 and 100'); + } + } + + public function getAlpha() : int + { + return $this->alpha; + } + + public function getBaseColor() : ColorInterface + { + return $this->baseColor; + } + + public function toRgb() : Rgb + { + return $this->baseColor->toRgb(); + } + + public function toCmyk() : Cmyk + { + return $this->baseColor->toCmyk(); + } + + public function toGray() : Gray + { + return $this->baseColor->toGray(); + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Renderer/Color/Cmyk.php b/system/vendor/bacon/bacon-qr-code/src/Renderer/Color/Cmyk.php new file mode 100644 index 0000000..d028210 --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Renderer/Color/Cmyk.php @@ -0,0 +1,82 @@ + 100) { + throw new Exception\InvalidArgumentException('Cyan must be between 0 and 100'); + } + + if ($magenta < 0 || $magenta > 100) { + throw new Exception\InvalidArgumentException('Magenta must be between 0 and 100'); + } + + if ($yellow < 0 || $yellow > 100) { + throw new Exception\InvalidArgumentException('Yellow must be between 0 and 100'); + } + + if ($black < 0 || $black > 100) { + throw new Exception\InvalidArgumentException('Black must be between 0 and 100'); + } + } + + public function getCyan() : int + { + return $this->cyan; + } + + public function getMagenta() : int + { + return $this->magenta; + } + + public function getYellow() : int + { + return $this->yellow; + } + + public function getBlack() : int + { + return $this->black; + } + + public function toRgb() : Rgb + { + $k = $this->black / 100; + $c = (-$k * $this->cyan + $k * 100 + $this->cyan) / 100; + $m = (-$k * $this->magenta + $k * 100 + $this->magenta) / 100; + $y = (-$k * $this->yellow + $k * 100 + $this->yellow) / 100; + + return new Rgb( + (int) (-$c * 255 + 255), + (int) (-$m * 255 + 255), + (int) (-$y * 255 + 255) + ); + } + + public function toCmyk() : Cmyk + { + return $this; + } + + public function toGray() : Gray + { + return $this->toRgb()->toGray(); + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Renderer/Color/ColorInterface.php b/system/vendor/bacon/bacon-qr-code/src/Renderer/Color/ColorInterface.php new file mode 100644 index 0000000..b50d1ca --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Renderer/Color/ColorInterface.php @@ -0,0 +1,22 @@ + 100) { + throw new Exception\InvalidArgumentException('Gray must be between 0 and 100'); + } + } + + public function getGray() : int + { + return $this->gray; + } + + public function toRgb() : Rgb + { + return new Rgb((int) ($this->gray * 2.55), (int) ($this->gray * 2.55), (int) ($this->gray * 2.55)); + } + + public function toCmyk() : Cmyk + { + return new Cmyk(0, 0, 0, 100 - $this->gray); + } + + public function toGray() : Gray + { + return $this; + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Renderer/Color/Rgb.php b/system/vendor/bacon/bacon-qr-code/src/Renderer/Color/Rgb.php new file mode 100644 index 0000000..9e388da --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Renderer/Color/Rgb.php @@ -0,0 +1,73 @@ + 255) { + throw new Exception\InvalidArgumentException('Red must be between 0 and 255'); + } + + if ($green < 0 || $green > 255) { + throw new Exception\InvalidArgumentException('Green must be between 0 and 255'); + } + + if ($blue < 0 || $blue > 255) { + throw new Exception\InvalidArgumentException('Blue must be between 0 and 255'); + } + } + + public function getRed() : int + { + return $this->red; + } + + public function getGreen() : int + { + return $this->green; + } + + public function getBlue() : int + { + return $this->blue; + } + + public function toRgb() : Rgb + { + return $this; + } + + public function toCmyk() : Cmyk + { + $c = 1 - ($this->red / 255); + $m = 1 - ($this->green / 255); + $y = 1 - ($this->blue / 255); + $k = min($c, $m, $y); + + if ($k === 0) { + return new Cmyk(0, 0, 0, 0); + } + + return new Cmyk( + (int) (100 * ($c - $k) / (1 - $k)), + (int) (100 * ($m - $k) / (1 - $k)), + (int) (100 * ($y - $k) / (1 - $k)), + (int) (100 * $k) + ); + } + + public function toGray() : Gray + { + return new Gray((int) (($this->red * 0.21 + $this->green * 0.71 + $this->blue * 0.07) / 2.55)); + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Renderer/Eye/CompositeEye.php b/system/vendor/bacon/bacon-qr-code/src/Renderer/Eye/CompositeEye.php new file mode 100644 index 0000000..379e5c7 --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Renderer/Eye/CompositeEye.php @@ -0,0 +1,26 @@ +externalEye->getExternalPath(); + } + + public function getInternalPath() : Path + { + return $this->internalEye->getInternalPath(); + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Renderer/Eye/EyeInterface.php b/system/vendor/bacon/bacon-qr-code/src/Renderer/Eye/EyeInterface.php new file mode 100644 index 0000000..ab68f3c --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Renderer/Eye/EyeInterface.php @@ -0,0 +1,26 @@ +set($x, 0, 1); + $matrix->set($x, 6, 1); + } + + for ($y = 1; $y < 6; ++$y) { + $matrix->set(0, $y, 1); + $matrix->set(6, $y, 1); + } + + return $this->module->createPath($matrix)->translate(-3.5, -3.5); + } + + public function getInternalPath() : Path + { + $matrix = new ByteMatrix(3, 3); + + for ($x = 0; $x < 3; ++$x) { + for ($y = 0; $y < 3; ++$y) { + $matrix->set($x, $y, 1); + } + } + + return $this->module->createPath($matrix)->translate(-1.5, -1.5); + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Renderer/Eye/PointyEye.php b/system/vendor/bacon/bacon-qr-code/src/Renderer/Eye/PointyEye.php new file mode 100644 index 0000000..39c7d23 --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Renderer/Eye/PointyEye.php @@ -0,0 +1,56 @@ +move(-3.5, 3.5) + ->line(-3.5, 0) + ->ellipticArc(3.5, 3.5, 0, false, true, 0, -3.5) + ->line(3.5, -3.5) + ->line(3.5, 3.5) + ->close() + ->move(2.5, 0) + ->ellipticArc(2.5, 2.5, 0, false, true, 0, 2.5) + ->ellipticArc(2.5, 2.5, 0, false, true, -2.5, 0) + ->ellipticArc(2.5, 2.5, 0, false, true, 0, -2.5) + ->ellipticArc(2.5, 2.5, 0, false, true, 2.5, 0) + ->close() + ; + } + + public function getInternalPath() : Path + { + return (new Path()) + ->move(1.5, 0) + ->ellipticArc(1.5, 1.5, 0., false, true, 0., 1.5) + ->ellipticArc(1.5, 1.5, 0., false, true, -1.5, 0.) + ->ellipticArc(1.5, 1.5, 0., false, true, 0., -1.5) + ->ellipticArc(1.5, 1.5, 0., false, true, 1.5, 0.) + ->close() + ; + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Renderer/Eye/SimpleCircleEye.php b/system/vendor/bacon/bacon-qr-code/src/Renderer/Eye/SimpleCircleEye.php new file mode 100644 index 0000000..735d326 --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Renderer/Eye/SimpleCircleEye.php @@ -0,0 +1,51 @@ +move(-3.5, -3.5) + ->line(3.5, -3.5) + ->line(3.5, 3.5) + ->line(-3.5, 3.5) + ->close() + ->move(-2.5, -2.5) + ->line(-2.5, 2.5) + ->line(2.5, 2.5) + ->line(2.5, -2.5) + ->close() + ; + } + + public function getInternalPath() : Path + { + return (new Path()) + ->move(1.5, 0) + ->ellipticArc(1.5, 1.5, 0., false, true, 0., 1.5) + ->ellipticArc(1.5, 1.5, 0., false, true, -1.5, 0.) + ->ellipticArc(1.5, 1.5, 0., false, true, 0., -1.5) + ->ellipticArc(1.5, 1.5, 0., false, true, 1.5, 0.) + ->close() + ; + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Renderer/Eye/SquareEye.php b/system/vendor/bacon/bacon-qr-code/src/Renderer/Eye/SquareEye.php new file mode 100644 index 0000000..09bedfe --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Renderer/Eye/SquareEye.php @@ -0,0 +1,50 @@ +move(-3.5, -3.5) + ->line(3.5, -3.5) + ->line(3.5, 3.5) + ->line(-3.5, 3.5) + ->close() + ->move(-2.5, -2.5) + ->line(-2.5, 2.5) + ->line(2.5, 2.5) + ->line(2.5, -2.5) + ->close() + ; + } + + public function getInternalPath() : Path + { + return (new Path()) + ->move(-1.5, -1.5) + ->line(1.5, -1.5) + ->line(1.5, 1.5) + ->line(-1.5, 1.5) + ->close() + ; + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Renderer/GDLibRenderer.php b/system/vendor/bacon/bacon-qr-code/src/Renderer/GDLibRenderer.php new file mode 100644 index 0000000..51164b9 --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Renderer/GDLibRenderer.php @@ -0,0 +1,238 @@ + + */ + private array $colors; + + public function __construct( + private int $size, + private int $margin = 4, + private string $imageFormat = 'png', + private int $compressionQuality = 9, + private ?Fill $fill = null + ) { + if (! extension_loaded('gd') || ! function_exists('gd_info')) { + throw new RuntimeException('You need to install the GD extension to use this back end'); + } + + if ($this->fill === null) { + $this->fill = Fill::default(); + } + if ($this->fill->hasGradientFill()) { + throw new InvalidArgumentException('GDLibRenderer does not support gradients'); + } + } + + /** + * @throws InvalidArgumentException if matrix width doesn't match height + */ + public function render(QrCode $qrCode): string + { + $matrix = $qrCode->getMatrix(); + $matrixSize = $matrix->getWidth(); + + if ($matrixSize !== $matrix->getHeight()) { + throw new InvalidArgumentException('Matrix must have the same width and height'); + } + + MatrixUtil::removePositionDetectionPatterns($matrix); + $this->newImage(); + $this->draw($matrix); + + return $this->renderImage(); + } + + private function newImage(): void + { + $img = imagecreatetruecolor($this->size, $this->size); + if ($img === false) { + throw new RuntimeException('Failed to create image of that size'); + } + + $this->image = $img; + imagealphablending($this->image, false); + imagesavealpha($this->image, true); + + + $bg = $this->getColor($this->fill->getBackgroundColor()); + imagefilledrectangle($this->image, 0, 0, $this->size, $this->size, $bg); + imagealphablending($this->image, true); + } + + private function draw(ByteMatrix $matrix): void + { + $matrixSize = $matrix->getWidth(); + + $pointsOnSide = $matrix->getWidth() + $this->margin * 2; + $pointInPx = $this->size / $pointsOnSide; + + $this->drawEye(0, 0, $pointInPx, $this->fill->getTopLeftEyeFill()); + $this->drawEye($matrixSize - 7, 0, $pointInPx, $this->fill->getTopRightEyeFill()); + $this->drawEye(0, $matrixSize - 7, $pointInPx, $this->fill->getBottomLeftEyeFill()); + + $rows = $matrix->getArray()->toArray(); + $color = $this->getColor($this->fill->getForegroundColor()); + for ($y = 0; $y < $matrixSize; $y += 1) { + for ($x = 0; $x < $matrixSize; $x += 1) { + if (! $rows[$y][$x]) { + continue; + } + + $points = $this->normalizePoints([ + ($this->margin + $x) * $pointInPx, ($this->margin + $y) * $pointInPx, + ($this->margin + $x + 1) * $pointInPx, ($this->margin + $y) * $pointInPx, + ($this->margin + $x + 1) * $pointInPx, ($this->margin + $y + 1) * $pointInPx, + ($this->margin + $x) * $pointInPx, ($this->margin + $y + 1) * $pointInPx, + ]); + imagefilledpolygon($this->image, $points, $color); + } + } + } + + private function drawEye(int $xOffset, int $yOffset, float $pointInPx, EyeFill $eyeFill): void + { + $internalColor = $this->getColor($eyeFill->inheritsInternalColor() + ? $this->fill->getForegroundColor() + : $eyeFill->getInternalColor()); + + $externalColor = $this->getColor($eyeFill->inheritsExternalColor() + ? $this->fill->getForegroundColor() + : $eyeFill->getExternalColor()); + + for ($y = 0; $y < 7; $y += 1) { + for ($x = 0; $x < 7; $x += 1) { + if ((($y === 1 || $y === 5) && $x > 0 && $x < 6) || (($x === 1 || $x === 5) && $y > 0 && $y < 6)) { + continue; + } + + $points = $this->normalizePoints([ + ($this->margin + $x + $xOffset) * $pointInPx, ($this->margin + $y + $yOffset) * $pointInPx, + ($this->margin + $x + $xOffset + 1) * $pointInPx, ($this->margin + $y + $yOffset) * $pointInPx, + ($this->margin + $x + $xOffset + 1) * $pointInPx, ($this->margin + $y + $yOffset + 1) * $pointInPx, + ($this->margin + $x + $xOffset) * $pointInPx, ($this->margin + $y + $yOffset + 1) * $pointInPx, + ]); + + if ($y > 1 && $y < 5 && $x > 1 && $x < 5) { + imagefilledpolygon($this->image, $points, $internalColor); + } else { + imagefilledpolygon($this->image, $points, $externalColor); + } + } + } + } + + /** + * Normalize points will trim right and bottom line by 1 pixel. + * Otherwise pixels of neighbors are overlapping which leads to issue with transparency and small QR codes. + */ + private function normalizePoints(array $points): array + { + $maxX = $maxY = 0; + for ($i = 0; $i < count($points); $i += 2) { + // Do manual round as GD just removes decimal part + $points[$i] = $newX = round($points[$i]); + $points[$i + 1] = $newY = round($points[$i + 1]); + + $maxX = max($maxX, $newX); + $maxY = max($maxY, $newY); + } + + // Do trimming only if there are 4 points (8 coordinates), assumes this is square. + + for ($i = 0; $i < count($points); $i += 2) { + $points[$i] = min($points[$i], $maxX - 1); + $points[$i + 1] = min($points[$i + 1], $maxY - 1); + } + + return $points; + } + + private function renderImage(): string + { + ob_start(); + $quality = $this->compressionQuality; + switch ($this->imageFormat) { + case 'png': + if ($quality > 9 || $quality < 0) { + $quality = 9; + } + imagepng($this->image, null, $quality); + break; + + case 'gif': + imagegif($this->image, null); + break; + + case 'jpeg': + case 'jpg': + if ($quality > 100 || $quality < 0) { + $quality = 85; + } + imagejpeg($this->image, null, $quality); + break; + default: + ob_end_clean(); + throw new InvalidArgumentException( + 'Supported image formats are jpeg, png and gif, got: ' . $this->imageFormat + ); + } + + imagedestroy($this->image); + $this->colors = []; + $this->image = null; + + return ob_get_clean(); + } + + private function getColor(ColorInterface $color): int + { + $alpha = 100; + + if ($color instanceof Alpha) { + $alpha = $color->getAlpha(); + $color = $color->getBaseColor(); + } + + $rgb = $color->toRgb(); + + $colorKey = sprintf('%02X%02X%02X%02X', $rgb->getRed(), $rgb->getGreen(), $rgb->getBlue(), $alpha); + + if (! isset($this->colors[$colorKey])) { + $colorId = imagecolorallocatealpha( + $this->image, + $rgb->getRed(), + $rgb->getGreen(), + $rgb->getBlue(), + (int)((100 - $alpha) / 100 * 127) // Alpha for GD is in range 0 (opaque) - 127 (transparent) + ); + + if ($colorId === false) { + throw new RuntimeException('Failed to create color: #' . $colorKey); + } + + $this->colors[$colorKey] = $colorId; + } + + return $this->colors[$colorKey]; + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Renderer/Image/EpsImageBackEnd.php b/system/vendor/bacon/bacon-qr-code/src/Renderer/Image/EpsImageBackEnd.php new file mode 100644 index 0000000..4269456 --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Renderer/Image/EpsImageBackEnd.php @@ -0,0 +1,373 @@ +eps = "%!PS-Adobe-3.0 EPSF-3.0\n" + . "%%Creator: BaconQrCode\n" + . sprintf("%%%%BoundingBox: 0 0 %d %d \n", $size, $size) + . "%%BeginProlog\n" + . "save\n" + . "50 dict begin\n" + . "/q { gsave } bind def\n" + . "/Q { grestore } bind def\n" + . "/s { scale } bind def\n" + . "/t { translate } bind def\n" + . "/r { rotate } bind def\n" + . "/n { newpath } bind def\n" + . "/m { moveto } bind def\n" + . "/l { lineto } bind def\n" + . "/c { curveto } bind def\n" + . "/z { closepath } bind def\n" + . "/f { eofill } bind def\n" + . "/rgb { setrgbcolor } bind def\n" + . "/cmyk { setcmykcolor } bind def\n" + . "/gray { setgray } bind def\n" + . "%%EndProlog\n" + . "1 -1 s\n" + . sprintf("0 -%d t\n", $size); + + if ($backgroundColor instanceof Alpha && 0 === $backgroundColor->getAlpha()) { + return; + } + + $this->eps .= wordwrap( + '0 0 m' + . sprintf(' %s 0 l', (string) $size) + . sprintf(' %s %s l', (string) $size, (string) $size) + . sprintf(' 0 %s l', (string) $size) + . ' z' + . ' ' .$this->getColorSetString($backgroundColor) . " f\n", + 75, + "\n " + ); + } + + public function scale(float $size) : void + { + if (null === $this->eps) { + throw new RuntimeException('No image has been started'); + } + + $this->eps .= sprintf("%1\$s %1\$s s\n", round($size, self::PRECISION)); + } + + public function translate(float $x, float $y) : void + { + if (null === $this->eps) { + throw new RuntimeException('No image has been started'); + } + + $this->eps .= sprintf("%s %s t\n", round($x, self::PRECISION), round($y, self::PRECISION)); + } + + public function rotate(int $degrees) : void + { + if (null === $this->eps) { + throw new RuntimeException('No image has been started'); + } + + $this->eps .= sprintf("%d r\n", $degrees); + } + + public function push() : void + { + if (null === $this->eps) { + throw new RuntimeException('No image has been started'); + } + + $this->eps .= "q\n"; + } + + public function pop() : void + { + if (null === $this->eps) { + throw new RuntimeException('No image has been started'); + } + + $this->eps .= "Q\n"; + } + + public function drawPathWithColor(Path $path, ColorInterface $color) : void + { + if (null === $this->eps) { + throw new RuntimeException('No image has been started'); + } + + $fromX = 0; + $fromY = 0; + $this->eps .= wordwrap( + 'n ' + . $this->drawPathOperations($path, $fromX, $fromY) + . ' ' . $this->getColorSetString($color) . " f\n", + 75, + "\n " + ); + } + + public function drawPathWithGradient( + Path $path, + Gradient $gradient, + float $x, + float $y, + float $width, + float $height + ) : void { + if (null === $this->eps) { + throw new RuntimeException('No image has been started'); + } + + $fromX = 0; + $fromY = 0; + $this->eps .= wordwrap( + 'q n ' . $this->drawPathOperations($path, $fromX, $fromY) . "\n", + 75, + "\n " + ); + + $this->createGradientFill($gradient, $x, $y, $width, $height); + } + + public function done() : string + { + if (null === $this->eps) { + throw new RuntimeException('No image has been started'); + } + + $this->eps .= "%%TRAILER\nend restore\n%%EOF"; + $blob = $this->eps; + $this->eps = null; + + return $blob; + } + + private function drawPathOperations(Iterable $ops, &$fromX, &$fromY) : string + { + $pathData = []; + + foreach ($ops as $op) { + switch (true) { + case $op instanceof Move: + $fromX = $toX = round($op->getX(), self::PRECISION); + $fromY = $toY = round($op->getY(), self::PRECISION); + $pathData[] = sprintf('%s %s m', $toX, $toY); + break; + + case $op instanceof Line: + $fromX = $toX = round($op->getX(), self::PRECISION); + $fromY = $toY = round($op->getY(), self::PRECISION); + $pathData[] = sprintf('%s %s l', $toX, $toY); + break; + + case $op instanceof EllipticArc: + $pathData[] = $this->drawPathOperations($op->toCurves($fromX, $fromY), $fromX, $fromY); + break; + + case $op instanceof Curve: + $x1 = round($op->getX1(), self::PRECISION); + $y1 = round($op->getY1(), self::PRECISION); + $x2 = round($op->getX2(), self::PRECISION); + $y2 = round($op->getY2(), self::PRECISION); + $fromX = $x3 = round($op->getX3(), self::PRECISION); + $fromY = $y3 = round($op->getY3(), self::PRECISION); + $pathData[] = sprintf('%s %s %s %s %s %s c', $x1, $y1, $x2, $y2, $x3, $y3); + break; + + case $op instanceof Close: + $pathData[] = 'z'; + break; + + default: + throw new RuntimeException('Unexpected draw operation: ' . get_class($op)); + } + } + + return implode(' ', $pathData); + } + + private function createGradientFill(Gradient $gradient, float $x, float $y, float $width, float $height) : void + { + $startColor = $gradient->getStartColor(); + $endColor = $gradient->getEndColor(); + + if ($startColor instanceof Alpha) { + $startColor = $startColor->getBaseColor(); + } + + $startColorType = get_class($startColor); + + if (! in_array($startColorType, [Rgb::class, Cmyk::class, Gray::class])) { + $startColorType = Cmyk::class; + $startColor = $startColor->toCmyk(); + } + + if (get_class($endColor) !== $startColorType) { + switch ($startColorType) { + case Cmyk::class: + $endColor = $endColor->toCmyk(); + break; + + case Rgb::class: + $endColor = $endColor->toRgb(); + break; + + case Gray::class: + $endColor = $endColor->toGray(); + break; + } + } + + $this->eps .= "eoclip\n<<\n"; + + if ($gradient->getType() === GradientType::RADIAL()) { + $this->eps .= " /ShadingType 3\n"; + } else { + $this->eps .= " /ShadingType 2\n"; + } + + $this->eps .= " /Extend [ true true ]\n" + . " /AntiAlias true\n"; + + switch ($startColorType) { + case Cmyk::class: + $this->eps .= " /ColorSpace /DeviceCMYK\n"; + break; + + case Rgb::class: + $this->eps .= " /ColorSpace /DeviceRGB\n"; + break; + + case Gray::class: + $this->eps .= " /ColorSpace /DeviceGray\n"; + break; + } + + switch ($gradient->getType()) { + case GradientType::HORIZONTAL(): + $this->eps .= sprintf( + " /Coords [ %s %s %s %s ]\n", + round($x, self::PRECISION), + round($y, self::PRECISION), + round($x + $width, self::PRECISION), + round($y, self::PRECISION) + ); + break; + + case GradientType::VERTICAL(): + $this->eps .= sprintf( + " /Coords [ %s %s %s %s ]\n", + round($x, self::PRECISION), + round($y, self::PRECISION), + round($x, self::PRECISION), + round($y + $height, self::PRECISION) + ); + break; + + case GradientType::DIAGONAL(): + $this->eps .= sprintf( + " /Coords [ %s %s %s %s ]\n", + round($x, self::PRECISION), + round($y, self::PRECISION), + round($x + $width, self::PRECISION), + round($y + $height, self::PRECISION) + ); + break; + + case GradientType::INVERSE_DIAGONAL(): + $this->eps .= sprintf( + " /Coords [ %s %s %s %s ]\n", + round($x, self::PRECISION), + round($y + $height, self::PRECISION), + round($x + $width, self::PRECISION), + round($y, self::PRECISION) + ); + break; + + case GradientType::RADIAL(): + $centerX = ($x + $width) / 2; + $centerY = ($y + $height) / 2; + + $this->eps .= sprintf( + " /Coords [ %s %s 0 %s %s %s ]\n", + round($centerX, self::PRECISION), + round($centerY, self::PRECISION), + round($centerX, self::PRECISION), + round($centerY, self::PRECISION), + round(max($width, $height) / 2, self::PRECISION) + ); + break; + } + + $this->eps .= " /Function\n" + . " <<\n" + . " /FunctionType 2\n" + . " /Domain [ 0 1 ]\n" + . sprintf(" /C0 [ %s ]\n", $this->getColorString($startColor)) + . sprintf(" /C1 [ %s ]\n", $this->getColorString($endColor)) + . " /N 1\n" + . " >>\n>>\nshfill\nQ\n"; + } + + private function getColorSetString(ColorInterface $color) : string + { + if ($color instanceof Rgb) { + return $this->getColorString($color) . ' rgb'; + } + + if ($color instanceof Cmyk) { + return $this->getColorString($color) . ' cmyk'; + } + + if ($color instanceof Gray) { + return $this->getColorString($color) . ' gray'; + } + + return $this->getColorSetString($color->toCmyk()); + } + + private function getColorString(ColorInterface $color) : string + { + if ($color instanceof Rgb) { + return sprintf('%s %s %s', $color->getRed() / 255, $color->getGreen() / 255, $color->getBlue() / 255); + } + + if ($color instanceof Cmyk) { + return sprintf( + '%s %s %s %s', + $color->getCyan() / 100, + $color->getMagenta() / 100, + $color->getYellow() / 100, + $color->getBlack() / 100 + ); + } + + if ($color instanceof Gray) { + return sprintf('%s', $color->getGray() / 100); + } + + return $this->getColorString($color->toCmyk()); + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Renderer/Image/ImageBackEndInterface.php b/system/vendor/bacon/bacon-qr-code/src/Renderer/Image/ImageBackEndInterface.php new file mode 100644 index 0000000..0935819 --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Renderer/Image/ImageBackEndInterface.php @@ -0,0 +1,87 @@ +imageFormat = $imageFormat; + $this->compressionQuality = $compressionQuality; + } + + public function new(int $size, ColorInterface $backgroundColor) : void + { + $this->image = new Imagick(); + $this->image->newImage($size, $size, $this->getColorPixel($backgroundColor)); + $this->image->setImageFormat($this->imageFormat); + $this->image->setCompressionQuality($this->compressionQuality); + $this->draw = new ImagickDraw(); + $this->gradientCount = 0; + $this->matrices = [new TransformationMatrix()]; + $this->matrixIndex = 0; + } + + public function scale(float $size) : void + { + if (null === $this->draw) { + throw new RuntimeException('No image has been started'); + } + + $this->draw->scale($size, $size); + $this->matrices[$this->matrixIndex] = $this->matrices[$this->matrixIndex] + ->multiply(TransformationMatrix::scale($size)); + } + + public function translate(float $x, float $y) : void + { + if (null === $this->draw) { + throw new RuntimeException('No image has been started'); + } + + $this->draw->translate($x, $y); + $this->matrices[$this->matrixIndex] = $this->matrices[$this->matrixIndex] + ->multiply(TransformationMatrix::translate($x, $y)); + } + + public function rotate(int $degrees) : void + { + if (null === $this->draw) { + throw new RuntimeException('No image has been started'); + } + + $this->draw->rotate($degrees); + $this->matrices[$this->matrixIndex] = $this->matrices[$this->matrixIndex] + ->multiply(TransformationMatrix::rotate($degrees)); + } + + public function push() : void + { + if (null === $this->draw) { + throw new RuntimeException('No image has been started'); + } + + $this->draw->push(); + $this->matrices[++$this->matrixIndex] = $this->matrices[$this->matrixIndex - 1]; + } + + public function pop() : void + { + if (null === $this->draw) { + throw new RuntimeException('No image has been started'); + } + + $this->draw->pop(); + unset($this->matrices[$this->matrixIndex--]); + } + + public function drawPathWithColor(Path $path, ColorInterface $color) : void + { + if (null === $this->draw) { + throw new RuntimeException('No image has been started'); + } + + $this->draw->setFillColor($this->getColorPixel($color)); + $this->drawPath($path); + } + + public function drawPathWithGradient( + Path $path, + Gradient $gradient, + float $x, + float $y, + float $width, + float $height + ) : void { + if (null === $this->draw) { + throw new RuntimeException('No image has been started'); + } + + $this->draw->setFillPatternURL('#' . $this->createGradientFill($gradient, $x, $y, $width, $height)); + $this->drawPath($path); + } + + public function done() : string + { + if (null === $this->draw) { + throw new RuntimeException('No image has been started'); + } + + $this->image->drawImage($this->draw); + $blob = $this->image->getImageBlob(); + $this->draw->clear(); + $this->image->clear(); + $this->draw = null; + $this->image = null; + $this->gradientCount = null; + + return $blob; + } + + private function drawPath(Path $path) : void + { + $this->draw->pathStart(); + + foreach ($path as $op) { + switch (true) { + case $op instanceof Move: + $this->draw->pathMoveToAbsolute($op->getX(), $op->getY()); + break; + + case $op instanceof Line: + $this->draw->pathLineToAbsolute($op->getX(), $op->getY()); + break; + + case $op instanceof EllipticArc: + $this->draw->pathEllipticArcAbsolute( + $op->getXRadius(), + $op->getYRadius(), + $op->getXAxisAngle(), + $op->isLargeArc(), + $op->isSweep(), + $op->getX(), + $op->getY() + ); + break; + + case $op instanceof Curve: + $this->draw->pathCurveToAbsolute( + $op->getX1(), + $op->getY1(), + $op->getX2(), + $op->getY2(), + $op->getX3(), + $op->getY3() + ); + break; + + case $op instanceof Close: + $this->draw->pathClose(); + break; + + default: + throw new RuntimeException('Unexpected draw operation: ' . get_class($op)); + } + } + + $this->draw->pathFinish(); + } + + private function createGradientFill(Gradient $gradient, float $x, float $y, float $width, float $height) : string + { + list($width, $height) = $this->matrices[$this->matrixIndex]->apply($width, $height); + + $startColor = $this->getColorPixel($gradient->getStartColor())->getColorAsString(); + $endColor = $this->getColorPixel($gradient->getEndColor())->getColorAsString(); + $gradientImage = new Imagick(); + + switch ($gradient->getType()) { + case GradientType::HORIZONTAL(): + $gradientImage->newPseudoImage((int) $height, (int) $width, sprintf( + 'gradient:%s-%s', + $startColor, + $endColor + )); + $gradientImage->rotateImage('transparent', -90); + break; + + case GradientType::VERTICAL(): + $gradientImage->newPseudoImage((int) $width, (int) $height, sprintf( + 'gradient:%s-%s', + $startColor, + $endColor + )); + break; + + case GradientType::DIAGONAL(): + case GradientType::INVERSE_DIAGONAL(): + $gradientImage->newPseudoImage((int) ($width * sqrt(2)), (int) ($height * sqrt(2)), sprintf( + 'gradient:%s-%s', + $startColor, + $endColor + )); + + if (GradientType::DIAGONAL() === $gradient->getType()) { + $gradientImage->rotateImage('transparent', -45); + } else { + $gradientImage->rotateImage('transparent', -135); + } + + $rotatedWidth = $gradientImage->getImageWidth(); + $rotatedHeight = $gradientImage->getImageHeight(); + + $gradientImage->setImagePage($rotatedWidth, $rotatedHeight, 0, 0); + $gradientImage->cropImage( + intdiv($rotatedWidth, 2) - 2, + intdiv($rotatedHeight, 2) - 2, + intdiv($rotatedWidth, 4) + 1, + intdiv($rotatedWidth, 4) + 1 + ); + break; + + case GradientType::RADIAL(): + $gradientImage->newPseudoImage((int) $width, (int) $height, sprintf( + 'radial-gradient:%s-%s', + $startColor, + $endColor + )); + break; + } + + $id = sprintf('g%d', ++$this->gradientCount); + $this->draw->pushPattern($id, 0, 0, $width, $height); + $this->draw->composite(Imagick::COMPOSITE_COPY, 0, 0, $width, $height, $gradientImage); + $this->draw->popPattern(); + return $id; + } + + private function getColorPixel(ColorInterface $color) : ImagickPixel + { + $alpha = 100; + + if ($color instanceof Alpha) { + $alpha = $color->getAlpha(); + $color = $color->getBaseColor(); + } + + if ($color instanceof Rgb) { + return new ImagickPixel(sprintf( + 'rgba(%d, %d, %d, %F)', + $color->getRed(), + $color->getGreen(), + $color->getBlue(), + $alpha / 100 + )); + } + + if ($color instanceof Cmyk) { + return new ImagickPixel(sprintf( + 'cmyka(%d, %d, %d, %d, %F)', + $color->getCyan(), + $color->getMagenta(), + $color->getYellow(), + $color->getBlack(), + $alpha / 100 + )); + } + + if ($color instanceof Gray) { + return new ImagickPixel(sprintf( + 'graya(%d%%, %F)', + $color->getGray(), + $alpha / 100 + )); + } + + return $this->getColorPixel(new Alpha($alpha, $color->toRgb())); + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Renderer/Image/SvgImageBackEnd.php b/system/vendor/bacon/bacon-qr-code/src/Renderer/Image/SvgImageBackEnd.php new file mode 100644 index 0000000..227afa7 --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Renderer/Image/SvgImageBackEnd.php @@ -0,0 +1,359 @@ +xmlWriter = new XMLWriter(); + $this->xmlWriter->openMemory(); + + $this->xmlWriter->startDocument('1.0', 'UTF-8'); + $this->xmlWriter->startElement('svg'); + $this->xmlWriter->writeAttribute('xmlns', 'http://www.w3.org/2000/svg'); + $this->xmlWriter->writeAttribute('version', '1.1'); + $this->xmlWriter->writeAttribute('width', (string) $size); + $this->xmlWriter->writeAttribute('height', (string) $size); + $this->xmlWriter->writeAttribute('viewBox', '0 0 '. $size . ' ' . $size); + + $this->gradientCount = 0; + $this->currentStack = 0; + $this->stack[0] = 0; + + $alpha = 1; + + if ($backgroundColor instanceof Alpha) { + $alpha = $backgroundColor->getAlpha() / 100; + } + + if (0 === $alpha) { + return; + } + + $this->xmlWriter->startElement('rect'); + $this->xmlWriter->writeAttribute('x', '0'); + $this->xmlWriter->writeAttribute('y', '0'); + $this->xmlWriter->writeAttribute('width', (string) $size); + $this->xmlWriter->writeAttribute('height', (string) $size); + $this->xmlWriter->writeAttribute('fill', $this->getColorString($backgroundColor)); + + if ($alpha < 1) { + $this->xmlWriter->writeAttribute('fill-opacity', (string) $alpha); + } + + $this->xmlWriter->endElement(); + } + + public function scale(float $size) : void + { + if (null === $this->xmlWriter) { + throw new RuntimeException('No image has been started'); + } + + $this->xmlWriter->startElement('g'); + $this->xmlWriter->writeAttribute( + 'transform', + sprintf(self::SCALE_FORMAT, round($size, self::PRECISION)) + ); + ++$this->stack[$this->currentStack]; + } + + public function translate(float $x, float $y) : void + { + if (null === $this->xmlWriter) { + throw new RuntimeException('No image has been started'); + } + + $this->xmlWriter->startElement('g'); + $this->xmlWriter->writeAttribute( + 'transform', + sprintf(self::TRANSLATE_FORMAT, round($x, self::PRECISION), round($y, self::PRECISION)) + ); + ++$this->stack[$this->currentStack]; + } + + public function rotate(int $degrees) : void + { + if (null === $this->xmlWriter) { + throw new RuntimeException('No image has been started'); + } + + $this->xmlWriter->startElement('g'); + $this->xmlWriter->writeAttribute('transform', sprintf('rotate(%d)', $degrees)); + ++$this->stack[$this->currentStack]; + } + + public function push() : void + { + if (null === $this->xmlWriter) { + throw new RuntimeException('No image has been started'); + } + + $this->xmlWriter->startElement('g'); + $this->stack[] = 1; + ++$this->currentStack; + } + + public function pop() : void + { + if (null === $this->xmlWriter) { + throw new RuntimeException('No image has been started'); + } + + for ($i = 0; $i < $this->stack[$this->currentStack]; ++$i) { + $this->xmlWriter->endElement(); + } + + array_pop($this->stack); + --$this->currentStack; + } + + public function drawPathWithColor(Path $path, ColorInterface $color) : void + { + if (null === $this->xmlWriter) { + throw new RuntimeException('No image has been started'); + } + + $alpha = 1; + + if ($color instanceof Alpha) { + $alpha = $color->getAlpha() / 100; + } + + $this->startPathElement($path); + $this->xmlWriter->writeAttribute('fill', $this->getColorString($color)); + + if ($alpha < 1) { + $this->xmlWriter->writeAttribute('fill-opacity', (string) $alpha); + } + + $this->xmlWriter->endElement(); + } + + public function drawPathWithGradient( + Path $path, + Gradient $gradient, + float $x, + float $y, + float $width, + float $height + ) : void { + if (null === $this->xmlWriter) { + throw new RuntimeException('No image has been started'); + } + + $gradientId = $this->createGradientFill($gradient, $x, $y, $width, $height); + $this->startPathElement($path); + $this->xmlWriter->writeAttribute('fill', 'url(#' . $gradientId . ')'); + $this->xmlWriter->endElement(); + } + + public function done() : string + { + if (null === $this->xmlWriter) { + throw new RuntimeException('No image has been started'); + } + + foreach ($this->stack as $openElements) { + for ($i = $openElements; $i > 0; --$i) { + $this->xmlWriter->endElement(); + } + } + + $this->xmlWriter->endDocument(); + $blob = $this->xmlWriter->outputMemory(true); + $this->xmlWriter = null; + $this->stack = null; + $this->currentStack = null; + $this->gradientCount = null; + + return $blob; + } + + private function startPathElement(Path $path) : void + { + $pathData = []; + + foreach ($path as $op) { + switch (true) { + case $op instanceof Move: + $pathData[] = sprintf( + 'M%s %s', + round($op->getX(), self::PRECISION), + round($op->getY(), self::PRECISION) + ); + break; + + case $op instanceof Line: + $pathData[] = sprintf( + 'L%s %s', + round($op->getX(), self::PRECISION), + round($op->getY(), self::PRECISION) + ); + break; + + case $op instanceof EllipticArc: + $pathData[] = sprintf( + 'A%s %s %s %u %u %s %s', + round($op->getXRadius(), self::PRECISION), + round($op->getYRadius(), self::PRECISION), + round($op->getXAxisAngle(), self::PRECISION), + $op->isLargeArc(), + $op->isSweep(), + round($op->getX(), self::PRECISION), + round($op->getY(), self::PRECISION) + ); + break; + + case $op instanceof Curve: + $pathData[] = sprintf( + 'C%s %s %s %s %s %s', + round($op->getX1(), self::PRECISION), + round($op->getY1(), self::PRECISION), + round($op->getX2(), self::PRECISION), + round($op->getY2(), self::PRECISION), + round($op->getX3(), self::PRECISION), + round($op->getY3(), self::PRECISION) + ); + break; + + case $op instanceof Close: + $pathData[] = 'Z'; + break; + + default: + throw new RuntimeException('Unexpected draw operation: ' . get_class($op)); + } + } + + $this->xmlWriter->startElement('path'); + $this->xmlWriter->writeAttribute('fill-rule', 'evenodd'); + $this->xmlWriter->writeAttribute('d', implode('', $pathData)); + } + + private function createGradientFill(Gradient $gradient, float $x, float $y, float $width, float $height) : string + { + $this->xmlWriter->startElement('defs'); + + $startColor = $gradient->getStartColor(); + $endColor = $gradient->getEndColor(); + + if ($gradient->getType() === GradientType::RADIAL()) { + $this->xmlWriter->startElement('radialGradient'); + } else { + $this->xmlWriter->startElement('linearGradient'); + } + + $this->xmlWriter->writeAttribute('gradientUnits', 'userSpaceOnUse'); + + switch ($gradient->getType()) { + case GradientType::HORIZONTAL(): + $this->xmlWriter->writeAttribute('x1', (string) round($x, self::PRECISION)); + $this->xmlWriter->writeAttribute('y1', (string) round($y, self::PRECISION)); + $this->xmlWriter->writeAttribute('x2', (string) round($x + $width, self::PRECISION)); + $this->xmlWriter->writeAttribute('y2', (string) round($y, self::PRECISION)); + break; + + case GradientType::VERTICAL(): + $this->xmlWriter->writeAttribute('x1', (string) round($x, self::PRECISION)); + $this->xmlWriter->writeAttribute('y1', (string) round($y, self::PRECISION)); + $this->xmlWriter->writeAttribute('x2', (string) round($x, self::PRECISION)); + $this->xmlWriter->writeAttribute('y2', (string) round($y + $height, self::PRECISION)); + break; + + case GradientType::DIAGONAL(): + $this->xmlWriter->writeAttribute('x1', (string) round($x, self::PRECISION)); + $this->xmlWriter->writeAttribute('y1', (string) round($y, self::PRECISION)); + $this->xmlWriter->writeAttribute('x2', (string) round($x + $width, self::PRECISION)); + $this->xmlWriter->writeAttribute('y2', (string) round($y + $height, self::PRECISION)); + break; + + case GradientType::INVERSE_DIAGONAL(): + $this->xmlWriter->writeAttribute('x1', (string) round($x, self::PRECISION)); + $this->xmlWriter->writeAttribute('y1', (string) round($y + $height, self::PRECISION)); + $this->xmlWriter->writeAttribute('x2', (string) round($x + $width, self::PRECISION)); + $this->xmlWriter->writeAttribute('y2', (string) round($y, self::PRECISION)); + break; + + case GradientType::RADIAL(): + $this->xmlWriter->writeAttribute('cx', (string) round(($x + $width) / 2, self::PRECISION)); + $this->xmlWriter->writeAttribute('cy', (string) round(($y + $height) / 2, self::PRECISION)); + $this->xmlWriter->writeAttribute('r', (string) round(max($width, $height) / 2, self::PRECISION)); + break; + } + + $id = sprintf('g%d', ++$this->gradientCount); + $this->xmlWriter->writeAttribute('id', $id); + + $this->xmlWriter->startElement('stop'); + $this->xmlWriter->writeAttribute('offset', '0%'); + $this->xmlWriter->writeAttribute('stop-color', $this->getColorString($startColor)); + + if ($startColor instanceof Alpha) { + $this->xmlWriter->writeAttribute('stop-opacity', (string) $startColor->getAlpha()); + } + + $this->xmlWriter->endElement(); + + $this->xmlWriter->startElement('stop'); + $this->xmlWriter->writeAttribute('offset', '100%'); + $this->xmlWriter->writeAttribute('stop-color', $this->getColorString($endColor)); + + if ($endColor instanceof Alpha) { + $this->xmlWriter->writeAttribute('stop-opacity', (string) $endColor->getAlpha()); + } + + $this->xmlWriter->endElement(); + + $this->xmlWriter->endElement(); + $this->xmlWriter->endElement(); + + return $id; + } + + private function getColorString(ColorInterface $color) : string + { + $color = $color->toRgb(); + + return sprintf( + '#%02x%02x%02x', + $color->getRed(), + $color->getGreen(), + $color->getBlue() + ); + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Renderer/Image/TransformationMatrix.php b/system/vendor/bacon/bacon-qr-code/src/Renderer/Image/TransformationMatrix.php new file mode 100644 index 0000000..9b435a0 --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Renderer/Image/TransformationMatrix.php @@ -0,0 +1,68 @@ +values = [1, 0, 0, 1, 0, 0]; + } + + public function multiply(self $other) : self + { + $matrix = new self(); + $matrix->values[0] = $this->values[0] * $other->values[0] + $this->values[2] * $other->values[1]; + $matrix->values[1] = $this->values[1] * $other->values[0] + $this->values[3] * $other->values[1]; + $matrix->values[2] = $this->values[0] * $other->values[2] + $this->values[2] * $other->values[3]; + $matrix->values[3] = $this->values[1] * $other->values[2] + $this->values[3] * $other->values[3]; + $matrix->values[4] = $this->values[0] * $other->values[4] + $this->values[2] * $other->values[5] + + $this->values[4]; + $matrix->values[5] = $this->values[1] * $other->values[4] + $this->values[3] * $other->values[5] + + $this->values[5]; + + return $matrix; + } + + public static function scale(float $size) : self + { + $matrix = new self(); + $matrix->values = [$size, 0, 0, $size, 0, 0]; + return $matrix; + } + + public static function translate(float $x, float $y) : self + { + $matrix = new self(); + $matrix->values = [1, 0, 0, 1, $x, $y]; + return $matrix; + } + + public static function rotate(int $degrees) : self + { + $matrix = new self(); + $rad = deg2rad($degrees); + $matrix->values = [cos($rad), sin($rad), -sin($rad), cos($rad), 0, 0]; + return $matrix; + } + + + /** + * Applies this matrix onto a point and returns the resulting viewport point. + * + * @return float[] + */ + public function apply(float $x, float $y) : array + { + return [ + $x * $this->values[0] + $y * $this->values[2] + $this->values[4], + $x * $this->values[1] + $y * $this->values[3] + $this->values[5], + ]; + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Renderer/ImageRenderer.php b/system/vendor/bacon/bacon-qr-code/src/Renderer/ImageRenderer.php new file mode 100644 index 0000000..0d33303 --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Renderer/ImageRenderer.php @@ -0,0 +1,150 @@ +rendererStyle->getSize(); + $margin = $this->rendererStyle->getMargin(); + $matrix = $qrCode->getMatrix(); + $matrixSize = $matrix->getWidth(); + + if ($matrixSize !== $matrix->getHeight()) { + throw new InvalidArgumentException('Matrix must have the same width and height'); + } + + $totalSize = $matrixSize + ($margin * 2); + $moduleSize = $size / $totalSize; + $fill = $this->rendererStyle->getFill(); + + $this->imageBackEnd->new($size, $fill->getBackgroundColor()); + $this->imageBackEnd->scale((float) $moduleSize); + $this->imageBackEnd->translate((float) $margin, (float) $margin); + + $module = $this->rendererStyle->getModule(); + $moduleMatrix = clone $matrix; + MatrixUtil::removePositionDetectionPatterns($moduleMatrix); + $modulePath = $this->drawEyes($matrixSize, $module->createPath($moduleMatrix)); + + if ($fill->hasGradientFill()) { + $this->imageBackEnd->drawPathWithGradient( + $modulePath, + $fill->getForegroundGradient(), + 0, + 0, + $matrixSize, + $matrixSize + ); + } else { + $this->imageBackEnd->drawPathWithColor($modulePath, $fill->getForegroundColor()); + } + + return $this->imageBackEnd->done(); + } + + private function drawEyes(int $matrixSize, Path $modulePath) : Path + { + $fill = $this->rendererStyle->getFill(); + + $eye = $this->rendererStyle->getEye(); + $externalPath = $eye->getExternalPath(); + $internalPath = $eye->getInternalPath(); + + $modulePath = $this->drawEye( + $externalPath, + $internalPath, + $fill->getTopLeftEyeFill(), + 3.5, + 3.5, + 0, + $modulePath + ); + $modulePath = $this->drawEye( + $externalPath, + $internalPath, + $fill->getTopRightEyeFill(), + $matrixSize - 3.5, + 3.5, + 90, + $modulePath + ); + $modulePath = $this->drawEye( + $externalPath, + $internalPath, + $fill->getBottomLeftEyeFill(), + 3.5, + $matrixSize - 3.5, + -90, + $modulePath + ); + + return $modulePath; + } + + private function drawEye( + Path $externalPath, + Path $internalPath, + EyeFill $fill, + float $xTranslation, + float $yTranslation, + int $rotation, + Path $modulePath + ) : Path { + if ($fill->inheritsBothColors()) { + return $modulePath + ->append( + $externalPath->rotate($rotation)->translate($xTranslation, $yTranslation) + ) + ->append( + $internalPath->rotate($rotation)->translate($xTranslation, $yTranslation) + ); + } + + $this->imageBackEnd->push(); + $this->imageBackEnd->translate($xTranslation, $yTranslation); + + if (0 !== $rotation) { + $this->imageBackEnd->rotate($rotation); + } + + if ($fill->inheritsExternalColor()) { + $modulePath = $modulePath->append( + $externalPath->rotate($rotation)->translate($xTranslation, $yTranslation) + ); + } else { + $this->imageBackEnd->drawPathWithColor($externalPath, $fill->getExternalColor()); + } + + if ($fill->inheritsInternalColor()) { + $modulePath = $modulePath->append( + $internalPath->rotate($rotation)->translate($xTranslation, $yTranslation) + ); + } else { + $this->imageBackEnd->drawPathWithColor($internalPath, $fill->getInternalColor()); + } + + $this->imageBackEnd->pop(); + + return $modulePath; + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Renderer/Module/DotsModule.php b/system/vendor/bacon/bacon-qr-code/src/Renderer/Module/DotsModule.php new file mode 100644 index 0000000..c5d5c6f --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Renderer/Module/DotsModule.php @@ -0,0 +1,56 @@ + 1) { + throw new InvalidArgumentException('Size must between 0 (exclusive) and 1 (inclusive)'); + } + } + + public function createPath(ByteMatrix $matrix) : Path + { + $width = $matrix->getWidth(); + $height = $matrix->getHeight(); + $path = new Path(); + $halfSize = $this->size / 2; + $margin = (1 - $this->size) / 2; + + for ($y = 0; $y < $height; ++$y) { + for ($x = 0; $x < $width; ++$x) { + if (! $matrix->get($x, $y)) { + continue; + } + + $pathX = $x + $margin; + $pathY = $y + $margin; + + $path = $path + ->move($pathX + $this->size, $pathY + $halfSize) + ->ellipticArc($halfSize, $halfSize, 0, false, true, $pathX + $halfSize, $pathY + $this->size) + ->ellipticArc($halfSize, $halfSize, 0, false, true, $pathX, $pathY + $halfSize) + ->ellipticArc($halfSize, $halfSize, 0, false, true, $pathX + $halfSize, $pathY) + ->ellipticArc($halfSize, $halfSize, 0, false, true, $pathX + $this->size, $pathY + $halfSize) + ->close() + ; + } + } + + return $path; + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Renderer/Module/EdgeIterator/Edge.php b/system/vendor/bacon/bacon-qr-code/src/Renderer/Module/EdgeIterator/Edge.php new file mode 100644 index 0000000..141d66c --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Renderer/Module/EdgeIterator/Edge.php @@ -0,0 +1,82 @@ + + */ + private array $points = []; + + /** + * @var array|null + */ + private ?array $simplifiedPoints = null; + + private int $minX = PHP_INT_MAX; + + private int $minY = PHP_INT_MAX; + + private int $maxX = -1; + + private int $maxY = -1; + + public function __construct(private readonly bool $positive) + { + } + + public function addPoint(int $x, int $y) : void + { + $this->points[] = [$x, $y]; + $this->minX = min($this->minX, $x); + $this->minY = min($this->minY, $y); + $this->maxX = max($this->maxX, $x); + $this->maxY = max($this->maxY, $y); + } + + public function isPositive() : bool + { + return $this->positive; + } + + /** + * @return array + */ + public function getPoints() : array + { + return $this->points; + } + + public function getMaxX() : int + { + return $this->maxX; + } + + public function getSimplifiedPoints() : array + { + if (null !== $this->simplifiedPoints) { + return $this->simplifiedPoints; + } + + $points = []; + $length = count($this->points); + + for ($i = 0; $i < $length; ++$i) { + $previousPoint = $this->points[(0 === $i ? $length : $i) - 1]; + $nextPoint = $this->points[($length - 1 === $i ? -1 : $i) + 1]; + $currentPoint = $this->points[$i]; + + if (($previousPoint[0] === $currentPoint[0] && $currentPoint[0] === $nextPoint[0]) + || ($previousPoint[1] === $currentPoint[1] && $currentPoint[1] === $nextPoint[1]) + ) { + continue; + } + + $points[] = $currentPoint; + } + + return $this->simplifiedPoints = $points; + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Renderer/Module/EdgeIterator/EdgeIterator.php b/system/vendor/bacon/bacon-qr-code/src/Renderer/Module/EdgeIterator/EdgeIterator.php new file mode 100644 index 0000000..01f692c --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Renderer/Module/EdgeIterator/EdgeIterator.php @@ -0,0 +1,160 @@ +bytes = iterator_to_array($matrix->getBytes()); + $this->size = count($this->bytes); + $this->width = $matrix->getWidth(); + $this->height = $matrix->getHeight(); + } + + /** + * @return Traversable + */ + public function getIterator() : Traversable + { + $originalBytes = $this->bytes; + $point = $this->findNext(0, 0); + + while (null !== $point) { + $edge = $this->findEdge($point[0], $point[1]); + $this->xorEdge($edge); + + yield $edge; + + $point = $this->findNext($point[0], $point[1]); + } + + $this->bytes = $originalBytes; + } + + /** + * @return int[]|null + */ + private function findNext(int $x, int $y) : ?array + { + $i = $this->width * $y + $x; + + while ($i < $this->size && 1 !== $this->bytes[$i]) { + ++$i; + } + + if ($i < $this->size) { + return $this->pointOf($i); + } + + return null; + } + + private function findEdge(int $x, int $y) : Edge + { + $edge = new Edge($this->isSet($x, $y)); + $startX = $x; + $startY = $y; + $dirX = 0; + $dirY = 1; + + while (true) { + $edge->addPoint($x, $y); + $x += $dirX; + $y += $dirY; + + if ($x === $startX && $y === $startY) { + break; + } + + $left = $this->isSet($x + ($dirX + $dirY - 1 ) / 2, $y + ($dirY - $dirX - 1) / 2); + $right = $this->isSet($x + ($dirX - $dirY - 1) / 2, $y + ($dirY + $dirX - 1) / 2); + + if ($right && ! $left) { + $tmp = $dirX; + $dirX = -$dirY; + $dirY = $tmp; + } elseif ($right) { + $tmp = $dirX; + $dirX = -$dirY; + $dirY = $tmp; + } elseif (! $left) { + $tmp = $dirX; + $dirX = $dirY; + $dirY = -$tmp; + } + } + + return $edge; + } + + private function xorEdge(Edge $path) : void + { + $points = $path->getPoints(); + $y1 = $points[0][1]; + $length = count($points); + $maxX = $path->getMaxX(); + + for ($i = 1; $i < $length; ++$i) { + $y = $points[$i][1]; + + if ($y === $y1) { + continue; + } + + $x = $points[$i][0]; + $minY = min($y1, $y); + + for ($j = $x; $j < $maxX; ++$j) { + $this->flip($j, $minY); + } + + $y1 = $y; + } + } + + private function isSet(int $x, int $y) : bool + { + return ( + $x >= 0 + && $x < $this->width + && $y >= 0 + && $y < $this->height + ) && 1 === $this->bytes[$this->width * $y + $x]; + } + + /** + * @return int[] + */ + private function pointOf(int $i) : array + { + $y = intdiv($i, $this->width); + return [$i - $y * $this->width, $y]; + } + + private function flip(int $x, int $y) : void + { + $this->bytes[$this->width * $y + $x] = ( + $this->isSet($x, $y) ? 0 : 1 + ); + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Renderer/Module/ModuleInterface.php b/system/vendor/bacon/bacon-qr-code/src/Renderer/Module/ModuleInterface.php new file mode 100644 index 0000000..0ccb0e0 --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Renderer/Module/ModuleInterface.php @@ -0,0 +1,18 @@ + 1) { + throw new InvalidArgumentException('Intensity must between 0 (exclusive) and 1 (inclusive)'); + } + + $this->intensity = $intensity / 2; + } + + public function createPath(ByteMatrix $matrix) : Path + { + $path = new Path(); + + foreach (new EdgeIterator($matrix) as $edge) { + $points = $edge->getSimplifiedPoints(); + $length = count($points); + + $currentPoint = $points[0]; + $nextPoint = $points[1]; + $horizontal = ($currentPoint[1] === $nextPoint[1]); + + if ($horizontal) { + $right = $nextPoint[0] > $currentPoint[0]; + $path = $path->move( + $currentPoint[0] + ($right ? $this->intensity : -$this->intensity), + $currentPoint[1] + ); + } else { + $up = $nextPoint[0] < $currentPoint[0]; + $path = $path->move( + $currentPoint[0], + $currentPoint[1] + ($up ? -$this->intensity : $this->intensity) + ); + } + + for ($i = 1; $i <= $length; ++$i) { + if ($i === $length) { + $previousPoint = $points[$length - 1]; + $currentPoint = $points[0]; + $nextPoint = $points[1]; + } else { + $previousPoint = $points[(0 === $i ? $length : $i) - 1]; + $currentPoint = $points[$i]; + $nextPoint = $points[($length - 1 === $i ? -1 : $i) + 1]; + } + + $horizontal = ($previousPoint[1] === $currentPoint[1]); + + if ($horizontal) { + $right = $previousPoint[0] < $currentPoint[0]; + $up = $nextPoint[1] < $currentPoint[1]; + $sweep = ($up xor $right); + + if ($this->intensity < 0.5 + || ($right && $previousPoint[0] !== $currentPoint[0] - 1) + || (! $right && $previousPoint[0] - 1 !== $currentPoint[0]) + ) { + $path = $path->line( + $currentPoint[0] + ($right ? -$this->intensity : $this->intensity), + $currentPoint[1] + ); + } + + $path = $path->ellipticArc( + $this->intensity, + $this->intensity, + 0, + false, + $sweep, + $currentPoint[0], + $currentPoint[1] + ($up ? -$this->intensity : $this->intensity) + ); + } else { + $up = $previousPoint[1] > $currentPoint[1]; + $right = $nextPoint[0] > $currentPoint[0]; + $sweep = ! ($up xor $right); + + if ($this->intensity < 0.5 + || ($up && $previousPoint[1] !== $currentPoint[1] + 1) + || (! $up && $previousPoint[0] + 1 !== $currentPoint[0]) + ) { + $path = $path->line( + $currentPoint[0], + $currentPoint[1] + ($up ? $this->intensity : -$this->intensity) + ); + } + + $path = $path->ellipticArc( + $this->intensity, + $this->intensity, + 0, + false, + $sweep, + $currentPoint[0] + ($right ? $this->intensity : -$this->intensity), + $currentPoint[1] + ); + } + } + + $path = $path->close(); + } + + return $path; + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Renderer/Module/SquareModule.php b/system/vendor/bacon/bacon-qr-code/src/Renderer/Module/SquareModule.php new file mode 100644 index 0000000..8cf1d0b --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Renderer/Module/SquareModule.php @@ -0,0 +1,44 @@ +getSimplifiedPoints(); + $length = count($points); + $path = $path->move($points[0][0], $points[0][1]); + + for ($i = 1; $i < $length; ++$i) { + $path = $path->line($points[$i][0], $points[$i][1]); + } + + $path = $path->close(); + } + + return $path; + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Renderer/Path/Close.php b/system/vendor/bacon/bacon-qr-code/src/Renderer/Path/Close.php new file mode 100644 index 0000000..bddf2d0 --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Renderer/Path/Close.php @@ -0,0 +1,34 @@ +x1; + } + + public function getY1() : float + { + return $this->y1; + } + + public function getX2() : float + { + return $this->x2; + } + + public function getY2() : float + { + return $this->y2; + } + + public function getX3() : float + { + return $this->x3; + } + + public function getY3() : float + { + return $this->y3; + } + + /** + * @return self + */ + public function translate(float $x, float $y) : OperationInterface + { + return new self( + $this->x1 + $x, + $this->y1 + $y, + $this->x2 + $x, + $this->y2 + $y, + $this->x3 + $x, + $this->y3 + $y + ); + } + + /** + * @return self + */ + public function rotate(int $degrees) : OperationInterface + { + $radians = deg2rad($degrees); + $sin = sin($radians); + $cos = cos($radians); + $x1r = $this->x1 * $cos - $this->y1 * $sin; + $y1r = $this->x1 * $sin + $this->y1 * $cos; + $x2r = $this->x2 * $cos - $this->y2 * $sin; + $y2r = $this->x2 * $sin + $this->y2 * $cos; + $x3r = $this->x3 * $cos - $this->y3 * $sin; + $y3r = $this->x3 * $sin + $this->y3 * $cos; + return new self( + $x1r, + $y1r, + $x2r, + $y2r, + $x3r, + $y3r + ); + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Renderer/Path/EllipticArc.php b/system/vendor/bacon/bacon-qr-code/src/Renderer/Path/EllipticArc.php new file mode 100644 index 0000000..ee957d4 --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Renderer/Path/EllipticArc.php @@ -0,0 +1,264 @@ +xRadius = abs($xRadius); + $this->yRadius = abs($yRadius); + $this->xAxisAngle = $xAxisAngle % 360; + } + + public function getXRadius() : float + { + return $this->xRadius; + } + + public function getYRadius() : float + { + return $this->yRadius; + } + + public function getXAxisAngle() : float + { + return $this->xAxisAngle; + } + + public function isLargeArc() : bool + { + return $this->largeArc; + } + + public function isSweep() : bool + { + return $this->sweep; + } + + public function getX() : float + { + return $this->x; + } + + public function getY() : float + { + return $this->y; + } + + /** + * @return self + */ + public function translate(float $x, float $y) : OperationInterface + { + return new self( + $this->xRadius, + $this->yRadius, + $this->xAxisAngle, + $this->largeArc, + $this->sweep, + $this->x + $x, + $this->y + $y + ); + } + + /** + * @return self + */ + public function rotate(int $degrees) : OperationInterface + { + $radians = deg2rad($degrees); + $sin = sin($radians); + $cos = cos($radians); + $xr = $this->x * $cos - $this->y * $sin; + $yr = $this->x * $sin + $this->y * $cos; + return new self( + $this->xRadius, + $this->yRadius, + $this->xAxisAngle, + $this->largeArc, + $this->sweep, + $xr, + $yr + ); + } + + /** + * Converts the elliptic arc to multiple curves. + * + * Since not all image back ends support elliptic arcs, this method allows to convert the arc into multiple curves + * resembling the same result. + * + * @see https://mortoray.com/2017/02/16/rendering-an-svg-elliptical-arc-as-bezier-curves/ + * @return array + */ + public function toCurves(float $fromX, float $fromY) : array + { + if (sqrt(($fromX - $this->x) ** 2 + ($fromY - $this->y) ** 2) < self::ZERO_TOLERANCE) { + return []; + } + + if ($this->xRadius < self::ZERO_TOLERANCE || $this->yRadius < self::ZERO_TOLERANCE) { + return [new Line($this->x, $this->y)]; + } + + return $this->createCurves($fromX, $fromY); + } + + /** + * @return Curve[] + */ + private function createCurves(float $fromX, float $fromY) : array + { + $xAngle = deg2rad($this->xAxisAngle); + list($centerX, $centerY, $radiusX, $radiusY, $startAngle, $deltaAngle) = + $this->calculateCenterPointParameters($fromX, $fromY, $xAngle); + + $s = $startAngle; + $e = $s + $deltaAngle; + $sign = ($e < $s) ? -1 : 1; + $remain = abs($e - $s); + $p1 = self::point($centerX, $centerY, $radiusX, $radiusY, $xAngle, $s); + $curves = []; + + while ($remain > self::ZERO_TOLERANCE) { + $step = min($remain, pi() / 2); + $signStep = $step * $sign; + $p2 = self::point($centerX, $centerY, $radiusX, $radiusY, $xAngle, $s + $signStep); + + $alphaT = tan($signStep / 2); + $alpha = sin($signStep) * (sqrt(4 + 3 * $alphaT ** 2) - 1) / 3; + $d1 = self::derivative($radiusX, $radiusY, $xAngle, $s); + $d2 = self::derivative($radiusX, $radiusY, $xAngle, $s + $signStep); + + $curves[] = new Curve( + $p1[0] + $alpha * $d1[0], + $p1[1] + $alpha * $d1[1], + $p2[0] - $alpha * $d2[0], + $p2[1] - $alpha * $d2[1], + $p2[0], + $p2[1] + ); + + $s += $signStep; + $remain -= $step; + $p1 = $p2; + } + + return $curves; + } + + /** + * @return float[] + */ + private function calculateCenterPointParameters(float $fromX, float $fromY, float $xAngle): array + { + $rX = $this->xRadius; + $rY = $this->yRadius; + + // F.6.5.1 + $dx2 = ($fromX - $this->x) / 2; + $dy2 = ($fromY - $this->y) / 2; + $x1p = cos($xAngle) * $dx2 + sin($xAngle) * $dy2; + $y1p = -sin($xAngle) * $dx2 + cos($xAngle) * $dy2; + + // F.6.5.2 + $rxs = $rX ** 2; + $rys = $rY ** 2; + $x1ps = $x1p ** 2; + $y1ps = $y1p ** 2; + $cr = $x1ps / $rxs + $y1ps / $rys; + + if ($cr > 1) { + $s = sqrt($cr); + $rX *= $s; + $rY *= $s; + $rxs = $rX ** 2; + $rys = $rY ** 2; + } + + $dq = ($rxs * $y1ps + $rys * $x1ps); + $pq = ($rxs * $rys - $dq) / $dq; + $q = sqrt(max(0, $pq)); + + if ($this->largeArc === $this->sweep) { + $q = -$q; + } + + $cxp = $q * $rX * $y1p / $rY; + $cyp = -$q * $rY * $x1p / $rX; + + // F.6.5.3 + $cx = cos($xAngle) * $cxp - sin($xAngle) * $cyp + ($fromX + $this->x) / 2; + $cy = sin($xAngle) * $cxp + cos($xAngle) * $cyp + ($fromY + $this->y) / 2; + + // F.6.5.5 + $theta = self::angle(1, 0, ($x1p - $cxp) / $rX, ($y1p - $cyp) / $rY); + + // F.6.5.6 + $delta = self::angle(($x1p - $cxp) / $rX, ($y1p - $cyp) / $rY, (-$x1p - $cxp) / $rX, (-$y1p - $cyp) / $rY); + $delta = fmod($delta, pi() * 2); + + if (! $this->sweep) { + $delta -= 2 * pi(); + } + + return [$cx, $cy, $rX, $rY, $theta, $delta]; + } + + private static function angle(float $ux, float $uy, float $vx, float $vy) : float + { + // F.6.5.4 + $dot = $ux * $vx + $uy * $vy; + $length = sqrt($ux ** 2 + $uy ** 2) * sqrt($vx ** 2 + $vy ** 2); + $angle = acos(min(1, max(-1, $dot / $length))); + + if (($ux * $vy - $uy * $vx) < 0) { + return -$angle; + } + + return $angle; + } + + /** + * @return float[] + */ + private static function point( + float $centerX, + float $centerY, + float $radiusX, + float $radiusY, + float $xAngle, + float $angle + ) : array { + return [ + $centerX + $radiusX * cos($xAngle) * cos($angle) - $radiusY * sin($xAngle) * sin($angle), + $centerY + $radiusX * sin($xAngle) * cos($angle) + $radiusY * cos($xAngle) * sin($angle), + ]; + } + + /** + * @return float[] + */ + private static function derivative(float $radiusX, float $radiusY, float $xAngle, float $angle) : array + { + return [ + -$radiusX * cos($xAngle) * sin($angle) - $radiusY * sin($xAngle) * cos($angle), + -$radiusX * sin($xAngle) * sin($angle) + $radiusY * cos($xAngle) * cos($angle), + ]; + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Renderer/Path/Line.php b/system/vendor/bacon/bacon-qr-code/src/Renderer/Path/Line.php new file mode 100644 index 0000000..dec46fd --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Renderer/Path/Line.php @@ -0,0 +1,42 @@ +x; + } + + public function getY() : float + { + return $this->y; + } + + /** + * @return self + */ + public function translate(float $x, float $y) : OperationInterface + { + return new self($this->x + $x, $this->y + $y); + } + + /** + * @return self + */ + public function rotate(int $degrees) : OperationInterface + { + $radians = deg2rad($degrees); + $sin = sin($radians); + $cos = cos($radians); + $xr = $this->x * $cos - $this->y * $sin; + $yr = $this->x * $sin + $this->y * $cos; + return new self($xr, $yr); + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Renderer/Path/Move.php b/system/vendor/bacon/bacon-qr-code/src/Renderer/Path/Move.php new file mode 100644 index 0000000..c3c9a56 --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Renderer/Path/Move.php @@ -0,0 +1,42 @@ +x; + } + + public function getY() : float + { + return $this->y; + } + + /** + * @return self + */ + public function translate(float $x, float $y) : OperationInterface + { + return new self($this->x + $x, $this->y + $y); + } + + /** + * @return self + */ + public function rotate(int $degrees) : OperationInterface + { + $radians = deg2rad($degrees); + $sin = sin($radians); + $cos = cos($radians); + $xr = $this->x * $cos - $this->y * $sin; + $yr = $this->x * $sin + $this->y * $cos; + return new self($xr, $yr); + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Renderer/Path/OperationInterface.php b/system/vendor/bacon/bacon-qr-code/src/Renderer/Path/OperationInterface.php new file mode 100644 index 0000000..9271555 --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Renderer/Path/OperationInterface.php @@ -0,0 +1,17 @@ +operations[] = new Move($x, $y); + return $path; + } + + /** + * Draws a line from the current position to another position. + */ + public function line(float $x, float $y) : self + { + $path = clone $this; + $path->operations[] = new Line($x, $y); + return $path; + } + + /** + * Draws an elliptic arc from the current position to another position. + */ + public function ellipticArc( + float $xRadius, + float $yRadius, + float $xAxisRotation, + bool $largeArc, + bool $sweep, + float $x, + float $y + ) : self { + $path = clone $this; + $path->operations[] = new EllipticArc($xRadius, $yRadius, $xAxisRotation, $largeArc, $sweep, $x, $y); + return $path; + } + + /** + * Draws a curve from the current position to another position. + */ + public function curve(float $x1, float $y1, float $x2, float $y2, float $x3, float $y3) : self + { + $path = clone $this; + $path->operations[] = new Curve($x1, $y1, $x2, $y2, $x3, $y3); + return $path; + } + + /** + * Closes a sub-path. + */ + public function close() : self + { + $path = clone $this; + $path->operations[] = Close::instance(); + return $path; + } + + /** + * Appends another path to this one. + */ + public function append(self $other) : self + { + $path = clone $this; + $path->operations = array_merge($this->operations, $other->operations); + return $path; + } + + public function translate(float $x, float $y) : self + { + $path = new self(); + + foreach ($this->operations as $operation) { + $path->operations[] = $operation->translate($x, $y); + } + + return $path; + } + + public function rotate(int $degrees) : self + { + $path = new self(); + + foreach ($this->operations as $operation) { + $path->operations[] = $operation->rotate($degrees); + } + + return $path; + } + + /** + * @return Traversable + */ + public function getIterator() : Traversable + { + foreach ($this->operations as $operation) { + yield $operation; + } + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Renderer/PlainTextRenderer.php b/system/vendor/bacon/bacon-qr-code/src/Renderer/PlainTextRenderer.php new file mode 100644 index 0000000..219bbf3 --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Renderer/PlainTextRenderer.php @@ -0,0 +1,80 @@ +getMatrix(); + $matrixSize = $matrix->getWidth(); + + if ($matrixSize !== $matrix->getHeight()) { + throw new InvalidArgumentException('Matrix must have the same width and height'); + } + + $rows = $matrix->getArray()->toArray(); + + if (0 !== $matrixSize % 2) { + $rows[] = array_fill(0, $matrixSize, 0); + } + + $horizontalMargin = str_repeat(self::EMPTY_BLOCK, $this->margin); + $result = str_repeat("\n", (int) ceil($this->margin / 2)); + + for ($i = 0; $i < $matrixSize; $i += 2) { + $result .= $horizontalMargin; + + $upperRow = $rows[$i]; + $lowerRow = $rows[$i + 1]; + + for ($j = 0; $j < $matrixSize; ++$j) { + $upperBit = $upperRow[$j]; + $lowerBit = $lowerRow[$j]; + + if ($upperBit) { + $result .= $lowerBit ? self::FULL_BLOCK : self::UPPER_HALF_BLOCK; + } else { + $result .= $lowerBit ? self::LOWER_HALF_BLOCK : self::EMPTY_BLOCK; + } + } + + $result .= $horizontalMargin . "\n"; + } + + $result .= str_repeat("\n", (int) ceil($this->margin / 2)); + + return $result; + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Renderer/RendererInterface.php b/system/vendor/bacon/bacon-qr-code/src/Renderer/RendererInterface.php new file mode 100644 index 0000000..b0aae39 --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Renderer/RendererInterface.php @@ -0,0 +1,11 @@ +externalColor && null === $this->internalColor; + } + + public function inheritsExternalColor() : bool + { + return null === $this->externalColor; + } + + public function inheritsInternalColor() : bool + { + return null === $this->internalColor; + } + + public function getExternalColor() : ColorInterface + { + if (null === $this->externalColor) { + throw new RuntimeException('External eye color inherits foreground color'); + } + + return $this->externalColor; + } + + public function getInternalColor() : ColorInterface + { + if (null === $this->internalColor) { + throw new RuntimeException('Internal eye color inherits foreground color'); + } + + return $this->internalColor; + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/Fill.php b/system/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/Fill.php new file mode 100644 index 0000000..19de25d --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/Fill.php @@ -0,0 +1,129 @@ +foregroundGradient; + } + + public function getBackgroundColor() : ColorInterface + { + return $this->backgroundColor; + } + + public function getForegroundColor() : ColorInterface + { + if (null === $this->foregroundColor) { + throw new RuntimeException('Fill uses a gradient, thus no foreground color is available'); + } + + return $this->foregroundColor; + } + + public function getForegroundGradient() : Gradient + { + if (null === $this->foregroundGradient) { + throw new RuntimeException('Fill uses a single color, thus no foreground gradient is available'); + } + + return $this->foregroundGradient; + } + + public function getTopLeftEyeFill() : EyeFill + { + return $this->topLeftEyeFill; + } + + public function getTopRightEyeFill() : EyeFill + { + return $this->topRightEyeFill; + } + + public function getBottomLeftEyeFill() : EyeFill + { + return $this->bottomLeftEyeFill; + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/Gradient.php b/system/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/Gradient.php new file mode 100644 index 0000000..eea4031 --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/Gradient.php @@ -0,0 +1,31 @@ +startColor; + } + + public function getEndColor() : ColorInterface + { + return $this->endColor; + } + + public function getType() : GradientType + { + return $this->type; + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/GradientType.php b/system/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/GradientType.php new file mode 100644 index 0000000..c1ca754 --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/GradientType.php @@ -0,0 +1,22 @@ +module = $module ?: SquareModule::instance(); + $this->eye = $eye ?: new ModuleEye($this->module); + $this->fill = $fill ?: Fill::default(); + } + + public function withSize(int $size) : self + { + $style = clone $this; + $style->size = $size; + return $style; + } + + public function withMargin(int $margin) : self + { + $style = clone $this; + $style->margin = $margin; + return $style; + } + + public function getSize() : int + { + return $this->size; + } + + public function getMargin() : int + { + return $this->margin; + } + + public function getModule() : ModuleInterface + { + return $this->module; + } + + public function getEye() : EyeInterface + { + return $this->eye; + } + + public function getFill() : Fill + { + return $this->fill; + } +} diff --git a/system/vendor/bacon/bacon-qr-code/src/Writer.php b/system/vendor/bacon/bacon-qr-code/src/Writer.php new file mode 100644 index 0000000..d7f7ebb --- /dev/null +++ b/system/vendor/bacon/bacon-qr-code/src/Writer.php @@ -0,0 +1,63 @@ +renderer->render(Encoder::encode($content, $ecLevel, $encoding, $forcedVersion)); + } + + /** + * Writes QR code to a file. + * + * @see Writer::writeString() + */ + public function writeFile( + string $content, + string $filename, + string $encoding = Encoder::DEFAULT_BYTE_MODE_ENCODING, + ?ErrorCorrectionLevel $ecLevel = null, + ?Version $forcedVersion = null + ) : void { + file_put_contents($filename, $this->writeString($content, $encoding, $ecLevel, $forcedVersion)); + } +} diff --git a/system/vendor/composer/ClassLoader.php b/system/vendor/composer/ClassLoader.php new file mode 100644 index 0000000..7824d8f --- /dev/null +++ b/system/vendor/composer/ClassLoader.php @@ -0,0 +1,579 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier + * @author Jordi Boggiano + * @see https://www.php-fig.org/psr/psr-0/ + * @see https://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + /** @var \Closure(string):void */ + private static $includeFile; + + /** @var string|null */ + private $vendorDir; + + // PSR-4 + /** + * @var array> + */ + private $prefixLengthsPsr4 = array(); + /** + * @var array> + */ + private $prefixDirsPsr4 = array(); + /** + * @var list + */ + private $fallbackDirsPsr4 = array(); + + // PSR-0 + /** + * List of PSR-0 prefixes + * + * Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2'))) + * + * @var array>> + */ + private $prefixesPsr0 = array(); + /** + * @var list + */ + private $fallbackDirsPsr0 = array(); + + /** @var bool */ + private $useIncludePath = false; + + /** + * @var array + */ + private $classMap = array(); + + /** @var bool */ + private $classMapAuthoritative = false; + + /** + * @var array + */ + private $missingClasses = array(); + + /** @var string|null */ + private $apcuPrefix; + + /** + * @var array + */ + private static $registeredLoaders = array(); + + /** + * @param string|null $vendorDir + */ + public function __construct($vendorDir = null) + { + $this->vendorDir = $vendorDir; + self::initializeIncludeClosure(); + } + + /** + * @return array> + */ + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', array_values($this->prefixesPsr0)); + } + + return array(); + } + + /** + * @return array> + */ + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + /** + * @return list + */ + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + /** + * @return list + */ + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + /** + * @return array Array of classname => path + */ + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + * + * @return void + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, either + * appending or prepending to the ones previously set for this prefix. + * + * @param string $prefix The prefix + * @param list|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + * + * @return void + */ + public function add($prefix, $paths, $prepend = false) + { + $paths = (array) $paths; + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + $paths + ); + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, either + * appending or prepending to the ones previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param list|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + * + * @return void + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + $paths = (array) $paths; + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = $paths; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + $paths + ); + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, + * replacing any others previously set for this prefix. + * + * @param string $prefix The prefix + * @param list|string $paths The PSR-0 base directories + * + * @return void + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, + * replacing any others previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param list|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + * + * @return void + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + * + * @return void + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + * + * @return void + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + * + * @return void + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + * + * @return void + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + + if (null === $this->vendorDir) { + return; + } + + if ($prepend) { + self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders; + } else { + unset(self::$registeredLoaders[$this->vendorDir]); + self::$registeredLoaders[$this->vendorDir] = $this; + } + } + + /** + * Unregisters this instance as an autoloader. + * + * @return void + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + + if (null !== $this->vendorDir) { + unset(self::$registeredLoaders[$this->vendorDir]); + } + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return true|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + $includeFile = self::$includeFile; + $includeFile($file); + + return true; + } + + return null; + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + /** + * Returns the currently registered loaders keyed by their corresponding vendor directories. + * + * @return array + */ + public static function getRegisteredLoaders() + { + return self::$registeredLoaders; + } + + /** + * @param string $class + * @param string $ext + * @return string|false + */ + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath . '\\'; + if (isset($this->prefixDirsPsr4[$search])) { + $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); + foreach ($this->prefixDirsPsr4[$search] as $dir) { + if (file_exists($file = $dir . $pathEnd)) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } + + /** + * @return void + */ + private static function initializeIncludeClosure() + { + if (self::$includeFile !== null) { + return; + } + + /** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + * + * @param string $file + * @return void + */ + self::$includeFile = \Closure::bind(static function($file) { + include $file; + }, null, null); + } +} diff --git a/system/vendor/composer/InstalledVersions.php b/system/vendor/composer/InstalledVersions.php new file mode 100644 index 0000000..51e734a --- /dev/null +++ b/system/vendor/composer/InstalledVersions.php @@ -0,0 +1,359 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer; + +use Composer\Autoload\ClassLoader; +use Composer\Semver\VersionParser; + +/** + * This class is copied in every Composer installed project and available to all + * + * See also https://getcomposer.org/doc/07-runtime.md#installed-versions + * + * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final + */ +class InstalledVersions +{ + /** + * @var mixed[]|null + * @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array}|array{}|null + */ + private static $installed; + + /** + * @var bool|null + */ + private static $canGetVendors; + + /** + * @var array[] + * @psalm-var array}> + */ + private static $installedByVendor = array(); + + /** + * Returns a list of all package names which are present, either by being installed, replaced or provided + * + * @return string[] + * @psalm-return list + */ + public static function getInstalledPackages() + { + $packages = array(); + foreach (self::getInstalled() as $installed) { + $packages[] = array_keys($installed['versions']); + } + + if (1 === \count($packages)) { + return $packages[0]; + } + + return array_keys(array_flip(\call_user_func_array('array_merge', $packages))); + } + + /** + * Returns a list of all package names with a specific type e.g. 'library' + * + * @param string $type + * @return string[] + * @psalm-return list + */ + public static function getInstalledPackagesByType($type) + { + $packagesByType = array(); + + foreach (self::getInstalled() as $installed) { + foreach ($installed['versions'] as $name => $package) { + if (isset($package['type']) && $package['type'] === $type) { + $packagesByType[] = $name; + } + } + } + + return $packagesByType; + } + + /** + * Checks whether the given package is installed + * + * This also returns true if the package name is provided or replaced by another package + * + * @param string $packageName + * @param bool $includeDevRequirements + * @return bool + */ + public static function isInstalled($packageName, $includeDevRequirements = true) + { + foreach (self::getInstalled() as $installed) { + if (isset($installed['versions'][$packageName])) { + return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false; + } + } + + return false; + } + + /** + * Checks whether the given package satisfies a version constraint + * + * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call: + * + * Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3') + * + * @param VersionParser $parser Install composer/semver to have access to this class and functionality + * @param string $packageName + * @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package + * @return bool + */ + public static function satisfies(VersionParser $parser, $packageName, $constraint) + { + $constraint = $parser->parseConstraints((string) $constraint); + $provided = $parser->parseConstraints(self::getVersionRanges($packageName)); + + return $provided->matches($constraint); + } + + /** + * Returns a version constraint representing all the range(s) which are installed for a given package + * + * It is easier to use this via isInstalled() with the $constraint argument if you need to check + * whether a given version of a package is installed, and not just whether it exists + * + * @param string $packageName + * @return string Version constraint usable with composer/semver + */ + public static function getVersionRanges($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + $ranges = array(); + if (isset($installed['versions'][$packageName]['pretty_version'])) { + $ranges[] = $installed['versions'][$packageName]['pretty_version']; + } + if (array_key_exists('aliases', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']); + } + if (array_key_exists('replaced', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']); + } + if (array_key_exists('provided', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']); + } + + return implode(' || ', $ranges); + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present + */ + public static function getVersion($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['version'])) { + return null; + } + + return $installed['versions'][$packageName]['version']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present + */ + public static function getPrettyVersion($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['pretty_version'])) { + return null; + } + + return $installed['versions'][$packageName]['pretty_version']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference + */ + public static function getReference($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['reference'])) { + return null; + } + + return $installed['versions'][$packageName]['reference']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path. + */ + public static function getInstallPath($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @return array + * @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool} + */ + public static function getRootPackage() + { + $installed = self::getInstalled(); + + return $installed[0]['root']; + } + + /** + * Returns the raw installed.php data for custom implementations + * + * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect. + * @return array[] + * @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} + */ + public static function getRawData() + { + @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED); + + if (null === self::$installed) { + // only require the installed.php file if this file is loaded from its dumped location, + // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 + if (substr(__DIR__, -8, 1) !== 'C') { + self::$installed = include __DIR__ . '/installed.php'; + } else { + self::$installed = array(); + } + } + + return self::$installed; + } + + /** + * Returns the raw data of all installed.php which are currently loaded for custom implementations + * + * @return array[] + * @psalm-return list}> + */ + public static function getAllRawData() + { + return self::getInstalled(); + } + + /** + * Lets you reload the static array from another file + * + * This is only useful for complex integrations in which a project needs to use + * this class but then also needs to execute another project's autoloader in process, + * and wants to ensure both projects have access to their version of installed.php. + * + * A typical case would be PHPUnit, where it would need to make sure it reads all + * the data it needs from this class, then call reload() with + * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure + * the project in which it runs can then also use this class safely, without + * interference between PHPUnit's dependencies and the project's dependencies. + * + * @param array[] $data A vendor/composer/installed.php data set + * @return void + * + * @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $data + */ + public static function reload($data) + { + self::$installed = $data; + self::$installedByVendor = array(); + } + + /** + * @return array[] + * @psalm-return list}> + */ + private static function getInstalled() + { + if (null === self::$canGetVendors) { + self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders'); + } + + $installed = array(); + + if (self::$canGetVendors) { + foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) { + if (isset(self::$installedByVendor[$vendorDir])) { + $installed[] = self::$installedByVendor[$vendorDir]; + } elseif (is_file($vendorDir.'/composer/installed.php')) { + /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */ + $required = require $vendorDir.'/composer/installed.php'; + $installed[] = self::$installedByVendor[$vendorDir] = $required; + if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) { + self::$installed = $installed[count($installed) - 1]; + } + } + } + } + + if (null === self::$installed) { + // only require the installed.php file if this file is loaded from its dumped location, + // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 + if (substr(__DIR__, -8, 1) !== 'C') { + /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */ + $required = require __DIR__ . '/installed.php'; + self::$installed = $required; + } else { + self::$installed = array(); + } + } + + if (self::$installed !== array()) { + $installed[] = self::$installed; + } + + return $installed; + } +} diff --git a/system/vendor/composer/LICENSE b/system/vendor/composer/LICENSE new file mode 100644 index 0000000..f27399a --- /dev/null +++ b/system/vendor/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/system/vendor/composer/autoload_classmap.php b/system/vendor/composer/autoload_classmap.php new file mode 100644 index 0000000..6417f5d --- /dev/null +++ b/system/vendor/composer/autoload_classmap.php @@ -0,0 +1,125 @@ + $vendorDir . '/bacon/bacon-qr-code/src/Common/BitArray.php', + 'BaconQrCode\\Common\\BitMatrix' => $vendorDir . '/bacon/bacon-qr-code/src/Common/BitMatrix.php', + 'BaconQrCode\\Common\\BitUtils' => $vendorDir . '/bacon/bacon-qr-code/src/Common/BitUtils.php', + 'BaconQrCode\\Common\\CharacterSetEci' => $vendorDir . '/bacon/bacon-qr-code/src/Common/CharacterSetEci.php', + 'BaconQrCode\\Common\\EcBlock' => $vendorDir . '/bacon/bacon-qr-code/src/Common/EcBlock.php', + 'BaconQrCode\\Common\\EcBlocks' => $vendorDir . '/bacon/bacon-qr-code/src/Common/EcBlocks.php', + 'BaconQrCode\\Common\\ErrorCorrectionLevel' => $vendorDir . '/bacon/bacon-qr-code/src/Common/ErrorCorrectionLevel.php', + 'BaconQrCode\\Common\\FormatInformation' => $vendorDir . '/bacon/bacon-qr-code/src/Common/FormatInformation.php', + 'BaconQrCode\\Common\\Mode' => $vendorDir . '/bacon/bacon-qr-code/src/Common/Mode.php', + 'BaconQrCode\\Common\\ReedSolomonCodec' => $vendorDir . '/bacon/bacon-qr-code/src/Common/ReedSolomonCodec.php', + 'BaconQrCode\\Common\\Version' => $vendorDir . '/bacon/bacon-qr-code/src/Common/Version.php', + 'BaconQrCode\\Encoder\\BlockPair' => $vendorDir . '/bacon/bacon-qr-code/src/Encoder/BlockPair.php', + 'BaconQrCode\\Encoder\\ByteMatrix' => $vendorDir . '/bacon/bacon-qr-code/src/Encoder/ByteMatrix.php', + 'BaconQrCode\\Encoder\\Encoder' => $vendorDir . '/bacon/bacon-qr-code/src/Encoder/Encoder.php', + 'BaconQrCode\\Encoder\\MaskUtil' => $vendorDir . '/bacon/bacon-qr-code/src/Encoder/MaskUtil.php', + 'BaconQrCode\\Encoder\\MatrixUtil' => $vendorDir . '/bacon/bacon-qr-code/src/Encoder/MatrixUtil.php', + 'BaconQrCode\\Encoder\\QrCode' => $vendorDir . '/bacon/bacon-qr-code/src/Encoder/QrCode.php', + 'BaconQrCode\\Exception\\ExceptionInterface' => $vendorDir . '/bacon/bacon-qr-code/src/Exception/ExceptionInterface.php', + 'BaconQrCode\\Exception\\InvalidArgumentException' => $vendorDir . '/bacon/bacon-qr-code/src/Exception/InvalidArgumentException.php', + 'BaconQrCode\\Exception\\OutOfBoundsException' => $vendorDir . '/bacon/bacon-qr-code/src/Exception/OutOfBoundsException.php', + 'BaconQrCode\\Exception\\RuntimeException' => $vendorDir . '/bacon/bacon-qr-code/src/Exception/RuntimeException.php', + 'BaconQrCode\\Exception\\UnexpectedValueException' => $vendorDir . '/bacon/bacon-qr-code/src/Exception/UnexpectedValueException.php', + 'BaconQrCode\\Exception\\WriterException' => $vendorDir . '/bacon/bacon-qr-code/src/Exception/WriterException.php', + 'BaconQrCode\\Renderer\\Color\\Alpha' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/Color/Alpha.php', + 'BaconQrCode\\Renderer\\Color\\Cmyk' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/Color/Cmyk.php', + 'BaconQrCode\\Renderer\\Color\\ColorInterface' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/Color/ColorInterface.php', + 'BaconQrCode\\Renderer\\Color\\Gray' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/Color/Gray.php', + 'BaconQrCode\\Renderer\\Color\\Rgb' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/Color/Rgb.php', + 'BaconQrCode\\Renderer\\Eye\\CompositeEye' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/Eye/CompositeEye.php', + 'BaconQrCode\\Renderer\\Eye\\EyeInterface' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/Eye/EyeInterface.php', + 'BaconQrCode\\Renderer\\Eye\\ModuleEye' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/Eye/ModuleEye.php', + 'BaconQrCode\\Renderer\\Eye\\PointyEye' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/Eye/PointyEye.php', + 'BaconQrCode\\Renderer\\Eye\\SimpleCircleEye' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/Eye/SimpleCircleEye.php', + 'BaconQrCode\\Renderer\\Eye\\SquareEye' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/Eye/SquareEye.php', + 'BaconQrCode\\Renderer\\GDLibRenderer' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/GDLibRenderer.php', + 'BaconQrCode\\Renderer\\ImageRenderer' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/ImageRenderer.php', + 'BaconQrCode\\Renderer\\Image\\EpsImageBackEnd' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/Image/EpsImageBackEnd.php', + 'BaconQrCode\\Renderer\\Image\\ImageBackEndInterface' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/Image/ImageBackEndInterface.php', + 'BaconQrCode\\Renderer\\Image\\ImagickImageBackEnd' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/Image/ImagickImageBackEnd.php', + 'BaconQrCode\\Renderer\\Image\\SvgImageBackEnd' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/Image/SvgImageBackEnd.php', + 'BaconQrCode\\Renderer\\Image\\TransformationMatrix' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/Image/TransformationMatrix.php', + 'BaconQrCode\\Renderer\\Module\\DotsModule' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/Module/DotsModule.php', + 'BaconQrCode\\Renderer\\Module\\EdgeIterator\\Edge' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/Module/EdgeIterator/Edge.php', + 'BaconQrCode\\Renderer\\Module\\EdgeIterator\\EdgeIterator' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/Module/EdgeIterator/EdgeIterator.php', + 'BaconQrCode\\Renderer\\Module\\ModuleInterface' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/Module/ModuleInterface.php', + 'BaconQrCode\\Renderer\\Module\\RoundnessModule' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/Module/RoundnessModule.php', + 'BaconQrCode\\Renderer\\Module\\SquareModule' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/Module/SquareModule.php', + 'BaconQrCode\\Renderer\\Path\\Close' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/Path/Close.php', + 'BaconQrCode\\Renderer\\Path\\Curve' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/Path/Curve.php', + 'BaconQrCode\\Renderer\\Path\\EllipticArc' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/Path/EllipticArc.php', + 'BaconQrCode\\Renderer\\Path\\Line' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/Path/Line.php', + 'BaconQrCode\\Renderer\\Path\\Move' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/Path/Move.php', + 'BaconQrCode\\Renderer\\Path\\OperationInterface' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/Path/OperationInterface.php', + 'BaconQrCode\\Renderer\\Path\\Path' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/Path/Path.php', + 'BaconQrCode\\Renderer\\PlainTextRenderer' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/PlainTextRenderer.php', + 'BaconQrCode\\Renderer\\RendererInterface' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/RendererInterface.php', + 'BaconQrCode\\Renderer\\RendererStyle\\EyeFill' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/RendererStyle/EyeFill.php', + 'BaconQrCode\\Renderer\\RendererStyle\\Fill' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/RendererStyle/Fill.php', + 'BaconQrCode\\Renderer\\RendererStyle\\Gradient' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/RendererStyle/Gradient.php', + 'BaconQrCode\\Renderer\\RendererStyle\\GradientType' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/RendererStyle/GradientType.php', + 'BaconQrCode\\Renderer\\RendererStyle\\RendererStyle' => $vendorDir . '/bacon/bacon-qr-code/src/Renderer/RendererStyle/RendererStyle.php', + 'BaconQrCode\\Writer' => $vendorDir . '/bacon/bacon-qr-code/src/Writer.php', + 'Composer\\CaBundle\\CaBundle' => $vendorDir . '/composer/ca-bundle/src/CaBundle.php', + 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php', + 'DASPRiD\\Enum\\AbstractEnum' => $vendorDir . '/dasprid/enum/src/AbstractEnum.php', + 'DASPRiD\\Enum\\EnumMap' => $vendorDir . '/dasprid/enum/src/EnumMap.php', + 'DASPRiD\\Enum\\Exception\\CloneNotSupportedException' => $vendorDir . '/dasprid/enum/src/Exception/CloneNotSupportedException.php', + 'DASPRiD\\Enum\\Exception\\ExceptionInterface' => $vendorDir . '/dasprid/enum/src/Exception/ExceptionInterface.php', + 'DASPRiD\\Enum\\Exception\\ExpectationException' => $vendorDir . '/dasprid/enum/src/Exception/ExpectationException.php', + 'DASPRiD\\Enum\\Exception\\IllegalArgumentException' => $vendorDir . '/dasprid/enum/src/Exception/IllegalArgumentException.php', + 'DASPRiD\\Enum\\Exception\\MismatchException' => $vendorDir . '/dasprid/enum/src/Exception/MismatchException.php', + 'DASPRiD\\Enum\\Exception\\SerializeNotSupportedException' => $vendorDir . '/dasprid/enum/src/Exception/SerializeNotSupportedException.php', + 'DASPRiD\\Enum\\Exception\\UnserializeNotSupportedException' => $vendorDir . '/dasprid/enum/src/Exception/UnserializeNotSupportedException.php', + 'DASPRiD\\Enum\\NullValue' => $vendorDir . '/dasprid/enum/src/NullValue.php', + 'Kanti\\CacheOneFile' => $vendorDir . '/kanti/hub-updater/src/CacheOneFile.php', + 'Kanti\\HelperClass' => $vendorDir . '/kanti/hub-updater/src/HelperClass.php', + 'Kanti\\HubUpdater' => $vendorDir . '/kanti/hub-updater/src/HubUpdater.php', + 'Michelf\\Markdown' => $vendorDir . '/michelf/php-markdown/Michelf/Markdown.php', + 'Michelf\\MarkdownExtra' => $vendorDir . '/michelf/php-markdown/Michelf/MarkdownExtra.php', + 'Michelf\\MarkdownInterface' => $vendorDir . '/michelf/php-markdown/Michelf/MarkdownInterface.php', + 'ParagonIE\\ConstantTime\\Base32' => $vendorDir . '/paragonie/constant_time_encoding/src/Base32.php', + 'ParagonIE\\ConstantTime\\Base32Hex' => $vendorDir . '/paragonie/constant_time_encoding/src/Base32Hex.php', + 'ParagonIE\\ConstantTime\\Base64' => $vendorDir . '/paragonie/constant_time_encoding/src/Base64.php', + 'ParagonIE\\ConstantTime\\Base64DotSlash' => $vendorDir . '/paragonie/constant_time_encoding/src/Base64DotSlash.php', + 'ParagonIE\\ConstantTime\\Base64DotSlashOrdered' => $vendorDir . '/paragonie/constant_time_encoding/src/Base64DotSlashOrdered.php', + 'ParagonIE\\ConstantTime\\Base64UrlSafe' => $vendorDir . '/paragonie/constant_time_encoding/src/Base64UrlSafe.php', + 'ParagonIE\\ConstantTime\\Binary' => $vendorDir . '/paragonie/constant_time_encoding/src/Binary.php', + 'ParagonIE\\ConstantTime\\EncoderInterface' => $vendorDir . '/paragonie/constant_time_encoding/src/EncoderInterface.php', + 'ParagonIE\\ConstantTime\\Encoding' => $vendorDir . '/paragonie/constant_time_encoding/src/Encoding.php', + 'ParagonIE\\ConstantTime\\Hex' => $vendorDir . '/paragonie/constant_time_encoding/src/Hex.php', + 'ParagonIE\\ConstantTime\\RFC4648' => $vendorDir . '/paragonie/constant_time_encoding/src/RFC4648.php', + 'PragmaRX\\Google2FA\\Exceptions\\Contracts\\Google2FA' => $vendorDir . '/pragmarx/google2fa/src/Exceptions/Contracts/Google2FA.php', + 'PragmaRX\\Google2FA\\Exceptions\\Contracts\\IncompatibleWithGoogleAuthenticator' => $vendorDir . '/pragmarx/google2fa/src/Exceptions/Contracts/IncompatibleWithGoogleAuthenticator.php', + 'PragmaRX\\Google2FA\\Exceptions\\Contracts\\InvalidAlgorithm' => $vendorDir . '/pragmarx/google2fa/src/Exceptions/Contracts/InvalidAlgorithm.php', + 'PragmaRX\\Google2FA\\Exceptions\\Contracts\\InvalidCharacters' => $vendorDir . '/pragmarx/google2fa/src/Exceptions/Contracts/InvalidCharacters.php', + 'PragmaRX\\Google2FA\\Exceptions\\Contracts\\SecretKeyTooShort' => $vendorDir . '/pragmarx/google2fa/src/Exceptions/Contracts/SecretKeyTooShort.php', + 'PragmaRX\\Google2FA\\Exceptions\\Google2FAException' => $vendorDir . '/pragmarx/google2fa/src/Exceptions/Google2FAException.php', + 'PragmaRX\\Google2FA\\Exceptions\\IncompatibleWithGoogleAuthenticatorException' => $vendorDir . '/pragmarx/google2fa/src/Exceptions/IncompatibleWithGoogleAuthenticatorException.php', + 'PragmaRX\\Google2FA\\Exceptions\\InvalidAlgorithmException' => $vendorDir . '/pragmarx/google2fa/src/Exceptions/InvalidAlgorithmException.php', + 'PragmaRX\\Google2FA\\Exceptions\\InvalidCharactersException' => $vendorDir . '/pragmarx/google2fa/src/Exceptions/InvalidCharactersException.php', + 'PragmaRX\\Google2FA\\Exceptions\\SecretKeyTooShortException' => $vendorDir . '/pragmarx/google2fa/src/Exceptions/SecretKeyTooShortException.php', + 'PragmaRX\\Google2FA\\Google2FA' => $vendorDir . '/pragmarx/google2fa/src/Google2FA.php', + 'PragmaRX\\Google2FA\\Support\\Base32' => $vendorDir . '/pragmarx/google2fa/src/Support/Base32.php', + 'PragmaRX\\Google2FA\\Support\\Constants' => $vendorDir . '/pragmarx/google2fa/src/Support/Constants.php', + 'PragmaRX\\Google2FA\\Support\\QRCode' => $vendorDir . '/pragmarx/google2fa/src/Support/QRCode.php', + 'Suin\\RSSWriter\\Channel' => $vendorDir . '/suin/php-rss-writer/src/Suin/RSSWriter/Channel.php', + 'Suin\\RSSWriter\\ChannelInterface' => $vendorDir . '/suin/php-rss-writer/src/Suin/RSSWriter/ChannelInterface.php', + 'Suin\\RSSWriter\\Feed' => $vendorDir . '/suin/php-rss-writer/src/Suin/RSSWriter/Feed.php', + 'Suin\\RSSWriter\\FeedInterface' => $vendorDir . '/suin/php-rss-writer/src/Suin/RSSWriter/FeedInterface.php', + 'Suin\\RSSWriter\\Item' => $vendorDir . '/suin/php-rss-writer/src/Suin/RSSWriter/Item.php', + 'Suin\\RSSWriter\\ItemInterface' => $vendorDir . '/suin/php-rss-writer/src/Suin/RSSWriter/ItemInterface.php', + 'Suin\\RSSWriter\\SimpleXMLElement' => $vendorDir . '/suin/php-rss-writer/src/Suin/RSSWriter/SimpleXMLElement.php', + 'URLify' => $vendorDir . '/jbroadway/urlify/URLify.php', + 'voku\\helper\\ASCII' => $vendorDir . '/voku/portable-ascii/src/voku/helper/ASCII.php', + 'voku\\helper\\StopWords' => $vendorDir . '/voku/stop-words/src/voku/helper/StopWords.php', + 'voku\\helper\\StopWordsLanguageNotExists' => $vendorDir . '/voku/stop-words/src/voku/helper/StopWordsLanguageNotExists.php', +); diff --git a/system/vendor/composer/autoload_files.php b/system/vendor/composer/autoload_files.php new file mode 100644 index 0000000..46cd6f2 --- /dev/null +++ b/system/vendor/composer/autoload_files.php @@ -0,0 +1,15 @@ + $vendorDir . '/ircmaxell/password-compat/lib/password.php', + '3abd73be56f01e9aafc62d31c7e15d91' => $baseDir . '/system/includes/dispatch.php', + 'f770a6f41af7b4285303bdcc4ff87ba7' => $baseDir . '/system/includes/functions.php', + '8432047aca7938f88a2098a2f7770228' => $baseDir . '/system/admin/admin.php', + '1b9bf2d9d029f1364c3d7262b5375c41' => $baseDir . '/system/includes/session.php', + '62f038defb1b29aab3998eb437e01df9' => $baseDir . '/system/includes/opml.php', +); diff --git a/system/vendor/composer/autoload_namespaces.php b/system/vendor/composer/autoload_namespaces.php new file mode 100644 index 0000000..a93b136 --- /dev/null +++ b/system/vendor/composer/autoload_namespaces.php @@ -0,0 +1,11 @@ + array($vendorDir . '/jbroadway/urlify'), + 'Suin\\RSSWriter' => array($vendorDir . '/suin/php-rss-writer/src'), +); diff --git a/system/vendor/composer/autoload_psr4.php b/system/vendor/composer/autoload_psr4.php new file mode 100644 index 0000000..4386688 --- /dev/null +++ b/system/vendor/composer/autoload_psr4.php @@ -0,0 +1,17 @@ + array($vendorDir . '/voku/portable-ascii/src/voku', $vendorDir . '/voku/stop-words/src/voku'), + 'PragmaRX\\Google2FA\\' => array($vendorDir . '/pragmarx/google2fa/src'), + 'ParagonIE\\ConstantTime\\' => array($vendorDir . '/paragonie/constant_time_encoding/src'), + 'Michelf\\' => array($vendorDir . '/michelf/php-markdown/Michelf'), + 'Kanti\\' => array($vendorDir . '/kanti/hub-updater/src'), + 'DASPRiD\\Enum\\' => array($vendorDir . '/dasprid/enum/src'), + 'Composer\\CaBundle\\' => array($vendorDir . '/composer/ca-bundle/src'), + 'BaconQrCode\\' => array($vendorDir . '/bacon/bacon-qr-code/src'), +); diff --git a/system/vendor/composer/autoload_real.php b/system/vendor/composer/autoload_real.php new file mode 100644 index 0000000..314de60 --- /dev/null +++ b/system/vendor/composer/autoload_real.php @@ -0,0 +1,48 @@ +register(true); + + $filesToLoad = \Composer\Autoload\ComposerStaticInitd88c6c25320034df85dd42f1462fbda7::$files; + $requireFile = \Closure::bind(static function ($fileIdentifier, $file) { + if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { + $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; + + require $file; + } + }, null, null); + foreach ($filesToLoad as $fileIdentifier => $file) { + $requireFile($fileIdentifier, $file); + } + + return $loader; + } +} diff --git a/system/vendor/composer/autoload_static.php b/system/vendor/composer/autoload_static.php new file mode 100644 index 0000000..6baf180 --- /dev/null +++ b/system/vendor/composer/autoload_static.php @@ -0,0 +1,232 @@ + __DIR__ . '/..' . '/ircmaxell/password-compat/lib/password.php', + '3abd73be56f01e9aafc62d31c7e15d91' => __DIR__ . '/../../..' . '/system/includes/dispatch.php', + 'f770a6f41af7b4285303bdcc4ff87ba7' => __DIR__ . '/../../..' . '/system/includes/functions.php', + '8432047aca7938f88a2098a2f7770228' => __DIR__ . '/../../..' . '/system/admin/admin.php', + '1b9bf2d9d029f1364c3d7262b5375c41' => __DIR__ . '/../../..' . '/system/includes/session.php', + '62f038defb1b29aab3998eb437e01df9' => __DIR__ . '/../../..' . '/system/includes/opml.php', + ); + + public static $prefixLengthsPsr4 = array ( + 'v' => + array ( + 'voku\\' => 5, + ), + 'P' => + array ( + 'PragmaRX\\Google2FA\\' => 19, + 'ParagonIE\\ConstantTime\\' => 23, + ), + 'M' => + array ( + 'Michelf\\' => 8, + ), + 'K' => + array ( + 'Kanti\\' => 6, + ), + 'D' => + array ( + 'DASPRiD\\Enum\\' => 13, + ), + 'C' => + array ( + 'Composer\\CaBundle\\' => 18, + ), + 'B' => + array ( + 'BaconQrCode\\' => 12, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'voku\\' => + array ( + 0 => __DIR__ . '/..' . '/voku/portable-ascii/src/voku', + 1 => __DIR__ . '/..' . '/voku/stop-words/src/voku', + ), + 'PragmaRX\\Google2FA\\' => + array ( + 0 => __DIR__ . '/..' . '/pragmarx/google2fa/src', + ), + 'ParagonIE\\ConstantTime\\' => + array ( + 0 => __DIR__ . '/..' . '/paragonie/constant_time_encoding/src', + ), + 'Michelf\\' => + array ( + 0 => __DIR__ . '/..' . '/michelf/php-markdown/Michelf', + ), + 'Kanti\\' => + array ( + 0 => __DIR__ . '/..' . '/kanti/hub-updater/src', + ), + 'DASPRiD\\Enum\\' => + array ( + 0 => __DIR__ . '/..' . '/dasprid/enum/src', + ), + 'Composer\\CaBundle\\' => + array ( + 0 => __DIR__ . '/..' . '/composer/ca-bundle/src', + ), + 'BaconQrCode\\' => + array ( + 0 => __DIR__ . '/..' . '/bacon/bacon-qr-code/src', + ), + ); + + public static $prefixesPsr0 = array ( + 'U' => + array ( + 'URLify' => + array ( + 0 => __DIR__ . '/..' . '/jbroadway/urlify', + ), + ), + 'S' => + array ( + 'Suin\\RSSWriter' => + array ( + 0 => __DIR__ . '/..' . '/suin/php-rss-writer/src', + ), + ), + ); + + public static $classMap = array ( + 'BaconQrCode\\Common\\BitArray' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Common/BitArray.php', + 'BaconQrCode\\Common\\BitMatrix' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Common/BitMatrix.php', + 'BaconQrCode\\Common\\BitUtils' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Common/BitUtils.php', + 'BaconQrCode\\Common\\CharacterSetEci' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Common/CharacterSetEci.php', + 'BaconQrCode\\Common\\EcBlock' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Common/EcBlock.php', + 'BaconQrCode\\Common\\EcBlocks' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Common/EcBlocks.php', + 'BaconQrCode\\Common\\ErrorCorrectionLevel' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Common/ErrorCorrectionLevel.php', + 'BaconQrCode\\Common\\FormatInformation' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Common/FormatInformation.php', + 'BaconQrCode\\Common\\Mode' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Common/Mode.php', + 'BaconQrCode\\Common\\ReedSolomonCodec' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Common/ReedSolomonCodec.php', + 'BaconQrCode\\Common\\Version' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Common/Version.php', + 'BaconQrCode\\Encoder\\BlockPair' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Encoder/BlockPair.php', + 'BaconQrCode\\Encoder\\ByteMatrix' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Encoder/ByteMatrix.php', + 'BaconQrCode\\Encoder\\Encoder' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Encoder/Encoder.php', + 'BaconQrCode\\Encoder\\MaskUtil' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Encoder/MaskUtil.php', + 'BaconQrCode\\Encoder\\MatrixUtil' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Encoder/MatrixUtil.php', + 'BaconQrCode\\Encoder\\QrCode' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Encoder/QrCode.php', + 'BaconQrCode\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Exception/ExceptionInterface.php', + 'BaconQrCode\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Exception/InvalidArgumentException.php', + 'BaconQrCode\\Exception\\OutOfBoundsException' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Exception/OutOfBoundsException.php', + 'BaconQrCode\\Exception\\RuntimeException' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Exception/RuntimeException.php', + 'BaconQrCode\\Exception\\UnexpectedValueException' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Exception/UnexpectedValueException.php', + 'BaconQrCode\\Exception\\WriterException' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Exception/WriterException.php', + 'BaconQrCode\\Renderer\\Color\\Alpha' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/Color/Alpha.php', + 'BaconQrCode\\Renderer\\Color\\Cmyk' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/Color/Cmyk.php', + 'BaconQrCode\\Renderer\\Color\\ColorInterface' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/Color/ColorInterface.php', + 'BaconQrCode\\Renderer\\Color\\Gray' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/Color/Gray.php', + 'BaconQrCode\\Renderer\\Color\\Rgb' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/Color/Rgb.php', + 'BaconQrCode\\Renderer\\Eye\\CompositeEye' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/Eye/CompositeEye.php', + 'BaconQrCode\\Renderer\\Eye\\EyeInterface' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/Eye/EyeInterface.php', + 'BaconQrCode\\Renderer\\Eye\\ModuleEye' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/Eye/ModuleEye.php', + 'BaconQrCode\\Renderer\\Eye\\PointyEye' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/Eye/PointyEye.php', + 'BaconQrCode\\Renderer\\Eye\\SimpleCircleEye' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/Eye/SimpleCircleEye.php', + 'BaconQrCode\\Renderer\\Eye\\SquareEye' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/Eye/SquareEye.php', + 'BaconQrCode\\Renderer\\GDLibRenderer' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/GDLibRenderer.php', + 'BaconQrCode\\Renderer\\ImageRenderer' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/ImageRenderer.php', + 'BaconQrCode\\Renderer\\Image\\EpsImageBackEnd' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/Image/EpsImageBackEnd.php', + 'BaconQrCode\\Renderer\\Image\\ImageBackEndInterface' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/Image/ImageBackEndInterface.php', + 'BaconQrCode\\Renderer\\Image\\ImagickImageBackEnd' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/Image/ImagickImageBackEnd.php', + 'BaconQrCode\\Renderer\\Image\\SvgImageBackEnd' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/Image/SvgImageBackEnd.php', + 'BaconQrCode\\Renderer\\Image\\TransformationMatrix' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/Image/TransformationMatrix.php', + 'BaconQrCode\\Renderer\\Module\\DotsModule' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/Module/DotsModule.php', + 'BaconQrCode\\Renderer\\Module\\EdgeIterator\\Edge' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/Module/EdgeIterator/Edge.php', + 'BaconQrCode\\Renderer\\Module\\EdgeIterator\\EdgeIterator' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/Module/EdgeIterator/EdgeIterator.php', + 'BaconQrCode\\Renderer\\Module\\ModuleInterface' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/Module/ModuleInterface.php', + 'BaconQrCode\\Renderer\\Module\\RoundnessModule' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/Module/RoundnessModule.php', + 'BaconQrCode\\Renderer\\Module\\SquareModule' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/Module/SquareModule.php', + 'BaconQrCode\\Renderer\\Path\\Close' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/Path/Close.php', + 'BaconQrCode\\Renderer\\Path\\Curve' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/Path/Curve.php', + 'BaconQrCode\\Renderer\\Path\\EllipticArc' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/Path/EllipticArc.php', + 'BaconQrCode\\Renderer\\Path\\Line' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/Path/Line.php', + 'BaconQrCode\\Renderer\\Path\\Move' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/Path/Move.php', + 'BaconQrCode\\Renderer\\Path\\OperationInterface' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/Path/OperationInterface.php', + 'BaconQrCode\\Renderer\\Path\\Path' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/Path/Path.php', + 'BaconQrCode\\Renderer\\PlainTextRenderer' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/PlainTextRenderer.php', + 'BaconQrCode\\Renderer\\RendererInterface' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/RendererInterface.php', + 'BaconQrCode\\Renderer\\RendererStyle\\EyeFill' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/RendererStyle/EyeFill.php', + 'BaconQrCode\\Renderer\\RendererStyle\\Fill' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/RendererStyle/Fill.php', + 'BaconQrCode\\Renderer\\RendererStyle\\Gradient' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/RendererStyle/Gradient.php', + 'BaconQrCode\\Renderer\\RendererStyle\\GradientType' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/RendererStyle/GradientType.php', + 'BaconQrCode\\Renderer\\RendererStyle\\RendererStyle' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Renderer/RendererStyle/RendererStyle.php', + 'BaconQrCode\\Writer' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Writer.php', + 'Composer\\CaBundle\\CaBundle' => __DIR__ . '/..' . '/composer/ca-bundle/src/CaBundle.php', + 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', + 'DASPRiD\\Enum\\AbstractEnum' => __DIR__ . '/..' . '/dasprid/enum/src/AbstractEnum.php', + 'DASPRiD\\Enum\\EnumMap' => __DIR__ . '/..' . '/dasprid/enum/src/EnumMap.php', + 'DASPRiD\\Enum\\Exception\\CloneNotSupportedException' => __DIR__ . '/..' . '/dasprid/enum/src/Exception/CloneNotSupportedException.php', + 'DASPRiD\\Enum\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/dasprid/enum/src/Exception/ExceptionInterface.php', + 'DASPRiD\\Enum\\Exception\\ExpectationException' => __DIR__ . '/..' . '/dasprid/enum/src/Exception/ExpectationException.php', + 'DASPRiD\\Enum\\Exception\\IllegalArgumentException' => __DIR__ . '/..' . '/dasprid/enum/src/Exception/IllegalArgumentException.php', + 'DASPRiD\\Enum\\Exception\\MismatchException' => __DIR__ . '/..' . '/dasprid/enum/src/Exception/MismatchException.php', + 'DASPRiD\\Enum\\Exception\\SerializeNotSupportedException' => __DIR__ . '/..' . '/dasprid/enum/src/Exception/SerializeNotSupportedException.php', + 'DASPRiD\\Enum\\Exception\\UnserializeNotSupportedException' => __DIR__ . '/..' . '/dasprid/enum/src/Exception/UnserializeNotSupportedException.php', + 'DASPRiD\\Enum\\NullValue' => __DIR__ . '/..' . '/dasprid/enum/src/NullValue.php', + 'Kanti\\CacheOneFile' => __DIR__ . '/..' . '/kanti/hub-updater/src/CacheOneFile.php', + 'Kanti\\HelperClass' => __DIR__ . '/..' . '/kanti/hub-updater/src/HelperClass.php', + 'Kanti\\HubUpdater' => __DIR__ . '/..' . '/kanti/hub-updater/src/HubUpdater.php', + 'Michelf\\Markdown' => __DIR__ . '/..' . '/michelf/php-markdown/Michelf/Markdown.php', + 'Michelf\\MarkdownExtra' => __DIR__ . '/..' . '/michelf/php-markdown/Michelf/MarkdownExtra.php', + 'Michelf\\MarkdownInterface' => __DIR__ . '/..' . '/michelf/php-markdown/Michelf/MarkdownInterface.php', + 'ParagonIE\\ConstantTime\\Base32' => __DIR__ . '/..' . '/paragonie/constant_time_encoding/src/Base32.php', + 'ParagonIE\\ConstantTime\\Base32Hex' => __DIR__ . '/..' . '/paragonie/constant_time_encoding/src/Base32Hex.php', + 'ParagonIE\\ConstantTime\\Base64' => __DIR__ . '/..' . '/paragonie/constant_time_encoding/src/Base64.php', + 'ParagonIE\\ConstantTime\\Base64DotSlash' => __DIR__ . '/..' . '/paragonie/constant_time_encoding/src/Base64DotSlash.php', + 'ParagonIE\\ConstantTime\\Base64DotSlashOrdered' => __DIR__ . '/..' . '/paragonie/constant_time_encoding/src/Base64DotSlashOrdered.php', + 'ParagonIE\\ConstantTime\\Base64UrlSafe' => __DIR__ . '/..' . '/paragonie/constant_time_encoding/src/Base64UrlSafe.php', + 'ParagonIE\\ConstantTime\\Binary' => __DIR__ . '/..' . '/paragonie/constant_time_encoding/src/Binary.php', + 'ParagonIE\\ConstantTime\\EncoderInterface' => __DIR__ . '/..' . '/paragonie/constant_time_encoding/src/EncoderInterface.php', + 'ParagonIE\\ConstantTime\\Encoding' => __DIR__ . '/..' . '/paragonie/constant_time_encoding/src/Encoding.php', + 'ParagonIE\\ConstantTime\\Hex' => __DIR__ . '/..' . '/paragonie/constant_time_encoding/src/Hex.php', + 'ParagonIE\\ConstantTime\\RFC4648' => __DIR__ . '/..' . '/paragonie/constant_time_encoding/src/RFC4648.php', + 'PragmaRX\\Google2FA\\Exceptions\\Contracts\\Google2FA' => __DIR__ . '/..' . '/pragmarx/google2fa/src/Exceptions/Contracts/Google2FA.php', + 'PragmaRX\\Google2FA\\Exceptions\\Contracts\\IncompatibleWithGoogleAuthenticator' => __DIR__ . '/..' . '/pragmarx/google2fa/src/Exceptions/Contracts/IncompatibleWithGoogleAuthenticator.php', + 'PragmaRX\\Google2FA\\Exceptions\\Contracts\\InvalidAlgorithm' => __DIR__ . '/..' . '/pragmarx/google2fa/src/Exceptions/Contracts/InvalidAlgorithm.php', + 'PragmaRX\\Google2FA\\Exceptions\\Contracts\\InvalidCharacters' => __DIR__ . '/..' . '/pragmarx/google2fa/src/Exceptions/Contracts/InvalidCharacters.php', + 'PragmaRX\\Google2FA\\Exceptions\\Contracts\\SecretKeyTooShort' => __DIR__ . '/..' . '/pragmarx/google2fa/src/Exceptions/Contracts/SecretKeyTooShort.php', + 'PragmaRX\\Google2FA\\Exceptions\\Google2FAException' => __DIR__ . '/..' . '/pragmarx/google2fa/src/Exceptions/Google2FAException.php', + 'PragmaRX\\Google2FA\\Exceptions\\IncompatibleWithGoogleAuthenticatorException' => __DIR__ . '/..' . '/pragmarx/google2fa/src/Exceptions/IncompatibleWithGoogleAuthenticatorException.php', + 'PragmaRX\\Google2FA\\Exceptions\\InvalidAlgorithmException' => __DIR__ . '/..' . '/pragmarx/google2fa/src/Exceptions/InvalidAlgorithmException.php', + 'PragmaRX\\Google2FA\\Exceptions\\InvalidCharactersException' => __DIR__ . '/..' . '/pragmarx/google2fa/src/Exceptions/InvalidCharactersException.php', + 'PragmaRX\\Google2FA\\Exceptions\\SecretKeyTooShortException' => __DIR__ . '/..' . '/pragmarx/google2fa/src/Exceptions/SecretKeyTooShortException.php', + 'PragmaRX\\Google2FA\\Google2FA' => __DIR__ . '/..' . '/pragmarx/google2fa/src/Google2FA.php', + 'PragmaRX\\Google2FA\\Support\\Base32' => __DIR__ . '/..' . '/pragmarx/google2fa/src/Support/Base32.php', + 'PragmaRX\\Google2FA\\Support\\Constants' => __DIR__ . '/..' . '/pragmarx/google2fa/src/Support/Constants.php', + 'PragmaRX\\Google2FA\\Support\\QRCode' => __DIR__ . '/..' . '/pragmarx/google2fa/src/Support/QRCode.php', + 'Suin\\RSSWriter\\Channel' => __DIR__ . '/..' . '/suin/php-rss-writer/src/Suin/RSSWriter/Channel.php', + 'Suin\\RSSWriter\\ChannelInterface' => __DIR__ . '/..' . '/suin/php-rss-writer/src/Suin/RSSWriter/ChannelInterface.php', + 'Suin\\RSSWriter\\Feed' => __DIR__ . '/..' . '/suin/php-rss-writer/src/Suin/RSSWriter/Feed.php', + 'Suin\\RSSWriter\\FeedInterface' => __DIR__ . '/..' . '/suin/php-rss-writer/src/Suin/RSSWriter/FeedInterface.php', + 'Suin\\RSSWriter\\Item' => __DIR__ . '/..' . '/suin/php-rss-writer/src/Suin/RSSWriter/Item.php', + 'Suin\\RSSWriter\\ItemInterface' => __DIR__ . '/..' . '/suin/php-rss-writer/src/Suin/RSSWriter/ItemInterface.php', + 'Suin\\RSSWriter\\SimpleXMLElement' => __DIR__ . '/..' . '/suin/php-rss-writer/src/Suin/RSSWriter/SimpleXMLElement.php', + 'URLify' => __DIR__ . '/..' . '/jbroadway/urlify/URLify.php', + 'voku\\helper\\ASCII' => __DIR__ . '/..' . '/voku/portable-ascii/src/voku/helper/ASCII.php', + 'voku\\helper\\StopWords' => __DIR__ . '/..' . '/voku/stop-words/src/voku/helper/StopWords.php', + 'voku\\helper\\StopWordsLanguageNotExists' => __DIR__ . '/..' . '/voku/stop-words/src/voku/helper/StopWordsLanguageNotExists.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInitd88c6c25320034df85dd42f1462fbda7::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitd88c6c25320034df85dd42f1462fbda7::$prefixDirsPsr4; + $loader->prefixesPsr0 = ComposerStaticInitd88c6c25320034df85dd42f1462fbda7::$prefixesPsr0; + $loader->classMap = ComposerStaticInitd88c6c25320034df85dd42f1462fbda7::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/system/vendor/composer/ca-bundle/LICENSE b/system/vendor/composer/ca-bundle/LICENSE new file mode 100644 index 0000000..c5b5220 --- /dev/null +++ b/system/vendor/composer/ca-bundle/LICENSE @@ -0,0 +1,19 @@ +Copyright (C) 2016 Composer + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/system/vendor/composer/ca-bundle/README.md b/system/vendor/composer/ca-bundle/README.md new file mode 100644 index 0000000..d8205ec --- /dev/null +++ b/system/vendor/composer/ca-bundle/README.md @@ -0,0 +1,85 @@ +composer/ca-bundle +================== + +Small utility library that lets you find a path to the system CA bundle, +and includes a fallback to the Mozilla CA bundle. + +Originally written as part of [composer/composer](https://github.com/composer/composer), +now extracted and made available as a stand-alone library. + + +Installation +------------ + +Install the latest version with: + +```bash +$ composer require composer/ca-bundle +``` + + +Requirements +------------ + +* PHP 5.3.2 is required but using the latest version of PHP is highly recommended. + + +Basic usage +----------- + +### `Composer\CaBundle\CaBundle` + +- `CaBundle::getSystemCaRootBundlePath()`: Returns the system CA bundle path, or a path to the bundled one as fallback +- `CaBundle::getBundledCaBundlePath()`: Returns the path to the bundled CA file +- `CaBundle::validateCaFile($filename)`: Validates a CA file using openssl_x509_parse only if it is safe to use +- `CaBundle::isOpensslParseSafe()`: Test if it is safe to use the PHP function openssl_x509_parse() +- `CaBundle::reset()`: Resets the static caches + + +#### To use with curl + +```php +$curl = curl_init("https://example.org/"); + +$caPathOrFile = \Composer\CaBundle\CaBundle::getSystemCaRootBundlePath(); +if (is_dir($caPathOrFile)) { + curl_setopt($curl, CURLOPT_CAPATH, $caPathOrFile); +} else { + curl_setopt($curl, CURLOPT_CAINFO, $caPathOrFile); +} + +$result = curl_exec($curl); +``` + +#### To use with php streams + +```php +$opts = array( + 'http' => array( + 'method' => "GET" + ) +); + +$caPathOrFile = \Composer\CaBundle\CaBundle::getSystemCaRootBundlePath(); +if (is_dir($caPathOrFile)) { + $opts['ssl']['capath'] = $caPathOrFile; +} else { + $opts['ssl']['cafile'] = $caPathOrFile; +} + +$context = stream_context_create($opts); +$result = file_get_contents('https://example.com', false, $context); +``` + +#### To use with Guzzle + +```php +$client = new \GuzzleHttp\Client([ + \GuzzleHttp\RequestOptions::VERIFY => \Composer\CaBundle\CaBundle::getSystemCaRootBundlePath() +]); +``` + +License +------- + +composer/ca-bundle is licensed under the MIT License, see the LICENSE file for details. diff --git a/system/vendor/composer/ca-bundle/composer.json b/system/vendor/composer/ca-bundle/composer.json new file mode 100644 index 0000000..a998783 --- /dev/null +++ b/system/vendor/composer/ca-bundle/composer.json @@ -0,0 +1,54 @@ +{ + "name": "composer/ca-bundle", + "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.", + "type": "library", + "license": "MIT", + "keywords": [ + "cabundle", + "cacert", + "certificate", + "ssl", + "tls" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/ca-bundle/issues" + }, + "require": { + "ext-openssl": "*", + "ext-pcre": "*", + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "symfony/phpunit-bridge": "^4.2 || ^5", + "phpstan/phpstan": "^1.10", + "psr/log": "^1.0", + "symfony/process": "^4.0 || ^5.0 || ^6.0 || ^7.0" + }, + "autoload": { + "psr-4": { + "Composer\\CaBundle\\": "src" + } + }, + "autoload-dev": { + "psr-4": { + "Composer\\CaBundle\\": "tests" + } + }, + "extra": { + "branch-alias": { + "dev-main": "1.x-dev" + } + }, + "scripts": { + "test": "vendor/bin/simple-phpunit", + "phpstan": "vendor/bin/phpstan analyse" + } +} diff --git a/system/vendor/composer/ca-bundle/res/cacert.pem b/system/vendor/composer/ca-bundle/res/cacert.pem new file mode 100644 index 0000000..f78a610 --- /dev/null +++ b/system/vendor/composer/ca-bundle/res/cacert.pem @@ -0,0 +1,3581 @@ +## +## Bundle of CA Root Certificates +## +## Certificate data from Mozilla as of: Mon Mar 11 15:25:27 2024 GMT +## +## This is a bundle of X.509 certificates of public Certificate Authorities +## (CA). These were automatically extracted from Mozilla's root certificates +## file (certdata.txt). This file can be found in the mozilla source tree: +## https://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt +## +## It contains the certificates in PEM format and therefore +## can be directly used with curl / libcurl / php_curl, or with +## an Apache+mod_ssl webserver for SSL client authentication. +## Just configure this file as the SSLCACertificateFile. +## +## Conversion done with mk-ca-bundle.pl version 1.29. +## SHA256: 4d96bd539f4719e9ace493757afbe4a23ee8579de1c97fbebc50bba3c12e8c1e +## + + +GlobalSign Root CA +================== +-----BEGIN CERTIFICATE----- +MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx +GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds +b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV +BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD +VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa +DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc +THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb +Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP +c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX +gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF +AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj +Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG +j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH +hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC +X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A== +-----END CERTIFICATE----- + +Entrust.net Premium 2048 Secure Server CA +========================================= +-----BEGIN CERTIFICATE----- +MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u +ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp +bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV +BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx +NzUwNTFaFw0yOTA3MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3 +d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl +MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u +ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL +Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr +hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW +nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi +VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo0IwQDAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJ +KoZIhvcNAQEFBQADggEBADubj1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPy +T/4xmf3IDExoU8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf +zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5bu/8j72gZyxKT +J1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+bYQLCIt+jerXmCHG8+c8eS9e +nNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/ErfF6adulZkMV8gzURZVE= +-----END CERTIFICATE----- + +Baltimore CyberTrust Root +========================= +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE +ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li +ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC +SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs +dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME +uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB +UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C +G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9 +XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr +l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI +VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB +BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh +cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5 +hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa +Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H +RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp +-----END CERTIFICATE----- + +Entrust Root Certification Authority +==================================== +-----BEGIN CERTIFICATE----- +MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV +BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw +b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG +A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0 +MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu +MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu +Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v +dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz +A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww +Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68 +j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN +rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1 +MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH +hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA +A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM +Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa +v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS +W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0 +tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8 +-----END CERTIFICATE----- + +Comodo AAA Services root +======================== +-----BEGIN CERTIFICATE----- +MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS +R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg +TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw +MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl +c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV +BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG +C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs +i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW +Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH +Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK +Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f +BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl +cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz +LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm +7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz +Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z +8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C +12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg== +-----END CERTIFICATE----- + +QuoVadis Root CA 2 +================== +-----BEGIN CERTIFICATE----- +MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT +EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMjAeFw0wNjExMjQx +ODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM +aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQCaGMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6 +XJxgFyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55JWpzmM+Yk +lvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bBrrcCaoF6qUWD4gXmuVbB +lDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp+ARz8un+XJiM9XOva7R+zdRcAitMOeGy +lZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt +66/3FsvbzSUr5R/7mp/iUcw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1Jdxn +wQ5hYIizPtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og/zOh +D7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UHoycR7hYQe7xFSkyy +BNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuIyV77zGHcizN300QyNQliBJIWENie +J0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1Ud +DgQWBBQahGK8SEwzJQTU7tD2A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGU +a6FJpEcwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT +ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2fBluornFdLwUv +Z+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzng/iN/Ae42l9NLmeyhP3ZRPx3 +UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2BlfF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodm +VjB3pjd4M1IQWK4/YY7yarHvGH5KWWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK ++JDSV6IZUaUtl0HaB0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrW +IozchLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPRTUIZ3Ph1 +WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWDmbA4CD/pXvk1B+TJYm5X +f6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0ZohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II +4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8 +VCLAAVBpQ570su9t+Oza8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u +-----END CERTIFICATE----- + +QuoVadis Root CA 3 +================== +-----BEGIN CERTIFICATE----- +MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT +EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx +OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM +aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg +DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij +KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K +DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv +BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp +p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8 +nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX +MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM +Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz +uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT +BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj +YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0 +aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB +BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD +VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4 +ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE +AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV +qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s +hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z +POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2 +Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp +8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC +bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu +g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p +vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr +qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto= +-----END CERTIFICATE----- + +XRamp Global CA Root +==================== +-----BEGIN CERTIFICATE----- +MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE +BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj +dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx +HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg +U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp +dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu +IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx +foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE +zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs +AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry +xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap +oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC +AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc +/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt +qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n +nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz +8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw= +-----END CERTIFICATE----- + +Go Daddy Class 2 CA +=================== +-----BEGIN CERTIFICATE----- +MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY +VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG +A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g +RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD +ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv +2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32 +qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j +YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY +vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O +BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o +atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu +MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG +A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim +PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt +I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ +HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI +Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b +vZ8= +-----END CERTIFICATE----- + +Starfield Class 2 CA +==================== +-----BEGIN CERTIFICATE----- +MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc +U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo +MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG +A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG +SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY +bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ +JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm +epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN +F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF +MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f +hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo +bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g +QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs +afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM +PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl +xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD +KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3 +QBFGmh95DmK/D5fs4C8fF5Q= +-----END CERTIFICATE----- + +DigiCert Assured ID Root CA +=========================== +-----BEGIN CERTIFICATE----- +MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw +IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx +MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL +ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO +9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy +UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW +/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy +oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf +GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF +66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq +hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc +EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn +SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i +8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe ++o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g== +-----END CERTIFICATE----- + +DigiCert Global Root CA +======================= +-----BEGIN CERTIFICATE----- +MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw +HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw +MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 +dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn +TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5 +BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H +4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y +7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB +o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm +8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF +BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr +EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt +tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886 +UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk +CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= +-----END CERTIFICATE----- + +DigiCert High Assurance EV Root CA +================================== +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw +KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw +MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ +MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu +Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t +Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS +OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3 +MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ +NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe +h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB +Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY +JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ +V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp +myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK +mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe +vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K +-----END CERTIFICATE----- + +SwissSign Gold CA - G2 +====================== +-----BEGIN CERTIFICATE----- +MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkNIMRUw +EwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2lnbiBHb2xkIENBIC0gRzIwHhcN +MDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBFMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dp +c3NTaWduIEFHMR8wHQYDVQQDExZTd2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0B +AQEFAAOCAg8AMIICCgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUq +t2/876LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+bbqBHH5C +jCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c6bM8K8vzARO/Ws/BtQpg +vd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqEemA8atufK+ze3gE/bk3lUIbLtK/tREDF +ylqM2tIrfKjuvqblCqoOpd8FUrdVxyJdMmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvR +AiTysybUa9oEVeXBCsdtMDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuend +jIj3o02yMszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69yFGkO +peUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPiaG59je883WX0XaxR +7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxMgI93e2CaHt+28kgeDrpOVG2Y4OGi +GqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw +AwEB/zAdBgNVHQ4EFgQUWyV7lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64 +OfPAeGZe6Drn8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov +L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe645R88a7A3hfm +5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczOUYrHUDFu4Up+GC9pWbY9ZIEr +44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOf +Mke6UiI0HTJ6CVanfCU2qT1L2sCCbwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6m +Gu6uLftIdxf+u+yvGPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxp +mo/a77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCChdiDyyJk +vC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid392qgQmwLOM7XdVAyksLf +KzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEppLd6leNcG2mqeSz53OiATIgHQv2ieY2Br +NU0LbbqhPcCT4H8js1WtciVORvnSFu+wZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6Lqj +viOvrv1vA+ACOzB2+httQc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ +-----END CERTIFICATE----- + +SwissSign Silver CA - G2 +======================== +-----BEGIN CERTIFICATE----- +MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCQ0gxFTAT +BgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMB4X +DTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0NlowRzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3 +aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG +9w0BAQEFAAOCAg8AMIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644 +N0MvFz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7brYT7QbNHm ++/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieFnbAVlDLaYQ1HTWBCrpJH +6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH6ATK72oxh9TAtvmUcXtnZLi2kUpCe2Uu +MGoM9ZDulebyzYLs2aFK7PayS+VFheZteJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5h +qAaEuSh6XzjZG6k4sIN/c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5 +FZGkECwJMoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRHHTBs +ROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTfjNFusB3hB48IHpmc +celM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb65i/4z3GcRm25xBWNOHkDRUjvxF3X +CO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUF6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRB +tjpbO8tFnb0cwpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0 +cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBAHPGgeAn0i0P +4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShpWJHckRE1qTodvBqlYJ7YH39F +kWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L +3XWgwF15kIwb4FDm3jH+mHtwX6WQ2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx +/uNncqCxv1yL5PqZIseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFa +DGi8aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2Xem1ZqSqP +e97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQRdAtq/gsD/KNVV4n+Ssuu +WxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJ +DIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ub +DgEj8Z+7fNzcbBGXJbLytGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u +-----END CERTIFICATE----- + +SecureTrust CA +============== +-----BEGIN CERTIFICATE----- +MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG +EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy +dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe +BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC +ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX +OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t +DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH +GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b +01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH +ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj +aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ +KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu +SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf +mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ +nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR +3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE= +-----END CERTIFICATE----- + +Secure Global CA +================ +-----BEGIN CERTIFICATE----- +MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG +EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH +bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg +MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg +Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx +YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ +bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g +8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV +HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi +0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn +oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA +MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+ +OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn +CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5 +3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc +f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW +-----END CERTIFICATE----- + +COMODO Certification Authority +============================== +-----BEGIN CERTIFICATE----- +MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE +BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG +A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1 +dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb +MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD +T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH ++7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww +xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV +4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA +1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI +rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k +b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC +AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP +OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/ +RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc +IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN ++8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ== +-----END CERTIFICATE----- + +COMODO ECC Certification Authority +================================== +-----BEGIN CERTIFICATE----- +MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC +R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE +ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix +GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR +Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo +b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X +4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni +wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG +FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA +U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY= +-----END CERTIFICATE----- + +Certigna +======== +-----BEGIN CERTIFICATE----- +MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw +EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3 +MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI +Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q +XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH +GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p +ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg +DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf +Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ +tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ +BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J +SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA +hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+ +ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu +PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY +1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw +WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg== +-----END CERTIFICATE----- + +ePKI Root Certification Authority +================================= +-----BEGIN CERTIFICATE----- +MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBeMQswCQYDVQQG +EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xKjAoBgNVBAsMIWVQS0kg +Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMx +MjdaMF4xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEq +MCgGA1UECwwhZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0B +AQEFAAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAHSyZbCUNs +IZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAhijHyl3SJCRImHJ7K2RKi +lTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3XDZoTM1PRYfl61dd4s5oz9wCGzh1NlDiv +qOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX +12ruOzjjK9SXDrkb5wdJfzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0O +WQqraffAsgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uUWH1+ +ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLSnT0IFaUQAS2zMnao +lQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pHdmX2Os+PYhcZewoozRrSgx4hxyy/ +vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJipNiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXi +Zo1jDiVN1Rmy5nk3pyKdVDECAwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/Qkqi +MAwGA1UdEwQFMAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH +ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGBuvl2ICO1J2B0 +1GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6YlPwZpVnPDimZI+ymBV3QGypzq +KOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkPJXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdV +xrsStZf0X4OFunHB2WyBEXYKCrC/gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEP +NXubrjlpC2JgQCA2j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+r +GNm65ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUBo2M3IUxE +xJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS/jQ6fbjpKdx2qcgw+BRx +gMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2zGp1iro2C6pSe3VkQw63d4k3jMdXH7Ojy +sP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTEW9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmOD +BCEIZ43ygknQW/2xzQ+DhNQ+IIX3Sj0rnP0qCglN6oH4EZw= +-----END CERTIFICATE----- + +certSIGN ROOT CA +================ +-----BEGIN CERTIFICATE----- +MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREwDwYD +VQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQxNzIwMDRa +Fw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UE +CxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7I +JUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHH +rfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5dRdY4zTW2 +ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQOA7+j0xbm0bqQfWwCHTD +0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwvJoIQ4uNllAoEwF73XVv4EOLQunpL+943 +AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B +Af8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IB +AQA+0hyJLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8 +SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0 +x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIlt +vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz +TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD +-----END CERTIFICATE----- + +NetLock Arany (Class Gold) Főtanúsítvány +======================================== +-----BEGIN CERTIFICATE----- +MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G +A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610 +dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBB +cmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgx +MjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxO +ZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlmaWNhdGlv +biBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbFkXRhbsO6 +c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu +0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw +/HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAk +H3B5r9s5VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdw +fzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1 +neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIB +BjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwW +qZw8UQCgwBEIBaeZ5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTta +YtOUZcTh5m2C+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC +bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5Kfna +NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu +dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E= +-----END CERTIFICATE----- + +SecureSign RootCA11 +=================== +-----BEGIN CERTIFICATE----- +MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi +SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS +b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw +KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1 +cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL +TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO +wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq +g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP +O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA +bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX +t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh +OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r +bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ +Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01 +y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061 +lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I= +-----END CERTIFICATE----- + +Microsec e-Szigno Root CA 2009 +============================== +-----BEGIN CERTIFICATE----- +MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJIVTER +MA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jv +c2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o +dTAeFw0wOTA2MTYxMTMwMThaFw0yOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UE +BwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUt +U3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvPkd6mJviZpWNwrZuuyjNA +fW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tccbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG +0IMZfcChEhyVbUr02MelTTMuhTlAdX4UfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKA +pxn1ntxVUwOXewdI/5n7N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm +1HxdrtbCxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1+rUC +AwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTLD8bf +QkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAbBgNVHREE +FDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqGSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0o +lZMEyL/azXm4Q5DwpL7v8u8hmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfX +I/OMn74dseGkddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775 +tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c2Pm2G2JwCz02 +yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi +LXpUq3DDfSJlgnCW +-----END CERTIFICATE----- + +GlobalSign Root CA - R3 +======================= +-----BEGIN CERTIFICATE----- +MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xv +YmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh +bFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT +aWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln +bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWt +iHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsTgHeMCOFJ +0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmmKPZpO/bLyCiR5Z2KYVc3 +rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zdQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjl +OCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2 +xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE +FI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7 +lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8 +EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1E +bddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18 +YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r +kpeDMdmztcpHWD9f +-----END CERTIFICATE----- + +Izenpe.com +========== +-----BEGIN CERTIFICATE----- +MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4MQswCQYDVQQG +EwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wHhcNMDcxMjEz +MTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMu +QS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ +03rKDx6sp4boFmVqscIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAK +ClaOxdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6HLmYRY2xU ++zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFXuaOKmMPsOzTFlUFpfnXC +PCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQDyCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxT +OTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbK +F7jJeodWLBoBHmy+E60QrLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK +0GqfvEyNBjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8Lhij+ +0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIBQFqNeb+Lz0vPqhbB +leStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+HMh3/1uaD7euBUbl8agW7EekFwID +AQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2luZm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+ +SVpFTlBFIFMuQS4gLSBDSUYgQTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBG +NjIgUzgxQzBBBgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx +MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O +BBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUAA4ICAQB4pgwWSp9MiDrAyw6l +Fn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWblaQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbga +kEyrkgPH7UIBzg/YsfqikuFgba56awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8q +hT/AQKM6WfxZSzwoJNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Cs +g1lwLDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCTVyvehQP5 +aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGkLhObNA5me0mrZJfQRsN5 +nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJbUjWumDqtujWTI6cfSN01RpiyEGjkpTHC +ClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZo +Q0iy2+tzJOeRf1SktoA+naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1Z +WrOZyGlsQyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw== +-----END CERTIFICATE----- + +Go Daddy Root Certificate Authority - G2 +======================================== +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT +B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMu +MTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5 +MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6 +b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8G +A1UEAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKDE6bFIEMBO4Tx5oVJnyfq +9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD ++qK+ihVqf94Lw7YZFAXK6sOoBJQ7RnwyDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutd +fMh8+7ArU6SSYmlRJQVhGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMl +NAJWJwGRtDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEAAaNC +MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9 +BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmXWWcDYfF+OwYxdS2hII5PZYe096ac +vNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r +5N9ss4UXnT3ZJE95kTXWXwTrgIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYV +N8Gb5DKj7Tjo2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO +LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI4uJEvlz36hz1 +-----END CERTIFICATE----- + +Starfield Root Certificate Authority - G2 +========================================= +-----BEGIN CERTIFICATE----- +MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT +B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s +b2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0 +eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAw +DgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQg +VGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBB +dXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3twQP89o/8ArFv +W59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMgnLRJdzIpVv257IzdIvpy3Cdhl+72WoTs +bhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNk +N3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7Nf +ZTD4p7dNdloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbU +JtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfol +TwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx +4mcujJUDJi5DnUox9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUw +F5okxBDgBPfg8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K +pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZ +c2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0 +-----END CERTIFICATE----- + +Starfield Services Root Certificate Authority - G2 +================================================== +-----BEGIN CERTIFICATE----- +MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT +B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s +b2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRl +IEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNV +BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxT +dGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2VydmljZXMg +Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20pOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2 +h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm28xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4Pa +hHQUw2eeBGg6345AWh1KTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLP +LJGmpufehRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk6mFB +rMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMA0GCSqG +SIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMIbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPP +E95Dz+I0swSdHynVv/heyNXBve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTy +xQGjhdByPq1zqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd +iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn0q23KXB56jza +YyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCNsSi6 +-----END CERTIFICATE----- + +AffirmTrust Commercial +====================== +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMxFDAS +BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMB4XDTEw +MDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly +bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6Eqdb +DuKPHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yrba0F8PrV +C8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPALMeIrJmqbTFeurCA+ukV6 +BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1yHp52UKqK39c/s4mT6NmgTWvRLpUHhww +MmWd5jyTXlBOeuM61G7MGvv50jeuJCqrVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNV +HQ4EFgQUnZPGU4teyq8/nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYGXUPG +hi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNjvbz4YYCanrHOQnDi +qX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivtZ8SOyUOyXGsViQK8YvxO8rUzqrJv +0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9gN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0kh +sUlHRUe072o0EclNmsxZt9YCnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8= +-----END CERTIFICATE----- + +AffirmTrust Networking +====================== +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMxFDAS +BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMB4XDTEw +MDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly +bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SE +Hi3yYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbuakCNrmreI +dIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRLQESxG9fhwoXA3hA/Pe24 +/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gb +h+0t+nvujArjqWaJGctB+d1ENmHP4ndGyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNV +HQ4EFgQUBx/S55zawm6iQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfOtDIu +UFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzuQY0x2+c06lkh1QF6 +12S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZLgo/bNjR9eUJtGxUAArgFU2HdW23 +WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4uolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9 +/ZFvgrG+CJPbFEfxojfHRZ48x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s= +-----END CERTIFICATE----- + +AffirmTrust Premium +=================== +-----BEGIN CERTIFICATE----- +MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UEBhMCVVMxFDAS +BgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMB4XDTEwMDEy +OTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRy +dXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A +MIICCgKCAgEAxBLfqV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtn +BKAQJG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ+jjeRFcV +5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrSs8PhaJyJ+HoAVt70VZVs ++7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmd +GPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d770O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5R +p9EixAqnOEhss/n/fauGV+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NI +S+LI+H+SqHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S5u04 +6uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4IaC1nEWTJ3s7xgaVY5 +/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TXOwF0lkLgAOIua+rF7nKsu7/+6qqo ++Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYEFJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB +/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByv +MiPIs0laUZx2KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg +Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B8OWycvpEgjNC +6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQMKSOyARiqcTtNd56l+0OOF6S +L5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK ++4w1IX2COPKpVJEZNZOUbWo6xbLQu4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmV +BtWVyuEklut89pMFu+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFg +IxpHYoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8GKa1qF60 +g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaORtGdFNrHF+QFlozEJLUb +zxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6eKeC2uAloGRwYQw== +-----END CERTIFICATE----- + +AffirmTrust Premium ECC +======================= +-----BEGIN CERTIFICATE----- +MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDASBgNV +BAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQcmVtaXVtIEVDQzAeFw0xMDAx +MjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1U +cnVzdDEgMB4GA1UEAwwXQWZmaXJtVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAAQNMF4bFZ0D0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQ +N8O9ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0GA1UdDgQW +BBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAK +BggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/VsaobgxCd05DhT1wV/GzTjxi+zygk8N53X +57hG8f2h4nECMEJZh0PUUd+60wkyWs6Iflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKM +eQ== +-----END CERTIFICATE----- + +Certum Trusted Network CA +========================= +-----BEGIN CERTIFICATE----- +MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYDVQQK +ExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIy +MTIwNzM3WhcNMjkxMjMxMTIwNzM3WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBU +ZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rHUV+rpDKmYYe2bg+G0jAC +l/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LMTXPb865Px1bVWqeWifrzq2jUI4ZZJ88J +J7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVUBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4 +fOQtf/WsX+sWn7Et0brMkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0 +cvW0QM8xAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNVHRMB +Af8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYw +DQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15ysHhE49wcrwn9I0j6vSrEuVUEtRCj +jSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfLI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1 +mS1FhIrlQgnXdAIv94nYmem8J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5aj +Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI +03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw= +-----END CERTIFICATE----- + +TWCA Root Certification Authority +================================= +-----BEGIN CERTIFICATE----- +MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJ +VEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMzWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQG +EwJUVzESMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NB +IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFEAcK0HMMx +QhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HHK3XLfJ+utdGdIzdjp9xC +oi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeXRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP +4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/zrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1r +y+UPizgN7gr8/g+YnzAx3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB +BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkqhkiG +9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeCMErJk/9q56YAf4lC +mtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdlsXebQ79NqZp4VKIV66IIArB6nCWlW +QtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62Dlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVY +T0bf+215WfKEIlKuD8z7fDvnaspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocny +Yh0igzyXxfkZYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw== +-----END CERTIFICATE----- + +Security Communication RootCA2 +============================== +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc +U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNh +dGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMC +SlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3Vy +aXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +ANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGrzbl+dp++ ++T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVMVAX3NuRFg3sUZdbcDE3R +3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQhNBqyjoGADdH5H5XTz+L62e4iKrFvlNV +spHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1K +EOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8 +QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB +CwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEj +u/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk +3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6q +tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29 +mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03 +-----END CERTIFICATE----- + +Actalis Authentication Root CA +============================== +-----BEGIN CERTIFICATE----- +MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UEBhMCSVQxDjAM +BgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UE +AwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDky +MjExMjIwMlowazELMAkGA1UEBhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlz +IFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290 +IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNvUTufClrJ +wkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX4ay8IMKx4INRimlNAJZa +by/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9KK3giq0itFZljoZUj5NDKd45RnijMCO6 +zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1f +YVEiVRvjRuPjPdA1YprbrxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2 +oxgkg4YQ51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2Fbe8l +EfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxeKF+w6D9Fz8+vm2/7 +hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4Fv6MGn8i1zeQf1xcGDXqVdFUNaBr8 +EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbnfpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5 +jF66CyCU3nuDuP/jVo23Eek7jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLY +iDrIn3hm7YnzezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt +ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQALe3KHwGCmSUyI +WOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70jsNjLiNmsGe+b7bAEzlgqqI0 +JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDzWochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKx +K3JCaKygvU5a2hi/a5iB0P2avl4VSM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+ +Xlff1ANATIGk0k9jpwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC +4yyXX04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+OkfcvHlXHo +2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7RK4X9p2jIugErsWx0Hbhz +lefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btUZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXem +OR/qnuOf0GZvBeyqdn6/axag67XH/JJULysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9 +vwGYT7JZVEc+NHt4bVaTLnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg== +-----END CERTIFICATE----- + +Buypass Class 2 Root CA +======================= +-----BEGIN CERTIFICATE----- +MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU +QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMiBSb290IENBMB4X +DTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1owTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1 +eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIw +DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1 +g1Lr6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPVL4O2fuPn +9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC911K2GScuVr1QGbNgGE41b +/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHxMlAQTn/0hpPshNOOvEu/XAFOBz3cFIqU +CqTqc/sLUegTBxj6DvEr0VQVfTzh97QZQmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeff +awrbD02TTqigzXsu8lkBarcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgI +zRFo1clrUs3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLiFRhn +Bkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRSP/TizPJhk9H9Z2vX +Uq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN9SG9dKpN6nIDSdvHXx1iY8f93ZHs +M+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxPAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFMmAd+BikoL1RpzzuvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF +AAOCAgEAU18h9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s +A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3tOluwlN5E40EI +osHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo+fsicdl9sz1Gv7SEr5AcD48S +aq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYd +DnkM/crqJIByw5c/8nerQyIKx+u2DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWD +LfJ6v9r9jv6ly0UsH8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0 +oyLQI+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK75t98biGC +wWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h3PFaTWwyI0PurKju7koS +CTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPzY11aWOIv4x3kqdbQCtCev9eBCfHJxyYN +rJgWVqA= +-----END CERTIFICATE----- + +Buypass Class 3 Root CA +======================= +-----BEGIN CERTIFICATE----- +MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU +QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMyBSb290IENBMB4X +DTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFowTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1 +eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIw +DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRH +sJ8YZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3EN3coTRiR +5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9tznDDgFHmV0ST9tD+leh +7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX0DJq1l1sDPGzbjniazEuOQAnFN44wOwZ +ZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH +2xc519woe2v1n/MuwU8XKhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV +/afmiSTYzIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvSO1UQ +RwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D34xFMFbG02SrZvPA +Xpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgPK9Dx2hzLabjKSWJtyNBjYt1gD1iq +j6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFEe4zf/lb+74suwvTg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF +AAOCAgEAACAjQTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV +cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXSIGrs/CIBKM+G +uIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2HJLw5QY33KbmkJs4j1xrG0aG +Q0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsaO5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8 +ZORK15FTAaggiG6cX0S5y2CBNOxv033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2 +KSb12tjE8nVhz36udmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz +6MkEkbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg413OEMXbug +UZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvDu79leNKGef9JOxqDDPDe +eOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq4/g7u9xN12TyUb7mqqta6THuBrxzvxNi +Cp/HuZc= +-----END CERTIFICATE----- + +T-TeleSec GlobalRoot Class 3 +============================ +-----BEGIN CERTIFICATE----- +MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM +IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU +cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgx +MDAxMTAyOTU2WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz +dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD +ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN8ELg63iIVl6bmlQdTQyK +9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/RLyTPWGrTs0NvvAgJ1gORH8EGoel15YU +NpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZF +iP0Zf3WHHx+xGwpzJFu5ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W +0eDrXltMEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGjQjBA +MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1A/d2O2GCahKqGFPr +AyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOyWL6ukK2YJ5f+AbGwUgC4TeQbIXQb +fsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzT +ucpH9sry9uetuUg/vBa3wW306gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7h +P0HHRwA11fXT91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml +e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw== +-----END CERTIFICATE----- + +D-TRUST Root Class 3 CA 2 2009 +============================== +-----BEGIN CERTIFICATE----- +MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQK +DAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTAe +Fw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NThaME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxE +LVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOAD +ER03UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42tSHKXzlA +BF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9RySPocq60vFYJfxLLHLGv +KZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsMlFqVlNpQmvH/pStmMaTJOKDfHR+4CS7z +p+hnUquVH+BGPtikw8paxTGA6Eian5Rp/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUC +AwEAAaOCARowggEWMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ +4PGEMA4GA1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVjdG9y +eS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUyMENBJTIwMiUyMDIw +MDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwQ6BBoD+G +PWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAw +OS5jcmwwDQYJKoZIhvcNAQELBQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm +2H6NMLVwMeniacfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0 +o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4KzCUqNQT4YJEV +dT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8PIWmawomDeCTmGCufsYkl4ph +X5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3YJohw1+qRzT65ysCQblrGXnRl11z+o+I= +-----END CERTIFICATE----- + +D-TRUST Root Class 3 CA 2 EV 2009 +================================= +-----BEGIN CERTIFICATE----- +MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK +DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw +OTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUwNDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK +DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw +OTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfS +egpnljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM03TP1YtHh +zRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6ZqQTMFexgaDbtCHu39b+T +7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lRp75mpoo6Kr3HGrHhFPC+Oh25z1uxav60 +sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure35 +11H3a6UCAwEAAaOCASQwggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyv +cop9NteaHNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFwOi8v +ZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xhc3MlMjAzJTIwQ0El +MjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1ERT9jZXJ0aWZpY2F0ZXJldm9jYXRp +b25saXN0MEagRKBChkBodHRwOi8vd3d3LmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xh +c3NfM19jYV8yX2V2XzIwMDkuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+ +PPoeUSbrh/Yp3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05 +nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNFCSuGdXzfX2lX +ANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7naxpeG0ILD5EJt/rDiZE4OJudA +NCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqXKVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVv +w9y4AyHqnxbxLFS1 +-----END CERTIFICATE----- + +CA Disig Root R2 +================ +-----BEGIN CERTIFICATE----- +MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNVBAYTAlNLMRMw +EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp +ZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQyMDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sx +EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp +c2lnIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbC +w3OeNcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNHPWSb6Wia +xswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3Ix2ymrdMxp7zo5eFm1tL7 +A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbeQTg06ov80egEFGEtQX6sx3dOy1FU+16S +GBsEWmjGycT6txOgmLcRK7fWV8x8nhfRyyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqV +g8NTEQxzHQuyRpDRQjrOQG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa +5Beny912H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJQfYE +koopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUDi/ZnWejBBhG93c+A +Ak9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORsnLMOPReisjQS1n6yqEm70XooQL6i +Fh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNV +HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5u +Qu0wDQYJKoZIhvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM +tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqfGopTpti72TVV +sRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkblvdhuDvEK7Z4bLQjb/D907Je +dR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka+elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W8 +1k/BfDxujRNt+3vrMNDcTa/F1balTFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjx +mHHEt38OFdAlab0inSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01 +utI3gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18DrG5gPcFw0 +sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3OszMOl6W8KjptlwlCFtaOg +UxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8xL4ysEr3vQCj8KWefshNPZiTEUxnpHikV +7+ZtsH8tZ/3zbBt1RqPlShfppNcL +-----END CERTIFICATE----- + +ACCVRAIZ1 +========= +-----BEGIN CERTIFICATE----- +MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UEAwwJQUNDVlJB +SVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQswCQYDVQQGEwJFUzAeFw0xMTA1 +MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQBgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwH +UEtJQUNDVjENMAsGA1UECgwEQUNDVjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQCbqau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gM +jmoYHtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWoG2ioPej0 +RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpAlHPrzg5XPAOBOp0KoVdD +aaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhrIA8wKFSVf+DuzgpmndFALW4ir50awQUZ +0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDG +WuzndN9wrqODJerWx5eHk6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs7 +8yM2x/474KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMOm3WR +5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpacXpkatcnYGMN285J +9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPluUsXQA+xtrn13k/c4LOsOxFwYIRK +Q26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYIKwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRw +Oi8vd3d3LmFjY3YuZXMvZmlsZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEu +Y3J0MB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2 +VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeTVfZW6oHlNsyM +Hj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIGCCsGAQUFBwICMIIBFB6CARAA +QQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUAcgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBh +AO0AegAgAGQAZQAgAGwAYQAgAEEAQwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUA +YwBuAG8AbABvAGcA7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBj +AHQAcgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAAQwBQAFMA +IABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUAczAwBggrBgEFBQcCARYk +aHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2MuaHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0 +dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRtaW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2 +MV9kZXIuY3JsMA4GA1UdDwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZI +hvcNAQEFBQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdpD70E +R9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gUJyCpZET/LtZ1qmxN +YEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+mAM/EKXMRNt6GGT6d7hmKG9Ww7Y49 +nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepDvV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJ +TS+xJlsndQAJxGJ3KQhfnlmstn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3 +sCPdK6jT2iWH7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h +I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szAh1xA2syVP1Xg +Nce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xFd3+YJ5oyXSrjhO7FmGYvliAd +3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2HpPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3p +EfbRD0tVNEYqi4Y7 +-----END CERTIFICATE----- + +TWCA Global Root CA +=================== +-----BEGIN CERTIFICATE----- +MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcxEjAQBgNVBAoT +CVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMTVFdDQSBHbG9iYWwgUm9vdCBD +QTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQK +EwlUQUlXQU4tQ0ExEDAOBgNVBAsTB1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3Qg +Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2C +nJfF10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz0ALfUPZV +r2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfChMBwqoJimFb3u/Rk28OKR +Q4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbHzIh1HrtsBv+baz4X7GGqcXzGHaL3SekV +tTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1W +KKD+u4ZqyPpcC1jcxkt2yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99 +sy2sbZCilaLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYPoA/p +yJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQABDzfuBSO6N+pjWxn +kjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcEqYSjMq+u7msXi7Kx/mzhkIyIqJdI +zshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMC +AQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6g +cFGn90xHNcgL1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn +LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WFH6vPNOw/KP4M +8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNoRI2T9GRwoD2dKAXDOXC4Ynsg +/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlg +lPx4mI88k1HtQJAH32RjJMtOcQWh15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryP +A9gK8kxkRr05YuWW6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3m +i4TWnsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5jwa19hAM8 +EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWzaGHQRiapIVJpLesux+t3 +zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmyKwbQBM0= +-----END CERTIFICATE----- + +TeliaSonera Root CA v1 +====================== +-----BEGIN CERTIFICATE----- +MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAwNzEUMBIGA1UE +CgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJvb3QgQ0EgdjEwHhcNMDcxMDE4 +MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYDVQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwW +VGVsaWFTb25lcmEgUm9vdCBDQSB2MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+ +6yfwIaPzaSZVfp3FVRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA +3GV17CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+XZ75Ljo1k +B1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+/jXh7VB7qTCNGdMJjmhn +Xb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxH +oLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkmdtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3 +F0fUTPHSiXk+TT2YqGHeOh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJ +oWjiUIMusDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4pgd7 +gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fsslESl1MpWtTwEhDc +TwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQarMCpgKIv7NHfirZ1fpoeDVNAgMB +AAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qW +DNXr+nuqF+gTEjANBgkqhkiG9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNm +zqjMDfz1mgbldxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx +0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1TjTQpgcmLNkQfW +pb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBedY2gea+zDTYa4EzAvXUYNR0PV +G6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpc +c41teyWRyu5FrgZLAMzTsVlQ2jqIOylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOT +JsjrDNYmiLbAJM+7vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2 +qReWt88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcnHL/EVlP6 +Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVxSK236thZiNSQvxaz2ems +WWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY= +-----END CERTIFICATE----- + +T-TeleSec GlobalRoot Class 2 +============================ +-----BEGIN CERTIFICATE----- +MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM +IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU +cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgx +MDAxMTA0MDE0WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz +dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD +ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUdAqSzm1nzHoqvNK38DcLZ +SBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiCFoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/F +vudocP05l03Sx5iRUKrERLMjfTlH6VJi1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx970 +2cu+fjOlbpSD8DT6IavqjnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGV +WOHAD3bZwI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGjQjBA +MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/WSA2AHmgoCJrjNXy +YdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhyNsZt+U2e+iKo4YFWz827n+qrkRk4 +r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPACuvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNf +vNoBYimipidx5joifsFvHZVwIEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR +3p1m0IvVVGb6g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN +9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlPBSeOE6Fuwg== +-----END CERTIFICATE----- + +Atos TrustedRoot 2011 +===================== +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UEAwwVQXRvcyBU +cnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0xMTA3MDcxNDU4 +MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMMFUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsG +A1UECgwEQXRvczELMAkGA1UEBhMCREUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCV +hTuXbyo7LjvPpvMpNb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr +54rMVD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+SZFhyBH+ +DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ4J7sVaE3IqKHBAUsR320 +HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0Lcp2AMBYHlT8oDv3FdU9T1nSatCQujgKR +z3bFmx5VdJx4IbHwLfELn8LVlhgf8FQieowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7R +l+lwrrw7GWzbITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZ +bNshMBgGA1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB +CwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8jvZfza1zv7v1Apt+h +k6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kPDpFrdRbhIfzYJsdHt6bPWHJxfrrh +TZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pcmaHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a9 +61qn8FYiqTxlVMYVqL2Gns2Dlmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G +3mB/ufNPRJLvKrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed +-----END CERTIFICATE----- + +QuoVadis Root CA 1 G3 +===================== +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQELBQAwSDELMAkG +A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv +b3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJN +MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEg +RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakE +PBtVwedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWerNrwU8lm +PNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF34168Xfuw6cwI2H44g4hWf6 +Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh4Pw5qlPafX7PGglTvF0FBM+hSo+LdoIN +ofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXpUhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/l +g6AnhF4EwfWQvTA9xO+oabw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV +7qJZjqlc3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/GKubX +9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSthfbZxbGL0eUQMk1f +iyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KOTk0k+17kBL5yG6YnLUlamXrXXAkg +t3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOtzCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZI +hvcNAQELBQADggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC +MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2cDMT/uFPpiN3 +GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUNqXsCHKnQO18LwIE6PWThv6ct +Tr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP ++V04ikkwj+3x6xn0dxoxGE1nVGwvb2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh +3jRJjehZrJ3ydlo28hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fa +wx/kNSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNjZgKAvQU6 +O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhpq1467HxpvMc7hU6eFbm0 +FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFtnh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOV +hMJKzRwuJIczYOXD +-----END CERTIFICATE----- + +QuoVadis Root CA 2 G3 +===================== +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQELBQAwSDELMAkG +A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv +b3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJN +MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIg +RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFh +ZiFfqq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMWn4rjyduY +NM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ymc5GQYaYDFCDy54ejiK2t +oIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+O7q414AB+6XrW7PFXmAqMaCvN+ggOp+o +MiwMzAkd056OXbxMmO7FGmh77FOm6RQ1o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+l +V0POKa2Mq1W/xPtbAd0jIaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZo +L1NesNKqIcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz8eQQ +sSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43ehvNURG3YBZwjgQQvD +6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l7ZizlWNof/k19N+IxWA1ksB8aRxh +lRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALGcC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZI +hvcNAQELBQADggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66 +AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RCroijQ1h5fq7K +pVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0GaW/ZZGYjeVYg3UQt4XAoeo0L9 +x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4nlv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgz +dWqTHBLmYF5vHX/JHyPLhGGfHoJE+V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6X +U/IyAgkwo1jwDQHVcsaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+Nw +mNtddbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNgKCLjsZWD +zYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeMHVOyToV7BjjHLPj4sHKN +JeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4WSr2Rz0ZiC3oheGe7IUIarFsNMkd7Egr +O3jtZsSOeWmD3n+M +-----END CERTIFICATE----- + +QuoVadis Root CA 3 G3 +===================== +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQELBQAwSDELMAkG +A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv +b3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJN +MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMg +RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286 +IxSR/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNuFoM7pmRL +Mon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXRU7Ox7sWTaYI+FrUoRqHe +6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+cra1AdHkrAj80//ogaX3T7mH1urPnMNA3 +I4ZyYUUpSFlob3emLoG+B01vr87ERRORFHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3U +VDmrJqMz6nWB2i3ND0/kA9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f7 +5li59wzweyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634RylsSqi +Md5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBpVzgeAVuNVejH38DM +dyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0QA4XN8f+MFrXBsj6IbGB/kE+V9/Yt +rQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZI +hvcNAQELBQADggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px +KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnIFUBhynLWcKzS +t/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5WvvoxXqA/4Ti2Tk08HS6IT7SdEQ +TXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFgu/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9Du +DcpmvJRPpq3t/O5jrFc/ZSXPsoaP0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGib +Ih6BJpsQBJFxwAYf3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmD +hPbl8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+DhcI00iX +0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HNPlopNLk9hM6xZdRZkZFW +dSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/ywaZWWDYWGWVjUTR939+J399roD1B0y2 +PpxxVJkES/1Y+Zj0 +-----END CERTIFICATE----- + +DigiCert Assured ID Root G2 +=========================== +-----BEGIN CERTIFICATE----- +MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw +IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgw +MTE1MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL +ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIw +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSAn61UQbVH +35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4HteccbiJVMWWXvdMX0h5i89vq +bFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9HpEgjAALAcKxHad3A2m67OeYfcgnDmCXRw +VWmvo2ifv922ebPynXApVfSr/5Vh88lAbx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OP +YLfykqGxvYmJHzDNw6YuYjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+Rn +lTGNAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTO +w0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPIQW5pJ6d1Ee88hjZv +0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I0jJmwYrA8y8678Dj1JGG0VDjA9tz +d29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4GnilmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAW +hsI6yLETcDbYz+70CjTVW0z9B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0M +jomZmWzwPDCvON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo +IhNzbM8m9Yop5w== +-----END CERTIFICATE----- + +DigiCert Assured ID Root G3 +=========================== +-----BEGIN CERTIFICATE----- +MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV +UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYD +VQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1 +MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQ +BgcqhkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJfZn4f5dwb +RXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17QRSAPWXYQ1qAk8C3eNvJs +KTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgF +UaFNN6KDec6NHSrkhDAKBggqhkjOPQQDAwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5Fy +YZ5eEJJZVrmDxxDnOOlYJjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy +1vUhZscv6pZjamVFkpUBtA== +-----END CERTIFICATE----- + +DigiCert Global Root G2 +======================= +-----BEGIN CERTIFICATE----- +MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw +HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUx +MjAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 +dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkq +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI2/Ou8jqJ +kTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx1x7e/dfgy5SDN67sH0NO +3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQq2EGnI/yuum06ZIya7XzV+hdG82MHauV +BJVJ8zUtluNJbd134/tJS7SsVQepj5WztCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyM +UNGPHgm+F6HmIcr9g+UQvIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQAB +o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV5uNu +5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY1Yl9PMWLSn/pvtsr +F9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4NeF22d+mQrvHRAiGfzZ0JFrabA0U +WTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NGFdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBH +QRFXGU7Aj64GxJUTFy8bJZ918rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/ +iyK5S9kJRaTepLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl +MrY= +-----END CERTIFICATE----- + +DigiCert Global Root G3 +======================= +-----BEGIN CERTIFICATE----- +MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQswCQYDVQQGEwJV +UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYD +VQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAw +MDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5k +aWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0C +AQYFK4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FGfp4tn+6O +YwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPOZ9wj/wMco+I+o0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNp +Yim8S8YwCgYIKoZIzj0EAwMDaAAwZQIxAK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y +3maTD/HMsQmP3Wyr+mt/oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34 +VOKa5Vt8sycX +-----END CERTIFICATE----- + +DigiCert Trusted Root G4 +======================== +-----BEGIN CERTIFICATE----- +MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBiMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSEw +HwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1 +MTIwMDAwWjBiMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3yithZwuEp +pz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1Ifxp4VpX6+n6lXFllVcq9o +k3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDVySAdYyktzuxeTsiT+CFhmzTrBcZe7Fsa +vOvJz82sNEBfsXpm7nfISKhmV1efVFiODCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGY +QJB5w3jHtrHEtWoYOAMQjdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6 +MUSaM0C/CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCiEhtm +mnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADMfRyVw4/3IbKyEbe7 +f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QYuKZ3AeEPlAwhHbJUKSWJbOUOUlFH +dL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXKchYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8 +oR7FwI+isX4KJpn15GkvmB0t9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud +DwEB/wQEAwIBhjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD +ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2SV1EY+CtnJYY +ZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd+SeuMIW59mdNOj6PWTkiU0Tr +yF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWcfFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy +7zBZLq7gcfJW5GqXb5JQbZaNaHqasjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iah +ixTXTBmyUEFxPT9NcCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN +5r5N0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie4u1Ki7wb +/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mIr/OSmbaz5mEP0oUA51Aa +5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tK +G48BtieVU+i2iW1bvGjUI+iLUaJW+fCmgKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP +82Z+ +-----END CERTIFICATE----- + +COMODO RSA Certification Authority +================================== +-----BEGIN CERTIFICATE----- +MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCBhTELMAkGA1UE +BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG +A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwHhcNMTAwMTE5MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMC +R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE +ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR6FSS0gpWsawNJN3Fz0Rn +dJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8Xpz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZ +FGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+ +5eNu/Nio5JIk2kNrYrhV/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pG +x8cgoLEfZd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z+pUX +2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7wqP/0uK3pN/u6uPQL +OvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZahSL0896+1DSJMwBGB7FY79tOi4lu3 +sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVICu9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+C +GCe01a60y1Dma/RMhnEw6abfFobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5 +WdYgGq/yapiqcrxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E +FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w +DQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvlwFTPoCWOAvn9sKIN9SCYPBMt +rFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+ +nq6PK7o9mfjYcwlYRm6mnPTXJ9OV2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSg +tZx8jb8uk2IntznaFxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwW +sRqZCuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiKboHGhfKp +pC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmckejkk9u+UJueBPSZI9FoJA +zMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yLS0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHq +ZJx64SIDqZxubw5lT2yHh17zbqD5daWbQOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk52 +7RH89elWsn2/x20Kk4yl0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7I +LaZRfyHBNVOFBkpdn627G190 +-----END CERTIFICATE----- + +USERTrust RSA Certification Authority +===================================== +-----BEGIN CERTIFICATE----- +MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCBiDELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK +ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK +ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCAEmUXNg7D2wiz +0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2j +Y0K2dvKpOyuR+OJv0OwWIJAJPuLodMkYtJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFn +RghRy4YUVD+8M/5+bJz/Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O ++T23LLb2VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT79uq +/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6c0Plfg6lZrEpfDKE +Y1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmTYo61Zs8liM2EuLE/pDkP2QKe6xJM +lXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97lc6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8 +yexDJtC/QV9AqURE9JnnV4eeUB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+ +eLf8ZxXhyVeEHg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd +BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF +MAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPFUp/L+M+ZBn8b2kMVn54CVVeW +FPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KOVWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ +7l8wXEskEVX/JJpuXior7gtNn3/3ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQ +Eg9zKC7F4iRO/Fjs8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM +8WcRiQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYzeSf7dNXGi +FSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZXHlKYC6SQK5MNyosycdi +yA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9c +J2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRBVXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGw +sAvgnEzDHNb842m1R0aBL6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gx +Q+6IHdfGjjxDah2nGN59PRbxYvnKkKj9 +-----END CERTIFICATE----- + +USERTrust ECC Certification Authority +===================================== +-----BEGIN CERTIFICATE----- +MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDELMAkGA1UEBhMC +VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU +aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMC +VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU +aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqfloI+d61SRvU8Za2EurxtW2 +0eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinngo4N+LZfQYcTxmdwlkWOrfzCjtHDix6Ez +nPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0GA1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNV +HQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBB +HU6+4WMBzzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbWRNZu +9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg= +-----END CERTIFICATE----- + +GlobalSign ECC Root CA - R5 +=========================== +-----BEGIN CERTIFICATE----- +MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6 +SFkc8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8kehOvRnkmS +h5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd +BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx +uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7 +yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3 +-----END CERTIFICATE----- + +IdenTrust Commercial Root CA 1 +============================== +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBKMQswCQYDVQQG +EwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBS +b290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQwMTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzES +MBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENB +IDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ld +hNlT3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU+ehcCuz/ +mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gpS0l4PJNgiCL8mdo2yMKi +1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1bVoE/c40yiTcdCMbXTMTEl3EASX2MN0C +XZ/g1Ue9tOsbobtJSdifWwLziuQkkORiT0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl +3ZBWzvurpWCdxJ35UrCLvYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzy +NeVJSQjKVsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZKdHzV +WYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHTc+XvvqDtMwt0viAg +xGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hvl7yTmvmcEpB4eoCHFddydJxVdHix +uuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5NiGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC +AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZI +hvcNAQELBQADggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH +6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwtLRvM7Kqas6pg +ghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93nAbowacYXVKV7cndJZ5t+qnt +ozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3+wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmV +YjzlVYA211QC//G5Xc7UI2/YRYRKW2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUX +feu+h1sXIFRRk0pTAwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/ro +kTLql1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG4iZZRHUe +2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZmUlO+KWA2yUPHGNiiskz +Z2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7R +cGzM7vRX+Bi6hG6H +-----END CERTIFICATE----- + +IdenTrust Public Sector Root CA 1 +================================= +-----BEGIN CERTIFICATE----- +MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBNMQswCQYDVQQG +EwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3Rv +ciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcNMzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJV +UzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBS +b290IENBIDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTy +P4o7ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGyRBb06tD6 +Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlSbdsHyo+1W/CD80/HLaXI +rcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF/YTLNiCBWS2ab21ISGHKTN9T0a9SvESf +qy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoS +mJxZZoY+rfGwyj4GD3vwEUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFn +ol57plzy9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9VGxyh +LrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ2fjXctscvG29ZV/v +iDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsVWaFHVCkugyhfHMKiq3IXAAaOReyL +4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gDW/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8B +Af8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMw +DQYJKoZIhvcNAQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj +t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHVDRDtfULAj+7A +mgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9TaDKQGXSc3z1i9kKlT/YPyNt +GtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8GlwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFt +m6/n6J91eEyrRjuazr8FGF1NFTwWmhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMx +NRF4eKLg6TCMf4DfWN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4 +Mhn5+bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJtshquDDI +ajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhAGaQdp/lLQzfcaFpPz+vC +ZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ +3Wl9af0AVqW3rLatt8o+Ae+c +-----END CERTIFICATE----- + +Entrust Root Certification Authority - G2 +========================================= +-----BEGIN CERTIFICATE----- +MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMCVVMxFjAUBgNV +BAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVy +bXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ug +b25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIw +HhcNMDkwNzA3MTcyNTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoT +DUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMx +OTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25s +eTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP +/vaCeb9zYQYKpSfYs1/TRU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXz +HHfV1IWNcCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hWwcKU +s/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1U1+cPvQXLOZprE4y +TGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0jaWvYkxN4FisZDQSA/i2jZRjJKRx +AgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ6 +0B7vfec7aVHUbI2fkBJmqzANBgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5Z +iXMRrEPR9RP/jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ +Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v1fN2D807iDgi +nWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4RnAuknZoh8/CbCzB428Hch0P+ +vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmHVHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xO +e4pIb4tF9g== +-----END CERTIFICATE----- + +Entrust Root Certification Authority - EC1 +========================================== +-----BEGIN CERTIFICATE----- +MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkGA1UEBhMCVVMx +FjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVn +YWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXpl +ZCB1c2Ugb25seTEzMDEGA1UEAxMqRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +IC0gRUMxMB4XDTEyMTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYw +FAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2Fs +LXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQg +dXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt +IEVDMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHy +AsWfoPZb1YsGGYZPUxBtByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef +9eNi1KlHBz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE +FLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVCR98crlOZF7ZvHH3h +vxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nXhTcGtXsI/esni0qU+eH6p44mCOh8 +kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G +-----END CERTIFICATE----- + +CFCA EV ROOT +============ +-----BEGIN CERTIFICATE----- +MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJDTjEwMC4GA1UE +CgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNB +IEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkxMjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEw +MC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQD +DAxDRkNBIEVWIFJPT1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnV +BU03sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpLTIpTUnrD +7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5/ZOkVIBMUtRSqy5J35DN +uF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp7hZZLDRJGqgG16iI0gNyejLi6mhNbiyW +ZXvKWfry4t3uMCz7zEasxGPrb382KzRzEpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7 +xzbh72fROdOXW3NiGUgthxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9f +py25IGvPa931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqotaK8K +gWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNgTnYGmE69g60dWIol +hdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfVPKPtl8MeNPo4+QgO48BdK4PRVmrJ +tqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hvcWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAf +BgNVHSMEGDAWgBTj/i39KNALtbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB +/wQEAwIBBjAdBgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB +ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObTej/tUxPQ4i9q +ecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdLjOztUmCypAbqTuv0axn96/Ua +4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBSESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sG +E5uPhnEFtC+NiWYzKXZUmhH4J/qyP5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfX +BDrDMlI1Dlb4pd19xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjn +aH9dCi77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN5mydLIhy +PDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe/v5WOaHIz16eGWRGENoX +kbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+ZAAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3C +ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su +-----END CERTIFICATE----- + +OISTE WISeKey Global Root GB CA +=============================== +-----BEGIN CERTIFICATE----- +MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBtMQswCQYDVQQG +EwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNl +ZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAw +MzJaFw0zOTEyMDExNTEwMzFaMG0xCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYD +VQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEds +b2JhbCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3HEokKtaX +scriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGxWuR51jIjK+FTzJlFXHtP +rby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk +9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNku7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4o +Qnc/nSMbsrY9gBQHTC5P99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvg +GUpuuy9rM2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZI +hvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrghcViXfa43FK8+5/ea4n32cZiZBKpD +dHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0 +VQreUGdNZtGn//3ZwLWoo4rOZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEui +HZeeevJuQHHfaPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic +Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM= +-----END CERTIFICATE----- + +SZAFIR ROOT CA2 +=============== +-----BEGIN CERTIFICATE----- +MIIDcjCCAlqgAwIBAgIUPopdB+xV0jLVt+O2XwHrLdzk1uQwDQYJKoZIhvcNAQELBQAwUTELMAkG +A1UEBhMCUEwxKDAmBgNVBAoMH0tyYWpvd2EgSXpiYSBSb3psaWN6ZW5pb3dhIFMuQS4xGDAWBgNV +BAMMD1NaQUZJUiBST09UIENBMjAeFw0xNTEwMTkwNzQzMzBaFw0zNTEwMTkwNzQzMzBaMFExCzAJ +BgNVBAYTAlBMMSgwJgYDVQQKDB9LcmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMRgwFgYD +VQQDDA9TWkFGSVIgUk9PVCBDQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3vD5Q +qEvNQLXOYeeWyrSh2gwisPq1e3YAd4wLz32ohswmUeQgPYUM1ljj5/QqGJ3a0a4m7utT3PSQ1hNK +DJA8w/Ta0o4NkjrcsbH/ON7Dui1fgLkCvUqdGw+0w8LBZwPd3BucPbOw3gAeqDRHu5rr/gsUvTaE +2g0gv/pby6kWIK05YO4vdbbnl5z5Pv1+TW9NL++IDWr63fE9biCloBK0TXC5ztdyO4mTp4CEHCdJ +ckm1/zuVnsHMyAHs6A6KCpbns6aH5db5BSsNl0BwPLqsdVqc1U2dAgrSS5tmS0YHF2Wtn2yIANwi +ieDhZNRnvDF5YTy7ykHNXGoAyDw4jlivAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P +AQH/BAQDAgEGMB0GA1UdDgQWBBQuFqlKGLXLzPVvUPMjX/hd56zwyDANBgkqhkiG9w0BAQsFAAOC +AQEAtXP4A9xZWx126aMqe5Aosk3AM0+qmrHUuOQn/6mWmc5G4G18TKI4pAZw8PRBEew/R40/cof5 +O/2kbytTAOD/OblqBw7rHRz2onKQy4I9EYKL0rufKq8h5mOGnXkZ7/e7DDWQw4rtTw/1zBLZpD67 +oPwglV9PJi8RI4NOdQcPv5vRtB3pEAT+ymCPoky4rc/hkA/NrgrHXXu3UNLUYfrVFdvXn4dRVOul +4+vJhaAlIDf7js4MNIThPIGyd05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6 ++/NNIxuZMzSgLvWpCz/UXeHPhJ/iGcJfitYgHuNztw== +-----END CERTIFICATE----- + +Certum Trusted Network CA 2 +=========================== +-----BEGIN CERTIFICATE----- +MIIF0jCCA7qgAwIBAgIQIdbQSk8lD8kyN/yqXhKN6TANBgkqhkiG9w0BAQ0FADCBgDELMAkGA1UE +BhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMuQS4xJzAlBgNVBAsTHkNlcnR1 +bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIGA1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0d29y +ayBDQSAyMCIYDzIwMTExMDA2MDgzOTU2WhgPMjA0NjEwMDYwODM5NTZaMIGAMQswCQYDVQQGEwJQ +TDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENl +cnRpZmljYXRpb24gQXV0aG9yaXR5MSQwIgYDVQQDExtDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENB +IDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9+Xj45tWADGSdhhuWZGc/IjoedQF9 +7/tcZ4zJzFxrqZHmuULlIEub2pt7uZld2ZuAS9eEQCsn0+i6MLs+CRqnSZXvK0AkwpfHp+6bJe+o +CgCXhVqqndwpyeI1B+twTUrWwbNWuKFBOJvR+zF/j+Bf4bE/D44WSWDXBo0Y+aomEKsq09DRZ40b +Rr5HMNUuctHFY9rnY3lEfktjJImGLjQ/KUxSiyqnwOKRKIm5wFv5HdnnJ63/mgKXwcZQkpsCLL2p +uTRZCr+ESv/f/rOf69me4Jgj7KZrdxYq28ytOxykh9xGc14ZYmhFV+SQgkK7QtbwYeDBoz1mo130 +GO6IyY0XRSmZMnUCMe4pJshrAua1YkV/NxVaI2iJ1D7eTiew8EAMvE0Xy02isx7QBlrd9pPPV3WZ +9fqGGmd4s7+W/jTcvedSVuWz5XV710GRBdxdaeOVDUO5/IOWOZV7bIBaTxNyxtd9KXpEulKkKtVB +Rgkg/iKgtlswjbyJDNXXcPiHUv3a76xRLgezTv7QCdpw75j6VuZt27VXS9zlLCUVyJ4ueE742pye +hizKV/Ma5ciSixqClnrDvFASadgOWkaLOusm+iPJtrCBvkIApPjW/jAux9JG9uWOdf3yzLnQh1vM +BhBgu4M1t15n3kfsmUjxpKEV/q2MYo45VU85FrmxY53/twIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MB0GA1UdDgQWBBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZI +hvcNAQENBQADggIBAHGlDs7k6b8/ONWJWsQCYftMxRQXLYtPU2sQF/xlhMcQSZDe28cmk4gmb3DW +Al45oPePq5a1pRNcgRRtDoGCERuKTsZPpd1iHkTfCVn0W3cLN+mLIMb4Ck4uWBzrM9DPhmDJ2vuA +L55MYIR4PSFk1vtBHxgP58l1cb29XN40hz5BsA72udY/CROWFC/emh1auVbONTqwX3BNXuMp8SMo +clm2q8KMZiYcdywmdjWLKKdpoPk79SPdhRB0yZADVpHnr7pH1BKXESLjokmUbOe3lEu6LaTaM4tM +pkT/WjzGHWTYtTHkpjx6qFcL2+1hGsvxznN3Y6SHb0xRONbkX8eftoEq5IVIeVheO/jbAoJnwTnb +w3RLPTYe+SmTiGhbqEQZIfCn6IENLOiTNrQ3ssqwGyZ6miUfmpqAnksqP/ujmv5zMnHCnsZy4Ypo +J/HkD7TETKVhk/iXEAcqMCWpuchxuO9ozC1+9eB+D4Kob7a6bINDd82Kkhehnlt4Fj1F4jNy3eFm +ypnTycUm/Q1oBEauttmbjL4ZvrHG8hnjXALKLNhvSgfZyTXaQHXyxKcZb55CEJh15pWLYLztxRLX +is7VmFxWlgPF7ncGNf/P5O4/E2Hu29othfDNrp2yGAlFw5Khchf8R7agCyzxxN5DaAhqXzvwdmP7 +zAYspsbiDrW5viSP +-----END CERTIFICATE----- + +Hellenic Academic and Research Institutions RootCA 2015 +======================================================= +-----BEGIN CERTIFICATE----- +MIIGCzCCA/OgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBpjELMAkGA1UEBhMCR1IxDzANBgNVBAcT +BkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0 +aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNl +YXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIwMTUwHhcNMTUwNzA3MTAxMTIxWhcNNDAwNjMwMTAx +MTIxWjCBpjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMg +QWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNV +BAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIw +MTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDC+Kk/G4n8PDwEXT2QNrCROnk8Zlrv +bTkBSRq0t89/TSNTt5AA4xMqKKYx8ZEA4yjsriFBzh/a/X0SWwGDD7mwX5nh8hKDgE0GPt+sr+eh +iGsxr/CL0BgzuNtFajT0AoAkKAoCFZVedioNmToUW/bLy1O8E00BiDeUJRtCvCLYjqOWXjrZMts+ +6PAQZe104S+nfK8nNLspfZu2zwnI5dMK/IhlZXQK3HMcXM1AsRzUtoSMTFDPaI6oWa7CJ06CojXd +FPQf/7J31Ycvqm59JCfnxssm5uX+Zwdj2EUN3TpZZTlYepKZcj2chF6IIbjV9Cz82XBST3i4vTwr +i5WY9bPRaM8gFH5MXF/ni+X1NYEZN9cRCLdmvtNKzoNXADrDgfgXy5I2XdGj2HUb4Ysn6npIQf1F +GQatJ5lOwXBH3bWfgVMS5bGMSF0xQxfjjMZ6Y5ZLKTBOhE5iGV48zpeQpX8B653g+IuJ3SWYPZK2 +fu/Z8VFRfS0myGlZYeCsargqNhEEelC9MoS+L9xy1dcdFkfkR2YgP/SWxa+OAXqlD3pk9Q0Yh9mu +iNX6hME6wGkoLfINaFGq46V3xqSQDqE3izEjR8EJCOtu93ib14L8hCCZSRm2Ekax+0VVFqmjZayc +Bw/qa9wfLgZy7IaIEuQt218FL+TwA9MmM+eAws1CoRc0CwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUcRVnyMjJvXVdctA4GGqd83EkVAswDQYJKoZI +hvcNAQELBQADggIBAHW7bVRLqhBYRjTyYtcWNl0IXtVsyIe9tC5G8jH4fOpCtZMWVdyhDBKg2mF+ +D1hYc2Ryx+hFjtyp8iY/xnmMsVMIM4GwVhO+5lFc2JsKT0ucVlMC6U/2DWDqTUJV6HwbISHTGzrM +d/K4kPFox/la/vot9L/J9UUbzjgQKjeKeaO04wlshYaT/4mWJ3iBj2fjRnRUjtkNaeJK9E10A/+y +d+2VZ5fkscWrv2oj6NSU4kQoYsRL4vDY4ilrGnB+JGGTe08DMiUNRSQrlrRGar9KC/eaj8GsGsVn +82800vpzY4zvFrCopEYq+OsS7HK07/grfoxSwIuEVPkvPuNVqNxmsdnhX9izjFk0WaSrT2y7Hxjb +davYy5LNlDhhDgcGH0tGEPEVvo2FXDtKK4F5D7Rpn0lQl033DlZdwJVqwjbDG2jJ9SrcR5q+ss7F +Jej6A7na+RZukYT1HCjI/CbM1xyQVqdfbzoEvM14iQuODy+jqk+iGxI9FghAD/FGTNeqewjBCvVt +J94Cj8rDtSvK6evIIVM4pcw72Hc3MKJP2W/R8kCtQXoXxdZKNYm3QdV8hn9VTYNKpXMgwDqvkPGa +JI7ZjnHKe7iG2rKPmT4dEw0SEe7Uq/DpFXYC5ODfqiAeW2GFZECpkJcNrVPSWh2HagCXZWK0vm9q +p/UsQu0yrbYhnr68 +-----END CERTIFICATE----- + +Hellenic Academic and Research Institutions ECC RootCA 2015 +=========================================================== +-----BEGIN CERTIFICATE----- +MIICwzCCAkqgAwIBAgIBADAKBggqhkjOPQQDAjCBqjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0 +aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9u +cyBDZXJ0LiBBdXRob3JpdHkxRDBCBgNVBAMTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJj +aCBJbnN0aXR1dGlvbnMgRUNDIFJvb3RDQSAyMDE1MB4XDTE1MDcwNzEwMzcxMloXDTQwMDYzMDEw +MzcxMlowgaoxCzAJBgNVBAYTAkdSMQ8wDQYDVQQHEwZBdGhlbnMxRDBCBgNVBAoTO0hlbGxlbmlj +IEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9yaXR5MUQwQgYD +VQQDEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIEVDQyBSb290 +Q0EgMjAxNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABJKgQehLgoRc4vgxEZmGZE4JJS+dQS8KrjVP +dJWyUWRrjWvmP3CV8AVER6ZyOFB2lQJajq4onvktTpnvLEhvTCUp6NFxW98dwXU3tNf6e3pCnGoK +Vlp8aQuqgAkkbH7BRqNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O +BBYEFLQiC4KZJAEOnLvkDv2/+5cgk5kqMAoGCCqGSM49BAMCA2cAMGQCMGfOFmI4oqxiRaeplSTA +GiecMjvAwNW6qef4BENThe5SId6d9SWDPp5YSy/XZxMOIQIwBeF1Ad5o7SofTUwJCA3sS61kFyjn +dc5FZXIhF8siQQ6ME5g4mlRtm8rifOoCWCKR +-----END CERTIFICATE----- + +ISRG Root X1 +============ +-----BEGIN CERTIFICATE----- +MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAwTzELMAkGA1UE +BhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNoIEdyb3VwMRUwEwYDVQQD +EwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQG +EwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMT +DElTUkcgUm9vdCBYMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54r +Vygch77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+0TM8ukj1 +3Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6UA5/TR5d8mUgjU+g4rk8K +b4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sWT8KOEUt+zwvo/7V3LvSye0rgTBIlDHCN +Aymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyHB5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ +4Q7e2RCOFvu396j3x+UCB5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf +1b0SHzUvKBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWnOlFu +hjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTnjh8BCNAw1FtxNrQH +usEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbwqHyGO0aoSCqI3Haadr8faqU9GY/r +OPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CIrU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4G +A1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY +9umbbjANBgkqhkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL +ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ3BebYhtF8GaV +0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KKNFtY2PwByVS5uCbMiogziUwt +hDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJw +TdwJx4nLCgdNbOhdjsnvzqvHu7UrTkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nx +e5AW0wdeRlN8NwdCjNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZA +JzVcoyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq4RgqsahD +YVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPAmRGunUHBcnWEvgJBQl9n +JEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57demyPxgcYxn/eR44/KJ4EBs+lVDR3veyJ +m+kXQ99b21/+jh5Xos1AnX5iItreGCc= +-----END CERTIFICATE----- + +AC RAIZ FNMT-RCM +================ +-----BEGIN CERTIFICATE----- +MIIFgzCCA2ugAwIBAgIPXZONMGc2yAYdGsdUhGkHMA0GCSqGSIb3DQEBCwUAMDsxCzAJBgNVBAYT +AkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJWiBGTk1ULVJDTTAeFw0wODEw +MjkxNTU5NTZaFw0zMDAxMDEwMDAwMDBaMDsxCzAJBgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJD +TTEZMBcGA1UECwwQQUMgUkFJWiBGTk1ULVJDTTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC +ggIBALpxgHpMhm5/yBNtwMZ9HACXjywMI7sQmkCpGreHiPibVmr75nuOi5KOpyVdWRHbNi63URcf +qQgfBBckWKo3Shjf5TnUV/3XwSyRAZHiItQDwFj8d0fsjz50Q7qsNI1NOHZnjrDIbzAzWHFctPVr +btQBULgTfmxKo0nRIBnuvMApGGWn3v7v3QqQIecaZ5JCEJhfTzC8PhxFtBDXaEAUwED653cXeuYL +j2VbPNmaUtu1vZ5Gzz3rkQUCwJaydkxNEJY7kvqcfw+Z374jNUUeAlz+taibmSXaXvMiwzn15Cou +08YfxGyqxRxqAQVKL9LFwag0Jl1mpdICIfkYtwb1TplvqKtMUejPUBjFd8g5CSxJkjKZqLsXF3mw +WsXmo8RZZUc1g16p6DULmbvkzSDGm0oGObVo/CK67lWMK07q87Hj/LaZmtVC+nFNCM+HHmpxffnT +tOmlcYF7wk5HlqX2doWjKI/pgG6BU6VtX7hI+cL5NqYuSf+4lsKMB7ObiFj86xsc3i1w4peSMKGJ +47xVqCfWS+2QrYv6YyVZLag13cqXM7zlzced0ezvXg5KkAYmY6252TUtB7p2ZSysV4999AeU14EC +ll2jB0nVetBX+RvnU0Z1qrB5QstocQjpYL05ac70r8NWQMetUqIJ5G+GR4of6ygnXYMgrwTJbFaa +i0b1AgMBAAGjgYMwgYAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE +FPd9xf3E6Jobd2Sn9R2gzL+HYJptMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1o +dHRwOi8vd3d3LmNlcnQuZm5tdC5lcy9kcGNzLzANBgkqhkiG9w0BAQsFAAOCAgEAB5BK3/MjTvDD +nFFlm5wioooMhfNzKWtN/gHiqQxjAb8EZ6WdmF/9ARP67Jpi6Yb+tmLSbkyU+8B1RXxlDPiyN8+s +D8+Nb/kZ94/sHvJwnvDKuO+3/3Y3dlv2bojzr2IyIpMNOmqOFGYMLVN0V2Ue1bLdI4E7pWYjJ2cJ +j+F3qkPNZVEI7VFY/uY5+ctHhKQV8Xa7pO6kO8Rf77IzlhEYt8llvhjho6Tc+hj507wTmzl6NLrT +Qfv6MooqtyuGC2mDOL7Nii4LcK2NJpLuHvUBKwrZ1pebbuCoGRw6IYsMHkCtA+fdZn71uSANA+iW ++YJF1DngoABd15jmfZ5nc8OaKveri6E6FO80vFIOiZiaBECEHX5FaZNXzuvO+FB8TxxuBEOb+dY7 +Ixjp6o7RTUaN8Tvkasq6+yO3m/qZASlaWFot4/nUbQ4mrcFuNLwy+AwF+mWj2zs3gyLp1txyM/1d +8iC9djwj2ij3+RvrWWTV3F9yfiD8zYm1kGdNYno/Tq0dwzn+evQoFt9B9kiABdcPUXmsEKvU7ANm +5mqwujGSQkBqvjrTcuFqN1W8rB2Vt2lh8kORdOag0wokRqEIr9baRRmW1FMdW4R58MD3R++Lj8UG +rp1MYp3/RgT408m2ECVAdf4WqslKYIYvuu8wd+RU4riEmViAqhOLUTpPSPaLtrM= +-----END CERTIFICATE----- + +Amazon Root CA 1 +================ +-----BEGIN CERTIFICATE----- +MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsFADA5MQswCQYD +VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAxMB4XDTE1 +MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv +bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBALJ4gHHKeNXjca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgH +FzZM9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qwIFAGbHrQ +gLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6VOujw5H5SNz/0egwLX0t +dHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L93FcXmn/6pUCyziKrlA4b9v7LWIbxcce +VOF34GfID5yHI9Y/QCB/IIDEgEw+OyQmjgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB +/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3 +DQEBCwUAA4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDIU5PM +CCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUsN+gDS63pYaACbvXy +8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vvo/ufQJVtMVT8QtPHRh8jrdkPSHCa +2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2 +xJNDd2ZhwLnoQdeXeGADbkpyrqXRfboQnoZsG4q5WTP468SQvvG5 +-----END CERTIFICATE----- + +Amazon Root CA 2 +================ +-----BEGIN CERTIFICATE----- +MIIFQTCCAymgAwIBAgITBmyf0pY1hp8KD+WGePhbJruKNzANBgkqhkiG9w0BAQwFADA5MQswCQYD +VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAyMB4XDTE1 +MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv +bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC +ggIBAK2Wny2cSkxKgXlRmeyKy2tgURO8TW0G/LAIjd0ZEGrHJgw12MBvIITplLGbhQPDW9tK6Mj4 +kHbZW0/jTOgGNk3Mmqw9DJArktQGGWCsN0R5hYGCrVo34A3MnaZMUnbqQ523BNFQ9lXg1dKmSYXp +N+nKfq5clU1Imj+uIFptiJXZNLhSGkOQsL9sBbm2eLfq0OQ6PBJTYv9K8nu+NQWpEjTj82R0Yiw9 +AElaKP4yRLuH3WUnAnE72kr3H9rN9yFVkE8P7K6C4Z9r2UXTu/Bfh+08LDmG2j/e7HJV63mjrdvd +fLC6HM783k81ds8P+HgfajZRRidhW+mez/CiVX18JYpvL7TFz4QuK/0NURBs+18bvBt+xa47mAEx +kv8LV/SasrlX6avvDXbR8O70zoan4G7ptGmh32n2M8ZpLpcTnqWHsFcQgTfJU7O7f/aS0ZzQGPSS +btqDT6ZjmUyl+17vIWR6IF9sZIUVyzfpYgwLKhbcAS4y2j5L9Z469hdAlO+ekQiG+r5jqFoz7Mt0 +Q5X5bGlSNscpb/xVA1wf+5+9R+vnSUeVC06JIglJ4PVhHvG/LopyboBZ/1c6+XUyo05f7O0oYtlN +c/LMgRdg7c3r3NunysV+Ar3yVAhU/bQtCSwXVEqY0VThUWcI0u1ufm8/0i2BWSlmy5A5lREedCf+ +3euvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSw +DPBMMPQFWAJI/TPlUq9LhONmUjANBgkqhkiG9w0BAQwFAAOCAgEAqqiAjw54o+Ci1M3m9Zh6O+oA +A7CXDpO8Wqj2LIxyh6mx/H9z/WNxeKWHWc8w4Q0QshNabYL1auaAn6AFC2jkR2vHat+2/XcycuUY ++gn0oJMsXdKMdYV2ZZAMA3m3MSNjrXiDCYZohMr/+c8mmpJ5581LxedhpxfL86kSk5Nrp+gvU5LE +YFiwzAJRGFuFjWJZY7attN6a+yb3ACfAXVU3dJnJUH/jWS5E4ywl7uxMMne0nxrpS10gxdr9HIcW +xkPo1LsmmkVwXqkLN1PiRnsn/eBG8om3zEK2yygmbtmlyTrIQRNg91CMFa6ybRoVGld45pIq2WWQ +gj9sAq+uEjonljYE1x2igGOpm/HlurR8FLBOybEfdF849lHqm/osohHUqS0nGkWxr7JOcQ3AWEbW +aQbLU8uz/mtBzUF+fUwPfHJ5elnNXkoOrJupmHN5fLT0zLm4BwyydFy4x2+IoZCn9Kr5v2c69BoV +Yh63n749sSmvZ6ES8lgQGVMDMBu4Gon2nL2XA46jCfMdiyHxtN/kHNGfZQIG6lzWE7OE76KlXIx3 +KadowGuuQNKotOrN8I1LOJwZmhsoVLiJkO/KdYE+HvJkJMcYr07/R54H9jVlpNMKVv/1F2Rs76gi +JUmTtt8AF9pYfl3uxRuw0dFfIRDH+fO6AgonB8Xx1sfT4PsJYGw= +-----END CERTIFICATE----- + +Amazon Root CA 3 +================ +-----BEGIN CERTIFICATE----- +MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5MQswCQYDVQQG +EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAzMB4XDTE1MDUy +NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ +MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZB +f8ANm+gBG1bG8lKlui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjr +Zt6jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSrttvXBp43 +rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkrBqWTrBqYaGFy+uGh0Psc +eGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteMYyRIHN8wfdVoOw== +-----END CERTIFICATE----- + +Amazon Root CA 4 +================ +-----BEGIN CERTIFICATE----- +MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5MQswCQYDVQQG +EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSA0MB4XDTE1MDUy +NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ +MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN +/sGKe0uoe0ZLY7Bi9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri +83BkM6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV +HQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WBMAoGCCqGSM49BAMDA2gA +MGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlwCkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1 +AE47xDqUEpHJWEadIRNyp4iciuRMStuW1KyLa2tJElMzrdfkviT8tQp21KW8EA== +-----END CERTIFICATE----- + +TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1 +============================================= +-----BEGIN CERTIFICATE----- +MIIEYzCCA0ugAwIBAgIBATANBgkqhkiG9w0BAQsFADCB0jELMAkGA1UEBhMCVFIxGDAWBgNVBAcT +D0dlYnplIC0gS29jYWVsaTFCMEAGA1UEChM5VHVya2l5ZSBCaWxpbXNlbCB2ZSBUZWtub2xvamlr +IEFyYXN0aXJtYSBLdXJ1bXUgLSBUVUJJVEFLMS0wKwYDVQQLEyRLYW11IFNlcnRpZmlrYXN5b24g +TWVya2V6aSAtIEthbXUgU00xNjA0BgNVBAMTLVRVQklUQUsgS2FtdSBTTSBTU0wgS29rIFNlcnRp +ZmlrYXNpIC0gU3VydW0gMTAeFw0xMzExMjUwODI1NTVaFw00MzEwMjUwODI1NTVaMIHSMQswCQYD +VQQGEwJUUjEYMBYGA1UEBxMPR2ViemUgLSBLb2NhZWxpMUIwQAYDVQQKEzlUdXJraXllIEJpbGlt +c2VsIHZlIFRla25vbG9qaWsgQXJhc3Rpcm1hIEt1cnVtdSAtIFRVQklUQUsxLTArBgNVBAsTJEth +bXUgU2VydGlmaWthc3lvbiBNZXJrZXppIC0gS2FtdSBTTTE2MDQGA1UEAxMtVFVCSVRBSyBLYW11 +IFNNIFNTTCBLb2sgU2VydGlmaWthc2kgLSBTdXJ1bSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAr3UwM6q7a9OZLBI3hNmNe5eA027n/5tQlT6QlVZC1xl8JoSNkvoBHToP4mQ4t4y8 +6Ij5iySrLqP1N+RAjhgleYN1Hzv/bKjFxlb4tO2KRKOrbEz8HdDc72i9z+SqzvBV96I01INrN3wc +wv61A+xXzry0tcXtAA9TNypN9E8Mg/uGz8v+jE69h/mniyFXnHrfA2eJLJ2XYacQuFWQfw4tJzh0 +3+f92k4S400VIgLI4OD8D62K18lUUMw7D8oWgITQUVbDjlZ/iSIzL+aFCr2lqBs23tPcLG07xxO9 +WSMs5uWk99gL7eqQQESolbuT1dCANLZGeA4fAJNG4e7p+exPFwIDAQABo0IwQDAdBgNVHQ4EFgQU +ZT/HiobGPN08VFw1+DrtUgxHV8gwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJ +KoZIhvcNAQELBQADggEBACo/4fEyjq7hmFxLXs9rHmoJ0iKpEsdeV31zVmSAhHqT5Am5EM2fKifh +AHe+SMg1qIGf5LgsyX8OsNJLN13qudULXjS99HMpw+0mFZx+CFOKWI3QSyjfwbPfIPP54+M638yc +lNhOT8NrF7f3cuitZjO1JVOr4PhMqZ398g26rrnZqsZr+ZO7rqu4lzwDGrpDxpa5RXI4s6ehlj2R +e37AIVNMh+3yC1SVUZPVIqUNivGTDj5UDrDYyU7c8jEyVupk+eq1nRZmQnLzf9OxMUP8pI4X8W0j +q5Rm+K37DwhuJi1/FwcJsoz7UMCflo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeM= +-----END CERTIFICATE----- + +GDCA TrustAUTH R5 ROOT +====================== +-----BEGIN CERTIFICATE----- +MIIFiDCCA3CgAwIBAgIIfQmX/vBH6nowDQYJKoZIhvcNAQELBQAwYjELMAkGA1UEBhMCQ04xMjAw +BgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZIENPLixMVEQuMR8wHQYDVQQD +DBZHRENBIFRydXN0QVVUSCBSNSBST09UMB4XDTE0MTEyNjA1MTMxNVoXDTQwMTIzMTE1NTk1OVow +YjELMAkGA1UEBhMCQ04xMjAwBgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZ +IENPLixMVEQuMR8wHQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMIICIjANBgkqhkiG9w0B +AQEFAAOCAg8AMIICCgKCAgEA2aMW8Mh0dHeb7zMNOwZ+Vfy1YI92hhJCfVZmPoiC7XJjDp6L3TQs +AlFRwxn9WVSEyfFrs0yw6ehGXTjGoqcuEVe6ghWinI9tsJlKCvLriXBjTnnEt1u9ol2x8kECK62p +OqPseQrsXzrj/e+APK00mxqriCZ7VqKChh/rNYmDf1+uKU49tm7srsHwJ5uu4/Ts765/94Y9cnrr +pftZTqfrlYwiOXnhLQiPzLyRuEH3FMEjqcOtmkVEs7LXLM3GKeJQEK5cy4KOFxg2fZfmiJqwTTQJ +9Cy5WmYqsBebnh52nUpmMUHfP/vFBu8btn4aRjb3ZGM74zkYI+dndRTVdVeSN72+ahsmUPI2JgaQ +xXABZG12ZuGR224HwGGALrIuL4xwp9E7PLOR5G62xDtw8mySlwnNR30YwPO7ng/Wi64HtloPzgsM +R6flPri9fcebNaBhlzpBdRfMK5Z3KpIhHtmVdiBnaM8Nvd/WHwlqmuLMc3GkL30SgLdTMEZeS1SZ +D2fJpcjyIMGC7J0R38IC+xo70e0gmu9lZJIQDSri3nDxGGeCjGHeuLzRL5z7D9Ar7Rt2ueQ5Vfj4 +oR24qoAATILnsn8JuLwwoC8N9VKejveSswoAHQBUlwbgsQfZxw9cZX08bVlX5O2ljelAU58VS6Bx +9hoh49pwBiFYFIeFd3mqgnkCAwEAAaNCMEAwHQYDVR0OBBYEFOLJQJ9NzuiaoXzPDj9lxSmIahlR +MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQDRSVfg +p8xoWLoBDysZzY2wYUWsEe1jUGn4H3++Fo/9nesLqjJHdtJnJO29fDMylyrHBYZmDRd9FBUb1Ov9 +H5r2XpdptxolpAqzkT9fNqyL7FeoPueBihhXOYV0GkLH6VsTX4/5COmSdI31R9KrO9b7eGZONn35 +6ZLpBN79SWP8bfsUcZNnL0dKt7n/HipzcEYwv1ryL3ml4Y0M2fmyYzeMN2WFcGpcWwlyua1jPLHd ++PwyvzeG5LuOmCd+uh8W4XAR8gPfJWIyJyYYMoSf/wA6E7qaTfRPuBRwIrHKK5DOKcFw9C+df/KQ +HtZa37dG/OaG+svgIHZ6uqbL9XzeYqWxi+7egmaKTjowHz+Ay60nugxe19CxVsp3cbK1daFQqUBD +F8Io2c9Si1vIY9RCPqAzekYu9wogRlR+ak8x8YF+QnQ4ZXMn7sZ8uI7XpTrXmKGcjBBV09tL7ECQ +8s1uV9JiDnxXk7Gnbc2dg7sq5+W2O3FYrf3RRbxake5TFW/TRQl1brqQXR4EzzffHqhmsYzmIGrv +/EhOdJhCrylvLmrH+33RZjEizIYAfmaDDEL0vTSSwxrqT8p+ck0LcIymSLumoRT2+1hEmRSuqguT +aaApJUqlyyvdimYHFngVV3Eb7PVHhPOeMTd61X8kreS8/f3MboPoDKi3QWwH3b08hpcv0g== +-----END CERTIFICATE----- + +SSL.com Root Certification Authority RSA +======================================== +-----BEGIN CERTIFICATE----- +MIIF3TCCA8WgAwIBAgIIeyyb0xaAMpkwDQYJKoZIhvcNAQELBQAwfDELMAkGA1UEBhMCVVMxDjAM +BgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24x +MTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBSU0EwHhcNMTYw +MjEyMTczOTM5WhcNNDEwMjEyMTczOTM5WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMx +EDAOBgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NM +LmNvbSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFJTQTCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBAPkP3aMrfcvQKv7sZ4Wm5y4bunfh4/WvpOz6Sl2RxFdHaxh3a3by/ZPkPQ/C +Fp4LZsNWlJ4Xg4XOVu/yFv0AYvUiCVToZRdOQbngT0aXqhvIuG5iXmmxX9sqAn78bMrzQdjt0Oj8 +P2FI7bADFB0QDksZ4LtO7IZl/zbzXmcCC52GVWH9ejjt/uIZALdvoVBidXQ8oPrIJZK0bnoix/ge +oeOy3ZExqysdBP+lSgQ36YWkMyv94tZVNHwZpEpox7Ko07fKoZOI68GXvIz5HdkihCR0xwQ9aqkp +k8zruFvh/l8lqjRYyMEjVJ0bmBHDOJx+PYZspQ9AhnwC9FwCTyjLrnGfDzrIM/4RJTXq/LrFYD3Z +fBjVsqnTdXgDciLKOsMf7yzlLqn6niy2UUb9rwPW6mBo6oUWNmuF6R7As93EJNyAKoFBbZQ+yODJ +gUEAnl6/f8UImKIYLEJAs/lvOCdLToD0PYFH4Ih86hzOtXVcUS4cK38acijnALXRdMbX5J+tB5O2 +UzU1/Dfkw/ZdFr4hc96SCvigY2q8lpJqPvi8ZVWb3vUNiSYE/CUapiVpy8JtynziWV+XrOvvLsi8 +1xtZPCvM8hnIk2snYxnP/Okm+Mpxm3+T/jRnhE6Z6/yzeAkzcLpmpnbtG3PrGqUNxCITIJRWCk4s +bE6x/c+cCbqiM+2HAgMBAAGjYzBhMB0GA1UdDgQWBBTdBAkHovV6fVJTEpKV7jiAJQ2mWTAPBgNV +HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFN0ECQei9Xp9UlMSkpXuOIAlDaZZMA4GA1UdDwEB/wQE +AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAIBgRlCn7Jp0cHh5wYfGVcpNxJK1ok1iOMq8bs3AD/CUr +dIWQPXhq9LmLpZc7tRiRux6n+UBbkflVma8eEdBcHadm47GUBwwyOabqG7B52B2ccETjit3E+ZUf +ijhDPwGFpUenPUayvOUiaPd7nNgsPgohyC0zrL/FgZkxdMF1ccW+sfAjRfSda/wZY52jvATGGAsl +u1OJD7OAUN5F7kR/q5R4ZJjT9ijdh9hwZXT7DrkT66cPYakylszeu+1jTBi7qUD3oFRuIIhxdRjq +erQ0cuAjJ3dctpDqhiVAq+8zD8ufgr6iIPv2tS0a5sKFsXQP+8hlAqRSAUfdSSLBv9jra6x+3uxj +MxW3IwiPxg+NQVrdjsW5j+VFP3jbutIbQLH+cU0/4IGiul607BXgk90IH37hVZkLId6Tngr75qNJ +vTYw/ud3sqB1l7UtgYgXZSD32pAAn8lSzDLKNXz1PQ/YK9f1JmzJBjSWFupwWRoyeXkLtoh/D1JI +Pb9s2KJELtFOt3JY04kTlf5Eq/jXixtunLwsoFvVagCvXzfh1foQC5ichucmj87w7G6KVwuA406y +wKBjYZC6VWg3dGq2ktufoYYitmUnDuy2n0Jg5GfCtdpBC8TTi2EbvPofkSvXRAdeuims2cXp71NI +WuuA8ShYIc2wBlX7Jz9TkHCpBB5XJ7k= +-----END CERTIFICATE----- + +SSL.com Root Certification Authority ECC +======================================== +-----BEGIN CERTIFICATE----- +MIICjTCCAhSgAwIBAgIIdebfy8FoW6gwCgYIKoZIzj0EAwIwfDELMAkGA1UEBhMCVVMxDjAMBgNV +BAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xMTAv +BgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEy +MTgxNDAzWhcNNDEwMjEyMTgxNDAzWjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAO +BgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNv +bSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuBBAAiA2IA +BEVuqVDEpiM2nl8ojRfLliJkP9x6jh3MCLOicSS6jkm5BBtHllirLZXI7Z4INcgn64mMU1jrYor+ +8FsPazFSY0E7ic3s7LaNGdM0B9y7xgZ/wkWV7Mt/qCPgCemB+vNH06NjMGEwHQYDVR0OBBYEFILR +hXMw5zUE044CkvvlpNHEIejNMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUgtGFczDnNQTT +jgKS++Wk0cQh6M0wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2cAMGQCMG/n61kRpGDPYbCW +e+0F+S8Tkdzt5fxQaxFGRrMcIQBiu77D5+jNB5n5DQtdcj7EqgIwH7y6C+IwJPt8bYBVCpk+gA0z +5Wajs6O7pdWLjwkspl1+4vAHCGht0nxpbl/f5Wpl +-----END CERTIFICATE----- + +SSL.com EV Root Certification Authority RSA R2 +============================================== +-----BEGIN CERTIFICATE----- +MIIF6zCCA9OgAwIBAgIIVrYpzTS8ePYwDQYJKoZIhvcNAQELBQAwgYIxCzAJBgNVBAYTAlVTMQ4w +DAYDVQQIDAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9u +MTcwNQYDVQQDDC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIy +MB4XDTE3MDUzMTE4MTQzN1oXDTQyMDUzMDE4MTQzN1owgYIxCzAJBgNVBAYTAlVTMQ4wDAYDVQQI +DAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMTcwNQYD +VQQDDC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIyMIICIjAN +BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjzZlQOHWTcDXtOlG2mvqM0fNTPl9fb69LT3w23jh +hqXZuglXaO1XPqDQCEGD5yhBJB/jchXQARr7XnAjssufOePPxU7Gkm0mxnu7s9onnQqG6YE3Bf7w +cXHswxzpY6IXFJ3vG2fThVUCAtZJycxa4bH3bzKfydQ7iEGonL3Lq9ttewkfokxykNorCPzPPFTO +Zw+oz12WGQvE43LrrdF9HSfvkusQv1vrO6/PgN3B0pYEW3p+pKk8OHakYo6gOV7qd89dAFmPZiw+ +B6KjBSYRaZfqhbcPlgtLyEDhULouisv3D5oi53+aNxPN8k0TayHRwMwi8qFG9kRpnMphNQcAb9Zh +CBHqurj26bNg5U257J8UZslXWNvNh2n4ioYSA0e/ZhN2rHd9NCSFg83XqpyQGp8hLH94t2S42Oim +9HizVcuE0jLEeK6jj2HdzghTreyI/BXkmg3mnxp3zkyPuBQVPWKchjgGAGYS5Fl2WlPAApiiECto +RHuOec4zSnaqW4EWG7WK2NAAe15itAnWhmMOpgWVSbooi4iTsjQc2KRVbrcc0N6ZVTsj9CLg+Slm +JuwgUHfbSguPvuUCYHBBXtSuUDkiFCbLsjtzdFVHB3mBOagwE0TlBIqulhMlQg+5U8Sb/M3kHN48 ++qvWBkofZ6aYMBzdLNvcGJVXZsb/XItW9XcCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNV +HSMEGDAWgBT5YLvU49U09rj1BoAlp3PbRmmonjAdBgNVHQ4EFgQU+WC71OPVNPa49QaAJadz20Zp +qJ4wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBWs47LCp1Jjr+kxJG7ZhcFUZh1 +++VQLHqe8RT6q9OKPv+RKY9ji9i0qVQBDb6Thi/5Sm3HXvVX+cpVHBK+Rw82xd9qt9t1wkclf7nx +Y/hoLVUE0fKNsKTPvDxeH3jnpaAgcLAExbf3cqfeIg29MyVGjGSSJuM+LmOW2puMPfgYCdcDzH2G +guDKBAdRUNf/ktUM79qGn5nX67evaOI5JpS6aLe/g9Pqemc9YmeuJeVy6OLk7K4S9ksrPJ/psEDz +OFSz/bdoyNrGj1E8svuR3Bznm53htw1yj+KkxKl4+esUrMZDBcJlOSgYAsOCsp0FvmXtll9ldDz7 +CTUue5wT/RsPXcdtgTpWD8w74a8CLyKsRspGPKAcTNZEtF4uXBVmCeEmKf7GUmG6sXP/wwyc5Wxq +lD8UykAWlYTzWamsX0xhk23RO8yilQwipmdnRC652dKKQbNmC1r7fSOl8hqw/96bg5Qu0T/fkreR +rwU7ZcegbLHNYhLDkBvjJc40vG93drEQw/cFGsDWr3RiSBd3kmmQYRzelYB0VI8YHMPzA9C/pEN1 +hlMYegouCRw2n5H9gooiS9EOUCXdywMMF8mDAAhONU2Ki+3wApRmLER/y5UnlhetCTCstnEXbosX +9hwJ1C07mKVx01QT2WDz9UtmT/rx7iASjbSsV7FFY6GsdqnC+w== +-----END CERTIFICATE----- + +SSL.com EV Root Certification Authority ECC +=========================================== +-----BEGIN CERTIFICATE----- +MIIClDCCAhqgAwIBAgIILCmcWxbtBZUwCgYIKoZIzj0EAwIwfzELMAkGA1UEBhMCVVMxDjAMBgNV +BAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xNDAy +BgNVBAMMK1NTTC5jb20gRVYgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYw +MjEyMTgxNTIzWhcNNDEwMjEyMTgxNTIzWjB/MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMx +EDAOBgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjE0MDIGA1UEAwwrU1NM +LmNvbSBFViBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuB +BAAiA2IABKoSR5CYG/vvw0AHgyBO8TCCogbR8pKGYfL2IWjKAMTH6kMAVIbc/R/fALhBYlzccBYy +3h+Z1MzFB8gIH2EWB1E9fVwHU+M1OIzfzZ/ZLg1KthkuWnBaBu2+8KGwytAJKaNjMGEwHQYDVR0O +BBYEFFvKXuXe0oGqzagtZFG22XKbl+ZPMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUW8pe +5d7SgarNqC1kUbbZcpuX5k8wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2gAMGUCMQCK5kCJ +N+vp1RPZytRrJPOwPYdGWBrssd9v+1a6cGvHOMzosYxPD/fxZ3YOg9AeUY8CMD32IygmTMZgh5Mm +m7I1HrrW9zzRHM76JTymGoEVW/MSD2zuZYrJh6j5B+BimoxcSg== +-----END CERTIFICATE----- + +GlobalSign Root CA - R6 +======================= +-----BEGIN CERTIFICATE----- +MIIFgzCCA2ugAwIBAgIORea7A4Mzw4VlSOb/RVEwDQYJKoZIhvcNAQEMBQAwTDEgMB4GA1UECxMX +R2xvYmFsU2lnbiBSb290IENBIC0gUjYxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wHhcNMTQxMjEwMDAwMDAwWhcNMzQxMjEwMDAwMDAwWjBMMSAwHgYDVQQLExdHbG9i +YWxTaWduIFJvb3QgQ0EgLSBSNjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFs +U2lnbjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJUH6HPKZvnsFMp7PPcNCPG0RQss +grRIxutbPK6DuEGSMxSkb3/pKszGsIhrxbaJ0cay/xTOURQh7ErdG1rG1ofuTToVBu1kZguSgMpE +3nOUTvOniX9PeGMIyBJQbUJmL025eShNUhqKGoC3GYEOfsSKvGRMIRxDaNc9PIrFsmbVkJq3MQbF +vuJtMgamHvm566qjuL++gmNQ0PAYid/kD3n16qIfKtJwLnvnvJO7bVPiSHyMEAc4/2ayd2F+4OqM +PKq0pPbzlUoSB239jLKJz9CgYXfIWHSw1CM69106yqLbnQneXUQtkPGBzVeS+n68UARjNN9rkxi+ +azayOeSsJDa38O+2HBNXk7besvjihbdzorg1qkXy4J02oW9UivFyVm4uiMVRQkQVlO6jxTiWm05O +WgtH8wY2SXcwvHE35absIQh1/OZhFj931dmRl4QKbNQCTXTAFO39OfuD8l4UoQSwC+n+7o/hbguy +CLNhZglqsQY6ZZZZwPA1/cnaKI0aEYdwgQqomnUdnjqGBQCe24DWJfncBZ4nWUx2OVvq+aWh2IMP +0f/fMBH5hc8zSPXKbWQULHpYT9NLCEnFlWQaYw55PfWzjMpYrZxCRXluDocZXFSxZba/jJvcE+kN +b7gu3GduyYsRtYQUigAZcIN5kZeR1BonvzceMgfYFGM8KEyvAgMBAAGjYzBhMA4GA1UdDwEB/wQE +AwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSubAWjkxPioufi1xzWx/B/yGdToDAfBgNV +HSMEGDAWgBSubAWjkxPioufi1xzWx/B/yGdToDANBgkqhkiG9w0BAQwFAAOCAgEAgyXt6NH9lVLN +nsAEoJFp5lzQhN7craJP6Ed41mWYqVuoPId8AorRbrcWc+ZfwFSY1XS+wc3iEZGtIxg93eFyRJa0 +lV7Ae46ZeBZDE1ZXs6KzO7V33EByrKPrmzU+sQghoefEQzd5Mr6155wsTLxDKZmOMNOsIeDjHfrY +BzN2VAAiKrlNIC5waNrlU/yDXNOd8v9EDERm8tLjvUYAGm0CuiVdjaExUd1URhxN25mW7xocBFym +Fe944Hn+Xds+qkxV/ZoVqW/hpvvfcDDpw+5CRu3CkwWJ+n1jez/QcYF8AOiYrg54NMMl+68KnyBr +3TsTjxKM4kEaSHpzoHdpx7Zcf4LIHv5YGygrqGytXm3ABdJ7t+uA/iU3/gKbaKxCXcPu9czc8FB1 +0jZpnOZ7BN9uBmm23goJSFmH63sUYHpkqmlD75HHTOwY3WzvUy2MmeFe8nI+z1TIvWfspA9MRf/T +uTAjB0yPEL+GltmZWrSZVxykzLsViVO6LAUP5MSeGbEYNNVMnbrt9x+vJJUEeKgDu+6B5dpffItK +oZB0JaezPkvILFa9x8jvOOJckvB595yEunQtYQEgfn7R8k8HWV+LLUNS60YMlOH1Zkd5d9VUWx+t +JDfLRVpOoERIyNiwmcUVhAn21klJwGW45hpxbqCo8YLoRT5s1gLXCmeDBVrJpBA= +-----END CERTIFICATE----- + +OISTE WISeKey Global Root GC CA +=============================== +-----BEGIN CERTIFICATE----- +MIICaTCCAe+gAwIBAgIQISpWDK7aDKtARb8roi066jAKBggqhkjOPQQDAzBtMQswCQYDVQQGEwJD +SDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEo +MCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQyBDQTAeFw0xNzA1MDkwOTQ4MzRa +Fw00MjA1MDkwOTU4MzNaMG0xCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQL +ExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2Jh +bCBSb290IEdDIENBMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAETOlQwMYPchi82PG6s4nieUqjFqdr +VCTbUf/q9Akkwwsin8tqJ4KBDdLArzHkdIJuyiXZjHWd8dvQmqJLIX4Wp2OQ0jnUsYd4XxiWD1Ab +NTcPasbc2RNNpI6QN+a9WzGRo1QwUjAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd +BgNVHQ4EFgQUSIcUrOPDnpBgOtfKie7TrYy0UGYwEAYJKwYBBAGCNxUBBAMCAQAwCgYIKoZIzj0E +AwMDaAAwZQIwJsdpW9zV57LnyAyMjMPdeYwbY9XJUpROTYJKcx6ygISpJcBMWm1JKWB4E+J+SOtk +AjEA2zQgMgj/mkkCtojeFK9dbJlxjRo/i9fgojaGHAeCOnZT/cKi7e97sIBPWA9LUzm9 +-----END CERTIFICATE----- + +UCA Global G2 Root +================== +-----BEGIN CERTIFICATE----- +MIIFRjCCAy6gAwIBAgIQXd+x2lqj7V2+WmUgZQOQ7zANBgkqhkiG9w0BAQsFADA9MQswCQYDVQQG +EwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxGzAZBgNVBAMMElVDQSBHbG9iYWwgRzIgUm9vdDAeFw0x +NjAzMTEwMDAwMDBaFw00MDEyMzEwMDAwMDBaMD0xCzAJBgNVBAYTAkNOMREwDwYDVQQKDAhVbmlU +cnVzdDEbMBkGA1UEAwwSVUNBIEdsb2JhbCBHMiBSb290MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A +MIICCgKCAgEAxeYrb3zvJgUno4Ek2m/LAfmZmqkywiKHYUGRO8vDaBsGxUypK8FnFyIdK+35KYmT +oni9kmugow2ifsqTs6bRjDXVdfkX9s9FxeV67HeToI8jrg4aA3++1NDtLnurRiNb/yzmVHqUwCoV +8MmNsHo7JOHXaOIxPAYzRrZUEaalLyJUKlgNAQLx+hVRZ2zA+te2G3/RVogvGjqNO7uCEeBHANBS +h6v7hn4PJGtAnTRnvI3HLYZveT6OqTwXS3+wmeOwcWDcC/Vkw85DvG1xudLeJ1uK6NjGruFZfc8o +LTW4lVYa8bJYS7cSN8h8s+1LgOGN+jIjtm+3SJUIsUROhYw6AlQgL9+/V087OpAh18EmNVQg7Mc/ +R+zvWr9LesGtOxdQXGLYD0tK3Cv6brxzks3sx1DoQZbXqX5t2Okdj4q1uViSukqSKwxW/YDrCPBe +KW4bHAyvj5OJrdu9o54hyokZ7N+1wxrrFv54NkzWbtA+FxyQF2smuvt6L78RHBgOLXMDj6DlNaBa +4kx1HXHhOThTeEDMg5PXCp6dW4+K5OXgSORIskfNTip1KnvyIvbJvgmRlld6iIis7nCs+dwp4wwc +OxJORNanTrAmyPPZGpeRaOrvjUYG0lZFWJo8DA+DuAUlwznPO6Q0ibd5Ei9Hxeepl2n8pndntd97 +8XplFeRhVmUCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O +BBYEFIHEjMz15DD/pQwIX4wVZyF0Ad/fMA0GCSqGSIb3DQEBCwUAA4ICAQATZSL1jiutROTL/7lo +5sOASD0Ee/ojL3rtNtqyzm325p7lX1iPyzcyochltq44PTUbPrw7tgTQvPlJ9Zv3hcU2tsu8+Mg5 +1eRfB70VVJd0ysrtT7q6ZHafgbiERUlMjW+i67HM0cOU2kTC5uLqGOiiHycFutfl1qnN3e92mI0A +Ds0b+gO3joBYDic/UvuUospeZcnWhNq5NXHzJsBPd+aBJ9J3O5oUb3n09tDh05S60FdRvScFDcH9 +yBIw7m+NESsIndTUv4BFFJqIRNow6rSn4+7vW4LVPtateJLbXDzz2K36uGt/xDYotgIVilQsnLAX +c47QN6MUPJiVAAwpBVueSUmxX8fjy88nZY41F7dXyDDZQVu5FLbowg+UMaeUmMxq67XhJ/UQqAHo +jhJi6IjMtX9Gl8CbEGY4GjZGXyJoPd/JxhMnq1MGrKI8hgZlb7F+sSlEmqO6SWkoaY/X5V+tBIZk +bxqgDMUIYs6Ao9Dz7GjevjPHF1t/gMRMTLGmhIrDO7gJzRSBuhjjVFc2/tsvfEehOjPI+Vg7RE+x +ygKJBJYoaMVLuCaJu9YzL1DV/pqJuhgyklTGW+Cd+V7lDSKb9triyCGyYiGqhkCyLmTTX8jjfhFn +RR8F/uOi77Oos/N9j/gMHyIfLXC0uAE0djAA5SN4p1bXUB+K+wb1whnw0A== +-----END CERTIFICATE----- + +UCA Extended Validation Root +============================ +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgIQT9Irj/VkyDOeTzRYZiNwYDANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQG +EwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxJTAjBgNVBAMMHFVDQSBFeHRlbmRlZCBWYWxpZGF0aW9u +IFJvb3QwHhcNMTUwMzEzMDAwMDAwWhcNMzgxMjMxMDAwMDAwWjBHMQswCQYDVQQGEwJDTjERMA8G +A1UECgwIVW5pVHJ1c3QxJTAjBgNVBAMMHFVDQSBFeHRlbmRlZCBWYWxpZGF0aW9uIFJvb3QwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCpCQcoEwKwmeBkqh5DFnpzsZGgdT6o+uM4AHrs +iWogD4vFsJszA1qGxliG1cGFu0/GnEBNyr7uaZa4rYEwmnySBesFK5pI0Lh2PpbIILvSsPGP2KxF +Rv+qZ2C0d35qHzwaUnoEPQc8hQ2E0B92CvdqFN9y4zR8V05WAT558aopO2z6+I9tTcg1367r3CTu +eUWnhbYFiN6IXSV8l2RnCdm/WhUFhvMJHuxYMjMR83dksHYf5BA1FxvyDrFspCqjc/wJHx4yGVMR +59mzLC52LqGj3n5qiAno8geK+LLNEOfic0CTuwjRP+H8C5SzJe98ptfRr5//lpr1kXuYC3fUfugH +0mK1lTnj8/FtDw5lhIpjVMWAtuCeS31HJqcBCF3RiJ7XwzJE+oJKCmhUfzhTA8ykADNkUVkLo4KR +el7sFsLzKuZi2irbWWIQJUoqgQtHB0MGcIfS+pMRKXpITeuUx3BNr2fVUbGAIAEBtHoIppB/TuDv +B0GHr2qlXov7z1CymlSvw4m6WC31MJixNnI5fkkE/SmnTHnkBVfblLkWU41Gsx2VYVdWf6/wFlth +WG82UBEL2KwrlRYaDh8IzTY0ZRBiZtWAXxQgXy0MoHgKaNYs1+lvK9JKBZP8nm9rZ/+I8U6laUpS +NwXqxhaN0sSZ0YIrO7o1dfdRUVjzyAfd5LQDfwIDAQABo0IwQDAdBgNVHQ4EFgQU2XQ65DA9DfcS +3H5aBZ8eNJr34RQwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQEL +BQADggIBADaNl8xCFWQpN5smLNb7rhVpLGsaGvdftvkHTFnq88nIua7Mui563MD1sC3AO6+fcAUR +ap8lTwEpcOPlDOHqWnzcSbvBHiqB9RZLcpHIojG5qtr8nR/zXUACE/xOHAbKsxSQVBcZEhrxH9cM +aVr2cXj0lH2RC47skFSOvG+hTKv8dGT9cZr4QQehzZHkPJrgmzI5c6sq1WnIeJEmMX3ixzDx/BR4 +dxIOE/TdFpS/S2d7cFOFyrC78zhNLJA5wA3CXWvp4uXViI3WLL+rG761KIcSF3Ru/H38j9CHJrAb ++7lsq+KePRXBOy5nAliRn+/4Qh8st2j1da3Ptfb/EX3C8CSlrdP6oDyp+l3cpaDvRKS+1ujl5BOW +F3sGPjLtx7dCvHaj2GU4Kzg1USEODm8uNBNA4StnDG1KQTAYI1oyVZnJF+A83vbsea0rWBmirSwi +GpWOvpaQXUJXxPkUAzUrHC1RVwinOt4/5Mi0A3PCwSaAuwtCH60NryZy2sy+s6ODWA2CxR9GUeOc +GMyNm43sSet1UNWMKFnKdDTajAshqx7qG+XH/RU+wBeq+yNuJkbL+vmxcmtpzyKEC2IPrNkZAJSi +djzULZrtBJ4tBmIQN1IchXIbJ+XMxjHsN+xjWZsLHXbMfjKaiJUINlK73nZfdklJrX+9ZSCyycEr +dhh2n1ax +-----END CERTIFICATE----- + +Certigna Root CA +================ +-----BEGIN CERTIFICATE----- +MIIGWzCCBEOgAwIBAgIRAMrpG4nxVQMNo+ZBbcTjpuEwDQYJKoZIhvcNAQELBQAwWjELMAkGA1UE +BhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczEcMBoGA1UECwwTMDAwMiA0ODE0NjMwODEwMDAzNjEZ +MBcGA1UEAwwQQ2VydGlnbmEgUm9vdCBDQTAeFw0xMzEwMDEwODMyMjdaFw0zMzEwMDEwODMyMjda +MFoxCzAJBgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxHDAaBgNVBAsMEzAwMDIgNDgxNDYz +MDgxMDAwMzYxGTAXBgNVBAMMEENlcnRpZ25hIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQDNGDllGlmx6mQWDoyUJJV8g9PFOSbcDO8WV43X2KyjQn+Cyu3NW9sOty3tRQgX +stmzy9YXUnIo245Onoq2C/mehJpNdt4iKVzSs9IGPjA5qXSjklYcoW9MCiBtnyN6tMbaLOQdLNyz +KNAT8kxOAkmhVECe5uUFoC2EyP+YbNDrihqECB63aCPuI9Vwzm1RaRDuoXrC0SIxwoKF0vJVdlB8 +JXrJhFwLrN1CTivngqIkicuQstDuI7pmTLtipPlTWmR7fJj6o0ieD5Wupxj0auwuA0Wv8HT4Ks16 +XdG+RCYyKfHx9WzMfgIhC59vpD++nVPiz32pLHxYGpfhPTc3GGYo0kDFUYqMwy3OU4gkWGQwFsWq +4NYKpkDfePb1BHxpE4S80dGnBs8B92jAqFe7OmGtBIyT46388NtEbVncSVmurJqZNjBBe3YzIoej +wpKGbvlw7q6Hh5UbxHq9MfPU0uWZ/75I7HX1eBYdpnDBfzwboZL7z8g81sWTCo/1VTp2lc5ZmIoJ +lXcymoO6LAQ6l73UL77XbJuiyn1tJslV1c/DeVIICZkHJC1kJWumIWmbat10TWuXekG9qxf5kBdI +jzb5LdXF2+6qhUVB+s06RbFo5jZMm5BX7CO5hwjCxAnxl4YqKE3idMDaxIzb3+KhF1nOJFl0Mdp/ +/TBt2dzhauH8XwIDAQABo4IBGjCCARYwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw +HQYDVR0OBBYEFBiHVuBud+4kNTxOc5of1uHieX4rMB8GA1UdIwQYMBaAFBiHVuBud+4kNTxOc5of +1uHieX4rMEQGA1UdIAQ9MDswOQYEVR0gADAxMC8GCCsGAQUFBwIBFiNodHRwczovL3d3d3cuY2Vy +dGlnbmEuZnIvYXV0b3JpdGVzLzBtBgNVHR8EZjBkMC+gLaArhilodHRwOi8vY3JsLmNlcnRpZ25h +LmZyL2NlcnRpZ25hcm9vdGNhLmNybDAxoC+gLYYraHR0cDovL2NybC5kaGlteW90aXMuY29tL2Nl +cnRpZ25hcm9vdGNhLmNybDANBgkqhkiG9w0BAQsFAAOCAgEAlLieT/DjlQgi581oQfccVdV8AOIt +OoldaDgvUSILSo3L6btdPrtcPbEo/uRTVRPPoZAbAh1fZkYJMyjhDSSXcNMQH+pkV5a7XdrnxIxP +TGRGHVyH41neQtGbqH6mid2PHMkwgu07nM3A6RngatgCdTer9zQoKJHyBApPNeNgJgH60BGM+RFq +7q89w1DTj18zeTyGqHNFkIwgtnJzFyO+B2XleJINugHA64wcZr+shncBlA2c5uk5jR+mUYyZDDl3 +4bSb+hxnV29qao6pK0xXeXpXIs/NX2NGjVxZOob4Mkdio2cNGJHc+6Zr9UhhcyNZjgKnvETq9Emd +8VRY+WCv2hikLyhF3HqgiIZd8zvn/yk1gPxkQ5Tm4xxvvq0OKmOZK8l+hfZx6AYDlf7ej0gcWtSS +6Cvu5zHbugRqh5jnxV/vfaci9wHYTfmJ0A6aBVmknpjZbyvKcL5kwlWj9Omvw5Ip3IgWJJk8jSaY +tlu3zM63Nwf9JtmYhST/WSMDmu2dnajkXjjO11INb9I/bbEFa0nOipFGc/T2L/Coc3cOZayhjWZS +aX5LaAzHHjcng6WMxwLkFM1JAbBzs/3GkDpv0mztO+7skb6iQ12LAEpmJURw3kAP+HwV96LOPNde +E4yBFxgX0b3xdxA61GU5wSesVywlVP+i2k+KYTlerj1KjL0= +-----END CERTIFICATE----- + +emSign Root CA - G1 +=================== +-----BEGIN CERTIFICATE----- +MIIDlDCCAnygAwIBAgIKMfXkYgxsWO3W2DANBgkqhkiG9w0BAQsFADBnMQswCQYDVQQGEwJJTjET +MBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRl +ZDEcMBoGA1UEAxMTZW1TaWduIFJvb3QgQ0EgLSBHMTAeFw0xODAyMTgxODMwMDBaFw00MzAyMTgx +ODMwMDBaMGcxCzAJBgNVBAYTAklOMRMwEQYDVQQLEwplbVNpZ24gUEtJMSUwIwYDVQQKExxlTXVk +aHJhIFRlY2hub2xvZ2llcyBMaW1pdGVkMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEcxMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAk0u76WaK7p1b1TST0Bsew+eeuGQzf2N4aLTN +LnF115sgxk0pvLZoYIr3IZpWNVrzdr3YzZr/k1ZLpVkGoZM0Kd0WNHVO8oG0x5ZOrRkVUkr+PHB1 +cM2vK6sVmjM8qrOLqs1D/fXqcP/tzxE7lM5OMhbTI0Aqd7OvPAEsbO2ZLIvZTmmYsvePQbAyeGHW +DV/D+qJAkh1cF+ZwPjXnorfCYuKrpDhMtTk1b+oDafo6VGiFbdbyL0NVHpENDtjVaqSW0RM8LHhQ +6DqS0hdW5TUaQBw+jSztOd9C4INBdN+jzcKGYEho42kLVACL5HZpIQ15TjQIXhTCzLG3rdd8cIrH +hQIDAQABo0IwQDAdBgNVHQ4EFgQU++8Nhp6w492pufEhF38+/PB3KxowDgYDVR0PAQH/BAQDAgEG +MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAFn/8oz1h31xPaOfG1vR2vjTnGs2 +vZupYeveFix0PZ7mddrXuqe8QhfnPZHr5X3dPpzxz5KsbEjMwiI/aTvFthUvozXGaCocV685743Q +NcMYDHsAVhzNixl03r4PEuDQqqE/AjSxcM6dGNYIAwlG7mDgfrbESQRRfXBgvKqy/3lyeqYdPV8q ++Mri/Tm3R7nrft8EI6/6nAYH6ftjk4BAtcZsCjEozgyfz7MjNYBBjWzEN3uBL4ChQEKF6dk4jeih +U80Bv2noWgbyRQuQ+q7hv53yrlc8pa6yVvSLZUDp/TGBLPQ5Cdjua6e0ph0VpZj3AYHYhX3zUVxx +iN66zB+Afko= +-----END CERTIFICATE----- + +emSign ECC Root CA - G3 +======================= +-----BEGIN CERTIFICATE----- +MIICTjCCAdOgAwIBAgIKPPYHqWhwDtqLhDAKBggqhkjOPQQDAzBrMQswCQYDVQQGEwJJTjETMBEG +A1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEg +MB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0gRzMwHhcNMTgwMjE4MTgzMDAwWhcNNDMwMjE4 +MTgzMDAwWjBrMQswCQYDVQQGEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11 +ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0g +RzMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQjpQy4LRL1KPOxst3iAhKAnjlfSU2fySU0WXTsuwYc +58Byr+iuL+FBVIcUqEqy6HyC5ltqtdyzdc6LBtCGI79G1Y4PPwT01xySfvalY8L1X44uT6EYGQIr +MgqCZH0Wk9GjQjBAMB0GA1UdDgQWBBR8XQKEE9TMipuBzhccLikenEhjQjAOBgNVHQ8BAf8EBAMC +AQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNpADBmAjEAvvNhzwIQHWSVB7gYboiFBS+D +CBeQyh+KTOgNG3qxrdWBCUfvO6wIBHxcmbHtRwfSAjEAnbpV/KlK6O3t5nYBQnvI+GDZjVGLVTv7 +jHvrZQnD+JbNR6iC8hZVdyR+EhCVBCyj +-----END CERTIFICATE----- + +emSign Root CA - C1 +=================== +-----BEGIN CERTIFICATE----- +MIIDczCCAlugAwIBAgILAK7PALrEzzL4Q7IwDQYJKoZIhvcNAQELBQAwVjELMAkGA1UEBhMCVVMx +EzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQDExNlbVNp +Z24gUm9vdCBDQSAtIEMxMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowVjELMAkGA1UE +BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQD +ExNlbVNpZ24gUm9vdCBDQSAtIEMxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz+up +ufGZBczYKCFK83M0UYRWEPWgTywS4/oTmifQz/l5GnRfHXk5/Fv4cI7gklL35CX5VIPZHdPIWoU/ +Xse2B+4+wM6ar6xWQio5JXDWv7V7Nq2s9nPczdcdioOl+yuQFTdrHCZH3DspVpNqs8FqOp099cGX +OFgFixwR4+S0uF2FHYP+eF8LRWgYSKVGczQ7/g/IdrvHGPMF0Ybzhe3nudkyrVWIzqa2kbBPrH4V +I5b2P/AgNBbeCsbEBEV5f6f9vtKppa+cxSMq9zwhbL2vj07FOrLzNBL834AaSaTUqZX3noleooms +lMuoaJuvimUnzYnu3Yy1aylwQ6BpC+S5DwIDAQABo0IwQDAdBgNVHQ4EFgQU/qHgcB4qAzlSWkK+ +XJGFehiqTbUwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQAD +ggEBAMJKVvoVIXsoounlHfv4LcQ5lkFMOycsxGwYFYDGrK9HWS8mC+M2sO87/kOXSTKZEhVb3xEp +/6tT+LvBeA+snFOvV71ojD1pM/CjoCNjO2RnIkSt1XHLVip4kqNPEjE2NuLe/gDEo2APJ62gsIq1 +NnpSob0n9CAnYuhNlCQT5AoE6TyrLshDCUrGYQTlSTR+08TI9Q/Aqum6VF7zYytPT1DU/rl7mYw9 +wC68AivTxEDkigcxHpvOJpkT+xHqmiIMERnHXhuBUDDIlhJu58tBf5E7oke3VIAb3ADMmpDqw8NQ +BmIMMMAVSKeoWXzhriKi4gp6D/piq1JM4fHfyr6DDUI= +-----END CERTIFICATE----- + +emSign ECC Root CA - C3 +======================= +-----BEGIN CERTIFICATE----- +MIICKzCCAbGgAwIBAgIKe3G2gla4EnycqDAKBggqhkjOPQQDAzBaMQswCQYDVQQGEwJVUzETMBEG +A1UECxMKZW1TaWduIFBLSTEUMBIGA1UEChMLZU11ZGhyYSBJbmMxIDAeBgNVBAMTF2VtU2lnbiBF +Q0MgUm9vdCBDQSAtIEMzMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowWjELMAkGA1UE +BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMSAwHgYDVQQD +ExdlbVNpZ24gRUNDIFJvb3QgQ0EgLSBDMzB2MBAGByqGSM49AgEGBSuBBAAiA2IABP2lYa57JhAd +6bciMK4G9IGzsUJxlTm801Ljr6/58pc1kjZGDoeVjbk5Wum739D+yAdBPLtVb4OjavtisIGJAnB9 +SMVK4+kiVCJNk7tCDK93nCOmfddhEc5lx/h//vXyqaNCMEAwHQYDVR0OBBYEFPtaSNCAIEDyqOkA +B2kZd6fmw/TPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gA +MGUCMQC02C8Cif22TGK6Q04ThHK1rt0c3ta13FaPWEBaLd4gTCKDypOofu4SQMfWh0/434UCMBwU +ZOR8loMRnLDRWmFLpg9J0wD8ofzkpf9/rdcw0Md3f76BB1UwUCAU9Vc4CqgxUQ== +-----END CERTIFICATE----- + +Hongkong Post Root CA 3 +======================= +-----BEGIN CERTIFICATE----- +MIIFzzCCA7egAwIBAgIUCBZfikyl7ADJk0DfxMauI7gcWqQwDQYJKoZIhvcNAQELBQAwbzELMAkG +A1UEBhMCSEsxEjAQBgNVBAgTCUhvbmcgS29uZzESMBAGA1UEBxMJSG9uZyBLb25nMRYwFAYDVQQK +Ew1Ib25na29uZyBQb3N0MSAwHgYDVQQDExdIb25na29uZyBQb3N0IFJvb3QgQ0EgMzAeFw0xNzA2 +MDMwMjI5NDZaFw00MjA2MDMwMjI5NDZaMG8xCzAJBgNVBAYTAkhLMRIwEAYDVQQIEwlIb25nIEtv +bmcxEjAQBgNVBAcTCUhvbmcgS29uZzEWMBQGA1UEChMNSG9uZ2tvbmcgUG9zdDEgMB4GA1UEAxMX +SG9uZ2tvbmcgUG9zdCBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz +iNfqzg8gTr7m1gNt7ln8wlffKWihgw4+aMdoWJwcYEuJQwy51BWy7sFOdem1p+/l6TWZ5Mwc50tf +jTMwIDNT2aa71T4Tjukfh0mtUC1Qyhi+AViiE3CWu4mIVoBc+L0sPOFMV4i707mV78vH9toxdCim +5lSJ9UExyuUmGs2C4HDaOym71QP1mbpV9WTRYA6ziUm4ii8F0oRFKHyPaFASePwLtVPLwpgchKOe +sL4jpNrcyCse2m5FHomY2vkALgbpDDtw1VAliJnLzXNg99X/NWfFobxeq81KuEXryGgeDQ0URhLj +0mRiikKYvLTGCAj4/ahMZJx2Ab0vqWwzD9g/KLg8aQFChn5pwckGyuV6RmXpwtZQQS4/t+TtbNe/ +JgERohYpSms0BpDsE9K2+2p20jzt8NYt3eEV7KObLyzJPivkaTv/ciWxNoZbx39ri1UbSsUgYT2u +y1DhCDq+sI9jQVMwCFk8mB13umOResoQUGC/8Ne8lYePl8X+l2oBlKN8W4UdKjk60FSh0Tlxnf0h ++bV78OLgAo9uliQlLKAeLKjEiafv7ZkGL7YKTE/bosw3Gq9HhS2KX8Q0NEwA/RiTZxPRN+ZItIsG +xVd7GYYKecsAyVKvQv83j+GjHno9UKtjBucVtT+2RTeUN7F+8kjDf8V1/peNRY8apxpyKBpADwID +AQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQXnc0e +i9Y5K3DTXNSguB+wAPzFYTAdBgNVHQ4EFgQUF53NHovWOStw01zUoLgfsAD8xWEwDQYJKoZIhvcN +AQELBQADggIBAFbVe27mIgHSQpsY1Q7XZiNc4/6gx5LS6ZStS6LG7BJ8dNVI0lkUmcDrudHr9Egw +W62nV3OZqdPlt9EuWSRY3GguLmLYauRwCy0gUCCkMpXRAJi70/33MvJJrsZ64Ee+bs7Lo3I6LWld +y8joRTnU+kLBEUx3XZL7av9YROXrgZ6voJmtvqkBZss4HTzfQx/0TW60uhdG/H39h4F5ag0zD/ov ++BS5gLNdTaqX4fnkGMX41TiMJjz98iji7lpJiCzfeT2OnpA8vUFKOt1b9pq0zj8lMH8yfaIDlNDc +eqFS3m6TjRgm/VWsvY+b0s+v54Ysyx8Jb6NvqYTUc79NoXQbTiNg8swOqn+knEwlqLJmOzj/2ZQw +9nKEvmhVEA/GcywWaZMH/rFF7buiVWqw2rVKAiUnhde3t4ZEFolsgCs+l6mc1X5VTMbeRRAc6uk7 +nwNT7u56AQIWeNTowr5GdogTPyK7SBIdUgC0An4hGh6cJfTzPV4e0hz5sy229zdcxsshTrD3mUcY +hcErulWuBurQB7Lcq9CClnXO0lD+mefPL5/ndtFhKvshuzHQqp9HpLIiyhY6UFfEW0NnxWViA0kB +60PZ2Pierc+xYw5F9KBaLJstxabArahH9CdMOA0uG0k7UvToiIMrVCjU8jVStDKDYmlkDJGcn5fq +dBb9HxEGmpv0 +-----END CERTIFICATE----- + +Entrust Root Certification Authority - G4 +========================================= +-----BEGIN CERTIFICATE----- +MIIGSzCCBDOgAwIBAgIRANm1Q3+vqTkPAAAAAFVlrVgwDQYJKoZIhvcNAQELBQAwgb4xCzAJBgNV +BAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3Qu +bmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxNSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1 +dGhvcml6ZWQgdXNlIG9ubHkxMjAwBgNVBAMTKUVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1 +dGhvcml0eSAtIEc0MB4XDTE1MDUyNzExMTExNloXDTM3MTIyNzExNDExNlowgb4xCzAJBgNVBAYT +AlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0 +L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxNSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxMjAwBgNVBAMTKUVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhv +cml0eSAtIEc0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsewsQu7i0TD/pZJH4i3D +umSXbcr3DbVZwbPLqGgZ2K+EbTBwXX7zLtJTmeH+H17ZSK9dE43b/2MzTdMAArzE+NEGCJR5WIoV +3imz/f3ET+iq4qA7ec2/a0My3dl0ELn39GjUu9CH1apLiipvKgS1sqbHoHrmSKvS0VnM1n4j5pds +8ELl3FFLFUHtSUrJ3hCX1nbB76W1NhSXNdh4IjVS70O92yfbYVaCNNzLiGAMC1rlLAHGVK/XqsEQ +e9IFWrhAnoanw5CGAlZSCXqc0ieCU0plUmr1POeo8pyvi73TDtTUXm6Hnmo9RR3RXRv06QqsYJn7 +ibT/mCzPfB3pAqoEmh643IhuJbNsZvc8kPNXwbMv9W3y+8qh+CmdRouzavbmZwe+LGcKKh9asj5X +xNMhIWNlUpEbsZmOeX7m640A2Vqq6nPopIICR5b+W45UYaPrL0swsIsjdXJ8ITzI9vF01Bx7owVV +7rtNOzK+mndmnqxpkCIHH2E6lr7lmk/MBTwoWdPBDFSoWWG9yHJM6Nyfh3+9nEg2XpWjDrk4JFX8 +dWbrAuMINClKxuMrLzOg2qOGpRKX/YAr2hRC45K9PvJdXmd0LhyIRyk0X+IyqJwlN4y6mACXi0mW +Hv0liqzc2thddG5msP9E36EYxr5ILzeUePiVSj9/E15dWf10hkNjc0kCAwEAAaNCMEAwDwYDVR0T +AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJ84xFYjwznooHFs6FRM5Og6sb9n +MA0GCSqGSIb3DQEBCwUAA4ICAQAS5UKme4sPDORGpbZgQIeMJX6tuGguW8ZAdjwD+MlZ9POrYs4Q +jbRaZIxowLByQzTSGwv2LFPSypBLhmb8qoMi9IsabyZIrHZ3CL/FmFz0Jomee8O5ZDIBf9PD3Vht +7LGrhFV0d4QEJ1JrhkzO3bll/9bGXp+aEJlLdWr+aumXIOTkdnrG0CSqkM0gkLpHZPt/B7NTeLUK +YvJzQ85BK4FqLoUWlFPUa19yIqtRLULVAJyZv967lDtX/Zr1hstWO1uIAeV8KEsD+UmDfLJ/fOPt +jqF/YFOOVZ1QNBIPt5d7bIdKROf1beyAN/BYGW5KaHbwH5Lk6rWS02FREAutp9lfx1/cH6NcjKF+ +m7ee01ZvZl4HliDtC3T7Zk6LERXpgUl+b7DUUH8i119lAg2m9IUe2K4GS0qn0jFmwvjO5QimpAKW +RGhXxNUzzxkvFMSUHHuk2fCfDrGA4tGeEWSpiBE6doLlYsKA2KSD7ZPvfC+QsDJMlhVoSFLUmQjA +JOgc47OlIQ6SwJAfzyBfyjs4x7dtOvPmRLgOMWuIjnDrnBdSqEGULoe256YSxXXfW8AKbnuk5F6G ++TaU33fD6Q3AOfF5u0aOq0NZJ7cguyPpVkAh7DE9ZapD8j3fcEThuk0mEDuYn/PIjhs4ViFqUZPT +kcpG2om3PVODLAgfi49T3f+sHw== +-----END CERTIFICATE----- + +Microsoft ECC Root Certificate Authority 2017 +============================================= +-----BEGIN CERTIFICATE----- +MIICWTCCAd+gAwIBAgIQZvI9r4fei7FK6gxXMQHC7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV +UzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNyb3NvZnQgRUND +IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwHhcNMTkxMjE4MjMwNjQ1WhcNNDIwNzE4 +MjMxNjA0WjBlMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYw +NAYDVQQDEy1NaWNyb3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwdjAQ +BgcqhkjOPQIBBgUrgQQAIgNiAATUvD0CQnVBEyPNgASGAlEvaqiBYgtlzPbKnR5vSmZRogPZnZH6 +thaxjG7efM3beaYvzrvOcS/lpaso7GMEZpn4+vKTEAXhgShC48Zo9OYbhGBKia/teQ87zvH2RPUB +eMCjVDBSMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTIy5lycFIM ++Oa+sgRXKSrPQhDtNTAQBgkrBgEEAYI3FQEEAwIBADAKBggqhkjOPQQDAwNoADBlAjBY8k3qDPlf +Xu5gKcs68tvWMoQZP3zVL8KxzJOuULsJMsbG7X7JNpQS5GiFBqIb0C8CMQCZ6Ra0DvpWSNSkMBaR +eNtUjGUBiudQZsIxtzm6uBoiB078a1QWIP8rtedMDE2mT3M= +-----END CERTIFICATE----- + +Microsoft RSA Root Certificate Authority 2017 +============================================= +-----BEGIN CERTIFICATE----- +MIIFqDCCA5CgAwIBAgIQHtOXCV/YtLNHcB6qvn9FszANBgkqhkiG9w0BAQwFADBlMQswCQYDVQQG +EwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNyb3NvZnQg +UlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwHhcNMTkxMjE4MjI1MTIyWhcNNDIw +NzE4MjMwMDIzWjBlMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u +MTYwNAYDVQQDEy1NaWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcw +ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKW76UM4wplZEWCpW9R2LBifOZNt9GkMml +7Xhqb0eRaPgnZ1AzHaGm++DlQ6OEAlcBXZxIQIJTELy/xztokLaCLeX0ZdDMbRnMlfl7rEqUrQ7e +S0MdhweSE5CAg2Q1OQT85elss7YfUJQ4ZVBcF0a5toW1HLUX6NZFndiyJrDKxHBKrmCk3bPZ7Pw7 +1VdyvD/IybLeS2v4I2wDwAW9lcfNcztmgGTjGqwu+UcF8ga2m3P1eDNbx6H7JyqhtJqRjJHTOoI+ +dkC0zVJhUXAoP8XFWvLJjEm7FFtNyP9nTUwSlq31/niol4fX/V4ggNyhSyL71Imtus5Hl0dVe49F +yGcohJUcaDDv70ngNXtk55iwlNpNhTs+VcQor1fznhPbRiefHqJeRIOkpcrVE7NLP8TjwuaGYaRS +MLl6IE9vDzhTyzMMEyuP1pq9KsgtsRx9S1HKR9FIJ3Jdh+vVReZIZZ2vUpC6W6IYZVcSn2i51BVr +lMRpIpj0M+Dt+VGOQVDJNE92kKz8OMHY4Xu54+OU4UZpyw4KUGsTuqwPN1q3ErWQgR5WrlcihtnJ +0tHXUeOrO8ZV/R4O03QK0dqq6mm4lyiPSMQH+FJDOvTKVTUssKZqwJz58oHhEmrARdlns87/I6KJ +ClTUFLkqqNfs+avNJVgyeY+QW5g5xAgGwax/Dj0ApQIDAQABo1QwUjAOBgNVHQ8BAf8EBAMCAYYw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUCctZf4aycI8awznjwNnpv7tNsiMwEAYJKwYBBAGC +NxUBBAMCAQAwDQYJKoZIhvcNAQEMBQADggIBAKyvPl3CEZaJjqPnktaXFbgToqZCLgLNFgVZJ8og +6Lq46BrsTaiXVq5lQ7GPAJtSzVXNUzltYkyLDVt8LkS/gxCP81OCgMNPOsduET/m4xaRhPtthH80 +dK2Jp86519efhGSSvpWhrQlTM93uCupKUY5vVau6tZRGrox/2KJQJWVggEbbMwSubLWYdFQl3JPk ++ONVFT24bcMKpBLBaYVu32TxU5nhSnUgnZUP5NbcA/FZGOhHibJXWpS2qdgXKxdJ5XbLwVaZOjex +/2kskZGT4d9Mozd2TaGf+G0eHdP67Pv0RR0Tbc/3WeUiJ3IrhvNXuzDtJE3cfVa7o7P4NHmJweDy +AmH3pvwPuxwXC65B2Xy9J6P9LjrRk5Sxcx0ki69bIImtt2dmefU6xqaWM/5TkshGsRGRxpl/j8nW +ZjEgQRCHLQzWwa80mMpkg/sTV9HB8Dx6jKXB/ZUhoHHBk2dxEuqPiAppGWSZI1b7rCoucL5mxAyE +7+WL85MB+GqQk2dLsmijtWKP6T+MejteD+eMuMZ87zf9dOLITzNy4ZQ5bb0Sr74MTnB8G2+NszKT +c0QWbej09+CVgI+WXTik9KveCjCHk9hNAHFiRSdLOkKEW39lt2c0Ui2cFmuqqNh7o0JMcccMyj6D +5KbvtwEwXlGjefVwaaZBRA+GsCyRxj3qrg+E +-----END CERTIFICATE----- + +e-Szigno Root CA 2017 +===================== +-----BEGIN CERTIFICATE----- +MIICQDCCAeWgAwIBAgIMAVRI7yH9l1kN9QQKMAoGCCqGSM49BAMCMHExCzAJBgNVBAYTAkhVMREw +DwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUt +MjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25vIFJvb3QgQ0EgMjAxNzAeFw0xNzA4MjIxMjA3MDZa +Fw00MjA4MjIxMjA3MDZaMHExCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UE +CgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3pp +Z25vIFJvb3QgQ0EgMjAxNzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJbcPYrYsHtvxie+RJCx +s1YVe45DJH0ahFnuY2iyxl6H0BVIHqiQrb1TotreOpCmYF9oMrWGQd+HWyx7xf58etqjYzBhMA8G +A1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSHERUI0arBeAyxr87GyZDv +vzAEwDAfBgNVHSMEGDAWgBSHERUI0arBeAyxr87GyZDvvzAEwDAKBggqhkjOPQQDAgNJADBGAiEA +tVfd14pVCzbhhkT61NlojbjcI4qKDdQvfepz7L9NbKgCIQDLpbQS+ue16M9+k/zzNY9vTlp8tLxO +svxyqltZ+efcMQ== +-----END CERTIFICATE----- + +certSIGN Root CA G2 +=================== +-----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIJEQA0tk7GNi02MA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAlJPMRQw +EgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJR04gUk9PVCBDQSBHMjAeFw0xNzAy +MDYwOTI3MzVaFw00MjAyMDYwOTI3MzVaMEExCzAJBgNVBAYTAlJPMRQwEgYDVQQKEwtDRVJUU0lH +TiBTQTEcMBoGA1UECxMTY2VydFNJR04gUk9PVCBDQSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBAMDFdRmRfUR0dIf+DjuW3NgBFszuY5HnC2/OOwppGnzC46+CjobXXo9X69MhWf05 +N0IwvlDqtg+piNguLWkh59E3GE59kdUWX2tbAMI5Qw02hVK5U2UPHULlj88F0+7cDBrZuIt4Imfk +abBoxTzkbFpG583H+u/E7Eu9aqSs/cwoUe+StCmrqzWaTOTECMYmzPhpn+Sc8CnTXPnGFiWeI8Mg +wT0PPzhAsP6CRDiqWhqKa2NYOLQV07YRaXseVO6MGiKscpc/I1mbySKEwQdPzH/iV8oScLumZfNp +dWO9lfsbl83kqK/20U6o2YpxJM02PbyWxPFsqa7lzw1uKA2wDrXKUXt4FMMgL3/7FFXhEZn91Qqh +ngLjYl/rNUssuHLoPj1PrCy7Lobio3aP5ZMqz6WryFyNSwb/EkaseMsUBzXgqd+L6a8VTxaJW732 +jcZZroiFDsGJ6x9nxUWO/203Nit4ZoORUSs9/1F3dmKh7Gc+PoGD4FapUB8fepmrY7+EF3fxDTvf +95xhszWYijqy7DwaNz9+j5LP2RIUZNoQAhVB/0/E6xyjyfqZ90bp4RjZsbgyLcsUDFDYg2WD7rlc +z8sFWkz6GZdr1l0T08JcVLwyc6B49fFtHsufpaafItzRUZ6CeWRgKRM+o/1Pcmqr4tTluCRVLERL +iohEnMqE0yo7AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1Ud +DgQWBBSCIS1mxteg4BXrzkwJd8RgnlRuAzANBgkqhkiG9w0BAQsFAAOCAgEAYN4auOfyYILVAzOB +ywaK8SJJ6ejqkX/GM15oGQOGO0MBzwdw5AgeZYWR5hEit/UCI46uuR59H35s5r0l1ZUa8gWmr4UC +b6741jH/JclKyMeKqdmfS0mbEVeZkkMR3rYzpMzXjWR91M08KCy0mpbqTfXERMQlqiCA2ClV9+BB +/AYm/7k29UMUA2Z44RGx2iBfRgB4ACGlHgAoYXhvqAEBj500mv/0OJD7uNGzcgbJceaBxXntC6Z5 +8hMLnPddDnskk7RI24Zf3lCGeOdA5jGokHZwYa+cNywRtYK3qq4kNFtyDGkNzVmf9nGvnAvRCjj5 +BiKDUyUM/FHE5r7iOZULJK2v0ZXkltd0ZGtxTgI8qoXzIKNDOXZbbFD+mpwUHmUUihW9o4JFWklW +atKcsWMy5WHgUyIOpwpJ6st+H6jiYoD2EEVSmAYY3qXNL3+q1Ok+CHLsIwMCPKaq2LxndD0UF/tU +Sxfj03k9bWtJySgOLnRQvwzZRjoQhsmnP+mg7H/rpXdYaXHmgwo38oZJar55CJD2AhZkPuXaTH4M +NMn5X7azKFGnpyuqSfqNZSlO42sTp5SjLVFteAxEy9/eCG/Oo2Sr05WE1LlSVHJ7liXMvGnjSG4N +0MedJ5qq+BOS3R7fY581qRY27Iy4g/Q9iY/NtBde17MXQRBdJ3NghVdJIgc= +-----END CERTIFICATE----- + +Trustwave Global Certification Authority +======================================== +-----BEGIN CERTIFICATE----- +MIIF2jCCA8KgAwIBAgIMBfcOhtpJ80Y1LrqyMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJV +UzERMA8GA1UECAwISWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28xITAfBgNVBAoMGFRydXN0d2F2 +ZSBIb2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1c3R3YXZlIEdsb2JhbCBDZXJ0aWZpY2F0aW9u +IEF1dGhvcml0eTAeFw0xNzA4MjMxOTM0MTJaFw00MjA4MjMxOTM0MTJaMIGIMQswCQYDVQQGEwJV +UzERMA8GA1UECAwISWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28xITAfBgNVBAoMGFRydXN0d2F2 +ZSBIb2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1c3R3YXZlIEdsb2JhbCBDZXJ0aWZpY2F0aW9u +IEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALldUShLPDeS0YLOvR29 +zd24q88KPuFd5dyqCblXAj7mY2Hf8g+CY66j96xz0XznswuvCAAJWX/NKSqIk4cXGIDtiLK0thAf +LdZfVaITXdHG6wZWiYj+rDKd/VzDBcdu7oaJuogDnXIhhpCujwOl3J+IKMujkkkP7NAP4m1ET4Bq +stTnoApTAbqOl5F2brz81Ws25kCI1nsvXwXoLG0R8+eyvpJETNKXpP7ScoFDB5zpET71ixpZfR9o +WN0EACyW80OzfpgZdNmcc9kYvkHHNHnZ9GLCQ7mzJ7Aiy/k9UscwR7PJPrhq4ufogXBeQotPJqX+ +OsIgbrv4Fo7NDKm0G2x2EOFYeUY+VM6AqFcJNykbmROPDMjWLBz7BegIlT1lRtzuzWniTY+HKE40 +Cz7PFNm73bZQmq131BnW2hqIyE4bJ3XYsgjxroMwuREOzYfwhI0Vcnyh78zyiGG69Gm7DIwLdVcE +uE4qFC49DxweMqZiNu5m4iK4BUBjECLzMx10coos9TkpoNPnG4CELcU9402x/RpvumUHO1jsQkUm ++9jaJXLE9gCxInm943xZYkqcBW89zubWR2OZxiRvchLIrH+QtAuRcOi35hYQcRfO3gZPSEF9NUqj +ifLJS3tBEW1ntwiYTOURGa5CgNz7kAXU+FDKvuStx8KU1xad5hePrzb7AgMBAAGjQjBAMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFJngGWcNYtt2s9o9uFvo/ULSMQ6HMA4GA1UdDwEB/wQEAwIB +BjANBgkqhkiG9w0BAQsFAAOCAgEAmHNw4rDT7TnsTGDZqRKGFx6W0OhUKDtkLSGm+J1WE2pIPU/H +PinbbViDVD2HfSMF1OQc3Og4ZYbFdada2zUFvXfeuyk3QAUHw5RSn8pk3fEbK9xGChACMf1KaA0H +ZJDmHvUqoai7PF35owgLEQzxPy0QlG/+4jSHg9bP5Rs1bdID4bANqKCqRieCNqcVtgimQlRXtpla +4gt5kNdXElE1GYhBaCXUNxeEFfsBctyV3lImIJgm4nb1J2/6ADtKYdkNy1GTKv0WBpanI5ojSP5R +vbbEsLFUzt5sQa0WZ37b/TjNuThOssFgy50X31ieemKyJo90lZvkWx3SD92YHJtZuSPTMaCm/zjd +zyBP6VhWOmfD0faZmZ26NraAL4hHT4a/RDqA5Dccprrql5gR0IRiR2Qequ5AvzSxnI9O4fKSTx+O +856X3vOmeWqJcU9LJxdI/uz0UA9PSX3MReO9ekDFQdxhVicGaeVyQYHTtgGJoC86cnn+OjC/QezH +Yj6RS8fZMXZC+fc8Y+wmjHMMfRod6qh8h6jCJ3zhM0EPz8/8AKAigJ5Kp28AsEFFtyLKaEjFQqKu +3R3y4G5OBVixwJAWKqQ9EEC+j2Jjg6mcgn0tAumDMHzLJ8n9HmYAsC7TIS+OMxZsmO0QqAfWzJPP +29FpHOTKyeC2nOnOcXHebD8WpHk= +-----END CERTIFICATE----- + +Trustwave Global ECC P256 Certification Authority +================================================= +-----BEGIN CERTIFICATE----- +MIICYDCCAgegAwIBAgIMDWpfCD8oXD5Rld9dMAoGCCqGSM49BAMCMIGRMQswCQYDVQQGEwJVUzER +MA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBI +b2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDI1NiBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMxOTM1MTBaFw00MjA4MjMxOTM1MTBaMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRy +dXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDI1 +NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABH77bOYj +43MyCMpg5lOcunSNGLB4kFKA3TjASh3RqMyTpJcGOMoNFWLGjgEqZZ2q3zSRLoHB5DOSMcT9CTqm +P62jQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcGADAdBgNVHQ4EFgQUo0EGrJBt +0UrrdaVKEJmzsaGLSvcwCgYIKoZIzj0EAwIDRwAwRAIgB+ZU2g6gWrKuEZ+Hxbb/ad4lvvigtwjz +RM4q3wghDDcCIC0mA6AFvWvR9lz4ZcyGbbOcNEhjhAnFjXca4syc4XR7 +-----END CERTIFICATE----- + +Trustwave Global ECC P384 Certification Authority +================================================= +-----BEGIN CERTIFICATE----- +MIICnTCCAiSgAwIBAgIMCL2Fl2yZJ6SAaEc7MAoGCCqGSM49BAMDMIGRMQswCQYDVQQGEwJVUzER +MA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBI +b2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDM4NCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMxOTM2NDNaFw00MjA4MjMxOTM2NDNaMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRy +dXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDM4 +NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTB2MBAGByqGSM49AgEGBSuBBAAiA2IABGvaDXU1CDFH +Ba5FmVXxERMuSvgQMSOjfoPTfygIOiYaOs+Xgh+AtycJj9GOMMQKmw6sWASr9zZ9lCOkmwqKi6vr +/TklZvFe/oyujUF5nQlgziip04pt89ZF1PKYhDhloKNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNV +HQ8BAf8EBQMDBwYAMB0GA1UdDgQWBBRVqYSJ0sEyvRjLbKYHTsjnnb6CkDAKBggqhkjOPQQDAwNn +ADBkAjA3AZKXRRJ+oPM+rRk6ct30UJMDEr5E0k9BpIycnR+j9sKS50gU/k6bpZFXrsY3crsCMGcl +CrEMXu6pY5Jv5ZAL/mYiykf9ijH3g/56vxC+GCsej/YpHpRZ744hN8tRmKVuSw== +-----END CERTIFICATE----- + +NAVER Global Root Certification Authority +========================================= +-----BEGIN CERTIFICATE----- +MIIFojCCA4qgAwIBAgIUAZQwHqIL3fXFMyqxQ0Rx+NZQTQ0wDQYJKoZIhvcNAQEMBQAwaTELMAkG +A1UEBhMCS1IxJjAkBgNVBAoMHU5BVkVSIEJVU0lORVNTIFBMQVRGT1JNIENvcnAuMTIwMAYDVQQD +DClOQVZFUiBHbG9iYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MTgwODU4 +NDJaFw0zNzA4MTgyMzU5NTlaMGkxCzAJBgNVBAYTAktSMSYwJAYDVQQKDB1OQVZFUiBCVVNJTkVT +UyBQTEFURk9STSBDb3JwLjEyMDAGA1UEAwwpTkFWRVIgR2xvYmFsIFJvb3QgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC21PGTXLVAiQqrDZBb +UGOukJR0F0Vy1ntlWilLp1agS7gvQnXp2XskWjFlqxcX0TM62RHcQDaH38dq6SZeWYp34+hInDEW ++j6RscrJo+KfziFTowI2MMtSAuXaMl3Dxeb57hHHi8lEHoSTGEq0n+USZGnQJoViAbbJAh2+g1G7 +XNr4rRVqmfeSVPc0W+m/6imBEtRTkZazkVrd/pBzKPswRrXKCAfHcXLJZtM0l/aM9BhK4dA9WkW2 +aacp+yPOiNgSnABIqKYPszuSjXEOdMWLyEz59JuOuDxp7W87UC9Y7cSw0BwbagzivESq2M0UXZR4 +Yb8ObtoqvC8MC3GmsxY/nOb5zJ9TNeIDoKAYv7vxvvTWjIcNQvcGufFt7QSUqP620wbGQGHfnZ3z +VHbOUzoBppJB7ASjjw2i1QnK1sua8e9DXcCrpUHPXFNwcMmIpi3Ua2FzUCaGYQ5fG8Ir4ozVu53B +A0K6lNpfqbDKzE0K70dpAy8i+/Eozr9dUGWokG2zdLAIx6yo0es+nPxdGoMuK8u180SdOqcXYZai +cdNwlhVNt0xz7hlcxVs+Qf6sdWA7G2POAN3aCJBitOUt7kinaxeZVL6HSuOpXgRM6xBtVNbv8ejy +YhbLgGvtPe31HzClrkvJE+2KAQHJuFFYwGY6sWZLxNUxAmLpdIQM201GLQIDAQABo0IwQDAdBgNV +HQ4EFgQU0p+I36HNLL3s9TsBAZMzJ7LrYEswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB +Af8wDQYJKoZIhvcNAQEMBQADggIBADLKgLOdPVQG3dLSLvCkASELZ0jKbY7gyKoNqo0hV4/GPnrK +21HUUrPUloSlWGB/5QuOH/XcChWB5Tu2tyIvCZwTFrFsDDUIbatjcu3cvuzHV+YwIHHW1xDBE1UB +jCpD5EHxzzp6U5LOogMFDTjfArsQLtk70pt6wKGm+LUx5vR1yblTmXVHIloUFcd4G7ad6Qz4G3bx +hYTeodoS76TiEJd6eN4MUZeoIUCLhr0N8F5OSza7OyAfikJW4Qsav3vQIkMsRIz75Sq0bBwcupTg +E34h5prCy8VCZLQelHsIJchxzIdFV4XTnyliIoNRlwAYl3dqmJLJfGBs32x9SuRwTMKeuB330DTH +D8z7p/8Dvq1wkNoL3chtl1+afwkyQf3NosxabUzyqkn+Zvjp2DXrDige7kgvOtB5CTh8piKCk5XQ +A76+AqAF3SAi428diDRgxuYKuQl1C/AH6GmWNcf7I4GOODm4RStDeKLRLBT/DShycpWbXgnbiUSY +qqFJu3FS8r/2/yehNq+4tneI3TqkbZs0kNwUXTC/t+sX5Ie3cdCh13cV1ELX8vMxmV2b3RZtP+oG +I/hGoiLtk/bdmuYqh7GYVPEi92tF4+KOdh2ajcQGjTa3FPOdVGm3jjzVpG2Tgbet9r1ke8LJaDmg +kpzNNIaRkPpkUZ3+/uul9XXeifdy +-----END CERTIFICATE----- + +AC RAIZ FNMT-RCM SERVIDORES SEGUROS +=================================== +-----BEGIN CERTIFICATE----- +MIICbjCCAfOgAwIBAgIQYvYybOXE42hcG2LdnC6dlTAKBggqhkjOPQQDAzB4MQswCQYDVQQGEwJF +UzERMA8GA1UECgwIRk5NVC1SQ00xDjAMBgNVBAsMBUNlcmVzMRgwFgYDVQRhDA9WQVRFUy1RMjgy +NjAwNEoxLDAqBgNVBAMMI0FDIFJBSVogRk5NVC1SQ00gU0VSVklET1JFUyBTRUdVUk9TMB4XDTE4 +MTIyMDA5MzczM1oXDTQzMTIyMDA5MzczM1oweDELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQt +UkNNMQ4wDAYDVQQLDAVDZXJlczEYMBYGA1UEYQwPVkFURVMtUTI4MjYwMDRKMSwwKgYDVQQDDCNB +QyBSQUlaIEZOTVQtUkNNIFNFUlZJRE9SRVMgU0VHVVJPUzB2MBAGByqGSM49AgEGBSuBBAAiA2IA +BPa6V1PIyqvfNkpSIeSX0oNnnvBlUdBeh8dHsVnyV0ebAAKTRBdp20LHsbI6GA60XYyzZl2hNPk2 +LEnb80b8s0RpRBNm/dfF/a82Tc4DTQdxz69qBdKiQ1oKUm8BA06Oi6NCMEAwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFAG5L++/EYZg8k/QQW6rcx/n0m5JMAoGCCqG +SM49BAMDA2kAMGYCMQCuSuMrQMN0EfKVrRYj3k4MGuZdpSRea0R7/DjiT8ucRRcRTBQnJlU5dUoD +zBOQn5ICMQD6SmxgiHPz7riYYqnOK8LZiqZwMR2vsJRM60/G49HzYqc8/5MuB1xJAWdpEgJyv+c= +-----END CERTIFICATE----- + +GlobalSign Root R46 +=================== +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgISEdK7udcjGJ5AXwqdLdDfJWfRMA0GCSqGSIb3DQEBDAUAMEYxCzAJBgNV +BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQDExNHbG9iYWxTaWduIFJv +b3QgUjQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAX +BgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBSNDYwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCsrHQy6LNl5brtQyYdpokNRbopiLKkHWPd08Es +CVeJOaFV6Wc0dwxu5FUdUiXSE2te4R2pt32JMl8Nnp8semNgQB+msLZ4j5lUlghYruQGvGIFAha/ +r6gjA7aUD7xubMLL1aa7DOn2wQL7Id5m3RerdELv8HQvJfTqa1VbkNud316HCkD7rRlr+/fKYIje +2sGP1q7Vf9Q8g+7XFkyDRTNrJ9CG0Bwta/OrffGFqfUo0q3v84RLHIf8E6M6cqJaESvWJ3En7YEt +bWaBkoe0G1h6zD8K+kZPTXhc+CtI4wSEy132tGqzZfxCnlEmIyDLPRT5ge1lFgBPGmSXZgjPjHvj +K8Cd+RTyG/FWaha/LIWFzXg4mutCagI0GIMXTpRW+LaCtfOW3T3zvn8gdz57GSNrLNRyc0NXfeD4 +12lPFzYE+cCQYDdF3uYM2HSNrpyibXRdQr4G9dlkbgIQrImwTDsHTUB+JMWKmIJ5jqSngiCNI/on +ccnfxkF0oE32kRbcRoxfKWMxWXEM2G/CtjJ9++ZdU6Z+Ffy7dXxd7Pj2Fxzsx2sZy/N78CsHpdls +eVR2bJ0cpm4O6XkMqCNqo98bMDGfsVR7/mrLZqrcZdCinkqaByFrgY/bxFn63iLABJzjqls2k+g9 +vXqhnQt2sQvHnf3PmKgGwvgqo6GDoLclcqUC4wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA1yrc4GHqMywptWU4jaWSf8FmSwwDQYJKoZIhvcNAQEM +BQADggIBAHx47PYCLLtbfpIrXTncvtgdokIzTfnvpCo7RGkerNlFo048p9gkUbJUHJNOxO97k4Vg +JuoJSOD1u8fpaNK7ajFxzHmuEajwmf3lH7wvqMxX63bEIaZHU1VNaL8FpO7XJqti2kM3S+LGteWy +gxk6x9PbTZ4IevPuzz5i+6zoYMzRx6Fcg0XERczzF2sUyQQCPtIkpnnpHs6i58FZFZ8d4kuaPp92 +CC1r2LpXFNqD6v6MVenQTqnMdzGxRBF6XLE+0xRFFRhiJBPSy03OXIPBNvIQtQ6IbbjhVp+J3pZm +OUdkLG5NrmJ7v2B0GbhWrJKsFjLtrWhV/pi60zTe9Mlhww6G9kuEYO4Ne7UyWHmRVSyBQ7N0H3qq +JZ4d16GLuc1CLgSkZoNNiTW2bKg2SnkheCLQQrzRQDGQob4Ez8pn7fXwgNNgyYMqIgXQBztSvwye +qiv5u+YfjyW6hY0XHgL+XVAEV8/+LbzvXMAaq7afJMbfc2hIkCwU9D9SGuTSyxTDYWnP4vkYxboz +nxSjBF25cfe1lNj2M8FawTSLfJvdkzrnE6JwYZ+vj+vYxXX4M2bUdGc6N3ec592kD3ZDZopD8p/7 +DEJ4Y9HiD2971KE9dJeFt0g5QdYg/NA6s/rob8SKunE3vouXsXgxT7PntgMTzlSdriVZzH81Xwj3 +QEUxeCp6 +-----END CERTIFICATE----- + +GlobalSign Root E46 +=================== +-----BEGIN CERTIFICATE----- +MIICCzCCAZGgAwIBAgISEdK7ujNu1LzmJGjFDYQdmOhDMAoGCCqGSM49BAMDMEYxCzAJBgNVBAYT +AkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQDExNHbG9iYWxTaWduIFJvb3Qg +RTQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNV +BAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBFNDYwdjAQBgcq +hkjOPQIBBgUrgQQAIgNiAAScDrHPt+ieUnd1NPqlRqetMhkytAepJ8qUuwzSChDH2omwlwxwEwkB +jtjqR+q+soArzfwoDdusvKSGN+1wCAB16pMLey5SnCNoIwZD7JIvU4Tb+0cUB+hflGddyXqBPCCj +QjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQxCpCPtsad0kRL +gLWi5h+xEk8blTAKBggqhkjOPQQDAwNoADBlAjEA31SQ7Zvvi5QCkxeCmb6zniz2C5GMn0oUsfZk +vLtoURMMA/cVi4RguYv/Uo7njLwcAjA8+RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+ +CAezNIm8BZ/3Hobui3A= +-----END CERTIFICATE----- + +GLOBALTRUST 2020 +================ +-----BEGIN CERTIFICATE----- +MIIFgjCCA2qgAwIBAgILWku9WvtPilv6ZeUwDQYJKoZIhvcNAQELBQAwTTELMAkGA1UEBhMCQVQx +IzAhBgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVT +VCAyMDIwMB4XDTIwMDIxMDAwMDAwMFoXDTQwMDYxMDAwMDAwMFowTTELMAkGA1UEBhMCQVQxIzAh +BgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVTVCAy +MDIwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAri5WrRsc7/aVj6B3GyvTY4+ETUWi +D59bRatZe1E0+eyLinjF3WuvvcTfk0Uev5E4C64OFudBc/jbu9G4UeDLgztzOG53ig9ZYybNpyrO +VPu44sB8R85gfD+yc/LAGbaKkoc1DZAoouQVBGM+uq/ufF7MpotQsjj3QWPKzv9pj2gOlTblzLmM +CcpL3TGQlsjMH/1WljTbjhzqLL6FLmPdqqmV0/0plRPwyJiT2S0WR5ARg6I6IqIoV6Lr/sCMKKCm +fecqQjuCgGOlYx8ZzHyyZqjC0203b+J+BlHZRYQfEs4kUmSFC0iAToexIiIwquuuvuAC4EDosEKA +A1GqtH6qRNdDYfOiaxaJSaSjpCuKAsR49GiKweR6NrFvG5Ybd0mN1MkGco/PU+PcF4UgStyYJ9OR +JitHHmkHr96i5OTUawuzXnzUJIBHKWk7buis/UDr2O1xcSvy6Fgd60GXIsUf1DnQJ4+H4xj04KlG +DfV0OoIu0G4skaMxXDtG6nsEEFZegB31pWXogvziB4xiRfUg3kZwhqG8k9MedKZssCz3AwyIDMvU +clOGvGBG85hqwvG/Q/lwIHfKN0F5VVJjjVsSn8VoxIidrPIwq7ejMZdnrY8XD2zHc+0klGvIg5rQ +mjdJBKuxFshsSUktq6HQjJLyQUp5ISXbY9e2nKd+Qmn7OmMCAwEAAaNjMGEwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFNwuH9FhN3nkq9XVsxJxaD1qaJwiMB8GA1Ud +IwQYMBaAFNwuH9FhN3nkq9XVsxJxaD1qaJwiMA0GCSqGSIb3DQEBCwUAA4ICAQCR8EICaEDuw2jA +VC/f7GLDw56KoDEoqoOOpFaWEhCGVrqXctJUMHytGdUdaG/7FELYjQ7ztdGl4wJCXtzoRlgHNQIw +4Lx0SsFDKv/bGtCwr2zD/cuz9X9tAy5ZVp0tLTWMstZDFyySCstd6IwPS3BD0IL/qMy/pJTAvoe9 +iuOTe8aPmxadJ2W8esVCgmxcB9CpwYhgROmYhRZf+I/KARDOJcP5YBugxZfD0yyIMaK9MOzQ0MAS +8cE54+X1+NZK3TTN+2/BT+MAi1bikvcoskJ3ciNnxz8RFbLEAwW+uxF7Cr+obuf/WEPPm2eggAe2 +HcqtbepBEX4tdJP7wry+UUTF72glJ4DjyKDUEuzZpTcdN3y0kcra1LGWge9oXHYQSa9+pTeAsRxS +vTOBTI/53WXZFM2KJVj04sWDpQmQ1GwUY7VA3+vA/MRYfg0UFodUJ25W5HCEuGwyEn6CMUO+1918 +oa2u1qsgEu8KwxCMSZY13At1XrFP1U80DhEgB3VDRemjEdqso5nCtnkn4rnvyOL2NSl6dPrFf4IF +YqYK6miyeUcGbvJXqBUzxvd4Sj1Ce2t+/vdG6tHrju+IaFvowdlxfv1k7/9nR4hYJS8+hge9+6jl +gqispdNpQ80xiEmEU5LAsTkbOYMBMMTyqfrQA71yN2BWHzZ8vTmR9W0Nv3vXkg== +-----END CERTIFICATE----- + +ANF Secure Server Root CA +========================= +-----BEGIN CERTIFICATE----- +MIIF7zCCA9egAwIBAgIIDdPjvGz5a7EwDQYJKoZIhvcNAQELBQAwgYQxEjAQBgNVBAUTCUc2MzI4 +NzUxMDELMAkGA1UEBhMCRVMxJzAlBgNVBAoTHkFORiBBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lv +bjEUMBIGA1UECxMLQU5GIENBIFJhaXoxIjAgBgNVBAMTGUFORiBTZWN1cmUgU2VydmVyIFJvb3Qg +Q0EwHhcNMTkwOTA0MTAwMDM4WhcNMzkwODMwMTAwMDM4WjCBhDESMBAGA1UEBRMJRzYzMjg3NTEw +MQswCQYDVQQGEwJFUzEnMCUGA1UEChMeQU5GIEF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uMRQw +EgYDVQQLEwtBTkYgQ0EgUmFpejEiMCAGA1UEAxMZQU5GIFNlY3VyZSBTZXJ2ZXIgUm9vdCBDQTCC +AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANvrayvmZFSVgpCjcqQZAZ2cC4Ffc0m6p6zz +BE57lgvsEeBbphzOG9INgxwruJ4dfkUyYA8H6XdYfp9qyGFOtibBTI3/TO80sh9l2Ll49a2pcbnv +T1gdpd50IJeh7WhM3pIXS7yr/2WanvtH2Vdy8wmhrnZEE26cLUQ5vPnHO6RYPUG9tMJJo8gN0pcv +B2VSAKduyK9o7PQUlrZXH1bDOZ8rbeTzPvY1ZNoMHKGESy9LS+IsJJ1tk0DrtSOOMspvRdOoiXse +zx76W0OLzc2oD2rKDF65nkeP8Nm2CgtYZRczuSPkdxl9y0oukntPLxB3sY0vaJxizOBQ+OyRp1RM +VwnVdmPF6GUe7m1qzwmd+nxPrWAI/VaZDxUse6mAq4xhj0oHdkLePfTdsiQzW7i1o0TJrH93PB0j +7IKppuLIBkwC/qxcmZkLLxCKpvR/1Yd0DVlJRfbwcVw5Kda/SiOL9V8BY9KHcyi1Swr1+KuCLH5z +JTIdC2MKF4EA/7Z2Xue0sUDKIbvVgFHlSFJnLNJhiQcND85Cd8BEc5xEUKDbEAotlRyBr+Qc5RQe +8TZBAQIvfXOn3kLMTOmJDVb3n5HUA8ZsyY/b2BzgQJhdZpmYgG4t/wHFzstGH6wCxkPmrqKEPMVO +Hj1tyRRM4y5Bu8o5vzY8KhmqQYdOpc5LMnndkEl/AgMBAAGjYzBhMB8GA1UdIwQYMBaAFJxf0Gxj +o1+TypOYCK2Mh6UsXME3MB0GA1UdDgQWBBScX9BsY6Nfk8qTmAitjIelLFzBNzAOBgNVHQ8BAf8E +BAMCAYYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEATh65isagmD9uw2nAalxJ +UqzLK114OMHVVISfk/CHGT0sZonrDUL8zPB1hT+L9IBdeeUXZ701guLyPI59WzbLWoAAKfLOKyzx +j6ptBZNscsdW699QIyjlRRA96Gejrw5VD5AJYu9LWaL2U/HANeQvwSS9eS9OICI7/RogsKQOLHDt +dD+4E5UGUcjohybKpFtqFiGS3XNgnhAY3jyB6ugYw3yJ8otQPr0R4hUDqDZ9MwFsSBXXiJCZBMXM +5gf0vPSQ7RPi6ovDj6MzD8EpTBNO2hVWcXNyglD2mjN8orGoGjR0ZVzO0eurU+AagNjqOknkJjCb +5RyKqKkVMoaZkgoQI1YS4PbOTOK7vtuNknMBZi9iPrJyJ0U27U1W45eZ/zo1PqVUSlJZS2Db7v54 +EX9K3BR5YLZrZAPbFYPhor72I5dQ8AkzNqdxliXzuUJ92zg/LFis6ELhDtjTO0wugumDLmsx2d1H +hk9tl5EuT+IocTUW0fJz/iUrB0ckYyfI+PbZa/wSMVYIwFNCr5zQM378BvAxRAMU8Vjq8moNqRGy +g77FGr8H6lnco4g175x2MjxNBiLOFeXdntiP2t7SxDnlF4HPOEfrf4htWRvfn0IUrn7PqLBmZdo3 +r5+qPeoott7VMVgWglvquxl1AnMaykgaIZOQCo6ThKd9OyMYkomgjaw= +-----END CERTIFICATE----- + +Certum EC-384 CA +================ +-----BEGIN CERTIFICATE----- +MIICZTCCAeugAwIBAgIQeI8nXIESUiClBNAt3bpz9DAKBggqhkjOPQQDAzB0MQswCQYDVQQGEwJQ +TDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2Vy +dGlmaWNhdGlvbiBBdXRob3JpdHkxGTAXBgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwHhcNMTgwMzI2 +MDcyNDU0WhcNNDMwMzI2MDcyNDU0WjB0MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERh +dGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkx +GTAXBgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATEKI6rGFtq +vm5kN2PkzeyrOvfMobgOgknXhimfoZTy42B4mIF4Bk3y7JoOV2CDn7TmFy8as10CW4kjPMIRBSqn +iBMY81CE1700LCeJVf/OTOffph8oxPBUw7l8t1Ot68KjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFI0GZnQkdjrzife81r1HfS+8EF9LMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNo +ADBlAjADVS2m5hjEfO/JUG7BJw+ch69u1RsIGL2SKcHvlJF40jocVYli5RsJHrpka/F2tNQCMQC0 +QoSZ/6vnnvuRlydd3LBbMHHOXjgaatkl5+r3YZJW+OraNsKHZZYuciUvf9/DE8k= +-----END CERTIFICATE----- + +Certum Trusted Root CA +====================== +-----BEGIN CERTIFICATE----- +MIIFwDCCA6igAwIBAgIQHr9ZULjJgDdMBvfrVU+17TANBgkqhkiG9w0BAQ0FADB6MQswCQYDVQQG +EwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0g +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkxHzAdBgNVBAMTFkNlcnR1bSBUcnVzdGVkIFJvb3QgQ0Ew +HhcNMTgwMzE2MTIxMDEzWhcNNDMwMzE2MTIxMDEzWjB6MQswCQYDVQQGEwJQTDEhMB8GA1UEChMY +QXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkxHzAdBgNVBAMTFkNlcnR1bSBUcnVzdGVkIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQDRLY67tzbqbTeRn06TpwXkKQMlzhyC93yZn0EGze2jusDbCSzBfN8p +fktlL5On1AFrAygYo9idBcEq2EXxkd7fO9CAAozPOA/qp1x4EaTByIVcJdPTsuclzxFUl6s1wB52 +HO8AU5853BSlLCIls3Jy/I2z5T4IHhQqNwuIPMqw9MjCoa68wb4pZ1Xi/K1ZXP69VyywkI3C7Te2 +fJmItdUDmj0VDT06qKhF8JVOJVkdzZhpu9PMMsmN74H+rX2Ju7pgE8pllWeg8xn2A1bUatMn4qGt +g/BKEiJ3HAVz4hlxQsDsdUaakFjgao4rpUYwBI4Zshfjvqm6f1bxJAPXsiEodg42MEx51UGamqi4 +NboMOvJEGyCI98Ul1z3G4z5D3Yf+xOr1Uz5MZf87Sst4WmsXXw3Hw09Omiqi7VdNIuJGmj8PkTQk +fVXjjJU30xrwCSss0smNtA0Aq2cpKNgB9RkEth2+dv5yXMSFytKAQd8FqKPVhJBPC/PgP5sZ0jeJ +P/J7UhyM9uH3PAeXjA6iWYEMspA90+NZRu0PqafegGtaqge2Gcu8V/OXIXoMsSt0Puvap2ctTMSY +njYJdmZm/Bo/6khUHL4wvYBQv3y1zgD2DGHZ5yQD4OMBgQ692IU0iL2yNqh7XAjlRICMb/gv1SHK +HRzQ+8S1h9E6Tsd2tTVItQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSM+xx1 +vALTn04uSNn5YFSqxLNP+jAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQENBQADggIBAEii1QAL +LtA/vBzVtVRJHlpr9OTy4EA34MwUe7nJ+jW1dReTagVphZzNTxl4WxmB82M+w85bj/UvXgF2Ez8s +ALnNllI5SW0ETsXpD4YN4fqzX4IS8TrOZgYkNCvozMrnadyHncI013nR03e4qllY/p0m+jiGPp2K +h2RX5Rc64vmNueMzeMGQ2Ljdt4NR5MTMI9UGfOZR0800McD2RrsLrfw9EAUqO0qRJe6M1ISHgCq8 +CYyqOhNf6DR5UMEQGfnTKB7U0VEwKbOukGfWHwpjscWpxkIxYxeU72nLL/qMFH3EQxiJ2fAyQOaA +4kZf5ePBAFmo+eggvIksDkc0C+pXwlM2/KfUrzHN/gLldfq5Jwn58/U7yn2fqSLLiMmq0Uc9Nneo +WWRrJ8/vJ8HjJLWG965+Mk2weWjROeiQWMODvA8s1pfrzgzhIMfatz7DP78v3DSk+yshzWePS/Tj +6tQ/50+6uaWTRRxmHyH6ZF5v4HaUMst19W7l9o/HuKTMqJZ9ZPskWkoDbGs4xugDQ5r3V7mzKWmT +OPQD8rv7gmsHINFSH5pkAnuYZttcTVoP0ISVoDwUQwbKytu4QTbaakRnh6+v40URFWkIsr4WOZck +bxJF0WddCajJFdr60qZfE2Efv4WstK2tBZQIgx51F9NxO5NQI1mg7TyRVJ12AMXDuDjb +-----END CERTIFICATE----- + +TunTrust Root CA +================ +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIUEwLV4kBMkkaGFmddtLu7sms+/BMwDQYJKoZIhvcNAQELBQAwYTELMAkG +A1UEBhMCVE4xNzA1BgNVBAoMLkFnZW5jZSBOYXRpb25hbGUgZGUgQ2VydGlmaWNhdGlvbiBFbGVj +dHJvbmlxdWUxGTAXBgNVBAMMEFR1blRydXN0IFJvb3QgQ0EwHhcNMTkwNDI2MDg1NzU2WhcNNDQw +NDI2MDg1NzU2WjBhMQswCQYDVQQGEwJUTjE3MDUGA1UECgwuQWdlbmNlIE5hdGlvbmFsZSBkZSBD +ZXJ0aWZpY2F0aW9uIEVsZWN0cm9uaXF1ZTEZMBcGA1UEAwwQVHVuVHJ1c3QgUm9vdCBDQTCCAiIw +DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMPN0/y9BFPdDCA61YguBUtB9YOCfvdZn56eY+hz +2vYGqU8ftPkLHzmMmiDQfgbU7DTZhrx1W4eI8NLZ1KMKsmwb60ksPqxd2JQDoOw05TDENX37Jk0b +bjBU2PWARZw5rZzJJQRNmpA+TkBuimvNKWfGzC3gdOgFVwpIUPp6Q9p+7FuaDmJ2/uqdHYVy7BG7 +NegfJ7/Boce7SBbdVtfMTqDhuazb1YMZGoXRlJfXyqNlC/M4+QKu3fZnz8k/9YosRxqZbwUN/dAd +gjH8KcwAWJeRTIAAHDOFli/LQcKLEITDCSSJH7UP2dl3RxiSlGBcx5kDPP73lad9UKGAwqmDrViW +VSHbhlnUr8a83YFuB9tgYv7sEG7aaAH0gxupPqJbI9dkxt/con3YS7qC0lH4Zr8GRuR5KiY2eY8f +Tpkdso8MDhz/yV3A/ZAQprE38806JG60hZC/gLkMjNWb1sjxVj8agIl6qeIbMlEsPvLfe/ZdeikZ +juXIvTZxi11Mwh0/rViizz1wTaZQmCXcI/m4WEEIcb9PuISgjwBUFfyRbVinljvrS5YnzWuioYas +DXxU5mZMZl+QviGaAkYt5IPCgLnPSz7ofzwB7I9ezX/SKEIBlYrilz0QIX32nRzFNKHsLA4KUiwS +VXAkPcvCFDVDXSdOvsC9qnyW5/yeYa1E0wCXAgMBAAGjYzBhMB0GA1UdDgQWBBQGmpsfU33x9aTI +04Y+oXNZtPdEITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFAaamx9TffH1pMjThj6hc1m0 +90QhMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAqgVutt0Vyb+zxiD2BkewhpMl +0425yAA/l/VSJ4hxyXT968pk21vvHl26v9Hr7lxpuhbI87mP0zYuQEkHDVneixCwSQXi/5E/S7fd +Ao74gShczNxtr18UnH1YeA32gAm56Q6XKRm4t+v4FstVEuTGfbvE7Pi1HE4+Z7/FXxttbUcoqgRY +YdZ2vyJ/0Adqp2RT8JeNnYA/u8EH22Wv5psymsNUk8QcCMNE+3tjEUPRahphanltkE8pjkcFwRJp +adbGNjHh/PqAulxPxOu3Mqz4dWEX1xAZufHSCe96Qp1bWgvUxpVOKs7/B9dPfhgGiPEZtdmYu65x +xBzndFlY7wyJz4sfdZMaBBSSSFCp61cpABbjNhzI+L/wM9VBD8TMPN3pM0MBkRArHtG5Xc0yGYuP +jCB31yLEQtyEFpslbei0VXF/sHyz03FJuc9SpAQ/3D2gu68zngowYI7bnV2UqL1g52KAdoGDDIzM +MEZJ4gzSqK/rYXHv5yJiqfdcZGyfFoxnNidF9Ql7v/YQCvGwjVRDjAS6oz/v4jXH+XTgbzRB0L9z +ZVcg+ZtnemZoJE6AZb0QmQZZ8mWvuMZHu/2QeItBcy6vVR/cO5JyboTT0GFMDcx2V+IthSIVNg3r +AZ3r2OvEhJn7wAzMMujjd9qDRIueVSjAi1jTkD5OGwDxFa2DK5o= +-----END CERTIFICATE----- + +HARICA TLS RSA Root CA 2021 +=========================== +-----BEGIN CERTIFICATE----- +MIIFpDCCA4ygAwIBAgIQOcqTHO9D88aOk8f0ZIk4fjANBgkqhkiG9w0BAQsFADBsMQswCQYDVQQG +EwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9u +cyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBSU0EgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTEwNTUz +OFoXDTQ1MDIxMzEwNTUzN1owbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRl +bWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgUlNB +IFJvb3QgQ0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIvC569lmwVnlskN +JLnQDmT8zuIkGCyEf3dRywQRNrhe7Wlxp57kJQmXZ8FHws+RFjZiPTgE4VGC/6zStGndLuwRo0Xu +a2s7TL+MjaQenRG56Tj5eg4MmOIjHdFOY9TnuEFE+2uva9of08WRiFukiZLRgeaMOVig1mlDqa2Y +Ulhu2wr7a89o+uOkXjpFc5gH6l8Cct4MpbOfrqkdtx2z/IpZ525yZa31MJQjB/OCFks1mJxTuy/K +5FrZx40d/JiZ+yykgmvwKh+OC19xXFyuQnspiYHLA6OZyoieC0AJQTPb5lh6/a6ZcMBaD9YThnEv +dmn8kN3bLW7R8pv1GmuebxWMevBLKKAiOIAkbDakO/IwkfN4E8/BPzWr8R0RI7VDIp4BkrcYAuUR +0YLbFQDMYTfBKnya4dC6s1BG7oKsnTH4+yPiAwBIcKMJJnkVU2DzOFytOOqBAGMUuTNe3QvboEUH +GjMJ+E20pwKmafTCWQWIZYVWrkvL4N48fS0ayOn7H6NhStYqE613TBoYm5EPWNgGVMWX+Ko/IIqm +haZ39qb8HOLubpQzKoNQhArlT4b4UEV4AIHrW2jjJo3Me1xR9BQsQL4aYB16cmEdH2MtiKrOokWQ +CPxrvrNQKlr9qEgYRtaQQJKQCoReaDH46+0N0x3GfZkYVVYnZS6NRcUk7M7jAgMBAAGjQjBAMA8G +A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFApII6ZgpJIKM+qTW8VX6iVNvRLuMA4GA1UdDwEB/wQE +AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAPpBIqm5iFSVmewzVjIuJndftTgfvnNAUX15QvWiWkKQU +EapobQk1OUAJ2vQJLDSle1mESSmXdMgHHkdt8s4cUCbjnj1AUz/3f5Z2EMVGpdAgS1D0NTsY9FVq +QRtHBmg8uwkIYtlfVUKqrFOFrJVWNlar5AWMxajaH6NpvVMPxP/cyuN+8kyIhkdGGvMA9YCRotxD +QpSbIPDRzbLrLFPCU3hKTwSUQZqPJzLB5UkZv/HywouoCjkxKLR9YjYsTewfM7Z+d21+UPCfDtcR +j88YxeMn/ibvBZ3PzzfF0HvaO7AWhAw6k9a+F9sPPg4ZeAnHqQJyIkv3N3a6dcSFA1pj1bF1BcK5 +vZStjBWZp5N99sXzqnTPBIWUmAD04vnKJGW/4GKvyMX6ssmeVkjaef2WdhW+o45WxLM0/L5H9MG0 +qPzVMIho7suuyWPEdr6sOBjhXlzPrjoiUevRi7PzKzMHVIf6tLITe7pTBGIBnfHAT+7hOtSLIBD6 +Alfm78ELt5BGnBkpjNxvoEppaZS3JGWg/6w/zgH7IS79aPib8qXPMThcFarmlwDB31qlpzmq6YR/ +PFGoOtmUW4y/Twhx5duoXNTSpv4Ao8YWxw/ogM4cKGR0GQjTQuPOAF1/sdwTsOEFy9EgqoZ0njnn +kf3/W9b3raYvAwtt41dU63ZTGI0RmLo= +-----END CERTIFICATE----- + +HARICA TLS ECC Root CA 2021 +=========================== +-----BEGIN CERTIFICATE----- +MIICVDCCAdugAwIBAgIQZ3SdjXfYO2rbIvT/WeK/zjAKBggqhkjOPQQDAzBsMQswCQYDVQQGEwJH +UjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBD +QTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBFQ0MgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTExMDExMFoX +DTQ1MDIxMzExMDEwOVowbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWlj +IGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgRUNDIFJv +b3QgQ0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDgI/rGgltJ6rK9JOtDA4MM7KKrxcm1l +AEeIhPyaJmuqS7psBAqIXhfyVYf8MLA04jRYVxqEU+kw2anylnTDUR9YSTHMmE5gEYd103KUkE+b +ECUqqHgtvpBBWJAVcqeht6NCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUyRtTgRL+BNUW +0aq8mm+3oJUZbsowDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2cAMGQCMBHervjcToiwqfAi +rcJRQO9gcS3ujwLEXQNwSaSS6sUUiHCm0w2wqsosQJz76YJumgIwK0eaB8bRwoF8yguWGEEbo/Qw +CZ61IygNnxS2PFOiTAZpffpskcYqSUXm7LcT4Tps +-----END CERTIFICATE----- + +Autoridad de Certificacion Firmaprofesional CIF A62634068 +========================================================= +-----BEGIN CERTIFICATE----- +MIIGFDCCA/ygAwIBAgIIG3Dp0v+ubHEwDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCRVMxQjBA +BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2 +MjYzNDA2ODAeFw0xNDA5MjMxNTIyMDdaFw0zNjA1MDUxNTIyMDdaMFExCzAJBgNVBAYTAkVTMUIw +QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB +NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD +Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P +B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY +7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH +ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI +plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX +MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX +LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK +bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU +vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMB0GA1Ud +DgQWBBRlzeurNR4APn7VdMActHNHDhpkLzASBgNVHRMBAf8ECDAGAQH/AgEBMIGmBgNVHSAEgZ4w +gZswgZgGBFUdIAAwgY8wLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuZmlybWFwcm9mZXNpb25hbC5j +b20vY3BzMFwGCCsGAQUFBwICMFAeTgBQAGEAcwBlAG8AIABkAGUAIABsAGEAIABCAG8AbgBhAG4A +bwB2AGEAIAA0ADcAIABCAGEAcgBjAGUAbABvAG4AYQAgADAAOAAwADEANzAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQELBQADggIBAHSHKAIrdx9miWTtj3QuRhy7qPj4Cx2Dtjqn6EWKB7fgPiDL +4QjbEwj4KKE1soCzC1HA01aajTNFSa9J8OA9B3pFE1r/yJfY0xgsfZb43aJlQ3CTkBW6kN/oGbDb +LIpgD7dvlAceHabJhfa9NPhAeGIQcDq+fUs5gakQ1JZBu/hfHAsdCPKxsIl68veg4MSPi3i1O1il +I45PVf42O+AMt8oqMEEgtIDNrvx2ZnOorm7hfNoD6JQg5iKj0B+QXSBTFCZX2lSX3xZEEAEeiGaP +cjiT3SC3NL7X8e5jjkd5KAb881lFJWAiMxujX6i6KtoaPc1A6ozuBRWV1aUsIC+nmCjuRfzxuIgA +LI9C2lHVnOUTaHFFQ4ueCyE8S1wF3BqfmI7avSKecs2tCsvMo2ebKHTEm9caPARYpoKdrcd7b/+A +lun4jWq9GJAd/0kakFI3ky88Al2CdgtR5xbHV/g4+afNmyJU72OwFW1TZQNKXkqgsqeOSQBZONXH +9IBk9W6VULgRfhVwOEqwf9DEMnDAGf/JOC0ULGb0QkTmVXYbgBVX/8Cnp6o5qtjTcNAuuuuUavpf +NIbnYrX9ivAwhZTJryQCL2/W3Wf+47BVTwSYT6RBVuKT0Gro1vP7ZeDOdcQxWQzugsgMYDNKGbqE +ZycPvEJdvSRUDewdcAZfpLz6IHxV +-----END CERTIFICATE----- + +vTrus ECC Root CA +================= +-----BEGIN CERTIFICATE----- +MIICDzCCAZWgAwIBAgIUbmq8WapTvpg5Z6LSa6Q75m0c1towCgYIKoZIzj0EAwMwRzELMAkGA1UE +BhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBS +b290IENBMB4XDTE4MDczMTA3MjY0NFoXDTQzMDczMTA3MjY0NFowRzELMAkGA1UEBhMCQ04xHDAa +BgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBSb290IENBMHYw +EAYHKoZIzj0CAQYFK4EEACIDYgAEZVBKrox5lkqqHAjDo6LN/llWQXf9JpRCux3NCNtzslt188+c +ToL0v/hhJoVs1oVbcnDS/dtitN9Ti72xRFhiQgnH+n9bEOf+QP3A2MMrMudwpremIFUde4BdS49n +TPEQo0IwQDAdBgNVHQ4EFgQUmDnNvtiyjPeyq+GtJK97fKHbH88wDwYDVR0TAQH/BAUwAwEB/zAO +BgNVHQ8BAf8EBAMCAQYwCgYIKoZIzj0EAwMDaAAwZQIwV53dVvHH4+m4SVBrm2nDb+zDfSXkV5UT +QJtS0zvzQBm8JsctBp61ezaf9SXUY2sAAjEA6dPGnlaaKsyh2j/IZivTWJwghfqrkYpwcBE4YGQL +YgmRWAD5Tfs0aNoJrSEGGJTO +-----END CERTIFICATE----- + +vTrus Root CA +============= +-----BEGIN CERTIFICATE----- +MIIFVjCCAz6gAwIBAgIUQ+NxE9izWRRdt86M/TX9b7wFjUUwDQYJKoZIhvcNAQELBQAwQzELMAkG +A1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xFjAUBgNVBAMTDXZUcnVzIFJv +b3QgQ0EwHhcNMTgwNzMxMDcyNDA1WhcNNDMwNzMxMDcyNDA1WjBDMQswCQYDVQQGEwJDTjEcMBoG +A1UEChMTaVRydXNDaGluYSBDby4sTHRkLjEWMBQGA1UEAxMNdlRydXMgUm9vdCBDQTCCAiIwDQYJ +KoZIhvcNAQEBBQADggIPADCCAgoCggIBAL1VfGHTuB0EYgWgrmy3cLRB6ksDXhA/kFocizuwZots +SKYcIrrVQJLuM7IjWcmOvFjai57QGfIvWcaMY1q6n6MLsLOaXLoRuBLpDLvPbmyAhykUAyyNJJrI +ZIO1aqwTLDPxn9wsYTwaP3BVm60AUn/PBLn+NvqcwBauYv6WTEN+VRS+GrPSbcKvdmaVayqwlHeF +XgQPYh1jdfdr58tbmnDsPmcF8P4HCIDPKNsFxhQnL4Z98Cfe/+Z+M0jnCx5Y0ScrUw5XSmXX+6KA +YPxMvDVTAWqXcoKv8R1w6Jz1717CbMdHflqUhSZNO7rrTOiwCcJlwp2dCZtOtZcFrPUGoPc2BX70 +kLJrxLT5ZOrpGgrIDajtJ8nU57O5q4IikCc9Kuh8kO+8T/3iCiSn3mUkpF3qwHYw03dQ+A0Em5Q2 +AXPKBlim0zvc+gRGE1WKyURHuFE5Gi7oNOJ5y1lKCn+8pu8fA2dqWSslYpPZUxlmPCdiKYZNpGvu +/9ROutW04o5IWgAZCfEF2c6Rsffr6TlP9m8EQ5pV9T4FFL2/s1m02I4zhKOQUqqzApVg+QxMaPnu +1RcN+HFXtSXkKe5lXa/R7jwXC1pDxaWG6iSe4gUH3DRCEpHWOXSuTEGC2/KmSNGzm/MzqvOmwMVO +9fSddmPmAsYiS8GVP1BkLFTltvA8Kc9XAgMBAAGjQjBAMB0GA1UdDgQWBBRUYnBj8XWEQ1iO0RYg +scasGrz2iTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOC +AgEAKbqSSaet8PFww+SX8J+pJdVrnjT+5hpk9jprUrIQeBqfTNqK2uwcN1LgQkv7bHbKJAs5EhWd +nxEt/Hlk3ODg9d3gV8mlsnZwUKT+twpw1aA08XXXTUm6EdGz2OyC/+sOxL9kLX1jbhd47F18iMjr +jld22VkE+rxSH0Ws8HqA7Oxvdq6R2xCOBNyS36D25q5J08FsEhvMKar5CKXiNxTKsbhm7xqC5PD4 +8acWabfbqWE8n/Uxy+QARsIvdLGx14HuqCaVvIivTDUHKgLKeBRtRytAVunLKmChZwOgzoy8sHJn +xDHO2zTlJQNgJXtxmOTAGytfdELSS8VZCAeHvsXDf+eW2eHcKJfWjwXj9ZtOyh1QRwVTsMo554Wg +icEFOwE30z9J4nfrI8iIZjs9OXYhRvHsXyO466JmdXTBQPfYaJqT4i2pLr0cox7IdMakLXogqzu4 +sEb9b91fUlV1YvCXoHzXOP0l382gmxDPi7g4Xl7FtKYCNqEeXxzP4padKar9mK5S4fNBUvupLnKW +nyfjqnN9+BojZns7q2WwMgFLFT49ok8MKzWixtlnEjUwzXYuFrOZnk1PTi07NEPhmg4NpGaXutIc +SkwsKouLgU9xGqndXHt7CMUADTdA43x7VF8vhV929vensBxXVsFy6K2ir40zSbofitzmdHxghm+H +l3s= +-----END CERTIFICATE----- + +ISRG Root X2 +============ +-----BEGIN CERTIFICATE----- +MIICGzCCAaGgAwIBAgIQQdKd0XLq7qeAwSxs6S+HUjAKBggqhkjOPQQDAzBPMQswCQYDVQQGEwJV +UzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElT +UkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw00MDA5MTcxNjAwMDBaME8xCzAJBgNVBAYTAlVT +MSkwJwYDVQQKEyBJbnRlcm5ldCBTZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNS +RyBSb290IFgyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0H +ttwW+1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7AlF9ItgKbppb +d9/w+kHsOdx1ymgHDB/qo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwCgYIKoZIzj0EAwMDaAAwZQIwe3lORlCEwkSHRhtF +cP9Ymd70/aTSVaYgLXTWNLxBo1BfASdWtL4ndQavEi51mI38AjEAi/V3bNTIZargCyzuFJ0nN6T5 +U6VR5CmD1/iQMVtCnwr1/q4AaOeMSQ+2b1tbFfLn +-----END CERTIFICATE----- + +HiPKI Root CA - G1 +================== +-----BEGIN CERTIFICATE----- +MIIFajCCA1KgAwIBAgIQLd2szmKXlKFD6LDNdmpeYDANBgkqhkiG9w0BAQsFADBPMQswCQYDVQQG +EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xGzAZBgNVBAMMEkhpUEtJ +IFJvb3QgQ0EgLSBHMTAeFw0xOTAyMjIwOTQ2MDRaFw0zNzEyMzExNTU5NTlaME8xCzAJBgNVBAYT +AlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEbMBkGA1UEAwwSSGlQS0kg +Um9vdCBDQSAtIEcxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9B5/UnMyDHPkvRN0 +o9QwqNCuS9i233VHZvR85zkEHmpwINJaR3JnVfSl6J3VHiGh8Ge6zCFovkRTv4354twvVcg3Px+k +wJyz5HdcoEb+d/oaoDjq7Zpy3iu9lFc6uux55199QmQ5eiY29yTw1S+6lZgRZq2XNdZ1AYDgr/SE +YYwNHl98h5ZeQa/rh+r4XfEuiAU+TCK72h8q3VJGZDnzQs7ZngyzsHeXZJzA9KMuH5UHsBffMNsA +GJZMoYFL3QRtU6M9/Aes1MU3guvklQgZKILSQjqj2FPseYlgSGDIcpJQ3AOPgz+yQlda22rpEZfd +hSi8MEyr48KxRURHH+CKFgeW0iEPU8DtqX7UTuybCeyvQqww1r/REEXgphaypcXTT3OUM3ECoWqj +1jOXTyFjHluP2cFeRXF3D4FdXyGarYPM+l7WjSNfGz1BryB1ZlpK9p/7qxj3ccC2HTHsOyDry+K4 +9a6SsvfhhEvyovKTmiKe0xRvNlS9H15ZFblzqMF8b3ti6RZsR1pl8w4Rm0bZ/W3c1pzAtH2lsN0/ +Vm+h+fbkEkj9Bn8SV7apI09bA8PgcSojt/ewsTu8mL3WmKgMa/aOEmem8rJY5AIJEzypuxC00jBF +8ez3ABHfZfjcK0NVvxaXxA/VLGGEqnKG/uY6fsI/fe78LxQ+5oXdUG+3Se0CAwEAAaNCMEAwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ncX+l6o/vY9cdVouslGDDjYr7AwDgYDVR0PAQH/BAQD +AgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBQUfB13HAE4/+qddRxosuej6ip0691x1TPOhwEmSKsxBHi +7zNKpiMdDg1H2DfHb680f0+BazVP6XKlMeJ45/dOlBhbQH3PayFUhuaVevvGyuqcSE5XCV0vrPSl +tJczWNWseanMX/mF+lLFjfiRFOs6DRfQUsJ748JzjkZ4Bjgs6FzaZsT0pPBWGTMpWmWSBUdGSquE +wx4noR8RkpkndZMPvDY7l1ePJlsMu5wP1G4wB9TcXzZoZjmDlicmisjEOf6aIW/Vcobpf2Lll07Q +JNBAsNB1CI69aO4I1258EHBGG3zgiLKecoaZAeO/n0kZtCW+VmWuF2PlHt/o/0elv+EmBYTksMCv +5wiZqAxeJoBF1PhoL5aPruJKHJwWDBNvOIf2u8g0X5IDUXlwpt/L9ZlNec1OvFefQ05rLisY+Gpz +jLrFNe85akEez3GoorKGB1s6yeHvP2UEgEcyRHCVTjFnanRbEEV16rCf0OY1/k6fi8wrkkVbbiVg +hUbN0aqwdmaTd5a+g744tiROJgvM7XpWGuDpWsZkrUx6AEhEL7lAuxM+vhV4nYWBSipX3tUZQ9rb +yltHhoMLP7YNdnhzeSJesYAfz77RP1YQmCuVh6EfnWQUYDksswBVLuT1sw5XxJFBAJw/6KXf6vb/ +yPCtbVKoF6ubYfwSUTXkJf2vqmqGOQ== +-----END CERTIFICATE----- + +GlobalSign ECC Root CA - R4 +=========================== +-----BEGIN CERTIFICATE----- +MIIB3DCCAYOgAwIBAgINAgPlfvU/k/2lCSGypjAKBggqhkjOPQQDAjBQMSQwIgYDVQQLExtHbG9i +YWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wHhcNMTIxMTEzMDAwMDAwWhcNMzgwMTE5MDMxNDA3WjBQMSQwIgYDVQQLExtHbG9i +YWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS4xnnTj2wlDp8uORkcA6SumuU5BwkW +ymOxuYb4ilfBV85C+nOh92VC/x7BALJucw7/xyHlGKSq2XE/qNS5zowdo0IwQDAOBgNVHQ8BAf8E +BAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVLB7rUW44kB/+wpu+74zyTyjhNUwCgYI +KoZIzj0EAwIDRwAwRAIgIk90crlgr/HmnKAWBVBfw147bmF0774BxL4YSFlhgjICICadVGNA3jdg +UM/I2O2dgq43mLyjj0xMqTQrbO/7lZsm +-----END CERTIFICATE----- + +GTS Root R1 +=========== +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlk28xsBNJiGuiFzANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQGEwJV +UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg +UjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE +ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaM +f/vo27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7wCl7raKb0 +xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjwTcLCeoiKu7rPWRnWr4+w +B7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0PfyblqAj+lug8aJRT7oM6iCsVlgmy4HqMLnXW +nOunVmSPlk9orj2XwoSPwLxAwAtcvfaHszVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk +9+aCEI3oncKKiPo4Zor8Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zq +kUspzBmkMiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92wO1A +K/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70paDPvOmbsB4om3xPX +V2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrNVjzRlwW5y0vtOUucxD/SVRNuJLDW +cfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQAD +ggIBAJ+qQibbC5u+/x6Wki4+omVKapi6Ist9wTrYggoGxval3sBOh2Z5ofmmWJyq+bXmYOfg6LEe +QkEzCzc9zolwFcq1JKjPa7XSQCGYzyI0zzvFIoTgxQ6KfF2I5DUkzps+GlQebtuyh6f88/qBVRRi +ClmpIgUxPoLW7ttXNLwzldMXG+gnoot7TiYaelpkttGsN/H9oPM47HLwEXWdyzRSjeZ2axfG34ar +J45JK3VmgRAhpuo+9K4l/3wV3s6MJT/KYnAK9y8JZgfIPxz88NtFMN9iiMG1D53Dn0reWVlHxYci +NuaCp+0KueIHoI17eko8cdLiA6EfMgfdG+RCzgwARWGAtQsgWSl4vflVy2PFPEz0tv/bal8xa5me +LMFrUKTX5hgUvYU/Z6tGn6D/Qqc6f1zLXbBwHSs09dR2CQzreExZBfMzQsNhFRAbd03OIozUhfJF +fbdT6u9AWpQKXCBfTkBdYiJ23//OYb2MI3jSNwLgjt7RETeJ9r/tSQdirpLsQBqvFAnZ0E6yove+ +7u7Y/9waLd64NnHi/Hm3lCXRSHNboTXns5lndcEZOitHTtNCjv0xyBZm2tIMPNuzjsmhDYAPexZ3 +FL//2wmUspO8IFgV6dtxQ/PeEMMA3KgqlbbC1j+Qa3bbbP6MvPJwNQzcmRk13NfIRmPVNnGuV/u3 +gm3c +-----END CERTIFICATE----- + +GTS Root R2 +=========== +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlrsWNBCUaqxElqjANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQGEwJV +UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg +UjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE +ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3Lv +CvptnfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY6Dlo7JUl +e3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAuMC6C/Pq8tBcKSOWIm8Wb +a96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7kRXuJVfeKH2JShBKzwkCX44ofR5GmdFrS ++LFjKBC4swm4VndAoiaYecb+3yXuPuWgf9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7M +kogwTZq9TwtImoS1mKPV+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJG +r61K8YzodDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RWIr9q +S34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKaG73VululycslaVNV +J1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCqgc7dGtxRcw1PcOnlthYhGXmy5okL +dWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQAD +ggIBAB/Kzt3HvqGf2SdMC9wXmBFqiN495nFWcrKeGk6c1SuYJF2ba3uwM4IJvd8lRuqYnrYb/oM8 +0mJhwQTtzuDFycgTE1XnqGOtjHsB/ncw4c5omwX4Eu55MaBBRTUoCnGkJE+M3DyCB19m3H0Q/gxh +swWV7uGugQ+o+MePTagjAiZrHYNSVc61LwDKgEDg4XSsYPWHgJ2uNmSRXbBoGOqKYcl3qJfEycel +/FVL8/B/uWU9J2jQzGv6U53hkRrJXRqWbTKH7QMgyALOWr7Z6v2yTcQvG99fevX4i8buMTolUVVn +jWQye+mew4K6Ki3pHrTgSAai/GevHyICc/sgCq+dVEuhzf9gR7A/Xe8bVr2XIZYtCtFenTgCR2y5 +9PYjJbigapordwj6xLEokCZYCDzifqrXPW+6MYgKBesntaFJ7qBFVHvmJ2WZICGoo7z7GJa7Um8M +7YNRTOlZ4iBgxcJlkoKM8xAfDoqXvneCbT+PHV28SSe9zE8P4c52hgQjxcCMElv924SgJPFI/2R8 +0L5cFtHvma3AH/vLrrw4IgYmZNralw4/KBVEqE8AyvCazM90arQ+POuV7LXTWtiBmelDGDfrs7vR +WGJB82bSj6p4lVQgw1oudCvV0b4YacCs1aTPObpRhANl6WLAYv7YTVWW4tAR+kg0Eeye7QUd5MjW +HYbL +-----END CERTIFICATE----- + +GTS Root R3 +=========== +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPluILrIPglJ209ZjAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEi +MCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMw +HhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZ +R29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjO +PQIBBgUrgQQAIgNiAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout +736GjOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL24CejQjBA +MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTB8Sa6oC2uhYHP0/Eq +Er24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEA9uEglRR7VKOQFhG/hMjqb2sXnh5GmCCbn9MN2azT +L818+FsuVbu/3ZL3pAzcMeGiAjEA/JdmZuVDFhOD3cffL74UOO0BzrEXGhF16b0DjyZ+hOXJYKaV +11RZt+cRLInUue4X +-----END CERTIFICATE----- + +GTS Root R4 +=========== +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPlwGjvYxqccpBQUjAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEi +MCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQw +HhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZ +R29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjO +PQIBBgUrgQQAIgNiAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzu +hXyiQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvRHYqjQjBA +MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSATNbrdP9JNqPV2Py1 +PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/C +r8deVl5c1RxYIigL9zC2L7F8AjEA8GE8p/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh +4rsUecrNIdSUtUlD +-----END CERTIFICATE----- + +Telia Root CA v2 +================ +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIPAWdfJ9b+euPkrL4JWwWeMA0GCSqGSIb3DQEBCwUAMEQxCzAJBgNVBAYT +AkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2 +MjAeFw0xODExMjkxMTU1NTRaFw00MzExMjkxMTU1NTRaMEQxCzAJBgNVBAYTAkZJMRowGAYDVQQK +DBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2MjCCAiIwDQYJKoZI +hvcNAQEBBQADggIPADCCAgoCggIBALLQPwe84nvQa5n44ndp586dpAO8gm2h/oFlH0wnrI4AuhZ7 +6zBqAMCzdGh+sq/H1WKzej9Qyow2RCRj0jbpDIX2Q3bVTKFgcmfiKDOlyzG4OiIjNLh9vVYiQJ3q +9HsDrWj8soFPmNB06o3lfc1jw6P23pLCWBnglrvFxKk9pXSW/q/5iaq9lRdU2HhE8Qx3FZLgmEKn +pNaqIJLNwaCzlrI6hEKNfdWV5Nbb6WLEWLN5xYzTNTODn3WhUidhOPFZPY5Q4L15POdslv5e2QJl +tI5c0BE0312/UqeBAMN/mUWZFdUXyApT7GPzmX3MaRKGwhfwAZ6/hLzRUssbkmbOpFPlob/E2wnW +5olWK8jjfN7j/4nlNW4o6GwLI1GpJQXrSPjdscr6bAhR77cYbETKJuFzxokGgeWKrLDiKca5JLNr +RBH0pUPCTEPlcDaMtjNXepUugqD0XBCzYYP2AgWGLnwtbNwDRm41k9V6lS/eINhbfpSQBGq6WT0E +BXWdN6IOLj3rwaRSg/7Qa9RmjtzG6RJOHSpXqhC8fF6CfaamyfItufUXJ63RDolUK5X6wK0dmBR4 +M0KGCqlztft0DbcbMBnEWg4cJ7faGND/isgFuvGqHKI3t+ZIpEYslOqodmJHixBTB0hXbOKSTbau +BcvcwUpej6w9GU7C7WB1K9vBykLVAgMBAAGjYzBhMB8GA1UdIwQYMBaAFHKs5DN5qkWH9v2sHZ7W +xy+G2CQ5MB0GA1UdDgQWBBRyrOQzeapFh/b9rB2e1scvhtgkOTAOBgNVHQ8BAf8EBAMCAQYwDwYD +VR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAoDtZpwmUPjaE0n4vOaWWl/oRrfxn83EJ +8rKJhGdEr7nv7ZbsnGTbMjBvZ5qsfl+yqwE2foH65IRe0qw24GtixX1LDoJt0nZi0f6X+J8wfBj5 +tFJ3gh1229MdqfDBmgC9bXXYfef6xzijnHDoRnkDry5023X4blMMA8iZGok1GTzTyVR8qPAs5m4H +eW9q4ebqkYJpCh3DflminmtGFZhb069GHWLIzoBSSRE/yQQSwxN8PzuKlts8oB4KtItUsiRnDe+C +y748fdHif64W1lZYudogsYMVoe+KTTJvQS8TUoKU1xrBeKJR3Stwbbca+few4GeXVtt8YVMJAygC +QMez2P2ccGrGKMOF6eLtGpOg3kuYooQ+BXcBlj37tCAPnHICehIv1aO6UXivKitEZU61/Qrowc15 +h2Er3oBXRb9n8ZuRXqWk7FlIEA04x7D6w0RtBPV4UBySllva9bguulvP5fBqnUsvWHMtTy3EHD70 +sz+rFQ47GUGKpMFXEmZxTPpT41frYpUJnlTd0cI8Vzy9OK2YZLe4A5pTVmBds9hCG1xLEooc6+t9 +xnppxyd/pPiL8uSUZodL6ZQHCRJ5irLrdATczvREWeAWysUsWNc8e89ihmpQfTU2Zqf7N+cox9jQ +raVplI/owd8k+BsHMYeB2F326CjYSlKArBPuUBQemMc= +-----END CERTIFICATE----- + +D-TRUST BR Root CA 1 2020 +========================= +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQfMmPK4TX3+oPyWWa00tNljAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE +RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEJSIFJvb3QgQ0EgMSAy +MDIwMB4XDTIwMDIxMTA5NDUwMFoXDTM1MDIxMTA5NDQ1OVowSDELMAkGA1UEBhMCREUxFTATBgNV +BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDEgMjAyMDB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABMbLxyjR+4T1mu9CFCDhQ2tuda38KwOE1HaTJddZO0Flax7mNCq7 +dPYSzuht56vkPE4/RAiLzRZxy7+SmfSk1zxQVFKQhYN4lGdnoxwJGT11NIXe7WB9xwy0QVK5buXu +QqOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHOREKv/VbNafAkl1bK6CKBrqx9t +MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu +bmV0L2NybC9kLXRydXN0X2JyX3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj +dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwQlIlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP +PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD +AwNpADBmAjEAlJAtE/rhY/hhY+ithXhUkZy4kzg+GkHaQBZTQgjKL47xPoFWwKrY7RjEsK70Pvom +AjEA8yjixtsrmfu3Ubgko6SUeho/5jbiA1czijDLgsfWFBHVdWNbFJWcHwHP2NVypw87 +-----END CERTIFICATE----- + +D-TRUST EV Root CA 1 2020 +========================= +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQXwJB13qHfEwDo6yWjfv/0DAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE +RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEVWIFJvb3QgQ0EgMSAy +MDIwMB4XDTIwMDIxMTEwMDAwMFoXDTM1MDIxMTA5NTk1OVowSDELMAkGA1UEBhMCREUxFTATBgNV +BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDEgMjAyMDB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABPEL3YZDIBnfl4XoIkqbz52Yv7QFJsnL46bSj8WeeHsxiamJrSc8 +ZRCC/N/DnU7wMyPE0jL1HLDfMxddxfCxivnvubcUyilKwg+pf3VlSSowZ/Rk99Yad9rDwpdhQntJ +raOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFH8QARY3OqQo5FD4pPfsazK2/umL +MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu +bmV0L2NybC9kLXRydXN0X2V2X3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj +dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwRVYlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP +PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD +AwNpADBmAjEAyjzGKnXCXnViOTYAYFqLwZOZzNnbQTs7h5kXO9XMT8oi96CAy/m0sRtW9XLS/BnR +AjEAkfcwkz8QRitxpNA7RJvAKQIFskF3UfN5Wp6OFKBOQtJbgfM0agPnIjhQW+0ZT0MW +-----END CERTIFICATE----- + +DigiCert TLS ECC P384 Root G5 +============================= +-----BEGIN CERTIFICATE----- +MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURpZ2lDZXJ0IFRMUyBFQ0MgUDM4 +NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMx +FzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQg +Um9vdCBHNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1Tzvd +lHJS7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp0zVozptj +n4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICISB4CIfBFqMA4GA1UdDwEB +/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gAMGUCMQCJao1H5+z8blUD2Wds +Jk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQLgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIx +AJSdYsiJvRmEFOml+wG4DXZDjC5Ty3zfDBeWUA== +-----END CERTIFICATE----- + +DigiCert TLS RSA4096 Root G5 +============================ +-----BEGIN CERTIFICATE----- +MIIFZjCCA06gAwIBAgIQCPm0eKj6ftpqMzeJ3nzPijANBgkqhkiG9w0BAQwFADBNMQswCQYDVQQG +EwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0 +MDk2IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcNNDYwMTE0MjM1OTU5WjBNMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0MDk2 +IFJvb3QgRzUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz0PTJeRGd/fxmgefM1eS8 +7IE+ajWOLrfn3q/5B03PMJ3qCQuZvWxX2hhKuHisOjmopkisLnLlvevxGs3npAOpPxG02C+JFvuU +AT27L/gTBaF4HI4o4EXgg/RZG5Wzrn4DReW+wkL+7vI8toUTmDKdFqgpwgscONyfMXdcvyej/Ces +tyu9dJsXLfKB2l2w4SMXPohKEiPQ6s+d3gMXsUJKoBZMpG2T6T867jp8nVid9E6P/DsjyG244gXa +zOvswzH016cpVIDPRFtMbzCe88zdH5RDnU1/cHAN1DrRN/BsnZvAFJNY781BOHW8EwOVfH/jXOnV +DdXifBBiqmvwPXbzP6PosMH976pXTayGpxi0KcEsDr9kvimM2AItzVwv8n/vFfQMFawKsPHTDU9q +TXeXAaDxZre3zu/O7Oyldcqs4+Fj97ihBMi8ez9dLRYiVu1ISf6nL3kwJZu6ay0/nTvEF+cdLvvy +z6b84xQslpghjLSR6Rlgg/IwKwZzUNWYOwbpx4oMYIwo+FKbbuH2TbsGJJvXKyY//SovcfXWJL5/ +MZ4PbeiPT02jP/816t9JXkGPhvnxd3lLG7SjXi/7RgLQZhNeXoVPzthwiHvOAbWWl9fNff2C+MIk +wcoBOU+NosEUQB+cZtUMCUbW8tDRSHZWOkPLtgoRObqME2wGtZ7P6wIDAQABo0IwQDAdBgNVHQ4E +FgQUUTMc7TZArxfTJc1paPKvTiM+s0EwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8w +DQYJKoZIhvcNAQEMBQADggIBAGCmr1tfV9qJ20tQqcQjNSH/0GEwhJG3PxDPJY7Jv0Y02cEhJhxw +GXIeo8mH/qlDZJY6yFMECrZBu8RHANmfGBg7sg7zNOok992vIGCukihfNudd5N7HPNtQOa27PShN +lnx2xlv0wdsUpasZYgcYQF+Xkdycx6u1UQ3maVNVzDl92sURVXLFO4uJ+DQtpBflF+aZfTCIITfN +MBc9uPK8qHWgQ9w+iUuQrm0D4ByjoJYJu32jtyoQREtGBzRj7TG5BO6jm5qu5jF49OokYTurWGT/ +u4cnYiWB39yhL/btp/96j1EuMPikAdKFOV8BmZZvWltwGUb+hmA+rYAQCd05JS9Yf7vSdPD3Rh9G +OUrYU9DzLjtxpdRv/PNn5AeP3SYZ4Y1b+qOTEZvpyDrDVWiakuFSdjjo4bq9+0/V77PnSIMx8IIh +47a+p6tv75/fTM8BuGJqIz3nCU2AG3swpMPdB380vqQmsvZB6Akd4yCYqjdP//fx4ilwMUc/dNAU +FvohigLVigmUdy7yWSiLfFCSCmZ4OIN1xLVaqBHG5cGdZlXPU8Sv13WFqUITVuwhd4GTWgzqltlJ +yqEI8pc7bZsEGCREjnwB8twl2F6GmrE52/WRMmrRpnCKovfepEWFJqgejF0pW8hL2JpqA15w8oVP +bEtoL8pU9ozaMv7Da4M/OMZ+ +-----END CERTIFICATE----- + +Certainly Root R1 +================= +-----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIRAI4P+UuQcWhlM1T01EQ5t+AwDQYJKoZIhvcNAQELBQAwPTELMAkGA1UE +BhMCVVMxEjAQBgNVBAoTCUNlcnRhaW5seTEaMBgGA1UEAxMRQ2VydGFpbmx5IFJvb3QgUjEwHhcN +MjEwNDAxMDAwMDAwWhcNNDYwNDAxMDAwMDAwWjA9MQswCQYDVQQGEwJVUzESMBAGA1UEChMJQ2Vy +dGFpbmx5MRowGAYDVQQDExFDZXJ0YWlubHkgUm9vdCBSMTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBANA21B/q3avk0bbm+yLA3RMNansiExyXPGhjZjKcA7WNpIGD2ngwEc/csiu+kr+O +5MQTvqRoTNoCaBZ0vrLdBORrKt03H2As2/X3oXyVtwxwhi7xOu9S98zTm/mLvg7fMbedaFySpvXl +8wo0tf97ouSHocavFwDvA5HtqRxOcT3Si2yJ9HiG5mpJoM610rCrm/b01C7jcvk2xusVtyWMOvwl +DbMicyF0yEqWYZL1LwsYpfSt4u5BvQF5+paMjRcCMLT5r3gajLQ2EBAHBXDQ9DGQilHFhiZ5shGI +XsXwClTNSaa/ApzSRKft43jvRl5tcdF5cBxGX1HpyTfcX35pe0HfNEXgO4T0oYoKNp43zGJS4YkN +KPl6I7ENPT2a/Z2B7yyQwHtETrtJ4A5KVpK8y7XdeReJkd5hiXSSqOMyhb5OhaRLWcsrxXiOcVTQ +AjeZjOVJ6uBUcqQRBi8LjMFbvrWhsFNunLhgkR9Za/kt9JQKl7XsxXYDVBtlUrpMklZRNaBA2Cnb +rlJ2Oy0wQJuK0EJWtLeIAaSHO1OWzaMWj/Nmqhexx2DgwUMFDO6bW2BvBlyHWyf5QBGenDPBt+U1 +VwV/J84XIIwc/PH72jEpSe31C4SnT8H2TsIonPru4K8H+zMReiFPCyEQtkA6qyI6BJyLm4SGcprS +p6XEtHWRqSsjAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud +DgQWBBTgqj8ljZ9EXME66C6ud0yEPmcM9DANBgkqhkiG9w0BAQsFAAOCAgEAuVevuBLaV4OPaAsz +HQNTVfSVcOQrPbA56/qJYv331hgELyE03fFo8NWWWt7CgKPBjcZq91l3rhVkz1t5BXdm6ozTaw3d +8VkswTOlMIAVRQdFGjEitpIAq5lNOo93r6kiyi9jyhXWx8bwPWz8HA2YEGGeEaIi1wrykXprOQ4v +MMM2SZ/g6Q8CRFA3lFV96p/2O7qUpUzpvD5RtOjKkjZUbVwlKNrdrRT90+7iIgXr0PK3aBLXWopB +GsaSpVo7Y0VPv+E6dyIvXL9G+VoDhRNCX8reU9ditaY1BMJH/5n9hN9czulegChB8n3nHpDYT3Y+ +gjwN/KUD+nsa2UUeYNrEjvn8K8l7lcUq/6qJ34IxD3L/DCfXCh5WAFAeDJDBlrXYFIW7pw0WwfgH +JBu6haEaBQmAupVjyTrsJZ9/nbqkRxWbRHDxakvWOF5D8xh+UG7pWijmZeZ3Gzr9Hb4DJqPb1OG7 +fpYnKx3upPvaJVQTA945xsMfTZDsjxtK0hzthZU4UHlG1sGQUDGpXJpuHfUzVounmdLyyCwzk5Iw +x06MZTMQZBf9JBeW0Y3COmor6xOLRPIh80oat3df1+2IpHLlOR+Vnb5nwXARPbv0+Em34yaXOp/S +X3z7wJl8OSngex2/DaeP0ik0biQVy96QXr8axGbqwua6OV+KmalBWQewLK8= +-----END CERTIFICATE----- + +Certainly Root E1 +================= +-----BEGIN CERTIFICATE----- +MIIB9zCCAX2gAwIBAgIQBiUzsUcDMydc+Y2aub/M+DAKBggqhkjOPQQDAzA9MQswCQYDVQQGEwJV +UzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0YWlubHkgUm9vdCBFMTAeFw0yMTA0 +MDEwMDAwMDBaFw00NjA0MDEwMDAwMDBaMD0xCzAJBgNVBAYTAlVTMRIwEAYDVQQKEwlDZXJ0YWlu +bHkxGjAYBgNVBAMTEUNlcnRhaW5seSBSb290IEUxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE3m/4 +fxzf7flHh4axpMCK+IKXgOqPyEpeKn2IaKcBYhSRJHpcnqMXfYqGITQYUBsQ3tA3SybHGWCA6TS9 +YBk2QNYphwk8kXr2vBMj3VlOBF7PyAIcGFPBMdjaIOlEjeR2o0IwQDAOBgNVHQ8BAf8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ygYy2R17ikq6+2uI1g4hevIIgcwCgYIKoZIzj0E +AwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozmut6Dacpps6kFtZaSF4fC0urQe87YQVt8 +rgIwRt7qy12a7DLCZRawTDBcMPPaTnOGBtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR +-----END CERTIFICATE----- + +Security Communication RootCA3 +============================== +-----BEGIN CERTIFICATE----- +MIIFfzCCA2egAwIBAgIJAOF8N0D9G/5nMA0GCSqGSIb3DQEBDAUAMF0xCzAJBgNVBAYTAkpQMSUw +IwYDVQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMScwJQYDVQQDEx5TZWN1cml0eSBD +b21tdW5pY2F0aW9uIFJvb3RDQTMwHhcNMTYwNjE2MDYxNzE2WhcNMzgwMTE4MDYxNzE2WjBdMQsw +CQYDVQQGEwJKUDElMCMGA1UEChMcU0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UE +AxMeU2VjdXJpdHkgQ29tbXVuaWNhdGlvbiBSb290Q0EzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A +MIICCgKCAgEA48lySfcw3gl8qUCBWNO0Ot26YQ+TUG5pPDXC7ltzkBtnTCHsXzW7OT4rCmDvu20r +hvtxosis5FaU+cmvsXLUIKx00rgVrVH+hXShuRD+BYD5UpOzQD11EKzAlrenfna84xtSGc4RHwsE +NPXY9Wk8d/Nk9A2qhd7gCVAEF5aEt8iKvE1y/By7z/MGTfmfZPd+pmaGNXHIEYBMwXFAWB6+oHP2 +/D5Q4eAvJj1+XCO1eXDe+uDRpdYMQXF79+qMHIjH7Iv10S9VlkZ8WjtYO/u62C21Jdp6Ts9EriGm +npjKIG58u4iFW/vAEGK78vknR+/RiTlDxN/e4UG/VHMgly1s2vPUB6PmudhvrvyMGS7TZ2crldtY +XLVqAvO4g160a75BflcJdURQVc1aEWEhCmHCqYj9E7wtiS/NYeCVvsq1e+F7NGcLH7YMx3weGVPK +p7FKFSBWFHA9K4IsD50VHUeAR/94mQ4xr28+j+2GaR57GIgUssL8gjMunEst+3A7caoreyYn8xrC +3PsXuKHqy6C0rtOUfnrQq8PsOC0RLoi/1D+tEjtCrI8Cbn3M0V9hvqG8OmpI6iZVIhZdXw3/JzOf +GAN0iltSIEdrRU0id4xVJ/CvHozJgyJUt5rQT9nO/NkuHJYosQLTA70lUhw0Zk8jq/R3gpYd0Vcw +CBEF/VfR2ccCAwEAAaNCMEAwHQYDVR0OBBYEFGQUfPxYchamCik0FW8qy7z8r6irMA4GA1UdDwEB +/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBDAUAA4ICAQDcAiMI4u8hOscNtybS +YpOnpSNyByCCYN8Y11StaSWSntkUz5m5UoHPrmyKO1o5yGwBQ8IibQLwYs1OY0PAFNr0Y/Dq9HHu +Tofjcan0yVflLl8cebsjqodEV+m9NU1Bu0soo5iyG9kLFwfl9+qd9XbXv8S2gVj/yP9kaWJ5rW4O +H3/uHWnlt3Jxs/6lATWUVCvAUm2PVcTJ0rjLyjQIUYWg9by0F1jqClx6vWPGOi//lkkZhOpn2ASx +YfQAW0q3nHE3GYV5v4GwxxMOdnE+OoAGrgYWp421wsTL/0ClXI2lyTrtcoHKXJg80jQDdwj98ClZ +XSEIx2C/pHF7uNkegr4Jr2VvKKu/S7XuPghHJ6APbw+LP6yVGPO5DtxnVW5inkYO0QR4ynKudtml ++LLfiAlhi+8kTtFZP1rUPcmTPCtk9YENFpb3ksP+MW/oKjJ0DvRMmEoYDjBU1cXrvMUVnuiZIesn +KwkK2/HmcBhWuwzkvvnoEKQTkrgc4NtnHVMDpCKn3F2SEDzq//wbEBrD2NCcnWXL0CsnMQMeNuE9 +dnUM/0Umud1RvCPHX9jYhxBAEg09ODfnRDwYwFMJZI//1ZqmfHAuc1Uh6N//g7kdPjIe1qZ9LPFm +6Vwdp6POXiUyK+OVrCoHzrQoeIY8LaadTdJ0MN1kURXbg4NR16/9M51NZg== +-----END CERTIFICATE----- + +Security Communication ECC RootCA1 +================================== +-----BEGIN CERTIFICATE----- +MIICODCCAb6gAwIBAgIJANZdm7N4gS7rMAoGCCqGSM49BAMDMGExCzAJBgNVBAYTAkpQMSUwIwYD +VQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMSswKQYDVQQDEyJTZWN1cml0eSBDb21t +dW5pY2F0aW9uIEVDQyBSb290Q0ExMB4XDTE2MDYxNjA1MTUyOFoXDTM4MDExODA1MTUyOFowYTEL +MAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKzApBgNV +BAMTIlNlY3VyaXR5IENvbW11bmljYXRpb24gRUNDIFJvb3RDQTEwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAASkpW9gAwPDvTH00xecK4R1rOX9PVdu12O/5gSJko6BnOPpR27KkBLIE+CnnfdldB9sELLo +5OnvbYUymUSxXv3MdhDYW72ixvnWQuRXdtyQwjWpS4g8EkdtXP9JTxpKULGjQjBAMB0GA1UdDgQW +BBSGHOf+LaVKiwj+KBH6vqNm+GBZLzAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAK +BggqhkjOPQQDAwNoADBlAjAVXUI9/Lbu9zuxNuie9sRGKEkz0FhDKmMpzE2xtHqiuQ04pV1IKv3L +snNdo4gIxwwCMQDAqy0Obe0YottT6SXbVQjgUMzfRGEWgqtJsLKB7HOHeLRMsmIbEvoWTSVLY70e +N9k= +-----END CERTIFICATE----- + +BJCA Global Root CA1 +==================== +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIQVW9l47TZkGobCdFsPsBsIDANBgkqhkiG9w0BAQsFADBUMQswCQYDVQQG +EwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxHTAbBgNVBAMMFEJK +Q0EgR2xvYmFsIFJvb3QgQ0ExMB4XDTE5MTIxOTAzMTYxN1oXDTQ0MTIxMjAzMTYxN1owVDELMAkG +A1UEBhMCQ04xJjAkBgNVBAoMHUJFSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQD +DBRCSkNBIEdsb2JhbCBSb290IENBMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPFm +CL3ZxRVhy4QEQaVpN3cdwbB7+sN3SJATcmTRuHyQNZ0YeYjjlwE8R4HyDqKYDZ4/N+AZspDyRhyS +sTphzvq3Rp4Dhtczbu33RYx2N95ulpH3134rhxfVizXuhJFyV9xgw8O558dnJCNPYwpj9mZ9S1Wn +P3hkSWkSl+BMDdMJoDIwOvqfwPKcxRIqLhy1BDPapDgRat7GGPZHOiJBhyL8xIkoVNiMpTAK+BcW +yqw3/XmnkRd4OJmtWO2y3syJfQOcs4ll5+M7sSKGjwZteAf9kRJ/sGsciQ35uMt0WwfCyPQ10WRj +eulumijWML3mG90Vr4TqnMfK9Q7q8l0ph49pczm+LiRvRSGsxdRpJQaDrXpIhRMsDQa4bHlW/KNn +MoH1V6XKV0Jp6VwkYe/iMBhORJhVb3rCk9gZtt58R4oRTklH2yiUAguUSiz5EtBP6DF+bHq/pj+b +OT0CFqMYs2esWz8sgytnOYFcuX6U1WTdno9uruh8W7TXakdI136z1C2OVnZOz2nxbkRs1CTqjSSh +GL+9V/6pmTW12xB3uD1IutbB5/EjPtffhZ0nPNRAvQoMvfXnjSXWgXSHRtQpdaJCbPdzied9v3pK +H9MiyRVVz99vfFXQpIsHETdfg6YmV6YBW37+WGgHqel62bno/1Afq8K0wM7o6v0PvY1NuLxxAgMB +AAGjQjBAMB0GA1UdDgQWBBTF7+3M2I0hxkjk49cULqcWk+WYATAPBgNVHRMBAf8EBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAUoKsITQfI/Ki2Pm4rzc2IInRNwPWaZ+4 +YRC6ojGYWUfo0Q0lHhVBDOAqVdVXUsv45Mdpox1NcQJeXyFFYEhcCY5JEMEE3KliawLwQ8hOnThJ +dMkycFRtwUf8jrQ2ntScvd0g1lPJGKm1Vrl2i5VnZu69mP6u775u+2D2/VnGKhs/I0qUJDAnyIm8 +60Qkmss9vk/Ves6OF8tiwdneHg56/0OGNFK8YT88X7vZdrRTvJez/opMEi4r89fO4aL/3Xtw+zuh +TaRjAv04l5U/BXCga99igUOLtFkNSoxUnMW7gZ/NfaXvCyUeOiDbHPwfmGcCCtRzRBPbUYQaVQNW +4AB+dAb/OMRyHdOoP2gxXdMJxy6MW2Pg6Nwe0uxhHvLe5e/2mXZgLR6UcnHGCyoyx5JO1UbXHfmp +GQrI+pXObSOYqgs4rZpWDW+N8TEAiMEXnM0ZNjX+VVOg4DwzX5Ze4jLp3zO7Bkqp2IRzznfSxqxx +4VyjHQy7Ct9f4qNx2No3WqB4K/TUfet27fJhcKVlmtOJNBir+3I+17Q9eVzYH6Eze9mCUAyTF6ps +3MKCuwJXNq+YJyo5UOGwifUll35HaBC07HPKs5fRJNz2YqAo07WjuGS3iGJCz51TzZm+ZGiPTx4S +SPfSKcOYKMryMguTjClPPGAyzQWWYezyr/6zcCwupvI= +-----END CERTIFICATE----- + +BJCA Global Root CA2 +==================== +-----BEGIN CERTIFICATE----- +MIICJTCCAaugAwIBAgIQLBcIfWQqwP6FGFkGz7RK6zAKBggqhkjOPQQDAzBUMQswCQYDVQQGEwJD +TjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxHTAbBgNVBAMMFEJKQ0Eg +R2xvYmFsIFJvb3QgQ0EyMB4XDTE5MTIxOTAzMTgyMVoXDTQ0MTIxMjAzMTgyMVowVDELMAkGA1UE +BhMCQ04xJjAkBgNVBAoMHUJFSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRC +SkNBIEdsb2JhbCBSb290IENBMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABJ3LgJGNU2e1uVCxA/jl +SR9BIgmwUVJY1is0j8USRhTFiy8shP8sbqjV8QnjAyEUxEM9fMEsxEtqSs3ph+B99iK++kpRuDCK +/eHeGBIK9ke35xe/J4rUQUyWPGCWwf0VHKNCMEAwHQYDVR0OBBYEFNJKsVF/BvDRgh9Obl+rg/xI +1LCRMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2gAMGUCMBq8 +W9f+qdJUDkpd0m2xQNz0Q9XSSpkZElaA94M04TVOSG0ED1cxMDAtsaqdAzjbBgIxAMvMh1PLet8g +UXOQwKhbYdDFUDn9hf7B43j4ptZLvZuHjw/l1lOWqzzIQNph91Oj9w== +-----END CERTIFICATE----- + +Sectigo Public Server Authentication Root E46 +============================================= +-----BEGIN CERTIFICATE----- +MIICOjCCAcGgAwIBAgIQQvLM2htpN0RfFf51KBC49DAKBggqhkjOPQQDAzBfMQswCQYDVQQGEwJH +QjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBTZXJ2 +ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwHhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5 +WjBfMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0 +aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUr +gQQAIgNiAAR2+pmpbiDt+dd34wc7qNs9Xzjoq1WmVk/WSOrsfy2qw7LFeeyZYX8QeccCWvkEN/U0 +NSt3zn8gj1KjAIns1aeibVvjS5KToID1AZTc8GgHHs3u/iVStSBDHBv+6xnOQ6OjQjBAMB0GA1Ud +DgQWBBTRItpMWfFLXyY4qp3W7usNw/upYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB +/zAKBggqhkjOPQQDAwNnADBkAjAn7qRaqCG76UeXlImldCBteU/IvZNeWBj7LRoAasm4PdCkT0RH +lAFWovgzJQxC36oCMB3q4S6ILuH5px0CMk7yn2xVdOOurvulGu7t0vzCAxHrRVxgED1cf5kDW21U +SAGKcw== +-----END CERTIFICATE----- + +Sectigo Public Server Authentication Root R46 +============================================= +-----BEGIN CERTIFICATE----- +MIIFijCCA3KgAwIBAgIQdY39i658BwD6qSWn4cetFDANBgkqhkiG9w0BAQwFADBfMQswCQYDVQQG +EwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBT +ZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwHhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1 +OTU5WjBfMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1T +ZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwggIiMA0GCSqGSIb3 +DQEBAQUAA4ICDwAwggIKAoICAQCTvtU2UnXYASOgHEdCSe5jtrch/cSV1UgrJnwUUxDaef0rty2k +1Cz66jLdScK5vQ9IPXtamFSvnl0xdE8H/FAh3aTPaE8bEmNtJZlMKpnzSDBh+oF8HqcIStw+Kxwf +GExxqjWMrfhu6DtK2eWUAtaJhBOqbchPM8xQljeSM9xfiOefVNlI8JhD1mb9nxc4Q8UBUQvX4yMP +FF1bFOdLvt30yNoDN9HWOaEhUTCDsG3XME6WW5HwcCSrv0WBZEMNvSE6Lzzpng3LILVCJ8zab5vu +ZDCQOc2TZYEhMbUjUDM3IuM47fgxMMxF/mL50V0yeUKH32rMVhlATc6qu/m1dkmU8Sf4kaWD5Qaz +Yw6A3OASVYCmO2a0OYctyPDQ0RTp5A1NDvZdV3LFOxxHVp3i1fuBYYzMTYCQNFu31xR13NgESJ/A +wSiItOkcyqex8Va3e0lMWeUgFaiEAin6OJRpmkkGj80feRQXEgyDet4fsZfu+Zd4KKTIRJLpfSYF +plhym3kT2BFfrsU4YjRosoYwjviQYZ4ybPUHNs2iTG7sijbt8uaZFURww3y8nDnAtOFr94MlI1fZ +EoDlSfB1D++N6xybVCi0ITz8fAr/73trdf+LHaAZBav6+CuBQug4urv7qv094PPK306Xlynt8xhW +6aWWrL3DkJiy4Pmi1KZHQ3xtzwIDAQABo0IwQDAdBgNVHQ4EFgQUVnNYZJX5khqwEioEYnmhQBWI +IUkwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAC9c +mTz8Bl6MlC5w6tIyMY208FHVvArzZJ8HXtXBc2hkeqK5Duj5XYUtqDdFqij0lgVQYKlJfp/imTYp +E0RHap1VIDzYm/EDMrraQKFz6oOht0SmDpkBm+S8f74TlH7Kph52gDY9hAaLMyZlbcp+nv4fjFg4 +exqDsQ+8FxG75gbMY/qB8oFM2gsQa6H61SilzwZAFv97fRheORKkU55+MkIQpiGRqRxOF3yEvJ+M +0ejf5lG5Nkc/kLnHvALcWxxPDkjBJYOcCj+esQMzEhonrPcibCTRAUH4WAP+JWgiH5paPHxsnnVI +84HxZmduTILA7rpXDhjvLpr3Etiga+kFpaHpaPi8TD8SHkXoUsCjvxInebnMMTzD9joiFgOgyY9m +pFuiTdaBJQbpdqQACj7LzTWb4OE4y2BThihCQRxEV+ioratF4yUQvNs+ZUH7G6aXD+u5dHn5Hrwd +Vw1Hr8Mvn4dGp+smWg9WY7ViYG4A++MnESLn/pmPNPW56MORcr3Ywx65LvKRRFHQV80MNNVIIb/b +E/FmJUNS0nAiNs2fxBx1IK1jcmMGDw4nztJqDby1ORrp0XZ60Vzk50lJLVU3aPAaOpg+VBeHVOmm +J1CJeyAvP/+/oYtKR5j/K3tJPsMpRmAYQqszKbrAKbkTidOIijlBO8n9pu0f9GBj39ItVQGL +-----END CERTIFICATE----- + +SSL.com TLS RSA Root CA 2022 +============================ +-----BEGIN CERTIFICATE----- +MIIFiTCCA3GgAwIBAgIQb77arXO9CEDii02+1PdbkTANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQG +EwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxTU0wuY29tIFRMUyBSU0Eg +Um9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzQyMloXDTQ2MDgxOTE2MzQyMVowTjELMAkGA1UEBhMC +VVMxGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgUlNBIFJv +b3QgQ0EgMjAyMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANCkCXJPQIgSYT41I57u +9nTPL3tYPc48DRAokC+X94xI2KDYJbFMsBFMF3NQ0CJKY7uB0ylu1bUJPiYYf7ISf5OYt6/wNr/y +7hienDtSxUcZXXTzZGbVXcdotL8bHAajvI9AI7YexoS9UcQbOcGV0insS657Lb85/bRi3pZ7Qcac +oOAGcvvwB5cJOYF0r/c0WRFXCsJbwST0MXMwgsadugL3PnxEX4MN8/HdIGkWCVDi1FW24IBydm5M +R7d1VVm0U3TZlMZBrViKMWYPHqIbKUBOL9975hYsLfy/7PO0+r4Y9ptJ1O4Fbtk085zx7AGL0SDG +D6C1vBdOSHtRwvzpXGk3R2azaPgVKPC506QVzFpPulJwoxJF3ca6TvvC0PeoUidtbnm1jPx7jMEW +TO6Af77wdr5BUxIzrlo4QqvXDz5BjXYHMtWrifZOZ9mxQnUjbvPNQrL8VfVThxc7wDNY8VLS+YCk +8OjwO4s4zKTGkH8PnP2L0aPP2oOnaclQNtVcBdIKQXTbYxE3waWglksejBYSd66UNHsef8JmAOSq +g+qKkK3ONkRN0VHpvB/zagX9wHQfJRlAUW7qglFA35u5CCoGAtUjHBPW6dvbxrB6y3snm/vg1UYk +7RBLY0ulBY+6uB0rpvqR4pJSvezrZ5dtmi2fgTIFZzL7SAg/2SW4BCUvAgMBAAGjYzBhMA8GA1Ud +EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU+y437uOEeicuzRk1sTN8/9REQrkwHQYDVR0OBBYEFPsu +N+7jhHonLs0ZNbEzfP/UREK5MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAjYlt +hEUY8U+zoO9opMAdrDC8Z2awms22qyIZZtM7QbUQnRC6cm4pJCAcAZli05bg4vsMQtfhWsSWTVTN +j8pDU/0quOr4ZcoBwq1gaAafORpR2eCNJvkLTqVTJXojpBzOCBvfR4iyrT7gJ4eLSYwfqUdYe5by +iB0YrrPRpgqU+tvT5TgKa3kSM/tKWTcWQA673vWJDPFs0/dRa1419dvAJuoSc06pkZCmF8NsLzjU +o3KUQyxi4U5cMj29TH0ZR6LDSeeWP4+a0zvkEdiLA9z2tmBVGKaBUfPhqBVq6+AL8BQx1rmMRTqo +ENjwuSfr98t67wVylrXEj5ZzxOhWc5y8aVFjvO9nHEMaX3cZHxj4HCUp+UmZKbaSPaKDN7Egkaib +MOlqbLQjk2UEqxHzDh1TJElTHaE/nUiSEeJ9DU/1172iWD54nR4fK/4huxoTtrEoZP2wAgDHbICi +vRZQIA9ygV/MlP+7mea6kMvq+cYMwq7FGc4zoWtcu358NFcXrfA/rs3qr5nsLFR+jM4uElZI7xc7 +P0peYNLcdDa8pUNjyw9bowJWCZ4kLOGGgYz+qxcs+sjiMho6/4UIyYOf8kpIEFR3N+2ivEC+5BB0 +9+Rbu7nzifmPQdjH5FCQNYA+HLhNkNPU98OwoX6EyneSMSy4kLGCenROmxMmtNVQZlR4rmA= +-----END CERTIFICATE----- + +SSL.com TLS ECC Root CA 2022 +============================ +-----BEGIN CERTIFICATE----- +MIICOjCCAcCgAwIBAgIQFAP1q/s3ixdAW+JDsqXRxDAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJV +UzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxTU0wuY29tIFRMUyBFQ0MgUm9v +dCBDQSAyMDIyMB4XDTIyMDgyNTE2MzM0OFoXDTQ2MDgxOTE2MzM0N1owTjELMAkGA1UEBhMCVVMx +GDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgRUNDIFJvb3Qg +Q0EgMjAyMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABEUpNXP6wrgjzhR9qLFNoFs27iosU8NgCTWy +JGYmacCzldZdkkAZDsalE3D07xJRKF3nzL35PIXBz5SQySvOkkJYWWf9lCcQZIxPBLFNSeR7T5v1 +5wj4A4j3p8OSSxlUgaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSJjy+j6CugFFR7 +81a4Jl9nOAuc0DAdBgNVHQ4EFgQUiY8vo+groBRUe/NWuCZfZzgLnNAwDgYDVR0PAQH/BAQDAgGG +MAoGCCqGSM49BAMDA2gAMGUCMFXjIlbp15IkWE8elDIPDAI2wv2sdDJO4fscgIijzPvX6yv/N33w +7deedWo1dlJF4AIxAMeNb0Igj762TVntd00pxCAgRWSGOlDGxK0tk/UYfXLtqc/ErFc2KAhl3zx5 +Zn6g6g== +-----END CERTIFICATE----- + +Atos TrustedRoot Root CA ECC TLS 2021 +===================================== +-----BEGIN CERTIFICATE----- +MIICFTCCAZugAwIBAgIQPZg7pmY9kGP3fiZXOATvADAKBggqhkjOPQQDAzBMMS4wLAYDVQQDDCVB +dG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgRUNDIFRMUyAyMDIxMQ0wCwYDVQQKDARBdG9zMQswCQYD +VQQGEwJERTAeFw0yMTA0MjIwOTI2MjNaFw00MTA0MTcwOTI2MjJaMEwxLjAsBgNVBAMMJUF0b3Mg +VHJ1c3RlZFJvb3QgUm9vdCBDQSBFQ0MgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYT +AkRFMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEloZYKDcKZ9Cg3iQZGeHkBQcfl+3oZIK59sRxUM6K +DP/XtXa7oWyTbIOiaG6l2b4siJVBzV3dscqDY4PMwL502eCdpO5KTlbgmClBk1IQ1SQ4AjJn8ZQS +b+/Xxd4u/RmAo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR2KCXWfeBmmnoJsmo7jjPX +NtNPojAOBgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwMDaAAwZQIwW5kp85wxtolrbNa9d+F851F+ +uDrNozZffPc8dz7kUK2o59JZDCaOMDtuCCrCp1rIAjEAmeMM56PDr9NJLkaCI2ZdyQAUEv049OGY +a3cpetskz2VAv9LcjBHo9H1/IISpQuQo +-----END CERTIFICATE----- + +Atos TrustedRoot Root CA RSA TLS 2021 +===================================== +-----BEGIN CERTIFICATE----- +MIIFZDCCA0ygAwIBAgIQU9XP5hmTC/srBRLYwiqipDANBgkqhkiG9w0BAQwFADBMMS4wLAYDVQQD +DCVBdG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgUlNBIFRMUyAyMDIxMQ0wCwYDVQQKDARBdG9zMQsw +CQYDVQQGEwJERTAeFw0yMTA0MjIwOTIxMTBaFw00MTA0MTcwOTIxMDlaMEwxLjAsBgNVBAMMJUF0 +b3MgVHJ1c3RlZFJvb3QgUm9vdCBDQSBSU0EgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNV +BAYTAkRFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtoAOxHm9BYx9sKOdTSJNy/BB +l01Z4NH+VoyX8te9j2y3I49f1cTYQcvyAh5x5en2XssIKl4w8i1mx4QbZFc4nXUtVsYvYe+W/CBG +vevUez8/fEc4BKkbqlLfEzfTFRVOvV98r61jx3ncCHvVoOX3W3WsgFWZkmGbzSoXfduP9LVq6hdK +ZChmFSlsAvFr1bqjM9xaZ6cF4r9lthawEO3NUDPJcFDsGY6wx/J0W2tExn2WuZgIWWbeKQGb9Cpt +0xU6kGpn8bRrZtkh68rZYnxGEFzedUlnnkL5/nWpo63/dgpnQOPF943HhZpZnmKaau1Fh5hnstVK +PNe0OwANwI8f4UDErmwh3El+fsqyjW22v5MvoVw+j8rtgI5Y4dtXz4U2OLJxpAmMkokIiEjxQGMY +sluMWuPD0xeqqxmjLBvk1cbiZnrXghmmOxYsL3GHX0WelXOTwkKBIROW1527k2gV+p2kHYzygeBY +Br3JtuP2iV2J+axEoctr+hbxx1A9JNr3w+SH1VbxT5Aw+kUJWdo0zuATHAR8ANSbhqRAvNncTFd+ +rrcztl524WWLZt+NyteYr842mIycg5kDcPOvdO3GDjbnvezBc6eUWsuSZIKmAMFwoW4sKeFYV+xa +fJlrJaSQOoD0IJ2azsct+bJLKZWD6TWNp0lIpw9MGZHQ9b8Q4HECAwEAAaNCMEAwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUdEmZ0f+0emhFdcN+tNzMzjkz2ggwDgYDVR0PAQH/BAQDAgGGMA0G +CSqGSIb3DQEBDAUAA4ICAQAjQ1MkYlxt/T7Cz1UAbMVWiLkO3TriJQ2VSpfKgInuKs1l+NsW4AmS +4BjHeJi78+xCUvuppILXTdiK/ORO/auQxDh1MoSf/7OwKwIzNsAQkG8dnK/haZPso0UvFJ/1TCpl +Q3IM98P4lYsU84UgYt1UU90s3BiVaU+DR3BAM1h3Egyi61IxHkzJqM7F78PRreBrAwA0JrRUITWX +AdxfG/F851X6LWh3e9NpzNMOa7pNdkTWwhWaJuywxfW70Xp0wmzNxbVe9kzmWy2B27O3Opee7c9G +slA9hGCZcbUztVdF5kJHdWoOsAgMrr3e97sPWD2PAzHoPYJQyi9eDF20l74gNAf0xBLh7tew2Vkt +afcxBPTy+av5EzH4AXcOPUIjJsyacmdRIXrMPIWo6iFqO9taPKU0nprALN+AnCng33eU0aKAQv9q +TFsR0PXNor6uzFFcw9VUewyu1rkGd4Di7wcaaMxZUa1+XGdrudviB0JbuAEFWDlN5LuYo7Ey7Nmj +1m+UI/87tyll5gfp77YZ6ufCOB0yiJA8EytuzO+rdwY0d4RPcuSBhPm5dDTedk+SKlOxJTnbPP/l +PqYO5Wue/9vsL3SD3460s6neFE3/MaNFcyT6lSnMEpcEoji2jbDwN/zIIX8/syQbPYtuzE2wFg2W +HYMfRsCbvUOZ58SWLs5fyQ== +-----END CERTIFICATE----- + +TrustAsia Global Root CA G3 +=========================== +-----BEGIN CERTIFICATE----- +MIIFpTCCA42gAwIBAgIUZPYOZXdhaqs7tOqFhLuxibhxkw8wDQYJKoZIhvcNAQEMBQAwWjELMAkG +A1UEBhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xJDAiBgNVBAMM +G1RydXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHMzAeFw0yMTA1MjAwMjEwMTlaFw00NjA1MTkwMjEw +MTlaMFoxCzAJBgNVBAYTAkNOMSUwIwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMu +MSQwIgYDVQQDDBtUcnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzMwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQDAMYJhkuSUGwoqZdC+BqmHO1ES6nBBruL7dOoKjbmzTNyPtxNST1QY4Sxz +lZHFZjtqz6xjbYdT8PfxObegQ2OwxANdV6nnRM7EoYNl9lA+sX4WuDqKAtCWHwDNBSHvBm3dIZwZ +Q0WhxeiAysKtQGIXBsaqvPPW5vxQfmZCHzyLpnl5hkA1nyDvP+uLRx+PjsXUjrYsyUQE49RDdT/V +P68czH5GX6zfZBCK70bwkPAPLfSIC7Epqq+FqklYqL9joDiR5rPmd2jE+SoZhLsO4fWvieylL1Ag +dB4SQXMeJNnKziyhWTXAyB1GJ2Faj/lN03J5Zh6fFZAhLf3ti1ZwA0pJPn9pMRJpxx5cynoTi+jm +9WAPzJMshH/x/Gr8m0ed262IPfN2dTPXS6TIi/n1Q1hPy8gDVI+lhXgEGvNz8teHHUGf59gXzhqc +D0r83ERoVGjiQTz+LISGNzzNPy+i2+f3VANfWdP3kXjHi3dqFuVJhZBFcnAvkV34PmVACxmZySYg +WmjBNb9Pp1Hx2BErW+Canig7CjoKH8GB5S7wprlppYiU5msTf9FkPz2ccEblooV7WIQn3MSAPmea +mseaMQ4w7OYXQJXZRe0Blqq/DPNL0WP3E1jAuPP6Z92bfW1K/zJMtSU7/xxnD4UiWQWRkUF3gdCF +TIcQcf+eQxuulXUtgQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEDk5PIj +7zjKsK5Xf/IhMBY027ySMB0GA1UdDgQWBBRA5OTyI+84yrCuV3/yITAWNNu8kjAOBgNVHQ8BAf8E +BAMCAQYwDQYJKoZIhvcNAQEMBQADggIBACY7UeFNOPMyGLS0XuFlXsSUT9SnYaP4wM8zAQLpw6o1 +D/GUE3d3NZ4tVlFEbuHGLige/9rsR82XRBf34EzC4Xx8MnpmyFq2XFNFV1pF1AWZLy4jVe5jaN/T +G3inEpQGAHUNcoTpLrxaatXeL1nHo+zSh2bbt1S1JKv0Q3jbSwTEb93mPmY+KfJLaHEih6D4sTNj +duMNhXJEIlU/HHzp/LgV6FL6qj6jITk1dImmasI5+njPtqzn59ZW/yOSLlALqbUHM/Q4X6RJpstl +cHboCoWASzY9M/eVVHUl2qzEc4Jl6VL1XP04lQJqaTDFHApXB64ipCz5xUG3uOyfT0gA+QEEVcys ++TIxxHWVBqB/0Y0n3bOppHKH/lmLmnp0Ft0WpWIp6zqW3IunaFnT63eROfjXy9mPX1onAX1daBli +2MjN9LdyR75bl87yraKZk62Uy5P2EgmVtqvXO9A/EcswFi55gORngS1d7XB4tmBZrOFdRWOPyN9y +aFvqHbgB8X7754qz41SgOAngPN5C8sLtLpvzHzW2NtjjgKGLzZlkD8Kqq7HK9W+eQ42EVJmzbsAS +ZthwEPEGNTNDqJwuuhQxzhB/HIbjj9LV+Hfsm6vxL2PZQl/gZ4FkkfGXL/xuJvYz+NO1+MRiqzFR +JQJ6+N1rZdVtTTDIZbpoFGWsJwt0ivKH +-----END CERTIFICATE----- + +TrustAsia Global Root CA G4 +=========================== +-----BEGIN CERTIFICATE----- +MIICVTCCAdygAwIBAgIUTyNkuI6XY57GU4HBdk7LKnQV1tcwCgYIKoZIzj0EAwMwWjELMAkGA1UE +BhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xJDAiBgNVBAMMG1Ry +dXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHNDAeFw0yMTA1MjAwMjEwMjJaFw00NjA1MTkwMjEwMjJa +MFoxCzAJBgNVBAYTAkNOMSUwIwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSQw +IgYDVQQDDBtUcnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNi +AATxs8045CVD5d4ZCbuBeaIVXxVjAd7Cq92zphtnS4CDr5nLrBfbK5bKfFJV4hrhPVbwLxYI+hW8 +m7tH5j/uqOFMjPXTNvk4XatwmkcN4oFBButJ+bAp3TPsUKV/eSm4IJijYzBhMA8GA1UdEwEB/wQF +MAMBAf8wHwYDVR0jBBgwFoAUpbtKl86zK3+kMd6Xg1mDpm9xy94wHQYDVR0OBBYEFKW7SpfOsyt/ +pDHel4NZg6ZvccveMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjBe8usGzEkxn0AA +bbd+NvBNEU/zy4k6LHiRUKNbwMp1JvK/kF0LgoxgKJ/GcJpo5PECMFxYDlZ2z1jD1xCMuo6u47xk +dUfFVZDj/bpV6wfEU6s3qe4hsiFbYI89MvHVI5TWWA== +-----END CERTIFICATE----- + +CommScope Public Trust ECC Root-01 +================================== +-----BEGIN CERTIFICATE----- +MIICHTCCAaOgAwIBAgIUQ3CCd89NXTTxyq4yLzf39H91oJ4wCgYIKoZIzj0EAwMwTjELMAkGA1UE +BhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBUcnVz +dCBFQ0MgUm9vdC0wMTAeFw0yMTA0MjgxNzM1NDNaFw00NjA0MjgxNzM1NDJaME4xCzAJBgNVBAYT +AlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3Qg +RUNDIFJvb3QtMDEwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARLNumuV16ocNfQj3Rid8NeeqrltqLx +eP0CflfdkXmcbLlSiFS8LwS+uM32ENEp7LXQoMPwiXAZu1FlxUOcw5tjnSCDPgYLpkJEhRGnSjot +6dZoL0hOUysHP029uax3OVejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBSOB2LAUN3GGQYARnQE9/OufXVNMDAKBggqhkjOPQQDAwNoADBlAjEAnDPfQeMjqEI2 +Jpc1XHvr20v4qotzVRVcrHgpD7oh2MSg2NED3W3ROT3Ek2DS43KyAjB8xX6I01D1HiXo+k515liW +pDVfG2XqYZpwI7UNo5uSUm9poIyNStDuiw7LR47QjRE= +-----END CERTIFICATE----- + +CommScope Public Trust ECC Root-02 +================================== +-----BEGIN CERTIFICATE----- +MIICHDCCAaOgAwIBAgIUKP2ZYEFHpgE6yhR7H+/5aAiDXX0wCgYIKoZIzj0EAwMwTjELMAkGA1UE +BhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBUcnVz +dCBFQ0MgUm9vdC0wMjAeFw0yMTA0MjgxNzQ0NTRaFw00NjA0MjgxNzQ0NTNaME4xCzAJBgNVBAYT +AlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3Qg +RUNDIFJvb3QtMDIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAR4MIHoYx7l63FRD/cHB8o5mXxO1Q/M +MDALj2aTPs+9xYa9+bG3tD60B8jzljHz7aRP+KNOjSkVWLjVb3/ubCK1sK9IRQq9qEmUv4RDsNuE +SgMjGWdqb8FuvAY5N9GIIvejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBTmGHX/72DehKT1RsfeSlXjMjZ59TAKBggqhkjOPQQDAwNnADBkAjAmc0l6tqvmSfR9 +Uj/UQQSugEODZXW5hYA4O9Zv5JOGq4/nich/m35rChJVYaoR4HkCMHfoMXGsPHED1oQmHhS48zs7 +3u1Z/GtMMH9ZzkXpc2AVmkzw5l4lIhVtwodZ0LKOag== +-----END CERTIFICATE----- + +CommScope Public Trust RSA Root-01 +================================== +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIUPgNJgXUWdDGOTKvVxZAplsU5EN0wDQYJKoZIhvcNAQELBQAwTjELMAkG +A1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBU +cnVzdCBSU0EgUm9vdC0wMTAeFw0yMTA0MjgxNjQ1NTRaFw00NjA0MjgxNjQ1NTNaME4xCzAJBgNV +BAYTAlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1 +c3QgUlNBIFJvb3QtMDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwSGWjDR1C45Ft +nYSkYZYSwu3D2iM0GXb26v1VWvZVAVMP8syMl0+5UMuzAURWlv2bKOx7dAvnQmtVzslhsuitQDy6 +uUEKBU8bJoWPQ7VAtYXR1HHcg0Hz9kXHgKKEUJdGzqAMxGBWBB0HW0alDrJLpA6lfO741GIDuZNq +ihS4cPgugkY4Iw50x2tBt9Apo52AsH53k2NC+zSDO3OjWiE260f6GBfZumbCk6SP/F2krfxQapWs +vCQz0b2If4b19bJzKo98rwjyGpg/qYFlP8GMicWWMJoKz/TUyDTtnS+8jTiGU+6Xn6myY5QXjQ/c +Zip8UlF1y5mO6D1cv547KI2DAg+pn3LiLCuz3GaXAEDQpFSOm117RTYm1nJD68/A6g3czhLmfTif +BSeolz7pUcZsBSjBAg/pGG3svZwG1KdJ9FQFa2ww8esD1eo9anbCyxooSU1/ZOD6K9pzg4H/kQO9 +lLvkuI6cMmPNn7togbGEW682v3fuHX/3SZtS7NJ3Wn2RnU3COS3kuoL4b/JOHg9O5j9ZpSPcPYeo +KFgo0fEbNttPxP/hjFtyjMcmAyejOQoBqsCyMWCDIqFPEgkBEa801M/XrmLTBQe0MXXgDW1XT2mH ++VepuhX2yFJtocucH+X8eKg1mp9BFM6ltM6UCBwJrVbl2rZJmkrqYxhTnCwuwwIDAQABo0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUN12mmnQywsL5x6YVEFm4 +5P3luG0wDQYJKoZIhvcNAQELBQADggIBAK+nz97/4L1CjU3lIpbfaOp9TSp90K09FlxD533Ahuh6 +NWPxzIHIxgvoLlI1pKZJkGNRrDSsBTtXAOnTYtPZKdVUvhwQkZyybf5Z/Xn36lbQnmhUQo8mUuJM +3y+Xpi/SB5io82BdS5pYV4jvguX6r2yBS5KPQJqTRlnLX3gWsWc+QgvfKNmwrZggvkN80V4aCRck +jXtdlemrwWCrWxhkgPut4AZ9HcpZuPN4KWfGVh2vtrV0KnahP/t1MJ+UXjulYPPLXAziDslg+Mkf +Foom3ecnf+slpoq9uC02EJqxWE2aaE9gVOX2RhOOiKy8IUISrcZKiX2bwdgt6ZYD9KJ0DLwAHb/W +NyVntHKLr4W96ioDj8z7PEQkguIBpQtZtjSNMgsSDesnwv1B10A8ckYpwIzqug/xBpMu95yo9GA+ +o/E4Xo4TwbM6l4c/ksp4qRyv0LAbJh6+cOx69TOY6lz/KwsETkPdY34Op054A5U+1C0wlREQKC6/ +oAI+/15Z0wUOlV9TRe9rh9VIzRamloPh37MG88EU26fsHItdkJANclHnYfkUyq+Dj7+vsQpZXdxc +1+SWrVtgHdqul7I52Qb1dgAT+GhMIbA1xNxVssnBQVocicCMb3SgazNNtQEo/a2tiRc7ppqEvOuM +6sRxJKi6KfkIsidWNTJf6jn7MZrVGczw +-----END CERTIFICATE----- + +CommScope Public Trust RSA Root-02 +================================== +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIUVBa/O345lXGN0aoApYYNK496BU4wDQYJKoZIhvcNAQELBQAwTjELMAkG +A1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBU +cnVzdCBSU0EgUm9vdC0wMjAeFw0yMTA0MjgxNzE2NDNaFw00NjA0MjgxNzE2NDJaME4xCzAJBgNV +BAYTAlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1 +c3QgUlNBIFJvb3QtMDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDh+g77aAASyE3V +rCLENQE7xVTlWXZjpX/rwcRqmL0yjReA61260WI9JSMZNRTpf4mnG2I81lDnNJUDMrG0kyI9p+Kx +7eZ7Ti6Hmw0zdQreqjXnfuU2mKKuJZ6VszKWpCtYHu8//mI0SFHRtI1CrWDaSWqVcN3SAOLMV2MC +e5bdSZdbkk6V0/nLKR8YSvgBKtJjCW4k6YnS5cciTNxzhkcAqg2Ijq6FfUrpuzNPDlJwnZXjfG2W +Wy09X6GDRl224yW4fKcZgBzqZUPckXk2LHR88mcGyYnJ27/aaL8j7dxrrSiDeS/sOKUNNwFnJ5rp +M9kzXzehxfCrPfp4sOcsn/Y+n2Dg70jpkEUeBVF4GiwSLFworA2iI540jwXmojPOEXcT1A6kHkIf +hs1w/tkuFT0du7jyU1fbzMZ0KZwYszZ1OC4PVKH4kh+Jlk+71O6d6Ts2QrUKOyrUZHk2EOH5kQMr +eyBUzQ0ZGshBMjTRsJnhkB4BQDa1t/qp5Xd1pCKBXbCL5CcSD1SIxtuFdOa3wNemKfrb3vOTlycE +VS8KbzfFPROvCgCpLIscgSjX74Yxqa7ybrjKaixUR9gqiC6vwQcQeKwRoi9C8DfF8rhW3Q5iLc4t +Vn5V8qdE9isy9COoR+jUKgF4z2rDN6ieZdIs5fq6M8EGRPbmz6UNp2YINIos8wIDAQABo0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUR9DnsSL/nSz12Vdgs7Gx +cJXvYXowDQYJKoZIhvcNAQELBQADggIBAIZpsU0v6Z9PIpNojuQhmaPORVMbc0RTAIFhzTHjCLqB +KCh6krm2qMhDnscTJk3C2OVVnJJdUNjCK9v+5qiXz1I6JMNlZFxHMaNlNRPDk7n3+VGXu6TwYofF +1gbTl4MgqX67tiHCpQ2EAOHyJxCDut0DgdXdaMNmEMjRdrSzbymeAPnCKfWxkxlSaRosTKCL4BWa +MS/TiJVZbuXEs1DIFAhKm4sTg7GkcrI7djNB3NyqpgdvHSQSn8h2vS/ZjvQs7rfSOBAkNlEv41xd +gSGn2rtO/+YHqP65DSdsu3BaVXoT6fEqSWnHX4dXTEN5bTpl6TBcQe7rd6VzEojov32u5cSoHw2O +HG1QAk8mGEPej1WFsQs3BWDJVTkSBKEqz3EWnzZRSb9wO55nnPt7eck5HHisd5FUmrh1CoFSl+Nm +YWvtPjgelmFV4ZFUjO2MJB+ByRCac5krFk5yAD9UG/iNuovnFNa2RU9g7Jauwy8CTl2dlklyALKr +dVwPaFsdZcJfMw8eD/A7hvWwTruc9+olBdytoptLFwG+Qt81IR2tq670v64fG9PiO/yzcnMcmyiQ +iRM9HcEARwmWmjgb3bHPDcK0RPOWlc4yOo80nOAXx17Org3bhzjlP1v9mxnhMUF6cKojawHhRUzN +lM47ni3niAIi9G7oyOzWPPO5std3eqx7 +-----END CERTIFICATE----- + +Telekom Security TLS ECC Root 2020 +================================== +-----BEGIN CERTIFICATE----- +MIICQjCCAcmgAwIBAgIQNjqWjMlcsljN0AFdxeVXADAKBggqhkjOPQQDAzBjMQswCQYDVQQGEwJE +RTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0eSBHbWJIMSswKQYDVQQDDCJUZWxl +a29tIFNlY3VyaXR5IFRMUyBFQ0MgUm9vdCAyMDIwMB4XDTIwMDgyNTA3NDgyMFoXDTQ1MDgyNTIz +NTk1OVowYzELMAkGA1UEBhMCREUxJzAlBgNVBAoMHkRldXRzY2hlIFRlbGVrb20gU2VjdXJpdHkg +R21iSDErMCkGA1UEAwwiVGVsZWtvbSBTZWN1cml0eSBUTFMgRUNDIFJvb3QgMjAyMDB2MBAGByqG +SM49AgEGBSuBBAAiA2IABM6//leov9Wq9xCazbzREaK9Z0LMkOsVGJDZos0MKiXrPk/OtdKPD/M1 +2kOLAoC+b1EkHQ9rK8qfwm9QMuU3ILYg/4gND21Ju9sGpIeQkpT0CdDPf8iAC8GXs7s1J8nCG6NC +MEAwHQYDVR0OBBYEFONyzG6VmUex5rNhTNHLq+O6zd6fMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P +AQH/BAQDAgEGMAoGCCqGSM49BAMDA2cAMGQCMHVSi7ekEE+uShCLsoRbQuHmKjYC2qBuGT8lv9pZ +Mo7k+5Dck2TOrbRBR2Diz6fLHgIwN0GMZt9Ba9aDAEH9L1r3ULRn0SyocddDypwnJJGDSA3PzfdU +ga/sf+Rn27iQ7t0l +-----END CERTIFICATE----- + +Telekom Security TLS RSA Root 2023 +================================== +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIQIZxULej27HF3+k7ow3BXlzANBgkqhkiG9w0BAQwFADBjMQswCQYDVQQG +EwJERTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0eSBHbWJIMSswKQYDVQQDDCJU +ZWxla29tIFNlY3VyaXR5IFRMUyBSU0EgUm9vdCAyMDIzMB4XDTIzMDMyODEyMTY0NVoXDTQ4MDMy +NzIzNTk1OVowYzELMAkGA1UEBhMCREUxJzAlBgNVBAoMHkRldXRzY2hlIFRlbGVrb20gU2VjdXJp +dHkgR21iSDErMCkGA1UEAwwiVGVsZWtvbSBTZWN1cml0eSBUTFMgUlNBIFJvb3QgMjAyMzCCAiIw +DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAO01oYGA88tKaVvC+1GDrib94W7zgRJ9cUD/h3VC +KSHtgVIs3xLBGYSJwb3FKNXVS2xE1kzbB5ZKVXrKNoIENqil/Cf2SfHVcp6R+SPWcHu79ZvB7JPP +GeplfohwoHP89v+1VmLhc2o0mD6CuKyVU/QBoCcHcqMAU6DksquDOFczJZSfvkgdmOGjup5czQRx +UX11eKvzWarE4GC+j4NSuHUaQTXtvPM6Y+mpFEXX5lLRbtLevOP1Czvm4MS9Q2QTps70mDdsipWo +l8hHD/BeEIvnHRz+sTugBTNoBUGCwQMrAcjnj02r6LX2zWtEtefdi+zqJbQAIldNsLGyMcEWzv/9 +FIS3R/qy8XDe24tsNlikfLMR0cN3f1+2JeANxdKz+bi4d9s3cXFH42AYTyS2dTd4uaNir73Jco4v +zLuu2+QVUhkHM/tqty1LkCiCc/4YizWN26cEar7qwU02OxY2kTLvtkCJkUPg8qKrBC7m8kwOFjQg +rIfBLX7JZkcXFBGk8/ehJImr2BrIoVyxo/eMbcgByU/J7MT8rFEz0ciD0cmfHdRHNCk+y7AO+oML +KFjlKdw/fKifybYKu6boRhYPluV75Gp6SG12mAWl3G0eQh5C2hrgUve1g8Aae3g1LDj1H/1Joy7S +WWO/gLCMk3PLNaaZlSJhZQNg+y+TS/qanIA7AgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAdBgNV +HQ4EFgQUtqeXgj10hZv3PJ+TmpV5dVKMbUcwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS2 +p5eCPXSFm/c8n5OalXl1UoxtRzANBgkqhkiG9w0BAQwFAAOCAgEAqMxhpr51nhVQpGv7qHBFfLp+ +sVr8WyP6Cnf4mHGCDG3gXkaqk/QeoMPhk9tLrbKmXauw1GLLXrtm9S3ul0A8Yute1hTWjOKWi0Fp +kzXmuZlrYrShF2Y0pmtjxrlO8iLpWA1WQdH6DErwM807u20hOq6OcrXDSvvpfeWxm4bu4uB9tPcy +/SKE8YXJN3nptT+/XOR0so8RYgDdGGah2XsjX/GO1WfoVNpbOms2b/mBsTNHM3dA+VKq3dSDz4V4 +mZqTuXNnQkYRIer+CqkbGmVps4+uFrb2S1ayLfmlyOw7YqPta9BO1UAJpB+Y1zqlklkg5LB9zVtz +aL1txKITDmcZuI1CfmwMmm6gJC3VRRvcxAIU/oVbZZfKTpBQCHpCNfnqwmbU+AGuHrS+w6jv/naa +oqYfRvaE7fzbzsQCzndILIyy7MMAo+wsVRjBfhnu4S/yrYObnqsZ38aKL4x35bcF7DvB7L6Gs4a8 +wPfc5+pbrrLMtTWGS9DiP7bY+A4A7l3j941Y/8+LN+ljX273CXE2whJdV/LItM3z7gLfEdxquVeE +HVlNjM7IDiPCtyaaEBRx/pOyiriA8A4QntOoUAw3gi/q4Iqd4Sw5/7W0cwDk90imc6y/st53BIe0 +o82bNSQ3+pCTE4FCxpgmdTdmQRCsu/WU48IxK63nI1bMNSWSs1A= +-----END CERTIFICATE----- diff --git a/system/vendor/composer/ca-bundle/src/CaBundle.php b/system/vendor/composer/ca-bundle/src/CaBundle.php new file mode 100644 index 0000000..f6f2afe --- /dev/null +++ b/system/vendor/composer/ca-bundle/src/CaBundle.php @@ -0,0 +1,325 @@ + + * + * For the full copyright and license information, please view + * the LICENSE file that was distributed with this source code. + */ + +namespace Composer\CaBundle; + +use Psr\Log\LoggerInterface; +use Symfony\Component\Process\PhpProcess; + +/** + * @author Chris Smith + * @author Jordi Boggiano + */ +class CaBundle +{ + /** @var string|null */ + private static $caPath; + /** @var array */ + private static $caFileValidity = array(); + + /** + * Returns the system CA bundle path, or a path to the bundled one + * + * This method was adapted from Sslurp. + * https://github.com/EvanDotPro/Sslurp + * + * (c) Evan Coury + * + * For the full copyright and license information, please see below: + * + * Copyright (c) 2013, Evan Coury + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * @param LoggerInterface $logger optional logger for information about which CA files were loaded + * @return string path to a CA bundle file or directory + */ + public static function getSystemCaRootBundlePath(?LoggerInterface $logger = null) + { + if (self::$caPath !== null) { + return self::$caPath; + } + $caBundlePaths = array(); + + // If SSL_CERT_FILE env variable points to a valid certificate/bundle, use that. + // This mimics how OpenSSL uses the SSL_CERT_FILE env variable. + $caBundlePaths[] = self::getEnvVariable('SSL_CERT_FILE'); + + // If SSL_CERT_DIR env variable points to a valid certificate/bundle, use that. + // This mimics how OpenSSL uses the SSL_CERT_FILE env variable. + $caBundlePaths[] = self::getEnvVariable('SSL_CERT_DIR'); + + $caBundlePaths[] = ini_get('openssl.cafile'); + $caBundlePaths[] = ini_get('openssl.capath'); + + $otherLocations = array( + '/etc/pki/tls/certs/ca-bundle.crt', // Fedora, RHEL, CentOS (ca-certificates package) + '/etc/ssl/certs/ca-certificates.crt', // Debian, Ubuntu, Gentoo, Arch Linux (ca-certificates package) + '/etc/ssl/ca-bundle.pem', // SUSE, openSUSE (ca-certificates package) + '/usr/local/share/certs/ca-root-nss.crt', // FreeBSD (ca_root_nss_package) + '/usr/ssl/certs/ca-bundle.crt', // Cygwin + '/opt/local/share/curl/curl-ca-bundle.crt', // OS X macports, curl-ca-bundle package + '/usr/local/share/curl/curl-ca-bundle.crt', // Default cURL CA bunde path (without --with-ca-bundle option) + '/usr/share/ssl/certs/ca-bundle.crt', // Really old RedHat? + '/etc/ssl/cert.pem', // OpenBSD + '/usr/local/etc/ssl/cert.pem', // FreeBSD 10.x + '/usr/local/etc/openssl/cert.pem', // OS X homebrew, openssl package + '/usr/local/etc/openssl@1.1/cert.pem', // OS X homebrew, openssl@1.1 package + '/opt/homebrew/etc/openssl@3/cert.pem', // macOS silicon homebrew, openssl@3 package + '/opt/homebrew/etc/openssl@1.1/cert.pem', // macOS silicon homebrew, openssl@1.1 package + ); + + foreach($otherLocations as $location) { + $otherLocations[] = dirname($location); + } + + $caBundlePaths = array_merge($caBundlePaths, $otherLocations); + + foreach ($caBundlePaths as $caBundle) { + if ($caBundle && self::caFileUsable($caBundle, $logger)) { + return self::$caPath = $caBundle; + } + + if ($caBundle && self::caDirUsable($caBundle, $logger)) { + return self::$caPath = $caBundle; + } + } + + return self::$caPath = static::getBundledCaBundlePath(); // Bundled CA file, last resort + } + + /** + * Returns the path to the bundled CA file + * + * In case you don't want to trust the user or the system, you can use this directly + * + * @return string path to a CA bundle file + */ + public static function getBundledCaBundlePath() + { + $caBundleFile = __DIR__.'/../res/cacert.pem'; + + // cURL does not understand 'phar://' paths + // see https://github.com/composer/ca-bundle/issues/10 + if (0 === strpos($caBundleFile, 'phar://')) { + $tempCaBundleFile = tempnam(sys_get_temp_dir(), 'openssl-ca-bundle-'); + if (false === $tempCaBundleFile) { + throw new \RuntimeException('Could not create a temporary file to store the bundled CA file'); + } + + file_put_contents( + $tempCaBundleFile, + file_get_contents($caBundleFile) + ); + + register_shutdown_function(function() use ($tempCaBundleFile) { + @unlink($tempCaBundleFile); + }); + + $caBundleFile = $tempCaBundleFile; + } + + return $caBundleFile; + } + + /** + * Validates a CA file using opensl_x509_parse only if it is safe to use + * + * @param string $filename + * @param LoggerInterface $logger optional logger for information about which CA files were loaded + * + * @return bool + */ + public static function validateCaFile($filename, ?LoggerInterface $logger = null) + { + static $warned = false; + + if (isset(self::$caFileValidity[$filename])) { + return self::$caFileValidity[$filename]; + } + + $contents = file_get_contents($filename); + + if (is_string($contents) && strlen($contents) > 0) { + $contents = preg_replace("/^(\\-+(?:BEGIN|END))\\s+TRUSTED\\s+(CERTIFICATE\\-+)\$/m", '$1 $2', $contents); + if (null === $contents) { + // regex extraction failed + $isValid = false; + } else { + $isValid = (bool) openssl_x509_parse($contents); + } + } else { + $isValid = false; + } + + if ($logger) { + $logger->debug('Checked CA file '.realpath($filename).': '.($isValid ? 'valid' : 'invalid')); + } + + return self::$caFileValidity[$filename] = $isValid; + } + + /** + * Test if it is safe to use the PHP function openssl_x509_parse(). + * + * This checks if OpenSSL extensions is vulnerable to remote code execution + * via the exploit documented as CVE-2013-6420. + * + * @return bool + */ + public static function isOpensslParseSafe() + { + return true; + } + + /** + * Resets the static caches + * @return void + */ + public static function reset() + { + self::$caFileValidity = array(); + self::$caPath = null; + } + + /** + * @param string $name + * @return string|false + */ + private static function getEnvVariable($name) + { + if (isset($_SERVER[$name])) { + return (string) $_SERVER[$name]; + } + + if (PHP_SAPI === 'cli' && ($value = getenv($name)) !== false && $value !== null) { + return (string) $value; + } + + return false; + } + + /** + * @param string|false $certFile + * @param LoggerInterface|null $logger + * @return bool + */ + private static function caFileUsable($certFile, ?LoggerInterface $logger = null) + { + return $certFile + && self::isFile($certFile, $logger) + && self::isReadable($certFile, $logger) + && self::validateCaFile($certFile, $logger); + } + + /** + * @param string|false $certDir + * @param LoggerInterface|null $logger + * @return bool + */ + private static function caDirUsable($certDir, ?LoggerInterface $logger = null) + { + return $certDir + && self::isDir($certDir, $logger) + && self::isReadable($certDir, $logger) + && self::glob($certDir . '/*', $logger); + } + + /** + * @param string $certFile + * @param LoggerInterface|null $logger + * @return bool + */ + private static function isFile($certFile, ?LoggerInterface $logger = null) + { + $isFile = @is_file($certFile); + if (!$isFile && $logger) { + $logger->debug(sprintf('Checked CA file %s does not exist or it is not a file.', $certFile)); + } + + return $isFile; + } + + /** + * @param string $certDir + * @param LoggerInterface|null $logger + * @return bool + */ + private static function isDir($certDir, ?LoggerInterface $logger = null) + { + $isDir = @is_dir($certDir); + if (!$isDir && $logger) { + $logger->debug(sprintf('Checked directory %s does not exist or it is not a directory.', $certDir)); + } + + return $isDir; + } + + /** + * @param string $certFileOrDir + * @param LoggerInterface|null $logger + * @return bool + */ + private static function isReadable($certFileOrDir, ?LoggerInterface $logger = null) + { + $isReadable = @is_readable($certFileOrDir); + if (!$isReadable && $logger) { + $logger->debug(sprintf('Checked file or directory %s is not readable.', $certFileOrDir)); + } + + return $isReadable; + } + + /** + * @param string $pattern + * @param LoggerInterface|null $logger + * @return bool + */ + private static function glob($pattern, ?LoggerInterface $logger = null) + { + $certs = glob($pattern); + if ($certs === false) { + if ($logger) { + $logger->debug(sprintf("An error occurred while trying to find certificates for pattern: %s", $pattern)); + } + return false; + } + + if (count($certs) === 0) { + if ($logger) { + $logger->debug(sprintf("No CA files found for pattern: %s", $pattern)); + } + return false; + } + + return true; + } +} diff --git a/system/vendor/composer/installed.json b/system/vendor/composer/installed.json new file mode 100644 index 0000000..584f5a3 --- /dev/null +++ b/system/vendor/composer/installed.json @@ -0,0 +1,734 @@ +{ + "packages": [ + { + "name": "bacon/bacon-qr-code", + "version": "v3.0.0", + "version_normalized": "3.0.0.0", + "source": { + "type": "git", + "url": "https://github.com/Bacon/BaconQrCode.git", + "reference": "510de6eca6248d77d31b339d62437cc995e2fb41" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Bacon/BaconQrCode/zipball/510de6eca6248d77d31b339d62437cc995e2fb41", + "reference": "510de6eca6248d77d31b339d62437cc995e2fb41", + "shasum": "" + }, + "require": { + "dasprid/enum": "^1.0.3", + "ext-iconv": "*", + "php": "^8.1" + }, + "require-dev": { + "phly/keep-a-changelog": "^2.12", + "phpunit/phpunit": "^10.5.11 || 11.0.4", + "spatie/phpunit-snapshot-assertions": "^5.1.5", + "squizlabs/php_codesniffer": "^3.9" + }, + "suggest": { + "ext-imagick": "to generate QR code images" + }, + "time": "2024-04-18T11:16:25+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "BaconQrCode\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-2-Clause" + ], + "authors": [ + { + "name": "Ben Scholzen 'DASPRiD'", + "email": "mail@dasprids.de", + "homepage": "https://dasprids.de/", + "role": "Developer" + } + ], + "description": "BaconQrCode is a QR code generator for PHP.", + "homepage": "https://github.com/Bacon/BaconQrCode", + "support": { + "issues": "https://github.com/Bacon/BaconQrCode/issues", + "source": "https://github.com/Bacon/BaconQrCode/tree/v3.0.0" + }, + "install-path": "../bacon/bacon-qr-code" + }, + { + "name": "composer/ca-bundle", + "version": "1.5.0", + "version_normalized": "1.5.0.0", + "source": { + "type": "git", + "url": "https://github.com/composer/ca-bundle.git", + "reference": "0c5ccfcfea312b5c5a190a21ac5cef93f74baf99" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/0c5ccfcfea312b5c5a190a21ac5cef93f74baf99", + "reference": "0c5ccfcfea312b5c5a190a21ac5cef93f74baf99", + "shasum": "" + }, + "require": { + "ext-openssl": "*", + "ext-pcre": "*", + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.10", + "psr/log": "^1.0", + "symfony/phpunit-bridge": "^4.2 || ^5", + "symfony/process": "^4.0 || ^5.0 || ^6.0 || ^7.0" + }, + "time": "2024-03-15T14:00:32+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Composer\\CaBundle\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.", + "keywords": [ + "cabundle", + "cacert", + "certificate", + "ssl", + "tls" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/ca-bundle/issues", + "source": "https://github.com/composer/ca-bundle/tree/1.5.0" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "install-path": "./ca-bundle" + }, + { + "name": "dasprid/enum", + "version": "1.0.5", + "version_normalized": "1.0.5.0", + "source": { + "type": "git", + "url": "https://github.com/DASPRiD/Enum.git", + "reference": "6faf451159fb8ba4126b925ed2d78acfce0dc016" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/DASPRiD/Enum/zipball/6faf451159fb8ba4126b925ed2d78acfce0dc016", + "reference": "6faf451159fb8ba4126b925ed2d78acfce0dc016", + "shasum": "" + }, + "require": { + "php": ">=7.1 <9.0" + }, + "require-dev": { + "phpunit/phpunit": "^7 | ^8 | ^9", + "squizlabs/php_codesniffer": "*" + }, + "time": "2023-08-25T16:18:39+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "DASPRiD\\Enum\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-2-Clause" + ], + "authors": [ + { + "name": "Ben Scholzen 'DASPRiD'", + "email": "mail@dasprids.de", + "homepage": "https://dasprids.de/", + "role": "Developer" + } + ], + "description": "PHP 7.1 enum implementation", + "keywords": [ + "enum", + "map" + ], + "support": { + "issues": "https://github.com/DASPRiD/Enum/issues", + "source": "https://github.com/DASPRiD/Enum/tree/1.0.5" + }, + "install-path": "../dasprid/enum" + }, + { + "name": "ircmaxell/password-compat", + "version": "v1.0.4", + "version_normalized": "1.0.4.0", + "source": { + "type": "git", + "url": "https://github.com/ircmaxell/password_compat.git", + "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ircmaxell/password_compat/zipball/5c5cde8822a69545767f7c7f3058cb15ff84614c", + "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c", + "shasum": "" + }, + "require-dev": { + "phpunit/phpunit": "4.*" + }, + "time": "2014-11-20T16:49:30+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "files": [ + "lib/password.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Anthony Ferrara", + "email": "ircmaxell@php.net", + "homepage": "http://blog.ircmaxell.com" + } + ], + "description": "A compatibility library for the proposed simplified password hashing algorithm: https://wiki.php.net/rfc/password_hash", + "homepage": "https://github.com/ircmaxell/password_compat", + "keywords": [ + "hashing", + "password" + ], + "install-path": "../ircmaxell/password-compat" + }, + { + "name": "jbroadway/urlify", + "version": "1.2.4-stable", + "version_normalized": "1.2.4.0", + "source": { + "type": "git", + "url": "https://github.com/jbroadway/urlify.git", + "reference": "d0fafbaa1dc14e8039cdf5c72a932a8d1de1750e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/jbroadway/urlify/zipball/d0fafbaa1dc14e8039cdf5c72a932a8d1de1750e", + "reference": "d0fafbaa1dc14e8039cdf5c72a932a8d1de1750e", + "shasum": "" + }, + "require": { + "php": ">=7.2", + "voku/portable-ascii": "^2.0", + "voku/stop-words": "^2.0" + }, + "require-dev": { + "phpunit/phpunit": "^8.5" + }, + "time": "2022-06-15T16:46:46+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "URLify": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause-Clear" + ], + "authors": [ + { + "name": "Johnny Broadway", + "email": "johnny@johnnybroadway.com", + "homepage": "http://www.johnnybroadway.com/" + } + ], + "description": "A fast PHP slug generator and transliteration library that converts non-ascii characters for use in URLs.", + "homepage": "https://github.com/jbroadway/urlify", + "keywords": [ + "ascii", + "blogging", + "blogs", + "downcode", + "encode", + "iconv", + "link", + "seo", + "slug", + "slugify", + "slugs", + "translit", + "transliterate", + "transliteration", + "unicode", + "url", + "urlify" + ], + "support": { + "issues": "https://github.com/jbroadway/urlify/issues", + "source": "https://github.com/jbroadway/urlify/tree/1.2.4-stable" + }, + "install-path": "../jbroadway/urlify" + }, + { + "name": "kanti/hub-updater", + "version": "v0.5.1", + "version_normalized": "0.5.1.0", + "source": { + "type": "git", + "url": "https://github.com/Kanti/hub-updater.git", + "reference": "014b33c1e3880bd8e037a960a89e7116eb08a26e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Kanti/hub-updater/zipball/014b33c1e3880bd8e037a960a89e7116eb08a26e", + "reference": "014b33c1e3880bd8e037a960a89e7116eb08a26e", + "shasum": "" + }, + "require": { + "composer/ca-bundle": "^1.0", + "php": ">=5.3.6" + }, + "require-dev": { + "codeclimate/php-test-reporter": "0.*", + "friendsofphp/php-cs-fixer": "1.*", + "phpro/grumphp": "0.*", + "phpunit/phpunit": "4.*", + "sebastian/phpcpd": "2.*", + "squizlabs/php_codesniffer": "2.*" + }, + "time": "2016-08-02T19:12:55+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Kanti\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0" + ], + "authors": [ + { + "name": "Kanti", + "email": "git@kanti.de", + "homepage": "https://kanti.de", + "role": "Developer" + } + ], + "description": "Simple Github Updater for Web Projects", + "support": { + "forum": "https://github.com/Kanti/hub-updater/issues", + "issues": "https://github.com/Kanti/hub-updater/issues", + "source": "https://github.com/Kanti/hub-updater" + }, + "abandoned": true, + "install-path": "../kanti/hub-updater" + }, + { + "name": "michelf/php-markdown", + "version": "1.9.1", + "version_normalized": "1.9.1.0", + "source": { + "type": "git", + "url": "https://github.com/michelf/php-markdown.git", + "reference": "5024d623c1a057dcd2d076d25b7d270a1d0d55f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/michelf/php-markdown/zipball/5024d623c1a057dcd2d076d25b7d270a1d0d55f3", + "reference": "5024d623c1a057dcd2d076d25b7d270a1d0d55f3", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": ">=4.3 <5.8" + }, + "time": "2021-11-24T02:52:38+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Michelf\\": "Michelf/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Michel Fortin", + "email": "michel.fortin@michelf.ca", + "homepage": "https://michelf.ca/", + "role": "Developer" + }, + { + "name": "John Gruber", + "homepage": "https://daringfireball.net/" + } + ], + "description": "PHP Markdown", + "homepage": "https://michelf.ca/projects/php-markdown/", + "keywords": [ + "markdown" + ], + "support": { + "issues": "https://github.com/michelf/php-markdown/issues", + "source": "https://github.com/michelf/php-markdown/tree/1.9.1" + }, + "install-path": "../michelf/php-markdown" + }, + { + "name": "paragonie/constant_time_encoding", + "version": "v2.7.0", + "version_normalized": "2.7.0.0", + "source": { + "type": "git", + "url": "https://github.com/paragonie/constant_time_encoding.git", + "reference": "52a0d99e69f56b9ec27ace92ba56897fe6993105" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/52a0d99e69f56b9ec27ace92ba56897fe6993105", + "reference": "52a0d99e69f56b9ec27ace92ba56897fe6993105", + "shasum": "" + }, + "require": { + "php": "^7|^8" + }, + "require-dev": { + "phpunit/phpunit": "^6|^7|^8|^9", + "vimeo/psalm": "^1|^2|^3|^4" + }, + "time": "2024-05-08T12:18:48+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "ParagonIE\\ConstantTime\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com", + "role": "Maintainer" + }, + { + "name": "Steve 'Sc00bz' Thomas", + "email": "steve@tobtu.com", + "homepage": "https://www.tobtu.com", + "role": "Original Developer" + } + ], + "description": "Constant-time Implementations of RFC 4648 Encoding (Base-64, Base-32, Base-16)", + "keywords": [ + "base16", + "base32", + "base32_decode", + "base32_encode", + "base64", + "base64_decode", + "base64_encode", + "bin2hex", + "encoding", + "hex", + "hex2bin", + "rfc4648" + ], + "support": { + "email": "info@paragonie.com", + "issues": "https://github.com/paragonie/constant_time_encoding/issues", + "source": "https://github.com/paragonie/constant_time_encoding" + }, + "install-path": "../paragonie/constant_time_encoding" + }, + { + "name": "pragmarx/google2fa", + "version": "v8.0.1", + "version_normalized": "8.0.1.0", + "source": { + "type": "git", + "url": "https://github.com/antonioribeiro/google2fa.git", + "reference": "80c3d801b31fe165f8fe99ea085e0a37834e1be3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/antonioribeiro/google2fa/zipball/80c3d801b31fe165f8fe99ea085e0a37834e1be3", + "reference": "80c3d801b31fe165f8fe99ea085e0a37834e1be3", + "shasum": "" + }, + "require": { + "paragonie/constant_time_encoding": "^1.0|^2.0", + "php": "^7.1|^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.18", + "phpunit/phpunit": "^7.5.15|^8.5|^9.0" + }, + "time": "2022-06-13T21:57:56+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "PragmaRX\\Google2FA\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Antonio Carlos Ribeiro", + "email": "acr@antoniocarlosribeiro.com", + "role": "Creator & Designer" + } + ], + "description": "A One Time Password Authentication package, compatible with Google Authenticator.", + "keywords": [ + "2fa", + "Authentication", + "Two Factor Authentication", + "google2fa" + ], + "support": { + "issues": "https://github.com/antonioribeiro/google2fa/issues", + "source": "https://github.com/antonioribeiro/google2fa/tree/v8.0.1" + }, + "install-path": "../pragmarx/google2fa" + }, + { + "name": "suin/php-rss-writer", + "version": "1.6.0", + "version_normalized": "1.6.0.0", + "source": { + "type": "git", + "url": "https://github.com/suin/php-rss-writer.git", + "reference": "78f45e44a2a7cb0d82e4b9efb6f7b7a075b9051c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/suin/php-rss-writer/zipball/78f45e44a2a7cb0d82e4b9efb6f7b7a075b9051c", + "reference": "78f45e44a2a7cb0d82e4b9efb6f7b7a075b9051c", + "shasum": "" + }, + "require": { + "php": ">=5.4.0" + }, + "require-dev": { + "eher/phpunit": ">=1.6", + "mockery/mockery": ">=0.7.2", + "suin/xoopsunit": ">=1.2" + }, + "time": "2017-07-13T10:47:50+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-0": { + "Suin\\RSSWriter": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "suin", + "email": "suinyeze@gmail.com" + } + ], + "description": "Yet another simple RSS writer library for PHP 5.4 or later.", + "homepage": "https://github.com/suin/php-rss-writer", + "keywords": [ + "feed", + "generator", + "php", + "rss", + "writer" + ], + "support": { + "issues": "https://github.com/suin/php-rss-writer/issues", + "source": "https://github.com/suin/php-rss-writer/tree/master" + }, + "install-path": "../suin/php-rss-writer" + }, + { + "name": "voku/portable-ascii", + "version": "2.0.1", + "version_normalized": "2.0.1.0", + "source": { + "type": "git", + "url": "https://github.com/voku/portable-ascii.git", + "reference": "b56450eed252f6801410d810c8e1727224ae0743" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b56450eed252f6801410d810c8e1727224ae0743", + "reference": "b56450eed252f6801410d810c8e1727224ae0743", + "shasum": "" + }, + "require": { + "php": ">=7.0.0" + }, + "require-dev": { + "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0" + }, + "suggest": { + "ext-intl": "Use Intl for transliterator_transliterate() support" + }, + "time": "2022-03-08T17:03:00+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "voku\\": "src/voku/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Lars Moelleken", + "homepage": "http://www.moelleken.org/" + } + ], + "description": "Portable ASCII library - performance optimized (ascii) string functions for php.", + "homepage": "https://github.com/voku/portable-ascii", + "keywords": [ + "ascii", + "clean", + "php" + ], + "support": { + "issues": "https://github.com/voku/portable-ascii/issues", + "source": "https://github.com/voku/portable-ascii/tree/2.0.1" + }, + "funding": [ + { + "url": "https://www.paypal.me/moelleken", + "type": "custom" + }, + { + "url": "https://github.com/voku", + "type": "github" + }, + { + "url": "https://opencollective.com/portable-ascii", + "type": "open_collective" + }, + { + "url": "https://www.patreon.com/voku", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/voku/portable-ascii", + "type": "tidelift" + } + ], + "install-path": "../voku/portable-ascii" + }, + { + "name": "voku/stop-words", + "version": "2.0.1", + "version_normalized": "2.0.1.0", + "source": { + "type": "git", + "url": "https://github.com/voku/stop-words.git", + "reference": "8e63c0af20f800b1600783764e0ce19e53969f71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/voku/stop-words/zipball/8e63c0af20f800b1600783764e0ce19e53969f71", + "reference": "8e63c0af20f800b1600783764e0ce19e53969f71", + "shasum": "" + }, + "require": { + "php": ">=7.0.0" + }, + "require-dev": { + "phpunit/phpunit": "~6.0" + }, + "time": "2018-11-23T01:37:27+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "voku\\": "src/voku/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Lars Moelleken", + "homepage": "http://www.moelleken.org/" + } + ], + "description": "Stop-Words via PHP", + "keywords": [ + "stop words", + "stop-words" + ], + "support": { + "issues": "https://github.com/voku/stop-words/issues", + "source": "https://github.com/voku/stop-words/tree/master" + }, + "install-path": "../voku/stop-words" + } + ], + "dev": true, + "dev-package-names": [] +} diff --git a/system/vendor/composer/installed.php b/system/vendor/composer/installed.php new file mode 100644 index 0000000..43bd660 --- /dev/null +++ b/system/vendor/composer/installed.php @@ -0,0 +1,131 @@ + array( + 'name' => '__root__', + 'pretty_version' => '1.0.0+no-version-set', + 'version' => '1.0.0.0', + 'reference' => null, + 'type' => 'library', + 'install_path' => __DIR__ . '/../../../', + 'aliases' => array(), + 'dev' => true, + ), + 'versions' => array( + '__root__' => array( + 'pretty_version' => '1.0.0+no-version-set', + 'version' => '1.0.0.0', + 'reference' => null, + 'type' => 'library', + 'install_path' => __DIR__ . '/../../../', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'bacon/bacon-qr-code' => array( + 'pretty_version' => 'v3.0.0', + 'version' => '3.0.0.0', + 'reference' => '510de6eca6248d77d31b339d62437cc995e2fb41', + 'type' => 'library', + 'install_path' => __DIR__ . '/../bacon/bacon-qr-code', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'composer/ca-bundle' => array( + 'pretty_version' => '1.5.0', + 'version' => '1.5.0.0', + 'reference' => '0c5ccfcfea312b5c5a190a21ac5cef93f74baf99', + 'type' => 'library', + 'install_path' => __DIR__ . '/./ca-bundle', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'dasprid/enum' => array( + 'pretty_version' => '1.0.5', + 'version' => '1.0.5.0', + 'reference' => '6faf451159fb8ba4126b925ed2d78acfce0dc016', + 'type' => 'library', + 'install_path' => __DIR__ . '/../dasprid/enum', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'ircmaxell/password-compat' => array( + 'pretty_version' => 'v1.0.4', + 'version' => '1.0.4.0', + 'reference' => '5c5cde8822a69545767f7c7f3058cb15ff84614c', + 'type' => 'library', + 'install_path' => __DIR__ . '/../ircmaxell/password-compat', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'jbroadway/urlify' => array( + 'pretty_version' => '1.2.4-stable', + 'version' => '1.2.4.0', + 'reference' => 'd0fafbaa1dc14e8039cdf5c72a932a8d1de1750e', + 'type' => 'library', + 'install_path' => __DIR__ . '/../jbroadway/urlify', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'kanti/hub-updater' => array( + 'pretty_version' => 'v0.5.1', + 'version' => '0.5.1.0', + 'reference' => '014b33c1e3880bd8e037a960a89e7116eb08a26e', + 'type' => 'library', + 'install_path' => __DIR__ . '/../kanti/hub-updater', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'michelf/php-markdown' => array( + 'pretty_version' => '1.9.1', + 'version' => '1.9.1.0', + 'reference' => '5024d623c1a057dcd2d076d25b7d270a1d0d55f3', + 'type' => 'library', + 'install_path' => __DIR__ . '/../michelf/php-markdown', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'paragonie/constant_time_encoding' => array( + 'pretty_version' => 'v2.7.0', + 'version' => '2.7.0.0', + 'reference' => '52a0d99e69f56b9ec27ace92ba56897fe6993105', + 'type' => 'library', + 'install_path' => __DIR__ . '/../paragonie/constant_time_encoding', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'pragmarx/google2fa' => array( + 'pretty_version' => 'v8.0.1', + 'version' => '8.0.1.0', + 'reference' => '80c3d801b31fe165f8fe99ea085e0a37834e1be3', + 'type' => 'library', + 'install_path' => __DIR__ . '/../pragmarx/google2fa', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'suin/php-rss-writer' => array( + 'pretty_version' => '1.6.0', + 'version' => '1.6.0.0', + 'reference' => '78f45e44a2a7cb0d82e4b9efb6f7b7a075b9051c', + 'type' => 'library', + 'install_path' => __DIR__ . '/../suin/php-rss-writer', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'voku/portable-ascii' => array( + 'pretty_version' => '2.0.1', + 'version' => '2.0.1.0', + 'reference' => 'b56450eed252f6801410d810c8e1727224ae0743', + 'type' => 'library', + 'install_path' => __DIR__ . '/../voku/portable-ascii', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'voku/stop-words' => array( + 'pretty_version' => '2.0.1', + 'version' => '2.0.1.0', + 'reference' => '8e63c0af20f800b1600783764e0ce19e53969f71', + 'type' => 'library', + 'install_path' => __DIR__ . '/../voku/stop-words', + 'aliases' => array(), + 'dev_requirement' => false, + ), + ), +); diff --git a/system/vendor/composer/platform_check.php b/system/vendor/composer/platform_check.php new file mode 100644 index 0000000..4c3a5d6 --- /dev/null +++ b/system/vendor/composer/platform_check.php @@ -0,0 +1,26 @@ += 80100)) { + $issues[] = 'Your Composer dependencies require a PHP version ">= 8.1.0". You are running ' . PHP_VERSION . '.'; +} + +if ($issues) { + if (!headers_sent()) { + header('HTTP/1.1 500 Internal Server Error'); + } + if (!ini_get('display_errors')) { + if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { + fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL); + } elseif (!headers_sent()) { + echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL; + } + } + trigger_error( + 'Composer detected issues in your platform: ' . implode(' ', $issues), + E_USER_ERROR + ); +} diff --git a/system/vendor/dasprid/enum/LICENSE b/system/vendor/dasprid/enum/LICENSE new file mode 100644 index 0000000..d45a356 --- /dev/null +++ b/system/vendor/dasprid/enum/LICENSE @@ -0,0 +1,22 @@ +Copyright (c) 2017, Ben Scholzen 'DASPRiD' +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/system/vendor/dasprid/enum/README.md b/system/vendor/dasprid/enum/README.md new file mode 100644 index 0000000..da37045 --- /dev/null +++ b/system/vendor/dasprid/enum/README.md @@ -0,0 +1,164 @@ +# PHP 7.1 enums + +[![Build Status](https://github.com/DASPRiD/Enum/actions/workflows/tests.yml/badge.svg)](https://github.com/DASPRiD/Enum/actions?query=workflow%3Atests) +[![Coverage Status](https://coveralls.io/repos/github/DASPRiD/Enum/badge.svg?branch=master)](https://coveralls.io/github/DASPRiD/Enum?branch=master) +[![Latest Stable Version](https://poser.pugx.org/dasprid/enum/v/stable)](https://packagist.org/packages/dasprid/enum) +[![Total Downloads](https://poser.pugx.org/dasprid/enum/downloads)](https://packagist.org/packages/dasprid/enum) +[![License](https://poser.pugx.org/dasprid/enum/license)](https://packagist.org/packages/dasprid/enum) + +It is a well known fact that PHP is missing a basic enum type, ignoring the rather incomplete `SplEnum` implementation +which is only available as a PECL extension. There are also quite a few other userland enum implementations around, +but all of them have one or another compromise. This library tries to close that gap as far as PHP allows it to. + +## Usage + +### Basics + +At its core, there is the `DASPRiD\Enum\AbstractEnum` class, which by default will work with constants like any other +enum implementation you might know. The first clear difference is that you should define all the constants as protected +(so nobody outside your class can read them but the `AbstractEnum` can still do so). The other even mightier difference +is that, for simple enums, the value of the constant doesn't matter at all. Let's have a look at a simple example: + +```php +use DASPRiD\Enum\AbstractEnum; + +/** + * @method static self MONDAY() + * @method static self TUESDAY() + * @method static self WEDNESDAY() + * @method static self THURSDAY() + * @method static self FRIDAY() + * @method static self SATURDAY() + * @method static self SUNDAY() + */ +final class WeekDay extends AbstractEnum +{ + protected const MONDAY = null; + protected const TUESDAY = null; + protected const WEDNESDAY = null; + protected const THURSDAY = null; + protected const FRIDAY = null; + protected const SATURDAY = null; + protected const SUNDAY = null; +} +``` + +If you need to provide constants for either internal use or public use, you can mark them as either private or public, +in which case they will be ignored by the enum, which only considers protected constants as valid values. As you can +see, we specifically defined the generated magic methods in a class level doc block, so anyone using this class will +automatically have proper auto-completion in their IDE. Now since you have defined the enum, you can simply use it like +that: + +```php +function tellItLikeItIs(WeekDay $weekDay) +{ + switch ($weekDay) { + case WeekDay::MONDAY(): + echo 'Mondays are bad.'; + break; + + case WeekDay::FRIDAY(): + echo 'Fridays are better.'; + break; + + case WeekDay::SATURDAY(): + case WeekDay::SUNDAY(): + echo 'Weekends are best.'; + break; + + default: + echo 'Midweek days are so-so.'; + } +} + +tellItLikeItIs(WeekDay::MONDAY()); +tellItLikeItIs(WeekDay::WEDNESDAY()); +tellItLikeItIs(WeekDay::FRIDAY()); +tellItLikeItIs(WeekDay::SATURDAY()); +tellItLikeItIs(WeekDay::SUNDAY()); +``` + +### More complex example + +Of course, all enums are singletons, which are not cloneable or serializable. Thus you can be sure that there is always +just one instance of the same type. Of course, the values of constants are not completely useless, let's have a look at +a more complex example: + +```php +use DASPRiD\Enum\AbstractEnum; + +/** + * @method static self MERCURY() + * @method static self VENUS() + * @method static self EARTH() + * @method static self MARS() + * @method static self JUPITER() + * @method static self SATURN() + * @method static self URANUS() + * @method static self NEPTUNE() + */ +final class Planet extends AbstractEnum +{ + protected const MERCURY = [3.303e+23, 2.4397e6]; + protected const VENUS = [4.869e+24, 6.0518e6]; + protected const EARTH = [5.976e+24, 6.37814e6]; + protected const MARS = [6.421e+23, 3.3972e6]; + protected const JUPITER = [1.9e+27, 7.1492e7]; + protected const SATURN = [5.688e+26, 6.0268e7]; + protected const URANUS = [8.686e+25, 2.5559e7]; + protected const NEPTUNE = [1.024e+26, 2.4746e7]; + + /** + * Universal gravitational constant. + * + * @var float + */ + private const G = 6.67300E-11; + + /** + * Mass in kilograms. + * + * @var float + */ + private $mass; + + /** + * Radius in meters. + * + * @var float + */ + private $radius; + + protected function __construct(float $mass, float $radius) + { + $this->mass = $mass; + $this->radius = $radius; + } + + public function mass() : float + { + return $this->mass; + } + + public function radius() : float + { + return $this->radius; + } + + public function surfaceGravity() : float + { + return self::G * $this->mass / ($this->radius * $this->radius); + } + + public function surfaceWeight(float $otherMass) : float + { + return $otherMass * $this->surfaceGravity(); + } +} + +$myMass = 80; + +foreach (Planet::values() as $planet) { + printf("Your weight on %s is %f\n", $planet, $planet->surfaceWeight($myMass)); +} +``` diff --git a/system/vendor/dasprid/enum/composer.json b/system/vendor/dasprid/enum/composer.json new file mode 100644 index 0000000..133e279 --- /dev/null +++ b/system/vendor/dasprid/enum/composer.json @@ -0,0 +1,34 @@ +{ + "name": "dasprid/enum", + "description": "PHP 7.1 enum implementation", + "license": "BSD-2-Clause", + "authors": [ + { + "name": "Ben Scholzen 'DASPRiD'", + "email": "mail@dasprids.de", + "homepage": "https://dasprids.de/", + "role": "Developer" + } + ], + "keywords": [ + "enum", + "map" + ], + "require": { + "php": ">=7.1 <9.0" + }, + "require-dev": { + "phpunit/phpunit": "^7 | ^8 | ^9", + "squizlabs/php_codesniffer": "*" + }, + "autoload": { + "psr-4": { + "DASPRiD\\Enum\\": "src/" + } + }, + "autoload-dev": { + "psr-4": { + "DASPRiD\\EnumTest\\": "test/" + } + } +} diff --git a/system/vendor/dasprid/enum/src/AbstractEnum.php b/system/vendor/dasprid/enum/src/AbstractEnum.php new file mode 100644 index 0000000..79fe81c --- /dev/null +++ b/system/vendor/dasprid/enum/src/AbstractEnum.php @@ -0,0 +1,241 @@ +> + */ + private static $values = []; + + /** + * @var array + */ + private static $allValuesLoaded = []; + + /** + * @var array + */ + private static $constants = []; + + /** + * The constructor is private by default to avoid arbitrary enum creation. + * + * When creating your own constructor for a parameterized enum, make sure to declare it as protected, so that + * the static methods are able to construct it. Avoid making it public, as that would allow creation of + * non-singleton enum instances. + */ + private function __construct() + { + } + + /** + * Magic getter which forwards all calls to {@see self::valueOf()}. + * + * @return static + */ + final public static function __callStatic(string $name, array $arguments) : self + { + return static::valueOf($name); + } + + /** + * Returns an enum with the specified name. + * + * The name must match exactly an identifier used to declare an enum in this type (extraneous whitespace characters + * are not permitted). + * + * @return static + * @throws IllegalArgumentException if the enum has no constant with the specified name + */ + final public static function valueOf(string $name) : self + { + if (isset(self::$values[static::class][$name])) { + return self::$values[static::class][$name]; + } + + $constants = self::constants(); + + if (array_key_exists($name, $constants)) { + return self::createValue($name, $constants[$name][0], $constants[$name][1]); + } + + throw new IllegalArgumentException(sprintf('No enum constant %s::%s', static::class, $name)); + } + + /** + * @return static + */ + private static function createValue(string $name, int $ordinal, array $arguments) : self + { + $instance = new static(...$arguments); + $instance->name = $name; + $instance->ordinal = $ordinal; + self::$values[static::class][$name] = $instance; + return $instance; + } + + /** + * Obtains all possible types defined by this enum. + * + * @return static[] + */ + final public static function values() : array + { + if (isset(self::$allValuesLoaded[static::class])) { + return self::$values[static::class]; + } + + if (! isset(self::$values[static::class])) { + self::$values[static::class] = []; + } + + foreach (self::constants() as $name => $constant) { + if (array_key_exists($name, self::$values[static::class])) { + continue; + } + + static::createValue($name, $constant[0], $constant[1]); + } + + uasort(self::$values[static::class], function (self $a, self $b) { + return $a->ordinal() <=> $b->ordinal(); + }); + + self::$allValuesLoaded[static::class] = true; + return self::$values[static::class]; + } + + private static function constants() : array + { + if (isset(self::$constants[static::class])) { + return self::$constants[static::class]; + } + + self::$constants[static::class] = []; + $reflectionClass = new ReflectionClass(static::class); + $ordinal = -1; + + foreach ($reflectionClass->getReflectionConstants() as $reflectionConstant) { + if (! $reflectionConstant->isProtected()) { + continue; + } + + $value = $reflectionConstant->getValue(); + + self::$constants[static::class][$reflectionConstant->name] = [ + ++$ordinal, + is_array($value) ? $value : [] + ]; + } + + return self::$constants[static::class]; + } + + /** + * Returns the name of this enum constant, exactly as declared in its enum declaration. + * + * Most programmers should use the {@see self::__toString()} method in preference to this one, as the toString + * method may return a more user-friendly name. This method is designed primarily for use in specialized situations + * where correctness depends on getting the exact name, which will not vary from release to release. + */ + final public function name() : string + { + return $this->name; + } + + /** + * Returns the ordinal of this enumeration constant (its position in its enum declaration, where the initial + * constant is assigned an ordinal of zero). + * + * Most programmers will have no use for this method. It is designed for use by sophisticated enum-based data + * structures. + */ + final public function ordinal() : int + { + return $this->ordinal; + } + + /** + * Compares this enum with the specified object for order. + * + * Returns negative integer, zero or positive integer as this object is less than, equal to or greater than the + * specified object. + * + * Enums are only comparable to other enums of the same type. The natural order implemented by this method is the + * order in which the constants are declared. + * + * @throws MismatchException if the passed enum is not of the same type + */ + final public function compareTo(self $other) : int + { + if (! $other instanceof static) { + throw new MismatchException(sprintf( + 'The passed enum %s is not of the same type as %s', + get_class($other), + static::class + )); + } + + return $this->ordinal - $other->ordinal; + } + + /** + * Forbid cloning enums. + * + * @throws CloneNotSupportedException + */ + final public function __clone() + { + throw new CloneNotSupportedException(); + } + + /** + * Forbid serializing enums. + * + * @throws SerializeNotSupportedException + */ + final public function __sleep() : array + { + throw new SerializeNotSupportedException(); + } + + /** + * Forbid unserializing enums. + * + * @throws UnserializeNotSupportedException + */ + final public function __wakeup() : void + { + throw new UnserializeNotSupportedException(); + } + + /** + * Turns the enum into a string representation. + * + * You may override this method to give a more user-friendly version. + */ + public function __toString() : string + { + return $this->name; + } +} diff --git a/system/vendor/dasprid/enum/src/EnumMap.php b/system/vendor/dasprid/enum/src/EnumMap.php new file mode 100644 index 0000000..95b8856 --- /dev/null +++ b/system/vendor/dasprid/enum/src/EnumMap.php @@ -0,0 +1,385 @@ + + */ + private $keyUniverse; + + /** + * Array representation of this map. The ith element is the value to which universe[i] is currently mapped, or null + * if it isn't mapped to anything, or NullValue if it's mapped to null. + * + * @var array + */ + private $values; + + /** + * @var int + */ + private $size = 0; + + /** + * Creates a new enum map. + * + * @param string $keyType the type of the keys, must extend AbstractEnum + * @param string $valueType the type of the values + * @param bool $allowNullValues whether to allow null values + * @throws IllegalArgumentException when key type does not extend AbstractEnum + */ + public function __construct(string $keyType, string $valueType, bool $allowNullValues) + { + if (! is_subclass_of($keyType, AbstractEnum::class)) { + throw new IllegalArgumentException(sprintf( + 'Class %s does not extend %s', + $keyType, + AbstractEnum::class + )); + } + + $this->keyType = $keyType; + $this->valueType = $valueType; + $this->allowNullValues = $allowNullValues; + $this->keyUniverse = $keyType::values(); + $this->values = array_fill(0, count($this->keyUniverse), null); + } + + public function __serialize(): array + { + $values = []; + + foreach ($this->values as $ordinal => $value) { + if (null === $value) { + continue; + } + + $values[$ordinal] = $this->unmaskNull($value); + } + + return [ + 'keyType' => $this->keyType, + 'valueType' => $this->valueType, + 'allowNullValues' => $this->allowNullValues, + 'values' => $values, + ]; + } + + public function __unserialize(array $data): void + { + $this->unserialize(serialize($data)); + } + + /** + * Checks whether the map types match the supplied ones. + * + * You should call this method when an EnumMap is passed to you and you want to ensure that it's made up of the + * correct types. + * + * @throws ExpectationException when supplied key type mismatches local key type + * @throws ExpectationException when supplied value type mismatches local value type + * @throws ExpectationException when the supplied map allows null values, abut should not + */ + public function expect(string $keyType, string $valueType, bool $allowNullValues) : void + { + if ($keyType !== $this->keyType) { + throw new ExpectationException(sprintf( + 'Callee expected an EnumMap with key type %s, but got %s', + $keyType, + $this->keyType + )); + } + + if ($valueType !== $this->valueType) { + throw new ExpectationException(sprintf( + 'Callee expected an EnumMap with value type %s, but got %s', + $keyType, + $this->keyType + )); + } + + if ($allowNullValues !== $this->allowNullValues) { + throw new ExpectationException(sprintf( + 'Callee expected an EnumMap with nullable flag %s, but got %s', + ($allowNullValues ? 'true' : 'false'), + ($this->allowNullValues ? 'true' : 'false') + )); + } + } + + /** + * Returns the number of key-value mappings in this map. + */ + public function size() : int + { + return $this->size; + } + + /** + * Returns true if this map maps one or more keys to the specified value. + */ + public function containsValue($value) : bool + { + return in_array($this->maskNull($value), $this->values, true); + } + + /** + * Returns true if this map contains a mapping for the specified key. + */ + public function containsKey(AbstractEnum $key) : bool + { + $this->checkKeyType($key); + return null !== $this->values[$key->ordinal()]; + } + + /** + * Returns the value to which the specified key is mapped, or null if this map contains no mapping for the key. + * + * More formally, if this map contains a mapping from a key to a value, then this method returns the value; + * otherwise it returns null (there can be at most one such mapping). + * + * A return value of null does not necessarily indicate that the map contains no mapping for the key; it's also + * possible that hte map explicitly maps the key to null. The {@see self::containsKey()} operation may be used to + * distinguish these two cases. + * + * @return mixed + */ + public function get(AbstractEnum $key) + { + $this->checkKeyType($key); + return $this->unmaskNull($this->values[$key->ordinal()]); + } + + /** + * Associates the specified value with the specified key in this map. + * + * If the map previously contained a mapping for this key, the old value is replaced. + * + * @return mixed the previous value associated with the specified key, or null if there was no mapping for the key. + * (a null return can also indicate that the map previously associated null with the specified key.) + * @throws IllegalArgumentException when the passed values does not match the internal value type + */ + public function put(AbstractEnum $key, $value) + { + $this->checkKeyType($key); + + if (! $this->isValidValue($value)) { + throw new IllegalArgumentException(sprintf('Value is not of type %s', $this->valueType)); + } + + $index = $key->ordinal(); + $oldValue = $this->values[$index]; + $this->values[$index] = $this->maskNull($value); + + if (null === $oldValue) { + ++$this->size; + } + + return $this->unmaskNull($oldValue); + } + + /** + * Removes the mapping for this key frm this map if present. + * + * @return mixed the previous value associated with the specified key, or null if there was no mapping for the key. + * (a null return can also indicate that the map previously associated null with the specified key.) + */ + public function remove(AbstractEnum $key) + { + $this->checkKeyType($key); + + $index = $key->ordinal(); + $oldValue = $this->values[$index]; + $this->values[$index] = null; + + if (null !== $oldValue) { + --$this->size; + } + + return $this->unmaskNull($oldValue); + } + + /** + * Removes all mappings from this map. + */ + public function clear() : void + { + $this->values = array_fill(0, count($this->keyUniverse), null); + $this->size = 0; + } + + /** + * Compares the specified map with this map for quality. + * + * Returns true if the two maps represent the same mappings. + */ + public function equals(self $other) : bool + { + if ($this === $other) { + return true; + } + + if ($this->size !== $other->size) { + return false; + } + + return $this->values === $other->values; + } + + /** + * Returns the values contained in this map. + * + * The array will contain the values in the order their corresponding keys appear in the map, which is their natural + * order (the order in which the num constants are declared). + */ + public function values() : array + { + return array_values(array_map(function ($value) { + return $this->unmaskNull($value); + }, array_filter($this->values, function ($value) : bool { + return null !== $value; + }))); + } + + public function serialize() : string + { + return serialize($this->__serialize()); + } + + public function unserialize($serialized) : void + { + $data = unserialize($serialized); + $this->__construct($data['keyType'], $data['valueType'], $data['allowNullValues']); + + foreach ($this->keyUniverse as $key) { + if (array_key_exists($key->ordinal(), $data['values'])) { + $this->put($key, $data['values'][$key->ordinal()]); + } + } + } + + public function getIterator() : Traversable + { + foreach ($this->keyUniverse as $key) { + if (null === $this->values[$key->ordinal()]) { + continue; + } + + yield $key => $this->unmaskNull($this->values[$key->ordinal()]); + } + } + + private function maskNull($value) + { + if (null === $value) { + return NullValue::instance(); + } + + return $value; + } + + private function unmaskNull($value) + { + if ($value instanceof NullValue) { + return null; + } + + return $value; + } + + /** + * @throws IllegalArgumentException when the passed key does not match the internal key type + */ + private function checkKeyType(AbstractEnum $key) : void + { + if (get_class($key) !== $this->keyType) { + throw new IllegalArgumentException(sprintf( + 'Object of type %s is not the same type as %s', + get_class($key), + $this->keyType + )); + } + } + + private function isValidValue($value) : bool + { + if (null === $value) { + if ($this->allowNullValues) { + return true; + } + + return false; + } + + switch ($this->valueType) { + case 'mixed': + return true; + + case 'bool': + case 'boolean': + return is_bool($value); + + case 'int': + case 'integer': + return is_int($value); + + case 'float': + case 'double': + return is_float($value); + + case 'string': + return is_string($value); + + case 'object': + return is_object($value); + + case 'array': + return is_array($value); + } + + return $value instanceof $this->valueType; + } +} diff --git a/system/vendor/dasprid/enum/src/Exception/CloneNotSupportedException.php b/system/vendor/dasprid/enum/src/Exception/CloneNotSupportedException.php new file mode 100644 index 0000000..4b37dbe --- /dev/null +++ b/system/vendor/dasprid/enum/src/Exception/CloneNotSupportedException.php @@ -0,0 +1,10 @@ + + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @copyright 2012 The Authors + */ + +namespace { + + if (!defined('PASSWORD_BCRYPT')) { + /** + * PHPUnit Process isolation caches constants, but not function declarations. + * So we need to check if the constants are defined separately from + * the functions to enable supporting process isolation in userland + * code. + */ + define('PASSWORD_BCRYPT', 1); + define('PASSWORD_DEFAULT', PASSWORD_BCRYPT); + define('PASSWORD_BCRYPT_DEFAULT_COST', 10); + } + + if (!function_exists('password_hash')) { + + /** + * Hash the password using the specified algorithm + * + * @param string $password The password to hash + * @param int $algo The algorithm to use (Defined by PASSWORD_* constants) + * @param array $options The options for the algorithm to use + * + * @return string|false The hashed password, or false on error. + */ + function password_hash($password, $algo, array $options = array()) { + if (!function_exists('crypt')) { + trigger_error("Crypt must be loaded for password_hash to function", E_USER_WARNING); + return null; + } + if (is_null($password) || is_int($password)) { + $password = (string) $password; + } + if (!is_string($password)) { + trigger_error("password_hash(): Password must be a string", E_USER_WARNING); + return null; + } + if (!is_int($algo)) { + trigger_error("password_hash() expects parameter 2 to be long, " . gettype($algo) . " given", E_USER_WARNING); + return null; + } + $resultLength = 0; + switch ($algo) { + case PASSWORD_BCRYPT: + $cost = PASSWORD_BCRYPT_DEFAULT_COST; + if (isset($options['cost'])) { + $cost = $options['cost']; + if ($cost < 4 || $cost > 31) { + trigger_error(sprintf("password_hash(): Invalid bcrypt cost parameter specified: %d", $cost), E_USER_WARNING); + return null; + } + } + // The length of salt to generate + $raw_salt_len = 16; + // The length required in the final serialization + $required_salt_len = 22; + $hash_format = sprintf("$2y$%02d$", $cost); + // The expected length of the final crypt() output + $resultLength = 60; + break; + default: + trigger_error(sprintf("password_hash(): Unknown password hashing algorithm: %s", $algo), E_USER_WARNING); + return null; + } + $salt_requires_encoding = false; + if (isset($options['salt'])) { + switch (gettype($options['salt'])) { + case 'NULL': + case 'boolean': + case 'integer': + case 'double': + case 'string': + $salt = (string) $options['salt']; + break; + case 'object': + if (method_exists($options['salt'], '__tostring')) { + $salt = (string) $options['salt']; + break; + } + case 'array': + case 'resource': + default: + trigger_error('password_hash(): Non-string salt parameter supplied', E_USER_WARNING); + return null; + } + if (PasswordCompat\binary\_strlen($salt) < $required_salt_len) { + trigger_error(sprintf("password_hash(): Provided salt is too short: %d expecting %d", PasswordCompat\binary\_strlen($salt), $required_salt_len), E_USER_WARNING); + return null; + } elseif (0 == preg_match('#^[a-zA-Z0-9./]+$#D', $salt)) { + $salt_requires_encoding = true; + } + } else { + $buffer = ''; + $buffer_valid = false; + if (function_exists('mcrypt_create_iv') && !defined('PHALANGER')) { + $buffer = mcrypt_create_iv($raw_salt_len, MCRYPT_DEV_URANDOM); + if ($buffer) { + $buffer_valid = true; + } + } + if (!$buffer_valid && function_exists('openssl_random_pseudo_bytes')) { + $buffer = openssl_random_pseudo_bytes($raw_salt_len); + if ($buffer) { + $buffer_valid = true; + } + } + if (!$buffer_valid && @is_readable('/dev/urandom')) { + $f = fopen('/dev/urandom', 'r'); + $read = PasswordCompat\binary\_strlen($buffer); + while ($read < $raw_salt_len) { + $buffer .= fread($f, $raw_salt_len - $read); + $read = PasswordCompat\binary\_strlen($buffer); + } + fclose($f); + if ($read >= $raw_salt_len) { + $buffer_valid = true; + } + } + if (!$buffer_valid || PasswordCompat\binary\_strlen($buffer) < $raw_salt_len) { + $bl = PasswordCompat\binary\_strlen($buffer); + for ($i = 0; $i < $raw_salt_len; $i++) { + if ($i < $bl) { + $buffer[$i] = $buffer[$i] ^ chr(mt_rand(0, 255)); + } else { + $buffer .= chr(mt_rand(0, 255)); + } + } + } + $salt = $buffer; + $salt_requires_encoding = true; + } + if ($salt_requires_encoding) { + // encode string with the Base64 variant used by crypt + $base64_digits = + 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; + $bcrypt64_digits = + './ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; + + $base64_string = base64_encode($salt); + $salt = strtr(rtrim($base64_string, '='), $base64_digits, $bcrypt64_digits); + } + $salt = PasswordCompat\binary\_substr($salt, 0, $required_salt_len); + + $hash = $hash_format . $salt; + + $ret = crypt($password, $hash); + + if (!is_string($ret) || PasswordCompat\binary\_strlen($ret) != $resultLength) { + return false; + } + + return $ret; + } + + /** + * Get information about the password hash. Returns an array of the information + * that was used to generate the password hash. + * + * array( + * 'algo' => 1, + * 'algoName' => 'bcrypt', + * 'options' => array( + * 'cost' => PASSWORD_BCRYPT_DEFAULT_COST, + * ), + * ) + * + * @param string $hash The password hash to extract info from + * + * @return array The array of information about the hash. + */ + function password_get_info($hash) { + $return = array( + 'algo' => 0, + 'algoName' => 'unknown', + 'options' => array(), + ); + if (PasswordCompat\binary\_substr($hash, 0, 4) == '$2y$' && PasswordCompat\binary\_strlen($hash) == 60) { + $return['algo'] = PASSWORD_BCRYPT; + $return['algoName'] = 'bcrypt'; + list($cost) = sscanf($hash, "$2y$%d$"); + $return['options']['cost'] = $cost; + } + return $return; + } + + /** + * Determine if the password hash needs to be rehashed according to the options provided + * + * If the answer is true, after validating the password using password_verify, rehash it. + * + * @param string $hash The hash to test + * @param int $algo The algorithm used for new password hashes + * @param array $options The options array passed to password_hash + * + * @return boolean True if the password needs to be rehashed. + */ + function password_needs_rehash($hash, $algo, array $options = array()) { + $info = password_get_info($hash); + if ($info['algo'] != $algo) { + return true; + } + switch ($algo) { + case PASSWORD_BCRYPT: + $cost = isset($options['cost']) ? $options['cost'] : PASSWORD_BCRYPT_DEFAULT_COST; + if ($cost != $info['options']['cost']) { + return true; + } + break; + } + return false; + } + + /** + * Verify a password against a hash using a timing attack resistant approach + * + * @param string $password The password to verify + * @param string $hash The hash to verify against + * + * @return boolean If the password matches the hash + */ + function password_verify($password, $hash) { + if (!function_exists('crypt')) { + trigger_error("Crypt must be loaded for password_verify to function", E_USER_WARNING); + return false; + } + $ret = crypt($password, $hash); + if (!is_string($ret) || PasswordCompat\binary\_strlen($ret) != PasswordCompat\binary\_strlen($hash) || PasswordCompat\binary\_strlen($ret) <= 13) { + return false; + } + + $status = 0; + for ($i = 0; $i < PasswordCompat\binary\_strlen($ret); $i++) { + $status |= (ord($ret[$i]) ^ ord($hash[$i])); + } + + return $status === 0; + } + } + +} + +namespace PasswordCompat\binary { + + if (!function_exists('PasswordCompat\\binary\\_strlen')) { + + /** + * Count the number of bytes in a string + * + * We cannot simply use strlen() for this, because it might be overwritten by the mbstring extension. + * In this case, strlen() will count the number of *characters* based on the internal encoding. A + * sequence of bytes might be regarded as a single multibyte character. + * + * @param string $binary_string The input string + * + * @internal + * @return int The number of bytes + */ + function _strlen($binary_string) { + if (function_exists('mb_strlen')) { + return mb_strlen($binary_string, '8bit'); + } + return strlen($binary_string); + } + + /** + * Get a substring based on byte limits + * + * @see _strlen() + * + * @param string $binary_string The input string + * @param int $start + * @param int $length + * + * @internal + * @return string The substring + */ + function _substr($binary_string, $start, $length) { + if (function_exists('mb_substr')) { + return mb_substr($binary_string, $start, $length, '8bit'); + } + return substr($binary_string, $start, $length); + } + + /** + * Check if current PHP version is compatible with the library + * + * @return boolean the check result + */ + function check() { + static $pass = NULL; + + if (is_null($pass)) { + if (function_exists('crypt')) { + $hash = '$2y$04$usesomesillystringfore7hnbRJHxXVLeakoG8K30oukPsA.ztMG'; + $test = crypt("password", $hash); + $pass = $test == $hash; + } else { + $pass = false; + } + } + return $pass; + } + + } +} \ No newline at end of file diff --git a/system/vendor/ircmaxell/password-compat/version-test.php b/system/vendor/ircmaxell/password-compat/version-test.php new file mode 100644 index 0000000..96f60ca --- /dev/null +++ b/system/vendor/ircmaxell/password-compat/version-test.php @@ -0,0 +1,6 @@ + '?', '®' => '(r)', '¼' => '1/4', + '½' => '1/2', '¾' => '3/4', '¶' => 'P' +]); + +echo URLify::downcode ('¿ ® ¼ ¼ ¾ ¶'); +// "? (r) 1/2 1/2 3/4 P" +``` + +To extend the list of words to remove: + +```php +An array of things that should replaced by the separator.

        + * @param bool $merge

        Keep the previous (default) array-to-separator array.

        + * + * @return void + * + * @psalm-param string[] $array + */ + public static function add_array_to_separator(array $array, bool $merge = true) + { + if ($merge === true) { + self::$arrayToSeparator = \array_unique( + \array_merge( + self::$arrayToSeparator, + $array + ) + ); + } else { + self::$arrayToSeparator = $array; + } + } + + /** + * Add new characters to the list. `$map` should be a hash. + * + * @param array $map + * @param string|null $language + * + * @return void + * + * @psalm-param array $map + */ + public static function add_chars(array $map, string $language = null) + { + $language_key = $language ?? \uniqid('urlify', true); + + if (isset(self::$maps[$language_key])) { + self::$maps[$language_key] = \array_merge($map, self::$maps[$language_key]); + } else { + self::$maps[$language_key] = $map; + } + } + + /** + * @return void + */ + public static function reset_chars() + { + self::$maps = []; + } + + /** + * Transliterates characters to their ASCII equivalents. + * $language specifies a priority for a specific language. + * The latter is useful if languages have different rules for the same character. + * + * @param string $string

        The input string.

        + * @param string $language

        Your primary language.

        + * @param string $unknown

        Character use if character unknown. (default is ?).

        + * + * @return string + */ + public static function downcode( + string $string, + string $language = 'en', + string $unknown = '' + ): string { + $string = self::expandString($string, $language); + + foreach (self::$maps as $mapsInner) { + foreach ($mapsInner as $orig => $replace) { + $string = \str_replace($orig, $replace, $string); + } + } + + $string = \voku\helper\ASCII::to_ascii( + $string, + $language, + false, + true + ); + + return \voku\helper\ASCII::to_transliterate( + $string, + $unknown, + false + ); + } + + /** + * Convert a String to URL slug. Wraps filter() with a simpler + * set of defaults for typical usage in generating blog post slugs. + * + * @param string $string

        The text you want to convert.

        + * @param int $maxLength

        Max. length of the output string, set to "0" (zero) to + * disable it

        + * @param string $separator

        Define a new separator for the words.

        + * @param string $language

        The language you want to convert to.

        + */ + public static function slug( + string $string, + int $maxLength = 200, + string $separator = '-', + string $language = 'en' + ): string { + return self::filter ($string, $maxLength, $language, false, false, true, $separator); + } + + /** + * Convert a String to URL. + * + * e.g.: "Petty
        theft" to "Petty-theft" + * + * @param string $string

        The text you want to convert.

        + * @param int $maxLength

        Max. length of the output string, set to "0" (zero) to + * disable it

        + * @param string $language

        The language you want to convert to.

        + * @param bool $fileName

        + * Keep the "." from the extension e.g.: "imaäe.jpg" => + * "image.jpg" + *

        + * @param bool $removeWords

        + * Remove some "words" from the string.
        + * Info: Set extra words via remove_words(). + *

        + * @param bool $strToLower

        Use strtolower() at the end.

        + * @param bool|string $separator

        Define a new separator for the words.

        + * + * @return string + */ + public static function filter( + string $string, + int $maxLength = 200, + string $language = 'en', + bool $fileName = false, + bool $removeWords = false, + bool $strToLower = true, + $separator = '-' + ): string { + if ($string === '') { + return ''; + } + + // fallback + if ($language === '') { + $language = 'en'; + } + + // separator-fallback + if ($separator === false) { + $separator = '_'; + } + if ($separator === true || $separator === '') { + $separator = '-'; + } + + // escaped separator + $separatorEscaped = \preg_quote($separator, '/'); + + // use defaults, if there are no values + if (self::$arrayToSeparator === []) { + self::reset_array_to_separator(); + } + + // remove apostrophes which are not used as quotes around a string + if (\strpos($string, "'") !== false) { + $stringTmp = \preg_replace("/(\w)'(\w)/u", '${1}${2}', $string); + if ($stringTmp !== null) { + $string = (string) $stringTmp; + } + } + + // replace with $separator + $string = (string) \preg_replace( + self::$arrayToSeparator, + $separator, + $string + ); + + // remove all other html-tags + if ( + \strpos($string, '<') !== false + || + \strpos($string, '>') !== false + ) { + $string = \strip_tags($string); + } + + // use special language replacer + $string = self::downcode($string, $language); + + // replace with $separator, again + $string = (string) \preg_replace( + self::$arrayToSeparator, + $separator, + $string + ); + + // remove all these words from the string before urlifying + $removeWordsSearch = '//'; + if ($removeWords === true) { + $removeList = self::get_remove_list($language); + if ($removeList !== []) { + $removeWordsSearch = '/\b(?:' . \implode('|', $removeList) . ')\b/ui'; + } + } + + // keep the "." from e.g.: a file-extension? + if ($fileName) { + $removePatternAddOn = '.'; + } else { + $removePatternAddOn = ''; + } + + $string = (string) \preg_replace( + [ + // 1) remove un-needed chars + '/[^' . $separatorEscaped . $removePatternAddOn . '\-a-zA-Z0-9\s]/u', + // 2) convert spaces to $separator + '/[\s]+/u', + // 3) remove some extras words + $removeWordsSearch, + // 4) remove double $separator's + '/[' . ($separatorEscaped ?: ' ') . ']+/u', + // 5) remove $separator at the end + '/[' . ($separatorEscaped ?: ' ') . ']+$/u', + ], + [ + '', + $separator, + '', + $separator, + '', + ], + $string + ); + + // "substr" only if "$length" is set + if ( + $maxLength + && + $maxLength > 0 + && + \strlen($string) > $maxLength + ) { + $string = (string) \substr(\trim($string, $separator), 0, $maxLength); + } + + // convert to lowercase + if ($strToLower === true) { + $string = \strtolower($string); + } + + // trim "$separator" from beginning and end of the string + return \trim($string, $separator); + } + + /** + * Append words to the remove list. Accepts either single words or an array of words. + * + * @param string|string[] $words + * @param string $language + * @param bool $merge

        Keep the previous (default) remove-words array.

        + * + * @return void + */ + public static function remove_words($words, string $language = 'en', bool $merge = true) + { + if (\is_array($words) === false) { + $words = [$words]; + } + + foreach ($words as $removeWordKey => $removeWord) { + $words[$removeWordKey] = \preg_quote($removeWord, '/'); + } + + if ($merge === true) { + self::$remove_list[$language] = \array_unique( + \array_merge( + self::get_remove_list($language), + $words + ) + ); + } else { + self::$remove_list[$language] = $words; + } + } + + /** + * Reset the internal "self::$arrayToSeparator" to the default values. + * + * @return void + */ + public static function reset_array_to_separator() + { + self::$arrayToSeparator = [ + '/"|&|<|>|–|—/i', // ", &, <, >, –, — + '/⁻|-|—|_|"|`|´|\'/', + "#/\r\n|\r|\n|#isU", + ]; + } + + /** + * reset the word-remove-array + * + * @param string $language + * + * @return void + */ + public static function reset_remove_list(string $language = 'en') + { + if ($language === '') { + return; + } + + $language_orig = $language; + $language = self::get_language_for_reset_remove_list($language); + if ($language === '') { + return; + } + + $stopWords = new \voku\helper\StopWords(); + + try { + self::$remove_list[$language_orig] = $stopWords->getStopWordsFromLanguage($language); + } catch (\voku\helper\StopWordsLanguageNotExists $e) { + self::$remove_list[$language_orig] = []; + } + } + + /** + * Alias of `URLify::downcode()`. + * + * @param string $string + * @param string $language + * + * @return string + */ + public static function transliterate(string $string, string $language = 'en'): string + { + return self::downcode($string, $language); + } + + /** + * Expands the given string replacing some special parts for words. + * e.g. "lorem@ipsum.com" is replaced by "lorem at ipsum dot com". + * + * Most of these transformations have been inspired by the pelle/slugger + * project, distributed under the Eclipse Public License. + * Copyright 2012 Pelle Braendgaard + * + * @param string $string The string to expand + * @param string $language + * + * @return string The result of expanding the string + */ + protected static function expandString(string $string, string $language = 'en'): string + { + $string = self::expandCurrencies($string, $language); + + return self::expandSymbols($string, $language); + } + + /** + * @param string $language + * + * @return string + */ + private static function get_language_for_reset_remove_list(string $language) + { + if ($language === '') { + return ''; + } + + if ( + \strpos($language, '_') === false + && + \strpos($language, '-') === false + ) { + $language = \strtolower($language); + } else { + $regex = '/(?[a-z]{2}).*/i'; + $language = \strtolower((string) \preg_replace($regex, '$1', $language)); + } + + return $language; + } + + /** + * Expands the numeric currencies in euros, dollars, pounds + * and yens that the given string may include. + * + * @param string $string + * @param string $language + * + * @return string + */ + private static function expandCurrencies(string $string, string $language = 'en') + { + if ( + \strpos($string, '€') === false + && + \strpos($string, '$') === false + && + \strpos($string, '£') === false + && + \strpos($string, '¥') === false + ) { + return $string; + } + + if ($language === 'de') { + return (string) \preg_replace( + [ + '/(?:\s|^)(\d+)(?: )*€(?:\s|$)/', + '/(?:\s|^)\$(?: )*(\d+)(?:\s|$)/', + '/(?:\s|^)£(?: )*(\d+)(?:\s|$)/', + '/(?:\s|^)¥(?: )*(\d+)(?:\s|$)/', + '/(?:\s|^)(\d+)[.|,](\d+)(?: )*€(?:\s|$)/', + '/(?:\s|^)\$(?: )*(\d+)[.|,](\d+)(?:\s|$)/', + '/(?:\s|^)£(?: )*(\d+)[.|,](\d+)(?:\s|$)/', + ], + [ + ' \1 Euro ', + ' \1 Dollar ', + ' \1 Pound ', + ' \1 Yen ', + ' \1 Euro \2 Cent ', + ' \1 Dollar \2 Cent ', + ' \1 Pound \2 Pence ', + ], + $string + ); + } + + return (string) \preg_replace( + [ + '/(?:\s|^)1(?: )*€(?:\s|$)/', + '/(?:\s|^)(\d+)(?: )*€(?:\s|$)/', + '/(?:\s|^)\$(?: )*1(?:\s|$)/', + '/(?:\s|^)\$(?: )*(\d+)(?:\s|$)/', + '/(?:\s|^)£(?: )*1(?:\s|$)/', + '/(?:\s|^)£(?: )*(\d+)(?:\s|$)/', + '/(?:\s|^)¥(?: )*(\d+)(?:\s|$)/', + '/(?:\s|^)1[.|,](\d+)(?: )*€(?:\s|$)/', + '/(?:\s|^)(\d+)[.|,](\d+)(?: )*€(?:\s|$)/', + '/(?:\s|^)1[.|,](\d+)(?: )*$(?:\s|$)/', + '/(?:\s|^)\$(?: )*(\d+)[.|,](\d+)(?:\s|$)/', + '/(?:\s|^)1[.|,](\d+)(?: )*£(?:\s|$)/', + '/(?:\s|^)£(?: )*(\d+)[.|,](\d+)(?:\s|$)/', + ], + [ + ' 1 Euro ', + ' \1 Euros ', + ' 1 Dollar ', + ' \1 Dollars ', + ' 1 Pound ', + ' \1 Pounds ', + ' \1 Yen ', + ' 1 Euros \1 Cents ', + ' \1 Euros \2 Cents ', + ' 1 Dollars \1 Cents ', + ' \1 Dollars \2 Cents ', + ' 1 Pounds \1 Pence ', + ' \1 Pounds \2 Pence ', + ], + $string + ); + } + + /** + * Expands the special symbols that the given string may include, such as '@', '.', '#' and '%'. + * + * @param string $string + * @param string $language + * + * @return string + */ + private static function expandSymbols(string $string, string $language = 'en') + { + if ( + \strpos($string, '©') === false + && + \strpos($string, '®') === false + && + \strpos($string, '@') === false + && + \strpos($string, '&') === false + && + \strpos($string, '%') === false + && + \strpos($string, '=') === false + ) { + return $string; + } + + $maps = \voku\helper\ASCII::charsArray(true); + + return (string) \preg_replace( + [ + '/\s*©\s*/', + '/\s*®\s*/', + '/\s*@\s*/', + '/\s*&\s*/', + '/\s*%\s*/', + '/(\s*=\s*)/', + ], + [ + $maps['latin_symbols']['©'], + $maps['latin_symbols']['®'], + $maps['latin_symbols']['@'], + $maps[$language]['&'] ?? '&', + $maps[$language]['%'] ?? '%', + $maps[$language]['='] ?? '=', + ], + $string + ); + } + + /** + * return the "self::$remove_list[$language]" array + * + * @param string $language + * + * @return array + */ + private static function get_remove_list(string $language = 'en') + { + // check for language + if ($language === '') { + return []; + } + + // set remove-array + if (!isset(self::$remove_list[$language])) { + self::reset_remove_list($language); + } + + // check for array + if ( + !isset(self::$remove_list[$language]) + || + empty(self::$remove_list[$language]) + ) { + return []; + } + + return self::$remove_list[$language]; + } +} diff --git a/system/vendor/jbroadway/urlify/composer.json b/system/vendor/jbroadway/urlify/composer.json new file mode 100644 index 0000000..2851ee5 --- /dev/null +++ b/system/vendor/jbroadway/urlify/composer.json @@ -0,0 +1,31 @@ +{ + "name": "jbroadway/urlify", + "type": "library", + "description": "A fast PHP slug generator and transliteration library that converts non-ascii characters for use in URLs.", + "keywords": ["urlify","transliterate","translit","transliteration","url","encode","downcode","slug","slugify","slugs","link","iconv","blogging","blogs","unicode","ascii","seo"], + "homepage": "https://github.com/jbroadway/urlify", + "license": "BSD-3-Clause-Clear", + "authors": [ + { + "name": "Johnny Broadway", + "email": "johnny@johnnybroadway.com", + "homepage": "http://www.johnnybroadway.com/" + } + ], + "require": { + "php": ">=7.2", + "voku/portable-ascii": "^2.0", + "voku/stop-words": "^2.0" + }, + "require-dev": { + "phpunit/phpunit": "^8.5" + }, + "autoload": { + "psr-0": { "URLify": "" } + }, + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + } +} diff --git a/system/vendor/jbroadway/urlify/phpunit.xml b/system/vendor/jbroadway/urlify/phpunit.xml new file mode 100644 index 0000000..eeebfcc --- /dev/null +++ b/system/vendor/jbroadway/urlify/phpunit.xml @@ -0,0 +1,8 @@ + + + tests + + + + + diff --git a/system/vendor/jbroadway/urlify/scripts/downcode.php b/system/vendor/jbroadway/urlify/scripts/downcode.php new file mode 100644 index 0000000..018e7d4 --- /dev/null +++ b/system/vendor/jbroadway/urlify/scripts/downcode.php @@ -0,0 +1,25 @@ + 2) { + die('Usage (argument): php ' . \basename(__FILE__) . " \"\"\nUsage (pipe): | php " . \basename(__FILE__) . "\n"); +} + +// Process the provided argument +$piped = false; +if ($argc === 2) { + $s = $argv[1]; +// Or read from stdin if the argument wasn't present +} else { + $piped = true; + $s = \file_get_contents('php://stdin'); +} + +echo URLify::downcode($s) . ($piped ? "\n" : ''); diff --git a/system/vendor/jbroadway/urlify/scripts/filter.php b/system/vendor/jbroadway/urlify/scripts/filter.php new file mode 100644 index 0000000..d20c315 --- /dev/null +++ b/system/vendor/jbroadway/urlify/scripts/filter.php @@ -0,0 +1,25 @@ + 2) { + die('Usage (argument): php ' . \basename(__FILE__) . " \"\"\nUsage (pipe): | php " . \basename(__FILE__) . "\n"); +} + +// Process the provided argument +$piped = false; +if ($argc === 2) { + $s = $argv[1]; +// Or read from stdin if the argument wasn't present +} else { + $piped = true; + $s = \file_get_contents('php://stdin'); +} + +echo URLify::filter($s) . ($piped ? "\n" : ''); diff --git a/system/vendor/jbroadway/urlify/scripts/transliterate.php b/system/vendor/jbroadway/urlify/scripts/transliterate.php new file mode 100644 index 0000000..1970b50 --- /dev/null +++ b/system/vendor/jbroadway/urlify/scripts/transliterate.php @@ -0,0 +1,25 @@ + 2) { + die('Usage (argument): php ' . \basename(__FILE__) . " \"\"\nUsage (pipe): | php " . \basename(__FILE__) . "\n"); +} + +// Process the provided argument +$piped = false; +if ($argc === 2) { + $s = $argv[1]; +// Or read from stdin if the argument wasn't present +} else { + $piped = true; + $s = \file_get_contents('php://stdin'); +} + +echo URLify::transliterate($s) . ($piped ? "\n" : ''); diff --git a/system/vendor/jbroadway/urlify/tests/URLifyTest.php b/system/vendor/jbroadway/urlify/tests/URLifyTest.php new file mode 100644 index 0000000..aa3ac30 --- /dev/null +++ b/system/vendor/jbroadway/urlify/tests/URLifyTest.php @@ -0,0 +1,60 @@ +assertEquals (' J\'etudie le francais ', URLify::downcode (' J\'étudie le français ')); + $this->assertEquals ('Lo siento, no hablo espanol.', URLify::downcode ('Lo siento, no hablo español.')); + $this->assertEquals ('F3PWS', URLify::downcode ('ΦΞΠΏΣ')); + $this->assertEquals ('foo-bar', URLify::filter ('_foo_bar_')); + } + + function test_filter () { + $this->assertEquals ('jetudie-le-francais', URLify::filter (' J\'étudie le français ')); + $this->assertEquals ('lo-siento-no-hablo-espanol', URLify::filter ('Lo siento, no hablo español.')); + $this->assertEquals ('f3pws', URLify::filter ('ΦΞΠΏΣ')); + $this->assertEquals ('', URLify::filter('大般若經')); + $this->assertEquals ('test-.txt', URLify::filter('test-大般若經.txt', 60, "", $file_name = true)); + $this->assertEquals ('yakrhy-ltoytr', URLify::filter('ياكرهي لتويتر')); + $this->assertEquals ('saaat-25', URLify::filter('ساعت ۲۵')); + $this->assertEquals ('foto.jpg', URLify::filter ('фото.jpg', 60, "", $file_name = true)); + // priorization of language-specific maps + $this->assertEquals ('aouaou', URLify::filter ('ÄÖÜäöü',60,"tr")); + $this->assertEquals ('aeoeueaeoeue', URLify::filter ('ÄÖÜäöü',60,"de")); + + $this->assertEquals ('bobby-mcferrin-dont-worry-be-happy', URLify::filter ("Bobby McFerrin — Don't worry be happy",600,"en")); + // test stripping and conversion of UTF-8 spaces + $this->assertEquals ('test-mahito-mukai', URLify::filter('向井 真人test (Mahito Mukai)')); + // Treat underscore as space + $this->assertEquals ('text_with_underscore', URLify::filter('text_with_underscore', 60, "en", true, true, true, false)); + } + + function test_add_chars () { + $this->assertEquals ('¿ ® ¼ ¼ ¾ ¶', URLify::downcode ('¿ ® ¼ ¼ ¾ ¶')); + URLify::add_chars (array ( + '¿' => '?', '®' => '(r)', '¼' => '1/4', + '¼' => '1/2', '¾' => '3/4', '¶' => 'P' + )); + $this->assertEquals ('? (r) 1/2 1/2 3/4 P', URLify::downcode ('¿ ® ¼ ¼ ¾ ¶')); + } + + function test_remove_words () { + $this->assertEquals ('foo-bar', URLify::filter ('foo bar')); + URLify::remove_words (array ('foo', 'bar')); + $this->assertEquals ('', URLify::filter ('foo bar')); + } + + function test_many_rounds_with_unknown_language_code () { + for ($i = 0; $i < 1000; $i++) { + URLify::downcode ('Lo siento, no hablo español.',-1); + } + } + + function test_remove_words_disable () { + URLify::remove_words (array ('foo', 'bar')); + $this->assertEquals ('foo-bar', URLify::filter ('foo bar', 60, '', false, false)); + } +} + +?> diff --git a/system/vendor/jbroadway/urlify/tests/bootstrap.php b/system/vendor/jbroadway/urlify/tests/bootstrap.php new file mode 100644 index 0000000..d56d466 --- /dev/null +++ b/system/vendor/jbroadway/urlify/tests/bootstrap.php @@ -0,0 +1,9 @@ + + if [[ "$CODECLIMATE" == "yes" ]]; then + CODECLIMATE_REPO_TOKEN=857af03b99f4c907a8cf99f7e80f4beb4df5977847fad17445c6f3a7110d83a7 ./vendor/bin/test-reporter -vvv + fi + +# Customize when the notification emails are sent. +notifications: + on_success: never + on_failure: always diff --git a/system/vendor/kanti/hub-updater/LICENSE b/system/vendor/kanti/hub-updater/LICENSE new file mode 100644 index 0000000..d6a9326 --- /dev/null +++ b/system/vendor/kanti/hub-updater/LICENSE @@ -0,0 +1,340 @@ +GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + {description} + Copyright (C) {year} {fullname} + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + {signature of Ty Coon}, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. + diff --git a/system/vendor/kanti/hub-updater/composer.json b/system/vendor/kanti/hub-updater/composer.json new file mode 100644 index 0000000..b1ee8b3 --- /dev/null +++ b/system/vendor/kanti/hub-updater/composer.json @@ -0,0 +1,45 @@ +{ + "name": "kanti/hub-updater", + "description": "Simple Github Updater for Web Projects", + "license": "GPL-2.0", + "authors": [ + { + "name": "Kanti", + "email": "git@kanti.de", + "homepage": "https://kanti.de", + "role": "Developer" + } + ], + "config": { + "platform": { + "php": "5.3.6" + } + }, + "support": { + "forum": "https://github.com/Kanti/hub-updater/issues", + "issues": "https://github.com/Kanti/hub-updater/issues", + "source": "https://github.com/Kanti/hub-updater" + }, + "require": { + "php": ">=5.3.6", + "composer/ca-bundle": "^1.0" + }, + "require-dev": { + "phpunit/phpunit": "4.*", + "squizlabs/php_codesniffer": "2.*", + "friendsofphp/php-cs-fixer": "1.*", + "sebastian/phpcpd": "2.*", + "codeclimate/php-test-reporter": "0.*", + "phpro/grumphp": "0.*" + }, + "autoload": { + "psr-4": { + "Kanti\\": "src" + } + }, + "autoload-dev": { + "psr-4": { + "Kanti\\Test\\": "tests" + } + } +} diff --git a/system/vendor/kanti/hub-updater/grumphp.yml b/system/vendor/kanti/hub-updater/grumphp.yml new file mode 100644 index 0000000..1342b89 --- /dev/null +++ b/system/vendor/kanti/hub-updater/grumphp.yml @@ -0,0 +1,20 @@ +parameters: + git_dir: . + bin_dir: vendor/bin + tasks: + phpcsfixer: + level: psr2 + verbose: true + phpcs: + standard: PSR2 + show_warnings: false + metadata: + priority: 300 + phpunit: + config_file: tests/phpunit.xml + group: [fast] + metadata: + priority: 200 + composer: + no_check_lock: true + yamllint: ~ diff --git a/system/vendor/kanti/hub-updater/src/CacheOneFile.php b/system/vendor/kanti/hub-updater/src/CacheOneFile.php new file mode 100644 index 0000000..05eb98d --- /dev/null +++ b/system/vendor/kanti/hub-updater/src/CacheOneFile.php @@ -0,0 +1,58 @@ +fileName = $fileName; + $this->holdTime = $holdTime; + } + + public function has() + { + if (!file_exists($this->fileName)) { + return false; + } + clearstatcache(); + + if (filemtime($this->fileName) < (time() - $this->holdTime)) { + unlink($this->fileName); + + return false; + } + + return true; + } + + protected function fileForceContents() + { + $args = func_get_args(); + $path = str_replace(array('/', '\\'), DIRECTORY_SEPARATOR, $args[0]); + $parts = explode(DIRECTORY_SEPARATOR, $path); + array_pop($parts); + $directory = ''; + foreach ($parts as $part) { + $checkPath = $directory . $part; + if (is_dir($checkPath . DIRECTORY_SEPARATOR) === false) { + mkdir($checkPath, 0755); + } + $directory = $checkPath . DIRECTORY_SEPARATOR; + } + call_user_func_array('file_put_contents', $args); + } + + public function get() + { + return file_get_contents($this->fileName); + } + + public function set($content) + { + $this->fileForceContents($this->fileName, $content); + } +} diff --git a/system/vendor/kanti/hub-updater/src/HelperClass.php b/system/vendor/kanti/hub-updater/src/HelperClass.php new file mode 100644 index 0000000..61474db --- /dev/null +++ b/system/vendor/kanti/hub-updater/src/HelperClass.php @@ -0,0 +1,28 @@ + 3 && ctype_alpha($path[0]) && $path[1] == ':' && + ('\\' == $path[2] || '/' == $path[2]))); + } + + public static function fileExists($file) + { + if (is_bool($file) || is_array($file)) { + throw new \InvalidArgumentException; + } + if (strlen($file) >= 3 && static::isAbsolutePath($file)) { + return file_exists($file); + } + return file_exists(dirname($_SERVER["SCRIPT_FILENAME"]) . "/" . $file); + } + + public static function isInPhar() + { + return substr(__FILE__, 0, 7) === "phar://"; + } +} diff --git a/system/vendor/kanti/hub-updater/src/HubUpdater.php b/system/vendor/kanti/hub-updater/src/HubUpdater.php new file mode 100644 index 0000000..c5bdd88 --- /dev/null +++ b/system/vendor/kanti/hub-updater/src/HubUpdater.php @@ -0,0 +1,342 @@ + "downloadInfo.json", + "holdTime" => 43200, + + "versionFile" => "installedVersion.json", + "zipFile" => "tmpZipFile.zip", + "updateignore" => ".updateignore", + + "name" => "", + "branch" => "master", + "cache" => "cache/", + "save" => "", + "prerelease" => false, + "auth" => null, + + "exceptions" => false, + ); + /** + * @var array + */ + protected $allRelease = array(); + /** + * @var array + */ + protected $newestInfo = null; + /** + * @var array + */ + protected $currentInfo = null; + /** + * @var null|resource + */ + protected $streamContext = null; + /** + * @var null|resource + */ + protected $streamContext2 = null; + + + /** + * HubUpdater constructor. + * @param array|string $option + * @throws \Exception + */ + public function __construct($option) + { + if (!in_array('https', stream_get_wrappers())) { + throw new \Exception("No HTTPS Wrapper Exception"); + } + $this->setOptions($option); + + $this->options['save'] = rtrim($this->options['save'], '/'); + if ($this->options['save'] !== '') { + $this->options['save'] .= '/'; + if (!file_exists($this->options['save'])) { + mkdir($this->options['save']); + } + } + $this->options['cache'] = $this->options['save'] . rtrim($this->options['cache'], '/'); + if ($this->options['cache'] !== '') { + $this->options['cache'] .= '/'; + if (!file_exists($this->options['cache'])) { + mkdir($this->options['cache']); + } + } + + $this->cachedInfo = new CacheOneFile( + $this->options['cache'] . $this->options['cacheFile'], + $this->options['holdTime'] + ); + + $additionalHeader = ''; + if ($this->options['auth']) { + $additionalHeader .= "Authorization: Basic " . base64_encode($this->options['auth']) . "\r\n"; + } + + $caFilePath = CaBundle::getSystemCaRootBundlePath(); + $this->streamContext = stream_context_create( + array( + 'http' => array( + 'header' => "User-Agent: Awesome-Update-My-Self-" . $this->options['name'] . "\r\n" + . "Accept: application/vnd.github.v3+json\r\n" + . $additionalHeader, + ), + 'ssl' => array( + 'cafile' => $caFilePath, + 'verify_peer' => true, + ), + ) + ); + $this->streamContext2 = stream_context_create( + array( + 'http' => array( + 'header' => "User-Agent: Awesome-Update-My-Self-" . $this->options['name'] . "\r\n" + . $additionalHeader, + ), + 'ssl' => array( + 'cafile' => $caFilePath, + 'verify_peer' => true, + ), + ) + ); + $this->allRelease = $this->getRemoteInfo(); + } + + protected function getRemoteInfo() + { + if ($this->cachedInfo->has()) { + return json_decode($this->cachedInfo->get(), true); + } + $path = "https://api.github.com/repos/" . $this->options['name'] . "/releases"; + $fileContent = @file_get_contents($path, false, $this->streamContext); + + if ($fileContent === false) { + if ($this->options["exceptions"]) { + throw new \Exception("HTTP Exception"); + } + return array(); + } + $json = json_decode($fileContent, true); + if (isset($json['message'])) { + if ($this->options["exceptions"]) { + throw new \Exception("API Exception[" . $json['message'] . "]"); + } + $json = array(); + } + $fileContent = json_encode($json, static::JSON_PRETTY_PRINT); + $this->cachedInfo->set($fileContent); + + return $json; + } + + /** + * @return bool + */ + public function able() + { + if (empty($this->allRelease)) { + return false; + } + $newestInfo = $this->getNewestInfo(); + + if (file_exists($this->options['cache'] . $this->options['versionFile'])) { + $fileContent = file_get_contents($this->options['cache'] . $this->options['versionFile']); + $current = json_decode($fileContent, true); + + if (isset($current['id']) && $current['id'] == $newestInfo['id']) { + return false; + } + if (isset($current['tag_name']) && $current['tag_name'] == $newestInfo['tag_name']) { + return false; + } + } + return true; + } + + /** + * @return bool + */ + public function update() + { + $newestRelease = $this->getNewestInfo(); + if ($this->able()) { + if ($this->download($newestRelease['zipball_url'])) { + if ($this->unZip()) { + unlink($this->options['cache'] . $this->options['zipFile']); + file_put_contents( + $this->options['cache'] . $this->options['versionFile'], + json_encode(array( + "id" => $newestRelease['id'], + "tag_name" => $newestRelease['tag_name'] + ), static::JSON_PRETTY_PRINT) + ); + return true; + } + } + } + return false; + } + + protected function download($url) + { + $file = @fopen($url, 'r', false, $this->streamContext2); + if ($file == false) { + if ($this->options["exceptions"]) { + throw new \Exception("Download failed Exception"); + } + return false; + } + file_put_contents($this->options['cache'] . $this->options['zipFile'], $file); + fclose($file); + return true; + } + + protected function shouldBeCopied($file) + { + static $updateIgnore = array(); + if (empty($updateIgnore) && file_exists($this->options['updateignore'])) { + $updateIgnore = file($this->options['updateignore']); + foreach ($updateIgnore as &$ignore) { + $ignore = $this->options['save'] . trim($ignore); + } + } + foreach ($updateIgnore as $ignore) { + if (substr($file, 0, strlen($ignore)) == $ignore) { + return false; + } + } + return true; + } + + protected function unZip() + { + $path = getcwd() . "/" . $this->options['cache'] . $this->options['zipFile']; + + $zip = new \ZipArchive(); + if ($zip->open($path) !== true) { + return false; + } + $cutLength = strlen($zip->getNameIndex(0)); + for ($i = 1; $i < $zip->numFiles; $i++) { + $name = $this->options['save'] . substr($zip->getNameIndex($i), $cutLength); + + if ($this->shouldBeCopied($name)) { + $stat = $zip->statIndex($i); + if ($stat["crc"] == 0) { //is dir + if (!file_exists($name)) { + mkdir($name); + } + continue; + } + copy("zip://" . $path . "#" . $zip->getNameIndex($i), $name); + } + } + return $zip->close(); + } + + /** + * @return mixed|null + */ + public function getCurrentInfo() + { + if (is_null($this->currentInfo) && file_exists($this->options['cache'] . $this->options['versionFile'])) { + $fileContent = file_get_contents($this->options['cache'] . $this->options['versionFile']); + $current = json_decode($fileContent, true); + + foreach ($this->allRelease as $release) { + if (isset($current['id']) && $current['id'] == $release['id']) { + return $this->currentInfo = $release; + } + if (isset($current['tag_name']) && $current['tag_name'] == $release['tag_name']) { + return $this->currentInfo = $release; + } + } + } + return $this->currentInfo; + } + + /** + * @return array|mixed + * @throws \Exception + */ + public function getNewestInfo() + { + if (is_null($this->newestInfo)) { + foreach ($this->allRelease as $release) { + if (isset($release['prerelease']) && $release['prerelease'] && !$this->options['prerelease']) { + continue; + } + if (isset($release['target_commitish']) && $this->options['branch'] !== $release['target_commitish']) { + continue; + } + return $this->newestInfo = $release; + } + if ($this->options["exceptions"]) { + throw new \Exception("no suitable release found"); + } + $this->newestInfo = array(); + } + return $this->newestInfo; + } + + /** + * @return array + */ + public function getOptions() + { + return $this->options; + } + + /** + * @return array + */ + public function getAllRelease() + { + return $this->allRelease; + } + + /** + * @internal + * @param $option + * @throws \Exception + */ + protected function setOptions($option) + { + if (is_array($option)) { + if (!isset($option['name']) || empty($option['name'])) { + throw new \Exception('No Name in Option Set'); + } + $this->options = $option + $this->options; + return; + } elseif (is_string($option)) { + if (empty($option)) { + throw new \Exception('No Name Set'); + } + $this->options['name'] = $option; + return; + } + throw new \Exception('No Option Set type ' . gettype($option) . ' not supported'); + } + + /** + * @return null|resource + */ + public function getStreamContext() + { + return $this->streamContext; + } +} diff --git a/system/vendor/kanti/hub-updater/src/ca_bundle.crt b/system/vendor/kanti/hub-updater/src/ca_bundle.crt new file mode 100644 index 0000000..348bd3f --- /dev/null +++ b/system/vendor/kanti/hub-updater/src/ca_bundle.crt @@ -0,0 +1,3952 @@ +## +## Bundle of CA Root Certificates +## +## Certificate data from Mozilla as of: Wed Oct 28 22:42:42 2015 +## +## This is a bundle of X.509 certificates of public Certificate Authorities +## (CA). These were automatically extracted from Mozilla's root certificates +## file (certdata.txt). This file can be found in the mozilla source tree: +## http://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt +## +## It contains the certificates in PEM format and therefore +## can be directly used with curl / libcurl / php_curl, or with +## an Apache+mod_ssl webserver for SSL client authentication. +## Just configure this file as the SSLCACertificateFile. +## +## Conversion done with mk-ca-bundle.pl version 1.25. +## SHA1: 6d7d2f0a4fae587e7431be191a081ac1257d300a +## + + +Equifax Secure CA +================= +-----BEGIN CERTIFICATE----- +MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEQMA4GA1UE +ChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 +MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoT +B0VxdWlmYXgxLTArBgNVBAsTJEVxdWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCB +nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPR +fM6fBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+AcJkVV5MW +8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kCAwEAAaOCAQkwggEFMHAG +A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UE +CxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoG +A1UdEAQTMBGBDzIwMTgwODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvS +spXXR9gjIBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQFMAMB +Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAFjOKer89961 +zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y7qj/WsjTVbJmcVfewCHrPSqnI0kB +BIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee95 +70+sB3c4 +-----END CERTIFICATE----- + +GlobalSign Root CA +================== +-----BEGIN CERTIFICATE----- +MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx +GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds +b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV +BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD +VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa +DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc +THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb +Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP +c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX +gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF +AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj +Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG +j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH +hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC +X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A== +-----END CERTIFICATE----- + +GlobalSign Root CA - R2 +======================= +-----BEGIN CERTIFICATE----- +MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv +YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh +bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT +aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln +bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6 +ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp +s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN +S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL +TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C +ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E +FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i +YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN +BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp +9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu +01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7 +9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7 +TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg== +-----END CERTIFICATE----- + +Verisign Class 3 Public Primary Certification Authority - G3 +============================================================ +-----BEGIN CERTIFICATE----- +MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv +cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl +IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw +CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy +dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1 +EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc +cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw +EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj +055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA +ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f +j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC +/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0 +xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa +t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ== +-----END CERTIFICATE----- + +Verisign Class 4 Public Primary Certification Authority - G3 +============================================================ +-----BEGIN CERTIFICATE----- +MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv +cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl +IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw +CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy +dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAK3LpRFpxlmr8Y+1GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaS +tBO3IFsJ+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0GbdU6LM +8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLmNxdLMEYH5IBtptiW +Lugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XYufTsgsbSPZUd5cBPhMnZo0QoBmrX +Razwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA +j/ola09b5KROJ1WrIhVZPMq1CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXtt +mhwwjIDLk5Mqg6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm +fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c2NU8Qh0XwRJd +RTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/bLvSHgCwIe34QWKCudiyxLtG +UPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg== +-----END CERTIFICATE----- + +Entrust.net Premium 2048 Secure Server CA +========================================= +-----BEGIN CERTIFICATE----- +MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u +ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp +bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV +BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx +NzUwNTFaFw0yOTA3MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3 +d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl +MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u +ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL +Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr +hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW +nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi +VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo0IwQDAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJ +KoZIhvcNAQEFBQADggEBADubj1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPy +T/4xmf3IDExoU8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf +zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5bu/8j72gZyxKT +J1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+bYQLCIt+jerXmCHG8+c8eS9e +nNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/ErfF6adulZkMV8gzURZVE= +-----END CERTIFICATE----- + +Baltimore CyberTrust Root +========================= +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE +ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li +ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC +SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs +dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME +uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB +UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C +G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9 +XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr +l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI +VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB +BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh +cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5 +hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa +Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H +RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp +-----END CERTIFICATE----- + +AddTrust Low-Value Services Root +================================ +-----BEGIN CERTIFICATE----- +MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML +QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRU +cnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMwMTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQsw +CQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBO +ZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEB +AQUAA4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ulCDtbKRY6 +54eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6ntGO0/7Gcrjyvd7ZWxbWr +oulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyldI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1 +Zmne3yzxbrww2ywkEtvrNTVokMsAsJchPXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJui +GMx1I4S+6+JNM3GOGvDC+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8w +HQYDVR0OBBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8EBTAD +AQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBlMQswCQYDVQQGEwJT +RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEw +HwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxt +ZBsfzQ3duQH6lmM0MkhHma6X7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0Ph +iVYrqW9yTkkz43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY +eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJlpz/+0WatC7xr +mYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOAWiFeIc9TVPC6b4nbqKqVz4vj +ccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk= +-----END CERTIFICATE----- + +AddTrust External Root +====================== +-----BEGIN CERTIFICATE----- +MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML +QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD +VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw +NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU +cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg +Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821 ++iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw +Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo +aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy +2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7 +7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P +BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL +VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk +VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB +IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl +j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5 +6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355 +e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u +G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ= +-----END CERTIFICATE----- + +AddTrust Public Services Root +============================= +-----BEGIN CERTIFICATE----- +MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEUMBIGA1UEChML +QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSAwHgYDVQQDExdBZGRU +cnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAxMDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJ +BgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5l +dHdvcmsxIDAeBgNVBAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV6tsfSlbu +nyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nXGCwwfQ56HmIexkvA/X1i +d9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnPdzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSG +Aa2Il+tmzV7R/9x98oTaunet3IAIx6eH1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAw +HM+A+WD+eeSI8t0A65RF62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0G +A1UdDgQWBBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB +/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDELMAkGA1UEBhMCU0Ux +FDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29yazEgMB4G +A1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4 +JNojVhaTdt02KLmuG7jD8WS6IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL ++YPoRNWyQSW/iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao +GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh4SINhwBk/ox9 +Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQmXiLsks3/QppEIW1cxeMiHV9H +EufOX1362KqxMy3ZdvJOOjMMK7MtkAY= +-----END CERTIFICATE----- + +AddTrust Qualified Certificates Root +==================================== +-----BEGIN CERTIFICATE----- +MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEUMBIGA1UEChML +QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSMwIQYDVQQDExpBZGRU +cnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcx +CzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQ +IE5ldHdvcmsxIzAhBgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwqxBb/4Oxx +64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G87B4pfYOQnrjfxvM0PC3 +KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i2O+tCBGaKZnhqkRFmhJePp1tUvznoD1o +L/BLcHwTOK28FSXx1s6rosAx1i+f4P8UWfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GR +wVY18BTcZTYJbqukB8c10cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HU +MIHRMB0GA1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/ +BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6FrpGkwZzELMAkGA1UE +BhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29y +azEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlmaWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQAD +ggEBABmrder4i2VhlRO6aQTvhsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxG +GuoYQ992zPlmhpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X +dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3P6CxB9bpT9ze +RXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9YiQBCYz95OdBEsIJuQRno3eDB +iFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5noxqE= +-----END CERTIFICATE----- + +Entrust Root Certification Authority +==================================== +-----BEGIN CERTIFICATE----- +MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV +BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw +b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG +A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0 +MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu +MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu +Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v +dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz +A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww +Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68 +j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN +rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1 +MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH +hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA +A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM +Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa +v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS +W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0 +tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8 +-----END CERTIFICATE----- + +RSA Security 2048 v3 +==================== +-----BEGIN CERTIFICATE----- +MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6MRkwFwYDVQQK +ExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJpdHkgMjA0OCBWMzAeFw0wMTAy +MjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAb +BgNVBAsTFFJTQSBTZWN1cml0eSAyMDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEAt49VcdKA3XtpeafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7 +Jylg/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGlwSMiuLgb +WhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnhAMFRD0xS+ARaqn1y07iH +KrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP ++Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpuAWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/ +MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4E +FgQUB8NRMKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYcHnmY +v/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/Zb5gEydxiKRz44Rj +0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+f00/FGj1EVDVwfSQpQgdMWD/YIwj +VAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVOrSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395 +nzIlQnQFgCi/vcEkllgVsRch6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kA +pKnXwiJPZ9d37CAFYd4= +-----END CERTIFICATE----- + +GeoTrust Global CA +================== +-----BEGIN CERTIFICATE----- +MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK +Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw +MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j +LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo +BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet +8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc +T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU +vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD +AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk +DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q +zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4 +d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2 +mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p +XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm +Mw== +-----END CERTIFICATE----- + +GeoTrust Global CA 2 +==================== +-----BEGIN CERTIFICATE----- +MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN +R2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwHhcNMDQwMzA0MDUw +MDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j +LjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw +ggEKAoIBAQDvPE1APRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/ +NTL8Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hLTytCOb1k +LUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL5mkWRxHCJ1kDs6ZgwiFA +Vvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7S4wMcoKK+xfNAGw6EzywhIdLFnopsk/b +HdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQF +MAMBAf8wHQYDVR0OBBYEFHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNH +K266ZUapEBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6tdEPx7 +srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv/NgdRN3ggX+d6Yvh +ZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywNA0ZF66D0f0hExghAzN4bcLUprbqL +OzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkC +x1YAzUm5s2x7UwQa4qjJqhIFI8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqF +H4z1Ir+rzoPz4iIprn2DQKi6bA== +-----END CERTIFICATE----- + +GeoTrust Universal CA +===================== +-----BEGIN CERTIFICATE----- +MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN +R2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVyc2FsIENBMB4XDTA0MDMwNDA1 +MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IElu +Yy4xHjAcBgNVBAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9t +JPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTTQjOgNB0e +RXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFhF7em6fgemdtzbvQKoiFs +7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2vc7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d +8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7V +qnJNk22CDtucvc+081xdVHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3Cga +Rr0BHdCXteGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hB +Z3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9Fi1jUIxaS5BZu +KGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+nhutxx9z3SxPGWX9f5NAEC7S8O08 +ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0 +XG0D08DYj3rWMB8GA1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIB +hjANBgkqhkiG9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc +aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2 +qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvL +oJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsK +xr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxF +KyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2 +DFKWkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9ER/frslK +xfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQtDF4JbAiXfKM9fJP/P6EU +p8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6ZKy7PtXny3YuxadIwVyQD8vI +P/rmMuGNG2+k5o7Y+SlIis5z/iw= +-----END CERTIFICATE----- + +GeoTrust Universal CA 2 +======================= +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN +R2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwHhcNMDQwMzA0 +MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3Qg +SW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0 +DE81WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUGFF+3Qs17 +j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdqXbboW0W63MOhBW9Wjo8Q +JqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxLse4YuU6W3Nx2/zu+z18DwPw76L5GG//a +QMJS9/7jOvdqdzXQ2o3rXhhqMcceujwbKNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2 +WP0+GfPtDCapkzj4T8FdIgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP +20gaXT73y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAn +ZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgocQIgfksILAAX/8sgC +SqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4Lt1ZrtmhN79UNdxzMk+MBB4zsslG +8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2 ++/CfXGJx7Tz0RzgQKzAfBgNVHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8E +BAMCAYYwDQYJKoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z +dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ +4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgrFg5fNuH8KrUwJM/gYwx7WBr+ +mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSoag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpq +A1Ihn0CoZ1Dy81of398j9tx4TuaYT1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpg +Y+RdM4kX2TGq2tbzGDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiP +pm8m1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJVOCiNUW7d +FGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH6aLcr34YEoP9VhdBLtUp +gn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSLakhT2+zNVVXxxvjpoixMptEm +X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS +-----END CERTIFICATE----- + +Visa eCommerce Root +=================== +-----BEGIN CERTIFICATE----- +MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQG +EwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2Ug +QXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2 +WhcNMjIwNjI0MDAxNjEyWjBrMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMm +VmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv +bW1lcmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h2mCxlCfL +F9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4ElpF7sDPwsRROEW+1QK8b +RaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdVZqW1LS7YgFmypw23RuwhY/81q6UCzyr0 +TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI +/k4+oKsGGelT84ATB+0tvz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzs +GHxBvfaLdXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEG +MB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUFAAOCAQEAX/FBfXxc +CLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcRzCSs00Rsca4BIGsDoo8Ytyk6feUW +YFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pz +zkWKsKZJ/0x9nXGIxHYdkFsd7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBu +YQa7FkKMcPcw++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt +398znM/jra6O1I7mT1GvFpLgXPYHDw== +-----END CERTIFICATE----- + +Certum Root CA +============== +-----BEGIN CERTIFICATE----- +MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQK +ExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBDQTAeFw0wMjA2MTExMDQ2Mzla +Fw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8u +by4xEjAQBgNVBAMTCUNlcnR1bSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6x +wS7TT3zNJc4YPk/EjG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdL +kKWoePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GIULdtlkIJ +89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapuOb7kky/ZR6By6/qmW6/K +Uz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUgAKpoC6EahQGcxEZjgoi2IrHu/qpGWX7P +NSzVttpd90gzFFS269lvzs2I1qsb2pY7HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkq +hkiG9w0BAQUFAAOCAQEAuI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+ +GXYkHAQaTOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTgxSvg +GrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1qCjqTE5s7FCMTY5w/ +0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5xO/fIR/RpbxXyEV6DHpx8Uq79AtoS +qFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs6GAqm4VKQPNriiTsBhYscw== +-----END CERTIFICATE----- + +Comodo AAA Services root +======================== +-----BEGIN CERTIFICATE----- +MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS +R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg +TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw +MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl +c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV +BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG +C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs +i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW +Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH +Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK +Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f +BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl +cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz +LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm +7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz +Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z +8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C +12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg== +-----END CERTIFICATE----- + +Comodo Secure Services root +=========================== +-----BEGIN CERTIFICATE----- +MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS +R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg +TGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAw +MDAwMFoXDTI4MTIzMTIzNTk1OVowfjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFu +Y2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAi +BgNVBAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP +ADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPMcm3ye5drswfxdySRXyWP +9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3SHpR7LZQdqnXXs5jLrLxkU0C8j6ysNstc +rbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rC +oznl2yY4rYsK7hljxxwk3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3V +p6ea5EQz6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNVHQ4E +FgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w +gYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL1NlY3VyZUNlcnRpZmlj +YXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRwOi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlm +aWNhdGVTZXJ2aWNlcy5jcmwwDQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm +4J4oqF7Tt/Q05qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj +Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtIgKvcnDe4IRRL +DXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJaD61JlfutuC23bkpgHl9j6Pw +pCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDlizeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1H +RR3B7Hzs/Sk= +-----END CERTIFICATE----- + +Comodo Trusted Services root +============================ +-----BEGIN CERTIFICATE----- +MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS +R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg +TGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEw +MDAwMDBaFw0yODEyMzEyMzU5NTlaMH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1h +bmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUw +IwYDVQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWWfnJSoBVC21ndZHoa0Lh7 +3TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMtTGo87IvDktJTdyR0nAducPy9C1t2ul/y +/9c3S0pgePfw+spwtOpZqqPOSC+pw7ILfhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6 +juljatEPmsbS9Is6FARW1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsS +ivnkBbA7kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0GA1Ud +DgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB +/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21vZG9jYS5jb20vVHJ1c3RlZENlcnRp +ZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRodHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENl +cnRpZmljYXRlU2VydmljZXMuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8Ntw +uleGFTQQuS9/HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32 +pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxISjBc/lDb+XbDA +BHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+xqFx7D+gIIxmOom0jtTYsU0l +R+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/AtyjcndBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O +9y5Xt5hwXsjEeLBi +-----END CERTIFICATE----- + +QuoVadis Root CA +================ +-----BEGIN CERTIFICATE----- +MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE +ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 +eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz +MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp +cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD +EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk +J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL +F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL +YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen +AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w +PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y +ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7 +MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj +YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs +ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh +Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW +Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu +BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw +FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0 +aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6 +tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo +fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul +LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x +gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi +5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi +5nrQNiOKSnQ2+Q== +-----END CERTIFICATE----- + +QuoVadis Root CA 2 +================== +-----BEGIN CERTIFICATE----- +MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT +EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMjAeFw0wNjExMjQx +ODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM +aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQCaGMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6 +XJxgFyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55JWpzmM+Yk +lvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bBrrcCaoF6qUWD4gXmuVbB +lDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp+ARz8un+XJiM9XOva7R+zdRcAitMOeGy +lZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt +66/3FsvbzSUr5R/7mp/iUcw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1Jdxn +wQ5hYIizPtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og/zOh +D7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UHoycR7hYQe7xFSkyy +BNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuIyV77zGHcizN300QyNQliBJIWENie +J0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1Ud +DgQWBBQahGK8SEwzJQTU7tD2A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGU +a6FJpEcwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT +ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2fBluornFdLwUv +Z+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzng/iN/Ae42l9NLmeyhP3ZRPx3 +UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2BlfF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodm +VjB3pjd4M1IQWK4/YY7yarHvGH5KWWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK ++JDSV6IZUaUtl0HaB0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrW +IozchLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPRTUIZ3Ph1 +WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWDmbA4CD/pXvk1B+TJYm5X +f6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0ZohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II +4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8 +VCLAAVBpQ570su9t+Oza8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u +-----END CERTIFICATE----- + +QuoVadis Root CA 3 +================== +-----BEGIN CERTIFICATE----- +MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT +EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx +OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM +aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg +DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij +KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K +DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv +BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp +p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8 +nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX +MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM +Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz +uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT +BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj +YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0 +aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB +BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD +VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4 +ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE +AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV +qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s +hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z +POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2 +Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp +8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC +bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu +g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p +vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr +qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto= +-----END CERTIFICATE----- + +Security Communication Root CA +============================== +-----BEGIN CERTIFICATE----- +MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP +U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw +HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP +U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw +8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM +DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX +5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd +DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2 +JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g +0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a +mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ +s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ +6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi +FL39vmwLAw== +-----END CERTIFICATE----- + +Sonera Class 2 Root CA +====================== +-----BEGIN CERTIFICATE----- +MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG +U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw +NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh +IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3 +/Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT +dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG +f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P +tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH +nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT +XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt +0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI +cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph +Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx +EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH +llpwrN9M +-----END CERTIFICATE----- + +Staat der Nederlanden Root CA +============================= +-----BEGIN CERTIFICATE----- +MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJOTDEeMBwGA1UE +ChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFhdCBkZXIgTmVkZXJsYW5kZW4g +Um9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEyMTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4w +HAYDVQQKExVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxh +bmRlbiBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFt +vsznExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw719tV2U02P +jLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MOhXeiD+EwR+4A5zN9RGca +C1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+UtFE5A3+y3qcym7RHjm+0Sq7lr7HcsBth +vJly3uSJt3omXdozSVtSnA71iq3DuD3oBmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn6 +22r+I/q85Ej0ZytqERAhSQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRV +HSAAMDwwOgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMvcm9v +dC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA7Jbg0zTBLL9s+DAN +BgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k/rvuFbQvBgwp8qiSpGEN/KtcCFtR +EytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzmeafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbw +MVcoEoJz6TMvplW0C5GUR5z6u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3y +nGQI0DvDKcWy7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR +iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw== +-----END CERTIFICATE----- + +UTN DATACorp SGC Root CA +======================== +-----BEGIN CERTIFICATE----- +MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCBkzELMAkGA1UE +BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl +IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZ +BgNVBAMTElVUTiAtIERBVEFDb3JwIFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBa +MIGTMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4w +HAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRy +dXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ys +raP6LnD43m77VkIVni5c7yPeIbkFdicZD0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlo +wHDyUwDAXlCCpVZvNvlK4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA +9P4yPykqlXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulWbfXv +33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQABo4GrMIGoMAsGA1Ud +DwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRTMtGzz3/64PGgXYVOktKeRR20TzA9 +BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dD +LmNybDAqBgNVHSUEIzAhBggrBgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3 +DQEBBQUAA4IBAQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft +Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyjj98C5OBxOvG0 +I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVHKWss5nbZqSl9Mt3JNjy9rjXx +EZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwP +DPafepE39peC4N1xaf92P2BNPM/3mfnGV/TJVTl4uix5yaaIK/QI +-----END CERTIFICATE----- + +UTN USERFirst Hardware Root CA +============================== +-----BEGIN CERTIFICATE----- +MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UE +BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl +IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAd +BgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgx +OTIyWjCBlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0 +eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVz +ZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlI +wrthdBKWHTxqctU8EGc6Oe0rE81m65UJM6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFd +tqdt++BxF2uiiPsA3/4aMXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8 +i4fDidNdoI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqIDsjf +Pe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9KsyoUhbAgMBAAGjgbkw +gbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKFyXyYbKJhDlV0HN9WF +lp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNF +UkZpcnN0LUhhcmR3YXJlLmNybDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUF +BwMGBggrBgEFBQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM +//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28GpgoiskliCE7/yMgUsogW +XecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gECJChicsZUN/KHAG8HQQZexB2 +lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kn +iCrVWFCVH/A7HFe7fRQ5YiuayZSSKqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67 +nfhmqA== +-----END CERTIFICATE----- + +Camerfirma Chambers of Commerce Root +==================================== +-----BEGIN CERTIFICATE----- +MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe +QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i +ZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAx +NjEzNDNaFw0zNzA5MzAxNjEzNDRaMH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZp +cm1hIFNBIENJRiBBODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3Jn +MSIwIAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0BAQEFAAOC +AQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtbunXF/KGIJPov7coISjlU +xFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0dBmpAPrMMhe5cG3nCYsS4No41XQEMIwRH +NaqbYE6gZj3LJgqcQKH0XZi/caulAGgq7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jW +DA+wWFjbw2Y3npuRVDM30pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFV +d9oKDMyXroDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIGA1Ud +EwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5jaGFtYmVyc2lnbi5v +cmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p26EpW1eLTXYGduHRooowDgYDVR0P +AQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hh +bWJlcnNpZ24ub3JnMCcGA1UdEgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYD +VR0gBFEwTzBNBgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz +aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEBAAxBl8IahsAi +fJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZdp0AJPaxJRUXcLo0waLIJuvvD +L8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wN +UPf6s+xCX6ndbcj0dc97wXImsQEcXCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/n +ADydb47kMgkdTXg0eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1 +erfutGWaIZDgqtCYvDi1czyL+Nw= +-----END CERTIFICATE----- + +Camerfirma Global Chambersign Root +================================== +-----BEGIN CERTIFICATE----- +MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe +QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i +ZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYx +NDE4WhcNMzcwOTMwMTYxNDE4WjB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJt +YSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEg +MB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAw +ggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0Mi+ITaFgCPS3CU6gSS9J +1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/sQJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8O +by4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpVeAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl +6DJWk0aJqCWKZQbua795B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c +8lCrEqWhz0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0TAQH/ +BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1iZXJzaWduLm9yZy9j +aGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4wTcbOX60Qq+UDpfqpFDAOBgNVHQ8B +Af8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAHMCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBj +aGFtYmVyc2lnbi5vcmcwKgYDVR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9y +ZzBbBgNVHSAEVDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh +bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0BAQUFAAOCAQEA +PDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUMbKGKfKX0j//U2K0X1S0E0T9Y +gOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXiryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJ +PJ7oKXqJ1/6v/2j1pReQvayZzKWGVwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4 +IBHNfTIzSJRUTN3cecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREes +t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A== +-----END CERTIFICATE----- + +NetLock Notary (Class A) Root +============================= +-----BEGIN CERTIFICATE----- +MIIGfTCCBWWgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQI +EwdIdW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6 +dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9j +ayBLb3pqZWd5em9pIChDbGFzcyBBKSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNDIzMTQ0N1oX +DTE5MDIxOTIzMTQ0N1owga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQH +EwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYD +VQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5em9pIChDbGFz +cyBBKSBUYW51c2l0dmFueWtpYWRvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHSM +D7tM9DceqQWC2ObhbHDqeLVu0ThEDaiDzl3S1tWBxdRL51uUcCbbO51qTGL3cfNk1mE7PetzozfZ +z+qMkjvN9wfcZnSX9EUi3fRc4L9t875lM+QVOr/bmJBVOMTtplVjC7B4BPTjbsE/jvxReB+SnoPC +/tmwqcm8WgD/qaiYdPv2LD4VOQ22BFWoDpggQrOxJa1+mm9dU7GrDPzr4PN6s6iz/0b2Y6LYOph7 +tqyF/7AlT3Rj5xMHpQqPBffAZG9+pyeAlt7ULoZgx2srXnN7F+eRP2QM2EsiNCubMvJIH5+hCoR6 +4sKtlz2O1cH5VqNQ6ca0+pii7pXmKgOM3wIDAQABo4ICnzCCApswDgYDVR0PAQH/BAQDAgAGMBIG +A1UdEwEB/wQIMAYBAf8CAQQwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaC +Ak1GSUdZRUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pv +bGdhbHRhdGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQu +IEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2Vn +LWJpenRvc2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0 +ZXRlbGUgYXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFz +IGxlaXJhc2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBh +IGh0dHBzOi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVu +b3J6ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBh +bmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sg +Q1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFp +bCBhdCBjcHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4IBAQBIJEb3ulZv+sgoA0BO5TE5 +ayZrU3/b39/zcT0mwBQOxmd7I6gMc90Bu8bKbjc5VdXHjFYgDigKDtIqpLBJUsY4B/6+CgmM0ZjP +ytoUMaFP0jn8DxEsQ8Pdq5PHVT5HfBgaANzze9jyf1JsIPQLX2lS9O74silg6+NJMSEN1rUQQeJB +CWziGppWS3cC9qCbmieH6FUpccKQn0V4GuEVZD3QDtigdp+uxdAu6tYPVuxkf1qbFFgBJ34TUMdr +KuZoPL9coAob4Q566eKAw+np9v1sEZ7Q5SgnK1QyQhSCdeZK8CtmdWOMovsEPoMOmzbwGOQmIMOM +8CgHrTwXZoi1/baI +-----END CERTIFICATE----- + +XRamp Global CA Root +==================== +-----BEGIN CERTIFICATE----- +MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE +BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj +dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx +HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg +U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp +dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu +IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx +foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE +zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs +AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry +xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap +oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC +AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc +/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt +qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n +nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz +8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw= +-----END CERTIFICATE----- + +Go Daddy Class 2 CA +=================== +-----BEGIN CERTIFICATE----- +MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY +VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG +A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g +RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD +ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv +2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32 +qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j +YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY +vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O +BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o +atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu +MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG +A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim +PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt +I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ +HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI +Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b +vZ8= +-----END CERTIFICATE----- + +Starfield Class 2 CA +==================== +-----BEGIN CERTIFICATE----- +MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc +U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo +MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG +A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG +SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY +bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ +JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm +epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN +F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF +MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f +hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo +bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g +QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs +afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM +PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl +xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD +KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3 +QBFGmh95DmK/D5fs4C8fF5Q= +-----END CERTIFICATE----- + +StartCom Certification Authority +================================ +-----BEGIN CERTIFICATE----- +MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN +U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu +ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0 +NjM2WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk +LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg +U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw +ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y +o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/ +Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d +eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt +2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z +6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ +osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/ +untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc +UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT +37uMdBNSSwIDAQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE +FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9jZXJ0LnN0YXJ0 +Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3JsLnN0YXJ0Y29tLm9yZy9zZnNj +YS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFMBgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUH +AgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRw +Oi8vY2VydC5zdGFydGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYg +U3RhcnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlhYmlsaXR5 +LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2YgdGhlIFN0YXJ0Q29tIENl +cnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFpbGFibGUgYXQgaHR0cDovL2NlcnQuc3Rh +cnRjb20ub3JnL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilT +dGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOC +AgEAFmyZ9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8jhvh +3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUWFjgKXlf2Ysd6AgXm +vB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJzewT4F+irsfMuXGRuczE6Eri8sxHk +fY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3 +fsNrarnDy0RLrHiQi+fHLB5LEUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZ +EoalHmdkrQYuL6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq +yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuCO3NJo2pXh5Tl +1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6Vum0ABj6y6koQOdjQK/W/7HW/ +lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkyShNOsF/5oirpt9P/FlUQqmMGqz9IgcgA38coro +g14= +-----END CERTIFICATE----- + +Taiwan GRCA +=========== +-----BEGIN CERTIFICATE----- +MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQG +EwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4X +DTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1owPzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dv +dmVybm1lbnQgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBAJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qN +w8XRIePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1qgQdW8or5 +BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKyyhwOeYHWtXBiCAEuTk8O +1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAtsF/tnyMKtsc2AtJfcdgEWFelq16TheEfO +htX7MfP6Mb40qij7cEwdScevLJ1tZqa2jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wov +J5pGfaENda1UhhXcSTvxls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7 +Q3hub/FCVGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHKYS1t +B6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoHEgKXTiCQ8P8NHuJB +O9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThNXo+EHWbNxWCWtFJaBYmOlXqYwZE8 +lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1UdDgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNV +HRMEBTADAQH/MDkGBGcqBwAEMTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg2 +09yewDL7MTqKUWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ +TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyfqzvS/3WXy6Tj +Zwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaKZEk9GhiHkASfQlK3T8v+R0F2 +Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFEJPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlU +D7gsL0u8qV1bYH+Mh6XgUmMqvtg7hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6Qz +DxARvBMB1uUO07+1EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+Hbk +Z6MmnD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WXudpVBrkk +7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44VbnzssQwmSNOXfJIoRIM3BKQ +CZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDeLMDDav7v3Aun+kbfYNucpllQdSNpc5Oy ++fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS +-----END CERTIFICATE----- + +Swisscom Root CA 1 +================== +-----BEGIN CERTIFICATE----- +MIIF2TCCA8GgAwIBAgIQXAuFXAvnWUHfV8w/f52oNjANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQG +EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy +dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMTAeFw0wNTA4MTgxMjA2MjBaFw0yNTA4 +MTgyMjA2MjBaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln +aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAxMIIC +IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0LmwqAzZuz8h+BvVM5OAFmUgdbI9m2BtRsiM +MW8Xw/qabFbtPMWRV8PNq5ZJkCoZSx6jbVfd8StiKHVFXqrWW/oLJdihFvkcxC7mlSpnzNApbjyF +NDhhSbEAn9Y6cV9Nbc5fuankiX9qUvrKm/LcqfmdmUc/TilftKaNXXsLmREDA/7n29uj/x2lzZAe +AR81sH8A25Bvxn570e56eqeqDFdvpG3FEzuwpdntMhy0XmeLVNxzh+XTF3xmUHJd1BpYwdnP2IkC +b6dJtDZd0KTeByy2dbcokdaXvij1mB7qWybJvbCXc9qukSbraMH5ORXWZ0sKbU/Lz7DkQnGMU3nn +7uHbHaBuHYwadzVcFh4rUx80i9Fs/PJnB3r1re3WmquhsUvhzDdf/X/NTa64H5xD+SpYVUNFvJbN +cA78yeNmuk6NO4HLFWR7uZToXTNShXEuT46iBhFRyePLoW4xCGQMwtI89Tbo19AOeCMgkckkKmUp +WyL3Ic6DXqTz3kvTaI9GdVyDCW4pa8RwjPWd1yAv/0bSKzjCL3UcPX7ape8eYIVpQtPM+GP+HkM5 +haa2Y0EQs3MevNP6yn0WR+Kn1dCjigoIlmJWbjTb2QK5MHXjBNLnj8KwEUAKrNVxAmKLMb7dxiNY +MUJDLXT5xp6mig/p/r+D5kNXJLrvRjSq1xIBOO0CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw +HQYDVR0hBBYwFDASBgdghXQBUwABBgdghXQBUwABMBIGA1UdEwEB/wQIMAYBAf8CAQcwHwYDVR0j +BBgwFoAUAyUv3m+CATpcLNwroWm1Z9SM0/0wHQYDVR0OBBYEFAMlL95vggE6XCzcK6FptWfUjNP9 +MA0GCSqGSIb3DQEBBQUAA4ICAQA1EMvspgQNDQ/NwNurqPKIlwzfky9NfEBWMXrrpA9gzXrzvsMn +jgM+pN0S734edAY8PzHyHHuRMSG08NBsl9Tpl7IkVh5WwzW9iAUPWxAaZOHHgjD5Mq2eUCzneAXQ +MbFamIp1TpBcahQq4FJHgmDmHtqBsfsUC1rxn9KVuj7QG9YVHaO+htXbD8BJZLsuUBlL0iT43R4H +VtA4oJVwIHaM190e3p9xxCPvgxNcoyQVTSlAPGrEqdi3pkSlDfTgnXceQHAm/NrZNuR55LU/vJtl +vrsRls/bxig5OgjOR1tTWsWZ/l2p3e9M1MalrQLmjAcSHm8D0W+go/MpvRLHUKKwf4ipmXeascCl +OS5cfGniLLDqN2qk4Vrh9VDlg++luyqI54zb/W1elxmofmZ1a3Hqv7HHb6D0jqTsNFFbjCYDcKF3 +1QESVwA12yPeDooomf2xEG9L/zgtYE4snOtnta1J7ksfrK/7DZBaZmBwXarNeNQk7shBoJMBkpxq +nvy5JMWzFYJ+vq6VK+uxwNrjAWALXmmshFZhvnEX/h0TD/7Gh0Xp/jKgGg0TpJRVcaUWi7rKibCy +x/yP2FS1k2Kdzs9Z+z0YzirLNRWCXf9UIltxUvu3yf5gmwBBZPCqKuy2QkPOiWaByIufOVQDJdMW +NY6E0F/6MBr1mmz0DlP5OlvRHA== +-----END CERTIFICATE----- + +DigiCert Assured ID Root CA +=========================== +-----BEGIN CERTIFICATE----- +MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw +IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx +MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL +ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO +9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy +UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW +/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy +oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf +GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF +66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq +hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc +EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn +SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i +8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe ++o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g== +-----END CERTIFICATE----- + +DigiCert Global Root CA +======================= +-----BEGIN CERTIFICATE----- +MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw +HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw +MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 +dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn +TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5 +BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H +4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y +7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB +o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm +8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF +BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr +EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt +tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886 +UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk +CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= +-----END CERTIFICATE----- + +DigiCert High Assurance EV Root CA +================================== +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw +KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw +MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ +MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu +Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t +Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS +OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3 +MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ +NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe +h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB +Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY +JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ +V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp +myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK +mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe +vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K +-----END CERTIFICATE----- + +Certplus Class 2 Primary CA +=========================== +-----BEGIN CERTIFICATE----- +MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE +BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN +OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy +dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP +ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR +5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ +Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO +YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e +e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME +CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ +YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t +L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD +P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R +TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+ +7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW +//1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7 +l7+ijrRU +-----END CERTIFICATE----- + +DST Root CA X3 +============== +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQK +ExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4X +DTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1 +cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmT +rE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9 +UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRy +xXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d +utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0T +AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQ +MA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikug +dB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjE +GB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bw +RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS +fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ +-----END CERTIFICATE----- + +DST ACES CA X6 +============== +-----BEGIN CERTIFICATE----- +MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBbMQswCQYDVQQG +EwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QxETAPBgNVBAsTCERTVCBBQ0VT +MRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0wMzExMjAyMTE5NThaFw0xNzExMjAyMTE5NTha +MFsxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UE +CxMIRFNUIEFDRVMxFzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPuktKe1jzI +DZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7gLFViYsx+tC3dr5BPTCa +pCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZHfAjIgrrep4c9oW24MFbCswKBXy314pow +GCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4aahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPy +MjwmR/onJALJfh1biEITajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1Ud +EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rkc3Qu +Y29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjtodHRwOi8vd3d3LnRy +dXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMtaW5kZXguaHRtbDAdBgNVHQ4EFgQU +CXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZIhvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V2 +5FYrnJmQ6AgwbN99Pe7lv7UkQIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6t +Fr8hlxCBPeP/h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq +nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpRrscL9yuwNwXs +vFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf29w4LTJxoeHtxMcfrHuBnQfO3 +oKfN5XozNmr6mis= +-----END CERTIFICATE----- + +TURKTRUST Certificate Services Provider Root 2 +============================================== +-----BEGIN CERTIFICATE----- +MIIEPDCCAySgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBF +bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP +MA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg +QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwHhcN +MDUxMTA3MTAwNzU3WhcNMTUwOTE2MTAwNzU3WjCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBFbGVr +dHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEPMA0G +A1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls +acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpNn7DkUNMwxmYCMjHWHtPFoylzkkBH3MOrHUTpvqe +LCDe2JAOCtFp0if7qnefJ1Il4std2NiDUBd9irWCPwSOtNXwSadktx4uXyCcUHVPr+G1QRT0mJKI +x+XlZEdhR3n9wFHxwZnn3M5q+6+1ATDcRhzviuyV79z/rxAc653YsKpqhRgNF8k+v/Gb0AmJQv2g +QrSdiVFVKc8bcLyEVK3BEx+Y9C52YItdP5qtygy/p1Zbj3e41Z55SZI/4PGXJHpsmxcPbe9TmJEr +5A++WXkHeLuXlfSfadRYhwqp48y2WBmfJiGxxFmNskF1wK1pzpwACPI2/z7woQ8arBT9pmAPAgMB +AAGjQzBBMB0GA1UdDgQWBBTZN7NOBf3Zz58SFq62iS/rJTqIHDAPBgNVHQ8BAf8EBQMDBwYAMA8G +A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAHJglrfJ3NgpXiOFX7KzLXb7iNcX/ntt +Rbj2hWyfIvwqECLsqrkw9qtY1jkQMZkpAL2JZkH7dN6RwRgLn7Vhy506vvWolKMiVW4XSf/SKfE4 +Jl3vpao6+XF75tpYHdN0wgH6PmlYX63LaL4ULptswLbcoCb6dxriJNoaN+BnrdFzgw2lGh1uEpJ+ +hGIAF728JRhX8tepb1mIvDS3LoV4nZbcFMMsilKbloxSZj2GFotHuFEJjOp9zYhys2AzsfAKRO8P +9Qk3iCQOLGsgOqL6EfJANZxEaGM7rDNvY7wsu/LSy3Z9fYjYHcgFHW68lKlmjHdxx/qR+i9Rnuk5 +UrbnBEI= +-----END CERTIFICATE----- + +SwissSign Gold CA - G2 +====================== +-----BEGIN CERTIFICATE----- +MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkNIMRUw +EwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2lnbiBHb2xkIENBIC0gRzIwHhcN +MDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBFMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dp +c3NTaWduIEFHMR8wHQYDVQQDExZTd2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0B +AQEFAAOCAg8AMIICCgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUq +t2/876LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+bbqBHH5C +jCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c6bM8K8vzARO/Ws/BtQpg +vd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqEemA8atufK+ze3gE/bk3lUIbLtK/tREDF +ylqM2tIrfKjuvqblCqoOpd8FUrdVxyJdMmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvR +AiTysybUa9oEVeXBCsdtMDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuend +jIj3o02yMszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69yFGkO +peUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPiaG59je883WX0XaxR +7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxMgI93e2CaHt+28kgeDrpOVG2Y4OGi +GqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw +AwEB/zAdBgNVHQ4EFgQUWyV7lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64 +OfPAeGZe6Drn8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov +L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe645R88a7A3hfm +5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczOUYrHUDFu4Up+GC9pWbY9ZIEr +44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOf +Mke6UiI0HTJ6CVanfCU2qT1L2sCCbwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6m +Gu6uLftIdxf+u+yvGPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxp +mo/a77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCChdiDyyJk +vC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid392qgQmwLOM7XdVAyksLf +KzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEppLd6leNcG2mqeSz53OiATIgHQv2ieY2Br +NU0LbbqhPcCT4H8js1WtciVORvnSFu+wZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6Lqj +viOvrv1vA+ACOzB2+httQc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ +-----END CERTIFICATE----- + +SwissSign Silver CA - G2 +======================== +-----BEGIN CERTIFICATE----- +MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCQ0gxFTAT +BgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMB4X +DTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0NlowRzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3 +aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG +9w0BAQEFAAOCAg8AMIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644 +N0MvFz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7brYT7QbNHm ++/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieFnbAVlDLaYQ1HTWBCrpJH +6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH6ATK72oxh9TAtvmUcXtnZLi2kUpCe2Uu +MGoM9ZDulebyzYLs2aFK7PayS+VFheZteJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5h +qAaEuSh6XzjZG6k4sIN/c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5 +FZGkECwJMoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRHHTBs +ROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTfjNFusB3hB48IHpmc +celM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb65i/4z3GcRm25xBWNOHkDRUjvxF3X +CO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUF6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRB +tjpbO8tFnb0cwpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0 +cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBAHPGgeAn0i0P +4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShpWJHckRE1qTodvBqlYJ7YH39F +kWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L +3XWgwF15kIwb4FDm3jH+mHtwX6WQ2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx +/uNncqCxv1yL5PqZIseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFa +DGi8aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2Xem1ZqSqP +e97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQRdAtq/gsD/KNVV4n+Ssuu +WxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJ +DIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ub +DgEj8Z+7fNzcbBGXJbLytGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u +-----END CERTIFICATE----- + +GeoTrust Primary Certification Authority +======================================== +-----BEGIN CERTIFICATE----- +MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG +EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD +ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx +CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ +cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN +b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9 +nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge +RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt +tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI +hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K +Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN +NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa +Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG +1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk= +-----END CERTIFICATE----- + +thawte Primary Root CA +====================== +-----BEGIN CERTIFICATE----- +MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE +BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2 +aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3 +MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg +SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv +KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT +FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs +oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ +1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc +q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K +aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p +afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF +AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE +uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX +xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89 +jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH +z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA== +-----END CERTIFICATE----- + +VeriSign Class 3 Public Primary Certification Authority - G5 +============================================================ +-----BEGIN CERTIFICATE----- +MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE +BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO +ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk +IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB +yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln +biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh +dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt +YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw +ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz +j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD +Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/ +Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r +fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/ +BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv +Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy +aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG +SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+ +X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE +KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC +Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE +ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq +-----END CERTIFICATE----- + +SecureTrust CA +============== +-----BEGIN CERTIFICATE----- +MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG +EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy +dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe +BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC +ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX +OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t +DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH +GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b +01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH +ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj +aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ +KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu +SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf +mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ +nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR +3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE= +-----END CERTIFICATE----- + +Secure Global CA +================ +-----BEGIN CERTIFICATE----- +MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG +EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH +bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg +MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg +Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx +YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ +bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g +8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV +HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi +0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn +oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA +MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+ +OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn +CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5 +3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc +f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW +-----END CERTIFICATE----- + +COMODO Certification Authority +============================== +-----BEGIN CERTIFICATE----- +MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE +BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG +A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1 +dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb +MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD +T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH ++7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww +xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV +4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA +1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI +rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k +b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC +AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP +OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/ +RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc +IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN ++8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ== +-----END CERTIFICATE----- + +Network Solutions Certificate Authority +======================================= +-----BEGIN CERTIFICATE----- +MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG +EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr +IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx +MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu +MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx +jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT +aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT +crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc +/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB +AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP +BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv +bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA +A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q +4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/ +GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv +wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD +ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey +-----END CERTIFICATE----- + +WellsSecure Public Root Certificate Authority +============================================= +-----BEGIN CERTIFICATE----- +MIIEvTCCA6WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoM +F1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYw +NAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN +MDcxMjEzMTcwNzU0WhcNMjIxMjE0MDAwNzU0WjCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dl +bGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYD +VQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDub7S9eeKPCCGeOARBJe+rWxxTkqxtnt3CxC5FlAM1 +iGd0V+PfjLindo8796jE2yljDpFoNoqXjopxaAkH5OjUDk/41itMpBb570OYj7OeUt9tkTmPOL13 +i0Nj67eT/DBMHAGTthP796EfvyXhdDcsHqRePGj4S78NuR4uNuip5Kf4D8uCdXw1LSLWwr8L87T8 +bJVhHlfXBIEyg1J55oNjz7fLY4sR4r1e6/aN7ZVyKLSsEmLpSjPmgzKuBXWVvYSV2ypcm44uDLiB +K0HmOFafSZtsdvqKXfcBeYF8wYNABf5x/Qw/zE5gCQ5lRxAvAcAFP4/4s0HvWkJ+We/SlwxlAgMB +AAGjggE0MIIBMDAPBgNVHRMBAf8EBTADAQH/MDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwu +cGtpLndlbGxzZmFyZ28uY29tL3dzcHJjYS5jcmwwDgYDVR0PAQH/BAQDAgHGMB0GA1UdDgQWBBQm +lRkQ2eihl5H/3BnZtQQ+0nMKajCBsgYDVR0jBIGqMIGngBQmlRkQ2eihl5H/3BnZtQQ+0nMKaqGB +i6SBiDCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRww +GgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMg +Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCAQEwDQYJKoZIhvcNAQEFBQADggEBALkVsUSRzCPI +K0134/iaeycNzXK7mQDKfGYZUMbVmO2rvwNa5U3lHshPcZeG1eMd/ZDJPHV3V3p9+N701NX3leZ0 +bh08rnyd2wIDBSxxSyU+B+NemvVmFymIGjifz6pBA4SXa5M4esowRBskRDPQ5NHcKDj0E0M1NSlj +qHyita04pO2t/caaH/+Xc/77szWnk4bGdpEA5qxRFsQnMlzbc9qlk1eOPm01JghZ1edE13YgY+es +E2fDbbFwRnzVlhE9iW9dqKHrjQrawx0zbKPqZxmamX9LPYNRKh3KL4YMon4QLSvUFpULB6ouFJJJ +tylv2G0xffX8oRAHh84vWdw+WNs= +-----END CERTIFICATE----- + +COMODO ECC Certification Authority +================================== +-----BEGIN CERTIFICATE----- +MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC +R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE +ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix +GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR +Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo +b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X +4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni +wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG +FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA +U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY= +-----END CERTIFICATE----- + +IGC/A +===== +-----BEGIN CERTIFICATE----- +MIIEAjCCAuqgAwIBAgIFORFFEJQwDQYJKoZIhvcNAQEFBQAwgYUxCzAJBgNVBAYTAkZSMQ8wDQYD +VQQIEwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVE +Q1NTSTEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZy +MB4XDTAyMTIxMzE0MjkyM1oXDTIwMTAxNzE0MjkyMlowgYUxCzAJBgNVBAYTAkZSMQ8wDQYDVQQI +EwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVEQ1NT +STEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZyMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsh/R0GLFMzvABIaIs9z4iPf930Pfeo2aSVz2 +TqrMHLmh6yeJ8kbpO0px1R2OLc/mratjUMdUC24SyZA2xtgv2pGqaMVy/hcKshd+ebUyiHDKcMCW +So7kVc0dJ5S/znIq7Fz5cyD+vfcuiWe4u0dzEvfRNWk68gq5rv9GQkaiv6GFGvm/5P9JhfejcIYy +HF2fYPepraX/z9E0+X1bF8bc1g4oa8Ld8fUzaJ1O/Id8NhLWo4DoQw1VYZTqZDdH6nfK0LJYBcNd +frGoRpAxVs5wKpayMLh35nnAvSk7/ZR3TL0gzUEl4C7HG7vupARB0l2tEmqKm0f7yd1GQOGdPDPQ +tQIDAQABo3cwdTAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBRjAVBgNVHSAEDjAMMAoGCCqB +egF5AQEBMB0GA1UdDgQWBBSjBS8YYFDCiQrdKyFP/45OqDAxNjAfBgNVHSMEGDAWgBSjBS8YYFDC +iQrdKyFP/45OqDAxNjANBgkqhkiG9w0BAQUFAAOCAQEABdwm2Pp3FURo/C9mOnTgXeQp/wYHE4RK +q89toB9RlPhJy3Q2FLwV3duJL92PoF189RLrn544pEfMs5bZvpwlqwN+Mw+VgQ39FuCIvjfwbF3Q +MZsyK10XZZOYYLxuj7GoPB7ZHPOpJkL5ZB3C55L29B5aqhlSXa/oovdgoPaN8In1buAKBQGVyYsg +Crpa/JosPL3Dt8ldeCUFP1YUmwza+zpI/pdpXsoQhvdOlgQITeywvl3cO45Pwf2aNjSaTFR+FwNI +lQgRHAdvhQh+XU3Endv7rs6y0bO4g2wdsrN58dhwmX7wEwLOXt1R0982gaEbeC9xs/FZTEYYKKuF +0mBWWg== +-----END CERTIFICATE----- + +Security Communication EV RootCA1 +================================= +-----BEGIN CERTIFICATE----- +MIIDfTCCAmWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJKUDElMCMGA1UEChMc +U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEqMCgGA1UECxMhU2VjdXJpdHkgQ29tbXVuaWNh +dGlvbiBFViBSb290Q0ExMB4XDTA3MDYwNjAyMTIzMloXDTM3MDYwNjAyMTIzMlowYDELMAkGA1UE +BhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKjAoBgNVBAsTIVNl +Y3VyaXR5IENvbW11bmljYXRpb24gRVYgUm9vdENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBALx/7FebJOD+nLpCeamIivqA4PUHKUPqjgo0No0c+qe1OXj/l3X3L+SqawSERMqm4miO +/VVQYg+kcQ7OBzgtQoVQrTyWb4vVog7P3kmJPdZkLjjlHmy1V4qe70gOzXppFodEtZDkBp2uoQSX +WHnvIEqCa4wiv+wfD+mEce3xDuS4GBPMVjZd0ZoeUWs5bmB2iDQL87PRsJ3KYeJkHcFGB7hj3R4z +ZbOOCVVSPbW9/wfrrWFVGCypaZhKqkDFMxRldAD5kd6vA0jFQFTcD4SQaCDFkpbcLuUCRarAX1T4 +bepJz11sS6/vmsJWXMY1VkJqMF/Cq/biPT+zyRGPMUzXn0kCAwEAAaNCMEAwHQYDVR0OBBYEFDVK +9U2vP9eCOKyrcWUXdYydVZPmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqG +SIb3DQEBBQUAA4IBAQCoh+ns+EBnXcPBZsdAS5f8hxOQWsTvoMpfi7ent/HWtWS3irO4G8za+6xm +iEHO6Pzk2x6Ipu0nUBsCMCRGef4Eh3CXQHPRwMFXGZpppSeZq51ihPZRwSzJIxXYKLerJRO1RuGG +Av8mjMSIkh1W/hln8lXkgKNrnKt34VFxDSDbEJrbvXZ5B3eZKK2aXtqxT0QsNY6llsf9g/BYxnnW +mHyojf6GPgcWkuF75x3sM3Z+Qi5KhfmRiWiEA4Glm5q+4zfFVKtWOxgtQaQM+ELbmaDgcm+7XeEW +T1MKZPlO9L9OVL14bIjqv5wTJMJwaaJ/D8g8rQjJsJhAoyrniIPtd490 +-----END CERTIFICATE----- + +OISTE WISeKey Global Root GA CA +=============================== +-----BEGIN CERTIFICATE----- +MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UE +BhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHlyaWdodCAoYykgMjAwNTEiMCAG +A1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBH +bG9iYWwgUm9vdCBHQSBDQTAeFw0wNTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYD +VQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIw +IAYDVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5 +IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy0+zAJs9 +Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxRVVuuk+g3/ytr6dTqvirdqFEr12bDYVxg +Asj1znJ7O7jyTmUIms2kahnBAbtzptf2w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbD +d50kc3vkDIzh2TbhmYsFmQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ +/yxViJGg4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t94B3R +LoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw +AwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ +KoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOxSPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vIm +MMkQyh2I+3QZH4VFvbBsUfk2ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4 ++vg1YFkCExh8vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa +hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEY +okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0= +-----END CERTIFICATE----- + +Microsec e-Szigno Root CA +========================= +-----BEGIN CERTIFICATE----- +MIIHqDCCBpCgAwIBAgIRAMy4579OKRr9otxmpRwsDxEwDQYJKoZIhvcNAQEFBQAwcjELMAkGA1UE +BhMCSFUxETAPBgNVBAcTCEJ1ZGFwZXN0MRYwFAYDVQQKEw1NaWNyb3NlYyBMdGQuMRQwEgYDVQQL +EwtlLVN6aWdubyBDQTEiMCAGA1UEAxMZTWljcm9zZWMgZS1Temlnbm8gUm9vdCBDQTAeFw0wNTA0 +MDYxMjI4NDRaFw0xNzA0MDYxMjI4NDRaMHIxCzAJBgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVz +dDEWMBQGA1UEChMNTWljcm9zZWMgTHRkLjEUMBIGA1UECxMLZS1Temlnbm8gQ0ExIjAgBgNVBAMT +GU1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +AQDtyADVgXvNOABHzNuEwSFpLHSQDCHZU4ftPkNEU6+r+ICbPHiN1I2uuO/TEdyB5s87lozWbxXG +d36hL+BfkrYn13aaHUM86tnsL+4582pnS4uCzyL4ZVX+LMsvfUh6PXX5qqAnu3jCBspRwn5mS6/N +oqdNAoI/gqyFxuEPkEeZlApxcpMqyabAvjxWTHOSJ/FrtfX9/DAFYJLG65Z+AZHCabEeHXtTRbjc +QR/Ji3HWVBTji1R4P770Yjtb9aPs1ZJ04nQw7wHb4dSrmZsqa/i9phyGI0Jf7Enemotb9HI6QMVJ +PqW+jqpx62z69Rrkav17fVVA71hu5tnVvCSrwe+3AgMBAAGjggQ3MIIEMzBnBggrBgEFBQcBAQRb +MFkwKAYIKwYBBQUHMAGGHGh0dHBzOi8vcmNhLmUtc3ppZ25vLmh1L29jc3AwLQYIKwYBBQUHMAKG +IWh0dHA6Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNydDAPBgNVHRMBAf8EBTADAQH/MIIBcwYD +VR0gBIIBajCCAWYwggFiBgwrBgEEAYGoGAIBAQEwggFQMCgGCCsGAQUFBwIBFhxodHRwOi8vd3d3 +LmUtc3ppZ25vLmh1L1NaU1ovMIIBIgYIKwYBBQUHAgIwggEUHoIBEABBACAAdABhAG4A+gBzAO0A +dAB2AOEAbgB5ACAA6QByAHQAZQBsAG0AZQB6AOkAcwDpAGgAZQB6ACAA6QBzACAAZQBsAGYAbwBn +AGEAZADhAHMA4QBoAG8AegAgAGEAIABTAHoAbwBsAGcA4QBsAHQAYQB0APMAIABTAHoAbwBsAGcA +4QBsAHQAYQB0AOEAcwBpACAAUwB6AGEAYgDhAGwAeQB6AGEAdABhACAAcwB6AGUAcgBpAG4AdAAg +AGsAZQBsAGwAIABlAGwAagDhAHIAbgBpADoAIABoAHQAdABwADoALwAvAHcAdwB3AC4AZQAtAHMA +egBpAGcAbgBvAC4AaAB1AC8AUwBaAFMAWgAvMIHIBgNVHR8EgcAwgb0wgbqggbeggbSGIWh0dHA6 +Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNybIaBjmxkYXA6Ly9sZGFwLmUtc3ppZ25vLmh1L0NO +PU1pY3Jvc2VjJTIwZS1Temlnbm8lMjBSb290JTIwQ0EsT1U9ZS1Temlnbm8lMjBDQSxPPU1pY3Jv +c2VjJTIwTHRkLixMPUJ1ZGFwZXN0LEM9SFU/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdDtiaW5h +cnkwDgYDVR0PAQH/BAQDAgEGMIGWBgNVHREEgY4wgYuBEGluZm9AZS1zemlnbm8uaHWkdzB1MSMw +IQYDVQQDDBpNaWNyb3NlYyBlLVN6aWduw7MgUm9vdCBDQTEWMBQGA1UECwwNZS1TemlnbsOzIEhT +WjEWMBQGA1UEChMNTWljcm9zZWMgS2Z0LjERMA8GA1UEBxMIQnVkYXBlc3QxCzAJBgNVBAYTAkhV +MIGsBgNVHSMEgaQwgaGAFMegSXUWYYTbMUuE0vE3QJDvTtz3oXakdDByMQswCQYDVQQGEwJIVTER +MA8GA1UEBxMIQnVkYXBlc3QxFjAUBgNVBAoTDU1pY3Jvc2VjIEx0ZC4xFDASBgNVBAsTC2UtU3pp +Z25vIENBMSIwIAYDVQQDExlNaWNyb3NlYyBlLVN6aWdubyBSb290IENBghEAzLjnv04pGv2i3Gal +HCwPETAdBgNVHQ4EFgQUx6BJdRZhhNsxS4TS8TdAkO9O3PcwDQYJKoZIhvcNAQEFBQADggEBANMT +nGZjWS7KXHAM/IO8VbH0jgdsZifOwTsgqRy7RlRw7lrMoHfqaEQn6/Ip3Xep1fvj1KcExJW4C+FE +aGAHQzAxQmHl7tnlJNUb3+FKG6qfx1/4ehHqE5MAyopYse7tDk2016g2JnzgOsHVV4Lxdbb9iV/a +86g4nzUGCM4ilb7N1fy+W955a9x6qWVmvrElWl/tftOsRm1M9DKHtCAE4Gx4sHfRhUZLphK3dehK +yVZs15KrnfVJONJPU+NVkBHbmJbGSfI+9J8b4PeI3CVimUTYc78/MPMMNz7UwiiAc7EBt51alhQB +S6kRnSlqLtBdgcDPsiBDxwPgN05dCtxZICU= +-----END CERTIFICATE----- + +Certigna +======== +-----BEGIN CERTIFICATE----- +MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw +EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3 +MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI +Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q +XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH +GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p +ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg +DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf +Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ +tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ +BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J +SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA +hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+ +ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu +PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY +1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw +WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg== +-----END CERTIFICATE----- + +Deutsche Telekom Root CA 2 +========================== +-----BEGIN CERTIFICATE----- +MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMT +RGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEG +A1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENBIDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5 +MjM1OTAwWjBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0G +A1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBS +b290IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEUha88EOQ5 +bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhCQN/Po7qCWWqSG6wcmtoI +KyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1MjwrrFDa1sPeg5TKqAyZMg4ISFZbavva4VhY +AUlfckE8FQYBjl2tqriTtM2e66foai1SNNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aK +Se5TBY8ZTNXeWHmb0mocQqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTV +jlsB9WoHtxa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAPBgNV +HRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAlGRZrTlk5ynr +E/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756AbrsptJh6sTtU6zkXR34ajgv8HzFZMQSy +zhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpaIzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8 +rZ7/gFnkm0W09juwzTkZmDLl6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4G +dyd1Lx+4ivn+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU +Cm26OWMohpLzGITY+9HPBVZkVw== +-----END CERTIFICATE----- + +Cybertrust Global Root +====================== +-----BEGIN CERTIFICATE----- +MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYGA1UEChMPQ3li +ZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBSb290MB4XDTA2MTIxNTA4 +MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQD +ExZDeWJlcnRydXN0IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA ++Mi8vRRQZhP/8NN57CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW +0ozSJ8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2yHLtgwEZL +AfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iPt3sMpTjr3kfb1V05/Iin +89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNzFtApD0mpSPCzqrdsxacwOUBdrsTiXSZT +8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAYXSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAP +BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2 +MDSgMqAwhi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3JsMB8G +A1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUAA4IBAQBW7wojoFRO +lZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMjWqd8BfP9IjsO0QbE2zZMcwSO5bAi +5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUxXOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2 +hO0j9n0Hq0V+09+zv+mKts2oomcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+T +X3EJIrduPuocA06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW +WL1WMRJOEcgh4LMRkWXbtKaIOM5V +-----END CERTIFICATE----- + +ePKI Root Certification Authority +================================= +-----BEGIN CERTIFICATE----- +MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBeMQswCQYDVQQG +EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xKjAoBgNVBAsMIWVQS0kg +Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMx +MjdaMF4xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEq +MCgGA1UECwwhZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0B +AQEFAAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAHSyZbCUNs +IZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAhijHyl3SJCRImHJ7K2RKi +lTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3XDZoTM1PRYfl61dd4s5oz9wCGzh1NlDiv +qOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX +12ruOzjjK9SXDrkb5wdJfzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0O +WQqraffAsgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uUWH1+ +ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLSnT0IFaUQAS2zMnao +lQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pHdmX2Os+PYhcZewoozRrSgx4hxyy/ +vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJipNiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXi +Zo1jDiVN1Rmy5nk3pyKdVDECAwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/Qkqi +MAwGA1UdEwQFMAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH +ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGBuvl2ICO1J2B0 +1GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6YlPwZpVnPDimZI+ymBV3QGypzq +KOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkPJXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdV +xrsStZf0X4OFunHB2WyBEXYKCrC/gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEP +NXubrjlpC2JgQCA2j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+r +GNm65ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUBo2M3IUxE +xJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS/jQ6fbjpKdx2qcgw+BRx +gMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2zGp1iro2C6pSe3VkQw63d4k3jMdXH7Ojy +sP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTEW9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmOD +BCEIZ43ygknQW/2xzQ+DhNQ+IIX3Sj0rnP0qCglN6oH4EZw= +-----END CERTIFICATE----- + +T\xc3\x9c\x42\xC4\xB0TAK UEKAE K\xC3\xB6k Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 - S\xC3\xBCr\xC3\xBCm 3 +============================================================================================================================= +-----BEGIN CERTIFICATE----- +MIIFFzCCA/+gAwIBAgIBETANBgkqhkiG9w0BAQUFADCCASsxCzAJBgNVBAYTAlRSMRgwFgYDVQQH +DA9HZWJ6ZSAtIEtvY2FlbGkxRzBFBgNVBAoMPlTDvHJraXllIEJpbGltc2VsIHZlIFRla25vbG9q +aWsgQXJhxZ90xLFybWEgS3VydW11IC0gVMOcQsSwVEFLMUgwRgYDVQQLDD9VbHVzYWwgRWxla3Ry +b25payB2ZSBLcmlwdG9sb2ppIEFyYcWfdMSxcm1hIEVuc3RpdMO8c8O8IC0gVUVLQUUxIzAhBgNV +BAsMGkthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppMUowSAYDVQQDDEFUw5xCxLBUQUsgVUVLQUUg +S8O2ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSAtIFPDvHLDvG0gMzAeFw0wNzA4 +MjQxMTM3MDdaFw0xNzA4MjExMTM3MDdaMIIBKzELMAkGA1UEBhMCVFIxGDAWBgNVBAcMD0dlYnpl +IC0gS29jYWVsaTFHMEUGA1UECgw+VMO8cmtpeWUgQmlsaW1zZWwgdmUgVGVrbm9sb2ppayBBcmHF +n3TEsXJtYSBLdXJ1bXUgLSBUw5xCxLBUQUsxSDBGBgNVBAsMP1VsdXNhbCBFbGVrdHJvbmlrIHZl +IEtyaXB0b2xvamkgQXJhxZ90xLFybWEgRW5zdGl0w7xzw7wgLSBVRUtBRTEjMCEGA1UECwwaS2Ft +dSBTZXJ0aWZpa2FzeW9uIE1lcmtlemkxSjBIBgNVBAMMQVTDnELEsFRBSyBVRUtBRSBLw7ZrIFNl +cnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIC0gU8O8csO8bSAzMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAim1L/xCIOsP2fpTo6iBkcK4hgb46ezzb8R1Sf1n68yJMlaCQvEhO +Eav7t7WNeoMojCZG2E6VQIdhn8WebYGHV2yKO7Rm6sxA/OOqbLLLAdsyv9Lrhc+hDVXDWzhXcLh1 +xnnRFDDtG1hba+818qEhTsXOfJlfbLm4IpNQp81McGq+agV/E5wrHur+R84EpW+sky58K5+eeROR +6Oqeyjh1jmKwlZMq5d/pXpduIF9fhHpEORlAHLpVK/swsoHvhOPc7Jg4OQOFCKlUAwUp8MmPi+oL +hmUZEdPpCSPeaJMDyTYcIW7OjGbxmTDY17PDHfiBLqi9ggtm/oLL4eAagsNAgQIDAQABo0IwQDAd +BgNVHQ4EFgQUvYiHyY/2pAoLquvF/pEjnatKijIwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF +MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAB18+kmPNOm3JpIWmgV050vQbTlswyb2zrgxvMTfvCr4 +N5EY3ATIZJkrGG2AA1nJrvhY0D7twyOfaTyGOBye79oneNGEN3GKPEs5z35FBtYt2IpNeBLWrcLT +y9LQQfMmNkqblWwM7uXRQydmwYj3erMgbOqwaSvHIOgMA8RBBZniP+Rr+KCGgceExh/VS4ESshYh +LBOhgLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5noN+J1q2M +dqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUsyZyQ2uypQjyttgI= +-----END CERTIFICATE----- + +Buypass Class 2 CA 1 +==================== +-----BEGIN CERTIFICATE----- +MIIDUzCCAjugAwIBAgIBATANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU +QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMiBDQSAxMB4XDTA2 +MTAxMzEwMjUwOVoXDTE2MTAxMzEwMjUwOVowSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh +c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDIgQ0EgMTCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAIs8B0XY9t/mx8q6jUPFR42wWsE425KEHK8T1A9vNkYgxC7M +cXA0ojTTNy7Y3Tp3L8DrKehc0rWpkTSHIln+zNvnma+WwajHQN2lFYxuyHyXA8vmIPLXl18xoS83 +0r7uvqmtqEyeIWZDO6i88wmjONVZJMHCR3axiFyCO7srpgTXjAePzdVBHfCuuCkslFJgNJQ72uA4 +0Z0zPhX0kzLFANq1KWYOOngPIVJfAuWSeyXTkh4vFZ2B5J2O6O+JzhRMVB0cgRJNcKi+EAUXfh/R +uFdV7c27UsKwHnjCTTZoy1YmwVLBvXb3WNVyfh9EdrsAiR0WnVE1703CVu9r4Iw7DekCAwEAAaNC +MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUP42aWYv8e3uco684sDntkHGA1sgwDgYDVR0P +AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAVGn4TirnoB6NLJzKyQJHyIdFkhb5jatLPgcIV +1Xp+DCmsNx4cfHZSldq1fyOhKXdlyTKdqC5Wq2B2zha0jX94wNWZUYN/Xtm+DKhQ7SLHrQVMdvvt +7h5HZPb3J31cKA9FxVxiXqaakZG3Uxcu3K1gnZZkOb1naLKuBctN518fV4bVIJwo+28TOPX2EZL2 +fZleHwzoq0QkKXJAPTZSr4xYkHPB7GEseaHsh7U/2k3ZIQAw3pDaDtMaSKk+hQsUi4y8QZ5q9w5w +wDX3OaJdZtB7WZ+oRxKaJyOkLY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho +-----END CERTIFICATE----- + +EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 +========================================================================== +-----BEGIN CERTIFICATE----- +MIIF5zCCA8+gAwIBAgIITK9zQhyOdAIwDQYJKoZIhvcNAQEFBQAwgYAxODA2BgNVBAMML0VCRyBF +bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMTcwNQYDVQQKDC5FQkcg +QmlsacWfaW0gVGVrbm9sb2ppbGVyaSB2ZSBIaXptZXRsZXJpIEEuxZ4uMQswCQYDVQQGEwJUUjAe +Fw0wNjA4MTcwMDIxMDlaFw0xNjA4MTQwMDMxMDlaMIGAMTgwNgYDVQQDDC9FQkcgRWxla3Ryb25p +ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTE3MDUGA1UECgwuRUJHIEJpbGnFn2lt +IFRla25vbG9qaWxlcmkgdmUgSGl6bWV0bGVyaSBBLsWeLjELMAkGA1UEBhMCVFIwggIiMA0GCSqG +SIb3DQEBAQUAA4ICDwAwggIKAoICAQDuoIRh0DpqZhAy2DE4f6en5f2h4fuXd7hxlugTlkaDT7by +X3JWbhNgpQGR4lvFzVcfd2NR/y8927k/qqk153nQ9dAktiHq6yOU/im/+4mRDGSaBUorzAzu8T2b +gmmkTPiab+ci2hC6X5L8GCcKqKpE+i4stPtGmggDg3KriORqcsnlZR9uKg+ds+g75AxuetpX/dfr +eYteIAbTdgtsApWjluTLdlHRKJ2hGvxEok3MenaoDT2/F08iiFD9rrbskFBKW5+VQarKD7JK/oCZ +TqNGFav4c0JqwmZ2sQomFd2TkuzbqV9UIlKRcF0T6kjsbgNs2d1s/OsNA/+mgxKb8amTD8UmTDGy +Y5lhcucqZJnSuOl14nypqZoaqsNW2xCaPINStnuWt6yHd6i58mcLlEOzrz5z+kI2sSXFCjEmN1Zn +uqMLfdb3ic1nobc6HmZP9qBVFCVMLDMNpkGMvQQxahByCp0OLna9XvNRiYuoP1Vzv9s6xiQFlpJI +qkuNKgPlV5EQ9GooFW5Hd4RcUXSfGenmHmMWOeMRFeNYGkS9y8RsZteEBt8w9DeiQyJ50hBs37vm +ExH8nYQKE3vwO9D8owrXieqWfo1IhR5kX9tUoqzVegJ5a9KK8GfaZXINFHDk6Y54jzJ0fFfy1tb0 +Nokb+Clsi7n2l9GkLqq+CxnCRelwXQIDAJ3Zo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB +/wQEAwIBBjAdBgNVHQ4EFgQU587GT/wWZ5b6SqMHwQSny2re2kcwHwYDVR0jBBgwFoAU587GT/wW +Z5b6SqMHwQSny2re2kcwDQYJKoZIhvcNAQEFBQADggIBAJuYml2+8ygjdsZs93/mQJ7ANtyVDR2t +FcU22NU57/IeIl6zgrRdu0waypIN30ckHrMk2pGI6YNw3ZPX6bqz3xZaPt7gyPvT/Wwp+BVGoGgm +zJNSroIBk5DKd8pNSe/iWtkqvTDOTLKBtjDOWU/aWR1qeqRFsIImgYZ29fUQALjuswnoT4cCB64k +XPBfrAowzIpAoHMEwfuJJPaaHFy3PApnNgUIMbOv2AFoKuB4j3TeuFGkjGwgPaL7s9QJ/XvCgKqT +bCmYIai7FvOpEl90tYeY8pUm3zTvilORiF0alKM/fCL414i6poyWqD1SNGKfAB5UVUJnxk1Gj7sU +RT0KlhaOEKGXmdXTMIXM3rRyt7yKPBgpaP3ccQfuJDlq+u2lrDgv+R4QDgZxGhBM/nV+/x5XOULK +1+EVoVZVWRvRo68R2E7DpSvvkL/A7IITW43WciyTTo9qKd+FPNMN4KIYEsxVL0e3p5sC/kH2iExt +2qkBR4NkJ2IQgtYSe14DHzSpyZH+r11thie3I6p1GMog57AP14kOpmciY/SDQSsGS7tY1dHXt7kQ +Y9iJSrSq3RZj9W6+YKH47ejWkE8axsWgKdOnIaj1Wjz3x0miIZpKlVIglnKaZsv30oZDfCK+lvm9 +AahH3eU7QPl1K5srRmSGjR70j/sHd9DqSaIcjVIUpgqT +-----END CERTIFICATE----- + +certSIGN ROOT CA +================ +-----BEGIN CERTIFICATE----- +MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREwDwYD +VQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQxNzIwMDRa +Fw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UE +CxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7I +JUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHH +rfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5dRdY4zTW2 +ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQOA7+j0xbm0bqQfWwCHTD +0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwvJoIQ4uNllAoEwF73XVv4EOLQunpL+943 +AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B +Af8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IB +AQA+0hyJLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8 +SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0 +x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIlt +vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz +TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD +-----END CERTIFICATE----- + +CNNIC ROOT +========== +-----BEGIN CERTIFICATE----- +MIIDVTCCAj2gAwIBAgIESTMAATANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJDTjEOMAwGA1UE +ChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwHhcNMDcwNDE2MDcwOTE0WhcNMjcwNDE2MDcw +OTE0WjAyMQswCQYDVQQGEwJDTjEOMAwGA1UEChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1Qw +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDTNfc/c3et6FtzF8LRb+1VvG7q6KR5smzD +o+/hn7E7SIX1mlwhIhAsxYLO2uOabjfhhyzcuQxauohV3/2q2x8x6gHx3zkBwRP9SFIhxFXf2tiz +VHa6dLG3fdfA6PZZxU3Iva0fFNrfWEQlMhkqx35+jq44sDB7R3IJMfAw28Mbdim7aXZOV/kbZKKT +VrdvmW7bCgScEeOAH8tjlBAKqeFkgjH5jCftppkA9nCTGPihNIaj3XrCGHn2emU1z5DrvTOTn1Or +czvmmzQgLx3vqR1jGqCA2wMv+SYahtKNu6m+UjqHZ0gNv7Sg2Ca+I19zN38m5pIEo3/PIKe38zrK +y5nLAgMBAAGjczBxMBEGCWCGSAGG+EIBAQQEAwIABzAfBgNVHSMEGDAWgBRl8jGtKvf33VKWCscC +wQ7vptU7ETAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIB/jAdBgNVHQ4EFgQUZfIxrSr3991S +lgrHAsEO76bVOxEwDQYJKoZIhvcNAQEFBQADggEBAEs17szkrr/Dbq2flTtLP1se31cpolnKOOK5 +Gv+e5m4y3R6u6jW39ZORTtpC4cMXYFDy0VwmuYK36m3knITnA3kXr5g9lNvHugDnuL8BV8F3RTIM +O/G0HAiw/VGgod2aHRM2mm23xzy54cXZF/qD1T0VoDy7HgviyJA/qIYM/PmLXoXLT1tLYhFHxUV8 +BS9BsZ4QaRuZluBVeftOhpm4lNqGOGqTo+fLbuXf6iFViZx9fX+Y9QCJ7uOEwFyWtcVG6kbghVW2 +G8kS1sHNzYDzAgE8yGnLRUhj2JTQ7IUOO04RZfSCjKY9ri4ilAnIXOo8gV0WKgOXFlUJ24pBgp5m +mxE= +-----END CERTIFICATE----- + +ApplicationCA - Japanese Government +=================================== +-----BEGIN CERTIFICATE----- +MIIDoDCCAoigAwIBAgIBMTANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJKUDEcMBoGA1UEChMT +SmFwYW5lc2UgR292ZXJubWVudDEWMBQGA1UECxMNQXBwbGljYXRpb25DQTAeFw0wNzEyMTIxNTAw +MDBaFw0xNzEyMTIxNTAwMDBaMEMxCzAJBgNVBAYTAkpQMRwwGgYDVQQKExNKYXBhbmVzZSBHb3Zl +cm5tZW50MRYwFAYDVQQLEw1BcHBsaWNhdGlvbkNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEAp23gdE6Hj6UG3mii24aZS2QNcfAKBZuOquHMLtJqO8F6tJdhjYq+xpqcBrSGUeQ3DnR4 +fl+Kf5Sk10cI/VBaVuRorChzoHvpfxiSQE8tnfWuREhzNgaeZCw7NCPbXCbkcXmP1G55IrmTwcrN +wVbtiGrXoDkhBFcsovW8R0FPXjQilbUfKW1eSvNNcr5BViCH/OlQR9cwFO5cjFW6WY2H/CPek9AE +jP3vbb3QesmlOmpyM8ZKDQUXKi17safY1vC+9D/qDihtQWEjdnjDuGWk81quzMKq2edY3rZ+nYVu +nyoKb58DKTCXKB28t89UKU5RMfkntigm/qJj5kEW8DOYRwIDAQABo4GeMIGbMB0GA1UdDgQWBBRU +WssmP3HMlEYNllPqa0jQk/5CdTAOBgNVHQ8BAf8EBAMCAQYwWQYDVR0RBFIwUKROMEwxCzAJBgNV +BAYTAkpQMRgwFgYDVQQKDA/ml6XmnKzlm73mlL/lupwxIzAhBgNVBAsMGuOCouODl+ODquOCseOD +vOOCt+ODp+ODs0NBMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADlqRHZ3ODrs +o2dGD/mLBqj7apAxzn7s2tGJfHrrLgy9mTLnsCTWw//1sogJhyzjVOGjprIIC8CFqMjSnHH2HZ9g +/DgzE+Ge3Atf2hZQKXsvcJEPmbo0NI2VdMV+eKlmXb3KIXdCEKxmJj3ekav9FfBv7WxfEPjzFvYD +io+nEhEMy/0/ecGc/WLuo89UDNErXxc+4z6/wCs+CZv+iKZ+tJIX/COUgb1up8WMwusRRdv4QcmW +dupwX3kSa+SjB1oF7ydJzyGfikwJcGapJsErEU4z0g781mzSDjJkaP+tBXhfAx2o45CsJOAPQKdL +rosot4LKGAfmt1t06SAZf7IbiVQ= +-----END CERTIFICATE----- + +GeoTrust Primary Certification Authority - G3 +============================================= +-----BEGIN CERTIFICATE----- +MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UE +BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA4IEdlb1RydXN0 +IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFy +eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIz +NTk1OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAo +YykgMjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMT +LUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5j +K/BGvESyiaHAKAxJcCGVn2TAppMSAmUmhsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdE +c5IiaacDiGydY8hS2pgn5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3C +IShwiP/WJmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exALDmKu +dlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZChuOl1UcCAwEAAaNC +MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMR5yo6hTgMdHNxr +2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9 +cr5HqQ6XErhK8WTTOd8lNNTBzU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbE +Ap7aDHdlDkQNkv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD +AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUHSJsMC8tJP33s +t/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2Gspki4cErx5z481+oghLrGREt +-----END CERTIFICATE----- + +thawte Primary Root CA - G2 +=========================== +-----BEGIN CERTIFICATE----- +MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDELMAkGA1UEBhMC +VVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMpIDIwMDcgdGhhd3RlLCBJbmMu +IC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3Qg +Q0EgLSBHMjAeFw0wNzExMDUwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEV +MBMGA1UEChMMdGhhd3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBG +b3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAt +IEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/BebfowJPDQfGAFG6DAJS +LSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6papu+7qzcMBniKI11KOasf2twu8x+qi5 +8/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU +mtgAMADna3+FGO6Lts6KDPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUN +G4k8VIZ3KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41oxXZ3K +rr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg== +-----END CERTIFICATE----- + +thawte Primary Root CA - G3 +=========================== +-----BEGIN CERTIFICATE----- +MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCBrjELMAkGA1UE +BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2 +aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0w +ODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh +d3RlLCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMTgwNgYD +VQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIG +A1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAsr8nLPvb2FvdeHsbnndmgcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2At +P0LMqmsywCPLLEHd5N/8YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC ++BsUa0Lfb1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS99irY +7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2SzhkGcuYMXDhpxwTW +vGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUkOQIDAQABo0IwQDAPBgNVHRMBAf8E +BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJ +KoZIhvcNAQELBQADggEBABpA2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweK +A3rD6z8KLFIWoCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu +t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7cKUGRIjxpp7sC +8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fMm7v/OeZWYdMKp8RcTGB7BXcm +er/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZuMdRAGmI0Nj81Aa6sY6A= +-----END CERTIFICATE----- + +GeoTrust Primary Certification Authority - G2 +============================================= +-----BEGIN CERTIFICATE----- +MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDELMAkGA1UEBhMC +VVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA3IEdlb1RydXN0IElu +Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBD +ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1 +OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg +MjAwNyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMTLUdl +b1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjB2MBAGByqGSM49AgEG +BSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcLSo17VDs6bl8VAsBQps8lL33KSLjHUGMc +KiEIfJo22Av+0SbFWDEwKCXzXV2juLaltJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYD +VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+ +EVXVMAoGCCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGTqQ7m +ndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBuczrD6ogRLQy7rQkgu2 +npaqBA+K +-----END CERTIFICATE----- + +VeriSign Universal Root Certification Authority +=============================================== +-----BEGIN CERTIFICATE----- +MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCBvTELMAkGA1UE +BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO +ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk +IHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9u +IEF1dGhvcml0eTAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJV +UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv +cmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl +IG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0 +aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj +1mCOkdeQmIN65lgZOIzF9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGP +MiJhgsWHH26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+HLL72 +9fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN/BMReYTtXlT2NJ8I +AfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPTrJ9VAMf2CGqUuV/c4DPxhGD5WycR +tPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0G +CCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2O +a8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud +DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4sAPmLGd75JR3 +Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+seQxIcaBlVZaDrHC1LGmWazx +Y8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTx +P/jgdFcrGJ2BtMQo2pSXpXDrrB2+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+P +wGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4 +mJO37M2CYfE45k+XmCpajQ== +-----END CERTIFICATE----- + +VeriSign Class 3 Public Primary Certification Authority - G4 +============================================================ +-----BEGIN CERTIFICATE----- +MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjELMAkGA1UEBhMC +VVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3 +b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVz +ZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmlj +YXRpb24gQXV0aG9yaXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjEL +MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU +cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRo +b3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5 +IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8 +Utpkmw4tXNherJI9/gHmGUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGz +rl0Bp3vefLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUwAwEB +/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEw +HzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24u +Y29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMWkf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMD +A2gAMGUCMGYhDBgmYFo4e1ZC4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIx +AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA== +-----END CERTIFICATE----- + +NetLock Arany (Class Gold) Főtanúsítvány +============================================ +-----BEGIN CERTIFICATE----- +MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G +A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610 +dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBB +cmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgx +MjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxO +ZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlmaWNhdGlv +biBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbFkXRhbsO6 +c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu +0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw +/HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAk +H3B5r9s5VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdw +fzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1 +neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIB +BjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwW +qZw8UQCgwBEIBaeZ5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTta +YtOUZcTh5m2C+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC +bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5Kfna +NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu +dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E= +-----END CERTIFICATE----- + +Staat der Nederlanden Root CA - G2 +================================== +-----BEGIN CERTIFICATE----- +MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE +CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g +Um9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oXDTIwMDMyNTExMDMxMFowWjELMAkGA1UEBhMC +TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l +ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVZ +5291qj5LnLW4rJ4L5PnZyqtdj7U5EILXr1HgO+EASGrP2uEGQxGZqhQlEq0i6ABtQ8SpuOUfiUtn +vWFI7/3S4GCI5bkYYCjDdyutsDeqN95kWSpGV+RLufg3fNU254DBtvPUZ5uW6M7XxgpT0GtJlvOj +CwV3SPcl5XCsMBQgJeN/dVrlSPhOewMHBPqCYYdu8DvEpMfQ9XQ+pV0aCPKbJdL2rAQmPlU6Yiil +e7Iwr/g3wtG61jj99O9JMDeZJiFIhQGp5Rbn3JBV3w/oOM2ZNyFPXfUib2rFEhZgF1XyZWampzCR +OME4HYYEhLoaJXhena/MUGDWE4dS7WMfbWV9whUYdMrhfmQpjHLYFhN9C0lK8SgbIHRrxT3dsKpI +CT0ugpTNGmXZK4iambwYfp/ufWZ8Pr2UuIHOzZgweMFvZ9C+X+Bo7d7iscksWXiSqt8rYGPy5V65 +48r6f1CGPqI0GAwJaCgRHOThuVw+R7oyPxjMW4T182t0xHJ04eOLoEq9jWYv6q012iDTiIJh8BIi +trzQ1aTsr1SIJSQ8p22xcik/Plemf1WvbibG/ufMQFxRRIEKeN5KzlW/HdXZt1bv8Hb/C3m1r737 +qWmRRpdogBQ2HbN/uymYNqUg+oJgYjOk7Na6B6duxc8UpufWkjTYgfX8HV2qXB72o007uPc5AgMB +AAGjgZcwgZQwDwYDVR0TAQH/BAUwAwEB/zBSBgNVHSAESzBJMEcGBFUdIAAwPzA9BggrBgEFBQcC +ARYxaHR0cDovL3d3dy5wa2lvdmVyaGVpZC5ubC9wb2xpY2llcy9yb290LXBvbGljeS1HMjAOBgNV +HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJFoMocVHYnitfGsNig0jQt8YojrMA0GCSqGSIb3DQEBCwUA +A4ICAQCoQUpnKpKBglBu4dfYszk78wIVCVBR7y29JHuIhjv5tLySCZa59sCrI2AGeYwRTlHSeYAz ++51IvuxBQ4EffkdAHOV6CMqqi3WtFMTC6GY8ggen5ieCWxjmD27ZUD6KQhgpxrRW/FYQoAUXvQwj +f/ST7ZwaUb7dRUG/kSS0H4zpX897IZmflZ85OkYcbPnNe5yQzSipx6lVu6xiNGI1E0sUOlWDuYaN +kqbG9AclVMwWVxJKgnjIFNkXgiYtXSAfea7+1HAWFpWD2DU5/1JddRwWxRNVz0fMdWVSSt7wsKfk +CpYL+63C4iWEst3kvX5ZbJvw8NjnyvLplzh+ib7M+zkXYT9y2zqR2GUBGR2tUKRXCnxLvJxxcypF +URmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkmbEgeqmiSBeGCc1qb3Adb +CG19ndeNIdn8FCCqwkXfP+cAslHkwvgFuXkajDTznlvkN1trSt8sV4pAWja63XVECDdCcAz+3F4h +oKOKwJCcaNpQ5kUQR3i2TtJlycM33+FCY7BXN0Ute4qcvwXqZVUz9zkQxSgqIXobisQk+T8VyJoV +IPVVYpbtbZNQvOSqeK3Zywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm +66+KAQ== +-----END CERTIFICATE----- + +CA Disig +======== +-----BEGIN CERTIFICATE----- +MIIEDzCCAvegAwIBAgIBATANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMK +QnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwHhcNMDYw +MzIyMDEzOTM0WhcNMTYwMzIyMDEzOTM0WjBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMKQnJhdGlz +bGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQCS9jHBfYj9mQGp2HvycXXxMcbzdWb6UShGhJd4NLxs/LxFWYgm +GErENx+hSkS943EE9UQX4j/8SFhvXJ56CbpRNyIjZkMhsDxkovhqFQ4/61HhVKndBpnXmjxUizkD +Pw/Fzsbrg3ICqB9x8y34dQjbYkzo+s7552oftms1grrijxaSfQUMbEYDXcDtab86wYqg6I7ZuUUo +hwjstMoVvoLdtUSLLa2GDGhibYVW8qwUYzrG0ZmsNHhWS8+2rT+MitcE5eN4TPWGqvWP+j1scaMt +ymfraHtuM6kMgiioTGohQBUgDCZbg8KpFhXAJIJdKxatymP2dACw30PEEGBWZ2NFAgMBAAGjgf8w +gfwwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUjbJJaJ1yCCW5wCf1UJNWSEZx+Y8wDgYDVR0P +AQH/BAQDAgEGMDYGA1UdEQQvMC2BE2Nhb3BlcmF0b3JAZGlzaWcuc2uGFmh0dHA6Ly93d3cuZGlz +aWcuc2svY2EwZgYDVR0fBF8wXTAtoCugKYYnaHR0cDovL3d3dy5kaXNpZy5zay9jYS9jcmwvY2Ff +ZGlzaWcuY3JsMCygKqAohiZodHRwOi8vY2EuZGlzaWcuc2svY2EvY3JsL2NhX2Rpc2lnLmNybDAa +BgNVHSAEEzARMA8GDSuBHpGT5goAAAABAQEwDQYJKoZIhvcNAQEFBQADggEBAF00dGFMrzvY/59t +WDYcPQuBDRIrRhCA/ec8J9B6yKm2fnQwM6M6int0wHl5QpNt/7EpFIKrIYwvF/k/Ji/1WcbvgAa3 +mkkp7M5+cTxqEEHA9tOasnxakZzArFvITV734VP/Q3f8nktnbNfzg9Gg4H8l37iYC5oyOGwwoPP/ +CBUz91BKez6jPiCp3C9WgArtQVCwyfTssuMmRAAOb54GvCKWU3BlxFAKRmukLyeBEicTXxChds6K +ezfqwzlhA5WYOudsiCUI/HloDYd9Yvi0X/vF2Ey9WLw/Q1vUHgFNPGO+I++MzVpQuGhU+QqZMxEA +4Z7CRneC9VkGjCFMhwnN5ag= +-----END CERTIFICATE----- + +Juur-SK +======= +-----BEGIN CERTIFICATE----- +MIIE5jCCA86gAwIBAgIEO45L/DANBgkqhkiG9w0BAQUFADBdMRgwFgYJKoZIhvcNAQkBFglwa2lA +c2suZWUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKExlBUyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMRAw +DgYDVQQDEwdKdXVyLVNLMB4XDTAxMDgzMDE0MjMwMVoXDTE2MDgyNjE0MjMwMVowXTEYMBYGCSqG +SIb3DQEJARYJcGtpQHNrLmVlMQswCQYDVQQGEwJFRTEiMCAGA1UEChMZQVMgU2VydGlmaXRzZWVy +aW1pc2tlc2t1czEQMA4GA1UEAxMHSnV1ci1TSzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAIFxNj4zB9bjMI0TfncyRsvPGbJgMUaXhvSYRqTCZUXP00B841oiqBB4M8yIsdOBSvZiF3tf +TQou0M+LI+5PAk676w7KvRhj6IAcjeEcjT3g/1tf6mTll+g/mX8MCgkzABpTpyHhOEvWgxutr2TC ++Rx6jGZITWYfGAriPrsfB2WThbkasLnE+w0R9vXW+RvHLCu3GFH+4Hv2qEivbDtPL+/40UceJlfw +UR0zlv/vWT3aTdEVNMfqPxZIe5EcgEMPPbgFPtGzlc3Yyg/CQ2fbt5PgIoIuvvVoKIO5wTtpeyDa +Tpxt4brNj3pssAki14sL2xzVWiZbDcDq5WDQn/413z8CAwEAAaOCAawwggGoMA8GA1UdEwEB/wQF +MAMBAf8wggEWBgNVHSAEggENMIIBCTCCAQUGCisGAQQBzh8BAQEwgfYwgdAGCCsGAQUFBwICMIHD +HoHAAFMAZQBlACAAcwBlAHIAdABpAGYAaQBrAGEAYQB0ACAAbwBuACAAdgDkAGwAagBhAHMAdABh +AHQAdQBkACAAQQBTAC0AaQBzACAAUwBlAHIAdABpAGYAaQB0AHMAZQBlAHIAaQBtAGkAcwBrAGUA +cwBrAHUAcwAgAGEAbABhAG0ALQBTAEsAIABzAGUAcgB0AGkAZgBpAGsAYQBhAHQAaQBkAGUAIABr +AGkAbgBuAGkAdABhAG0AaQBzAGUAawBzMCEGCCsGAQUFBwIBFhVodHRwOi8vd3d3LnNrLmVlL2Nw +cy8wKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL3d3dy5zay5lZS9qdXVyL2NybC8wHQYDVR0OBBYE +FASqekej5ImvGs8KQKcYP2/v6X2+MB8GA1UdIwQYMBaAFASqekej5ImvGs8KQKcYP2/v6X2+MA4G +A1UdDwEB/wQEAwIB5jANBgkqhkiG9w0BAQUFAAOCAQEAe8EYlFOiCfP+JmeaUOTDBS8rNXiRTHyo +ERF5TElZrMj3hWVcRrs7EKACr81Ptcw2Kuxd/u+gkcm2k298gFTsxwhwDY77guwqYHhpNjbRxZyL +abVAyJRld/JXIWY7zoVAtjNjGr95HvxcHdMdkxuLDF2FvZkwMhgJkVLpfKG6/2SSmuz+Ne6ML678 +IIbsSt4beDI3poHSna9aEhbKmVv8b20OxaAehsmR0FyYgl9jDIpaq9iVpszLita/ZEuOyoqysOkh +Mp6qqIWYNIE5ITuoOlIyPfZrN4YGWhWY3PARZv40ILcD9EEQfTmEeZZyY7aWAuVrua0ZTbvGRNs2 +yyqcjg== +-----END CERTIFICATE----- + +Hongkong Post Root CA 1 +======================= +-----BEGIN CERTIFICATE----- +MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT +DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx +NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n +IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1 +ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr +auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh +qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY +V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV +HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i +h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio +l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei +IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps +T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT +c4afU9hDDl3WY4JxHYB0yvbiAmvZWg== +-----END CERTIFICATE----- + +SecureSign RootCA11 +=================== +-----BEGIN CERTIFICATE----- +MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi +SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS +b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw +KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1 +cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL +TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO +wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq +g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP +O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA +bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX +t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh +OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r +bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ +Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01 +y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061 +lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I= +-----END CERTIFICATE----- + +ACEDICOM Root +============= +-----BEGIN CERTIFICATE----- +MIIFtTCCA52gAwIBAgIIYY3HhjsBggUwDQYJKoZIhvcNAQEFBQAwRDEWMBQGA1UEAwwNQUNFRElD +T00gUm9vdDEMMAoGA1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMB4XDTA4 +MDQxODE2MjQyMloXDTI4MDQxMzE2MjQyMlowRDEWMBQGA1UEAwwNQUNFRElDT00gUm9vdDEMMAoG +A1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMIICIjANBgkqhkiG9w0BAQEF +AAOCAg8AMIICCgKCAgEA/5KV4WgGdrQsyFhIyv2AVClVYyT/kGWbEHV7w2rbYgIB8hiGtXxaOLHk +WLn709gtn70yN78sFW2+tfQh0hOR2QetAQXW8713zl9CgQr5auODAKgrLlUTY4HKRxx7XBZXehuD +YAQ6PmXDzQHe3qTWDLqO3tkE7hdWIpuPY/1NFgu3e3eM+SW10W2ZEi5PGrjm6gSSrj0RuVFCPYew +MYWveVqc/udOXpJPQ/yrOq2lEiZmueIM15jO1FillUAKt0SdE3QrwqXrIhWYENiLxQSfHY9g5QYb +m8+5eaA9oiM/Qj9r+hwDezCNzmzAv+YbX79nuIQZ1RXve8uQNjFiybwCq0Zfm/4aaJQ0PZCOrfbk +HQl/Sog4P75n/TSW9R28MHTLOO7VbKvU/PQAtwBbhTIWdjPp2KOZnQUAqhbm84F9b32qhm2tFXTT +xKJxqvQUfecyuB+81fFOvW8XAjnXDpVCOscAPukmYxHqC9FK/xidstd7LzrZlvvoHpKuE1XI2Sf2 +3EgbsCTBheN3nZqk8wwRHQ3ItBTutYJXCb8gWH8vIiPYcMt5bMlL8qkqyPyHK9caUPgn6C9D4zq9 +2Fdx/c6mUlv53U3t5fZvie27k5x2IXXwkkwp9y+cAS7+UEaeZAwUswdbxcJzbPEHXEUkFDWug/Fq +TYl6+rPYLWbwNof1K1MCAwEAAaOBqjCBpzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKaz +4SsrSbbXc6GqlPUB53NlTKxQMA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUprPhKytJttdzoaqU +9QHnc2VMrFAwRAYDVR0gBD0wOzA5BgRVHSAAMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly9hY2VkaWNv +bS5lZGljb21ncm91cC5jb20vZG9jMA0GCSqGSIb3DQEBBQUAA4ICAQDOLAtSUWImfQwng4/F9tqg +aHtPkl7qpHMyEVNEskTLnewPeUKzEKbHDZ3Ltvo/Onzqv4hTGzz3gvoFNTPhNahXwOf9jU8/kzJP +eGYDdwdY6ZXIfj7QeQCM8htRM5u8lOk6e25SLTKeI6RF+7YuE7CLGLHdztUdp0J/Vb77W7tH1Pwk +zQSulgUV1qzOMPPKC8W64iLgpq0i5ALudBF/TP94HTXa5gI06xgSYXcGCRZj6hitoocf8seACQl1 +ThCojz2GuHURwCRiipZ7SkXp7FnFvmuD5uHorLUwHv4FB4D54SMNUI8FmP8sX+g7tq3PgbUhh8oI +KiMnMCArz+2UW6yyetLHKKGKC5tNSixthT8Jcjxn4tncB7rrZXtaAWPWkFtPF2Y9fwsZo5NjEFIq +nxQWWOLcpfShFosOkYuByptZ+thrkQdlVV9SH686+5DdaaVbnG0OLLb6zqylfDJKZ0DcMDQj3dcE +I2bw/FWAp/tmGYI1Z2JwOV5vx+qQQEQIHriy1tvuWacNGHk0vFQYXlPKNFHtRQrmjseCNj6nOGOp +MCwXEGCSn1WHElkQwg9naRHMTh5+Spqtr0CodaxWkHS4oJyleW/c6RrIaQXpuvoDs3zk4E7Czp3o +tkYNbn5XOmeUwssfnHdKZ05phkOTOPu220+DkdRgfks+KzgHVZhepA== +-----END CERTIFICATE----- + +Microsec e-Szigno Root CA 2009 +============================== +-----BEGIN CERTIFICATE----- +MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJIVTER +MA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jv +c2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o +dTAeFw0wOTA2MTYxMTMwMThaFw0yOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UE +BwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUt +U3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvPkd6mJviZpWNwrZuuyjNA +fW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tccbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG +0IMZfcChEhyVbUr02MelTTMuhTlAdX4UfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKA +pxn1ntxVUwOXewdI/5n7N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm +1HxdrtbCxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1+rUC +AwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTLD8bf +QkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAbBgNVHREE +FDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqGSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0o +lZMEyL/azXm4Q5DwpL7v8u8hmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfX +I/OMn74dseGkddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775 +tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c2Pm2G2JwCz02 +yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi +LXpUq3DDfSJlgnCW +-----END CERTIFICATE----- + +GlobalSign Root CA - R3 +======================= +-----BEGIN CERTIFICATE----- +MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xv +YmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh +bFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT +aWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln +bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWt +iHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsTgHeMCOFJ +0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmmKPZpO/bLyCiR5Z2KYVc3 +rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zdQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjl +OCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2 +xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE +FI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7 +lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8 +EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1E +bddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18 +YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r +kpeDMdmztcpHWD9f +-----END CERTIFICATE----- + +Autoridad de Certificacion Firmaprofesional CIF A62634068 +========================================================= +-----BEGIN CERTIFICATE----- +MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMxQjBA +BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2 +MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIw +QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB +NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD +Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P +B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY +7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH +ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI +plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX +MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX +LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK +bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU +vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1Ud +EwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNH +DhpkLzCBpgYDVR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp +cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAA +bABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx +ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx +51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qk +R71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaP +T481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS3a/DTg4f +Jl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5kSeTy36LssUzAKh3ntLFl +osS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2gHN99ZwExEWN57kci57q13XR +crHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoR +saS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTD +KCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi +6Et8Vcad+qMUu2WFbm5PEn4KPJ2V +-----END CERTIFICATE----- + +Izenpe.com +========== +-----BEGIN CERTIFICATE----- +MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4MQswCQYDVQQG +EwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wHhcNMDcxMjEz +MTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMu +QS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ +03rKDx6sp4boFmVqscIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAK +ClaOxdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6HLmYRY2xU ++zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFXuaOKmMPsOzTFlUFpfnXC +PCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQDyCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxT +OTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbK +F7jJeodWLBoBHmy+E60QrLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK +0GqfvEyNBjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8Lhij+ +0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIBQFqNeb+Lz0vPqhbB +leStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+HMh3/1uaD7euBUbl8agW7EekFwID +AQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2luZm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+ +SVpFTlBFIFMuQS4gLSBDSUYgQTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBG +NjIgUzgxQzBBBgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx +MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O +BBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUAA4ICAQB4pgwWSp9MiDrAyw6l +Fn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWblaQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbga +kEyrkgPH7UIBzg/YsfqikuFgba56awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8q +hT/AQKM6WfxZSzwoJNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Cs +g1lwLDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCTVyvehQP5 +aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGkLhObNA5me0mrZJfQRsN5 +nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJbUjWumDqtujWTI6cfSN01RpiyEGjkpTHC +ClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZo +Q0iy2+tzJOeRf1SktoA+naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1Z +WrOZyGlsQyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw== +-----END CERTIFICATE----- + +Chambers of Commerce Root - 2008 +================================ +-----BEGIN CERTIFICATE----- +MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYDVQQGEwJFVTFD +MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv +bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu +QS4xKTAnBgNVBAMTIENoYW1iZXJzIG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEy +Mjk1MFoXDTM4MDczMTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNl +ZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQF +EwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJl +cnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC +AQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW928sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKA +XuFixrYp4YFs8r/lfTJqVKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorj +h40G072QDuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR5gN/ +ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfLZEFHcpOrUMPrCXZk +NNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05aSd+pZgvMPMZ4fKecHePOjlO+Bd5g +D2vlGts/4+EhySnB8esHnFIbAURRPHsl18TlUlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331 +lubKgdaX8ZSD6e2wsWsSaR6s+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ +0wlf2eOKNcx5Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj +ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAxhduub+84Mxh2 +EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNVHQ4EFgQU+SSsD7K1+HnA+mCI +G8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJ +BgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNh +bWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENh +bWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDiC +CQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUH +AgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAJASryI1 +wqM58C7e6bXpeHxIvj99RZJe6dqxGfwWPJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH +3qLPaYRgM+gQDROpI9CF5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbU +RWpGqOt1glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaHFoI6 +M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2pSB7+R5KBWIBpih1 +YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MDxvbxrN8y8NmBGuScvfaAFPDRLLmF +9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QGtjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcK +zBIKinmwPQN/aUv0NCB9szTqjktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvG +nrDQWzilm1DefhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg +OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZd0jQ +-----END CERTIFICATE----- + +Global Chambersign Root - 2008 +============================== +-----BEGIN CERTIFICATE----- +MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYDVQQGEwJFVTFD +MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv +bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu +QS4xJzAlBgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMx +NDBaFw0zODA3MzExMjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUg +Y3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJ +QTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD +aGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDf +VtPkOpt2RbQT2//BthmLN0EYlVJH6xedKYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXf +XjaOcNFccUMd2drvXNL7G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0 +ZJJ0YPP2zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4ddPB +/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyGHoiMvvKRhI9lNNgA +TH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2Id3UwD2ln58fQ1DJu7xsepeY7s2M +H/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3VyJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfe +Ox2YItaswTXbo6Al/3K1dh3ebeksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSF +HTynyQbehP9r6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh +wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsogzCtLkykPAgMB +AAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQWBBS5CcqcHtvTbDprru1U8VuT +BjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDprru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UE +BhMCRVUxQzBBBgNVBAcTOk1hZHJpZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJm +aXJtYS5jb20vYWRkcmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJm +aXJtYSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiCCQDJzdPp +1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0 +dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAICIf3DekijZBZRG +/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZUohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6 +ReAJ3spED8IXDneRRXozX1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/s +dZ7LoR/xfxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVza2Mg +9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yydYhz2rXzdpjEetrHH +foUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMdSqlapskD7+3056huirRXhOukP9Du +qqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9OAP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETr +P3iZ8ntxPjzxmKfFGBI/5rsoM0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVq +c5iJWzouE4gev8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z +09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B +-----END CERTIFICATE----- + +Go Daddy Root Certificate Authority - G2 +======================================== +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT +B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMu +MTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5 +MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6 +b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8G +A1UEAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKDE6bFIEMBO4Tx5oVJnyfq +9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD ++qK+ihVqf94Lw7YZFAXK6sOoBJQ7RnwyDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutd +fMh8+7ArU6SSYmlRJQVhGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMl +NAJWJwGRtDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEAAaNC +MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9 +BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmXWWcDYfF+OwYxdS2hII5PZYe096ac +vNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r +5N9ss4UXnT3ZJE95kTXWXwTrgIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYV +N8Gb5DKj7Tjo2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO +LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI4uJEvlz36hz1 +-----END CERTIFICATE----- + +Starfield Root Certificate Authority - G2 +========================================= +-----BEGIN CERTIFICATE----- +MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT +B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s +b2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0 +eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAw +DgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQg +VGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBB +dXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3twQP89o/8ArFv +W59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMgnLRJdzIpVv257IzdIvpy3Cdhl+72WoTs +bhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNk +N3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7Nf +ZTD4p7dNdloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbU +JtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfol +TwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx +4mcujJUDJi5DnUox9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUw +F5okxBDgBPfg8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K +pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZ +c2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0 +-----END CERTIFICATE----- + +Starfield Services Root Certificate Authority - G2 +================================================== +-----BEGIN CERTIFICATE----- +MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT +B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s +b2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRl +IEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNV +BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxT +dGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2VydmljZXMg +Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20pOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2 +h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm28xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4Pa +hHQUw2eeBGg6345AWh1KTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLP +LJGmpufehRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk6mFB +rMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMA0GCSqG +SIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMIbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPP +E95Dz+I0swSdHynVv/heyNXBve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTy +xQGjhdByPq1zqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd +iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn0q23KXB56jza +YyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCNsSi6 +-----END CERTIFICATE----- + +AffirmTrust Commercial +====================== +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMxFDAS +BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMB4XDTEw +MDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly +bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6Eqdb +DuKPHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yrba0F8PrV +C8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPALMeIrJmqbTFeurCA+ukV6 +BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1yHp52UKqK39c/s4mT6NmgTWvRLpUHhww +MmWd5jyTXlBOeuM61G7MGvv50jeuJCqrVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNV +HQ4EFgQUnZPGU4teyq8/nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYGXUPG +hi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNjvbz4YYCanrHOQnDi +qX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivtZ8SOyUOyXGsViQK8YvxO8rUzqrJv +0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9gN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0kh +sUlHRUe072o0EclNmsxZt9YCnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8= +-----END CERTIFICATE----- + +AffirmTrust Networking +====================== +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMxFDAS +BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMB4XDTEw +MDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly +bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SE +Hi3yYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbuakCNrmreI +dIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRLQESxG9fhwoXA3hA/Pe24 +/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gb +h+0t+nvujArjqWaJGctB+d1ENmHP4ndGyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNV +HQ4EFgQUBx/S55zawm6iQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfOtDIu +UFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzuQY0x2+c06lkh1QF6 +12S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZLgo/bNjR9eUJtGxUAArgFU2HdW23 +WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4uolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9 +/ZFvgrG+CJPbFEfxojfHRZ48x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s= +-----END CERTIFICATE----- + +AffirmTrust Premium +=================== +-----BEGIN CERTIFICATE----- +MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UEBhMCVVMxFDAS +BgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMB4XDTEwMDEy +OTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRy +dXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A +MIICCgKCAgEAxBLfqV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtn +BKAQJG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ+jjeRFcV +5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrSs8PhaJyJ+HoAVt70VZVs ++7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmd +GPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d770O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5R +p9EixAqnOEhss/n/fauGV+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NI +S+LI+H+SqHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S5u04 +6uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4IaC1nEWTJ3s7xgaVY5 +/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TXOwF0lkLgAOIua+rF7nKsu7/+6qqo ++Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYEFJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB +/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByv +MiPIs0laUZx2KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg +Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B8OWycvpEgjNC +6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQMKSOyARiqcTtNd56l+0OOF6S +L5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK ++4w1IX2COPKpVJEZNZOUbWo6xbLQu4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmV +BtWVyuEklut89pMFu+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFg +IxpHYoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8GKa1qF60 +g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaORtGdFNrHF+QFlozEJLUb +zxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6eKeC2uAloGRwYQw== +-----END CERTIFICATE----- + +AffirmTrust Premium ECC +======================= +-----BEGIN CERTIFICATE----- +MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDASBgNV +BAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQcmVtaXVtIEVDQzAeFw0xMDAx +MjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1U +cnVzdDEgMB4GA1UEAwwXQWZmaXJtVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAAQNMF4bFZ0D0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQ +N8O9ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0GA1UdDgQW +BBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAK +BggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/VsaobgxCd05DhT1wV/GzTjxi+zygk8N53X +57hG8f2h4nECMEJZh0PUUd+60wkyWs6Iflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKM +eQ== +-----END CERTIFICATE----- + +Certum Trusted Network CA +========================= +-----BEGIN CERTIFICATE----- +MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYDVQQK +ExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIy +MTIwNzM3WhcNMjkxMjMxMTIwNzM3WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBU +ZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rHUV+rpDKmYYe2bg+G0jAC +l/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LMTXPb865Px1bVWqeWifrzq2jUI4ZZJ88J +J7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVUBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4 +fOQtf/WsX+sWn7Et0brMkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0 +cvW0QM8xAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNVHRMB +Af8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYw +DQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15ysHhE49wcrwn9I0j6vSrEuVUEtRCj +jSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfLI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1 +mS1FhIrlQgnXdAIv94nYmem8J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5aj +Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI +03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw= +-----END CERTIFICATE----- + +Certinomis - Autorité Racine +============================= +-----BEGIN CERTIFICATE----- +MIIFnDCCA4SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJGUjETMBEGA1UEChMK +Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxJjAkBgNVBAMMHUNlcnRpbm9taXMg +LSBBdXRvcml0w6kgUmFjaW5lMB4XDTA4MDkxNzA4Mjg1OVoXDTI4MDkxNzA4Mjg1OVowYzELMAkG +A1UEBhMCRlIxEzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMSYw +JAYDVQQDDB1DZXJ0aW5vbWlzIC0gQXV0b3JpdMOpIFJhY2luZTCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBAJ2Fn4bT46/HsmtuM+Cet0I0VZ35gb5j2CN2DpdUzZlMGvE5x4jYF1AMnmHa +wE5V3udauHpOd4cN5bjr+p5eex7Ezyh0x5P1FMYiKAT5kcOrJ3NqDi5N8y4oH3DfVS9O7cdxbwly +Lu3VMpfQ8Vh30WC8Tl7bmoT2R2FFK/ZQpn9qcSdIhDWerP5pqZ56XjUl+rSnSTV3lqc2W+HN3yNw +2F1MpQiD8aYkOBOo7C+ooWfHpi2GR+6K/OybDnT0K0kCe5B1jPyZOQE51kqJ5Z52qz6WKDgmi92N +jMD2AR5vpTESOH2VwnHu7XSu5DaiQ3XV8QCb4uTXzEIDS3h65X27uK4uIJPT5GHfceF2Z5c/tt9q +c1pkIuVC28+BA5PY9OMQ4HL2AHCs8MF6DwV/zzRpRbWT5BnbUhYjBYkOjUjkJW+zeL9i9Qf6lSTC +lrLooyPCXQP8w9PlfMl1I9f09bze5N/NgL+RiH2nE7Q5uiy6vdFrzPOlKO1Enn1So2+WLhl+HPNb +xxaOu2B9d2ZHVIIAEWBsMsGoOBvrbpgT1u449fCfDu/+MYHB0iSVL1N6aaLwD4ZFjliCK0wi1F6g +530mJ0jfJUaNSih8hp75mxpZuWW/Bd22Ql095gBIgl4g9xGC3srYn+Y3RyYe63j3YcNBZFgCQfna +4NH4+ej9Uji29YnfAgMBAAGjWzBZMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBQNjLZh2kS40RR9w759XkjwzspqsDAXBgNVHSAEEDAOMAwGCiqBegFWAgIAAQEwDQYJ +KoZIhvcNAQEFBQADggIBACQ+YAZ+He86PtvqrxyaLAEL9MW12Ukx9F1BjYkMTv9sov3/4gbIOZ/x +WqndIlgVqIrTseYyCYIDbNc/CMf4uboAbbnW/FIyXaR/pDGUu7ZMOH8oMDX/nyNTt7buFHAAQCva +R6s0fl6nVjBhK4tDrP22iCj1a7Y+YEq6QpA0Z43q619FVDsXrIvkxmUP7tCMXWY5zjKn2BCXwH40 +nJ+U8/aGH88bc62UeYdocMMzpXDn2NU4lG9jeeu/Cg4I58UvD0KgKxRA/yHgBcUn4YQRE7rWhh1B +CxMjidPJC+iKunqjo3M3NYB9Ergzd0A4wPpeMNLytqOx1qKVl4GbUu1pTP+A5FPbVFsDbVRfsbjv +JL1vnxHDx2TCDyhihWZeGnuyt++uNckZM6i4J9szVb9o4XVIRFb7zdNIu0eJOqxp9YDG5ERQL1TE +qkPFMTFYvZbF6nVsmnWxTfj3l/+WFvKXTej28xH5On2KOG4Ey+HTRRWqpdEdnV1j6CTmNhTih60b +WfVEm/vXd3wfAXBioSAaosUaKPQhA+4u2cGA6rnZgtZbdsLLO7XSAPCjDuGtbkD326C00EauFddE +wk01+dIL8hf2rGbVJLJP0RyZwG71fet0BLj5TXcJ17TPBzAJ8bgAVtkXFhYKK4bfjwEZGuW7gmP/ +vgt2Fl43N+bYdJeimUV5 +-----END CERTIFICATE----- + +Root CA Generalitat Valenciana +============================== +-----BEGIN CERTIFICATE----- +MIIGizCCBXOgAwIBAgIEO0XlaDANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJFUzEfMB0GA1UE +ChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290 +IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwHhcNMDEwNzA2MTYyMjQ3WhcNMjEwNzAxMTUyMjQ3 +WjBoMQswCQYDVQQGEwJFUzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UE +CxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGKqtXETcvIorKA3Qdyu0togu8M1JAJke+WmmmO3I2 +F0zo37i7L3bhQEZ0ZQKQUgi0/6iMweDHiVYQOTPvaLRfX9ptI6GJXiKjSgbwJ/BXufjpTjJ3Cj9B +ZPPrZe52/lSqfR0grvPXdMIKX/UIKFIIzFVd0g/bmoGlu6GzwZTNVOAydTGRGmKy3nXiz0+J2ZGQ +D0EbtFpKd71ng+CT516nDOeB0/RSrFOyA8dEJvt55cs0YFAQexvba9dHq198aMpunUEDEO5rmXte +JajCq+TA81yc477OMUxkHl6AovWDfgzWyoxVjr7gvkkHD6MkQXpYHYTqWBLI4bft75PelAgxAgMB +AAGjggM7MIIDNzAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnBraS5n +dmEuZXMwEgYDVR0TAQH/BAgwBgEB/wIBAjCCAjQGA1UdIASCAiswggInMIICIwYKKwYBBAG/VQIB +ADCCAhMwggHoBggrBgEFBQcCAjCCAdoeggHWAEEAdQB0AG8AcgBpAGQAYQBkACAAZABlACAAQwBl +AHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAFIAYQDtAHoAIABkAGUAIABsAGEAIABHAGUAbgBlAHIA +YQBsAGkAdABhAHQAIABWAGEAbABlAG4AYwBpAGEAbgBhAC4ADQAKAEwAYQAgAEQAZQBjAGwAYQBy +AGEAYwBpAPMAbgAgAGQAZQAgAFAAcgDhAGMAdABpAGMAYQBzACAAZABlACAAQwBlAHIAdABpAGYA +aQBjAGEAYwBpAPMAbgAgAHEAdQBlACAAcgBpAGcAZQAgAGUAbAAgAGYAdQBuAGMAaQBvAG4AYQBt +AGkAZQBuAHQAbwAgAGQAZQAgAGwAYQAgAHAAcgBlAHMAZQBuAHQAZQAgAEEAdQB0AG8AcgBpAGQA +YQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAHMAZQAgAGUAbgBjAHUAZQBu +AHQAcgBhACAAZQBuACAAbABhACAAZABpAHIAZQBjAGMAaQDzAG4AIAB3AGUAYgAgAGgAdAB0AHAA +OgAvAC8AdwB3AHcALgBwAGsAaQAuAGcAdgBhAC4AZQBzAC8AYwBwAHMwJQYIKwYBBQUHAgEWGWh0 +dHA6Ly93d3cucGtpLmd2YS5lcy9jcHMwHQYDVR0OBBYEFHs100DSHHgZZu90ECjcPk+yeAT8MIGV +BgNVHSMEgY0wgYqAFHs100DSHHgZZu90ECjcPk+yeAT8oWykajBoMQswCQYDVQQGEwJFUzEfMB0G +A1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5S +b290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmGCBDtF5WgwDQYJKoZIhvcNAQEFBQADggEBACRh +TvW1yEICKrNcda3FbcrnlD+laJWIwVTAEGmiEi8YPyVQqHxK6sYJ2fR1xkDar1CdPaUWu20xxsdz +Ckj+IHLtb8zog2EWRpABlUt9jppSCS/2bxzkoXHPjCpaF3ODR00PNvsETUlR4hTJZGH71BTg9J63 +NI8KJr2XXPR5OkowGcytT6CYirQxlyric21+eLj4iIlPsSKRZEv1UN4D2+XFducTZnV+ZfsBn5OH +iJ35Rld8TWCvmHMTI6QgkYH60GFmuH3Rr9ZvHmw96RH9qfmCIoaZM3Fa6hlXPZHNqcCjbgcTpsnt ++GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM= +-----END CERTIFICATE----- + +A-Trust-nQual-03 +================ +-----BEGIN CERTIFICATE----- +MIIDzzCCAregAwIBAgIDAWweMA0GCSqGSIb3DQEBBQUAMIGNMQswCQYDVQQGEwJBVDFIMEYGA1UE +Cgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBpbSBlbGVrdHIuIERhdGVudmVy +a2VociBHbWJIMRkwFwYDVQQLDBBBLVRydXN0LW5RdWFsLTAzMRkwFwYDVQQDDBBBLVRydXN0LW5R +dWFsLTAzMB4XDTA1MDgxNzIyMDAwMFoXDTE1MDgxNzIyMDAwMFowgY0xCzAJBgNVBAYTAkFUMUgw +RgYDVQQKDD9BLVRydXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGltIGVsZWt0ci4gRGF0 +ZW52ZXJrZWhyIEdtYkgxGTAXBgNVBAsMEEEtVHJ1c3QtblF1YWwtMDMxGTAXBgNVBAMMEEEtVHJ1 +c3QtblF1YWwtMDMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtPWFuA/OQO8BBC4SA +zewqo51ru27CQoT3URThoKgtUaNR8t4j8DRE/5TrzAUjlUC5B3ilJfYKvUWG6Nm9wASOhURh73+n +yfrBJcyFLGM/BWBzSQXgYHiVEEvc+RFZznF/QJuKqiTfC0Li21a8StKlDJu3Qz7dg9MmEALP6iPE +SU7l0+m0iKsMrmKS1GWH2WrX9IWf5DMiJaXlyDO6w8dB3F/GaswADm0yqLaHNgBid5seHzTLkDx4 +iHQF63n1k3Flyp3HaxgtPVxO59X4PzF9j4fsCiIvI+n+u33J4PTs63zEsMMtYrWacdaxaujs2e3V +cuy+VwHOBVWf3tFgiBCzAgMBAAGjNjA0MA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0OBAoECERqlWdV +eRFPMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAVdRU0VlIXLOThaq/Yy/kgM40 +ozRiPvbY7meIMQQDbwvUB/tOdQ/TLtPAF8fGKOwGDREkDg6lXb+MshOWcdzUzg4NCmgybLlBMRmr +sQd7TZjTXLDR8KdCoLXEjq/+8T/0709GAHbrAvv5ndJAlseIOrifEXnzgGWovR/TeIGgUUw3tKZd +JXDRZslo+S4RFGjxVJgIrCaSD96JntT6s3kr0qN51OyLrIdTaEJMUVF0HhsnLuP1Hyl0Te2v9+GS +mYHovjrHF1D2t8b8m7CKa9aIA5GPBnc6hQLdmNVDeD/GMBWsm2vLV7eJUYs66MmEDNuxUCAKGkq6 +ahq97BvIxYSazQ== +-----END CERTIFICATE----- + +TWCA Root Certification Authority +================================= +-----BEGIN CERTIFICATE----- +MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJ +VEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMzWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQG +EwJUVzESMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NB +IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFEAcK0HMMx +QhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HHK3XLfJ+utdGdIzdjp9xC +oi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeXRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP +4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/zrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1r +y+UPizgN7gr8/g+YnzAx3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB +BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkqhkiG +9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeCMErJk/9q56YAf4lC +mtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdlsXebQ79NqZp4VKIV66IIArB6nCWlW +QtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62Dlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVY +T0bf+215WfKEIlKuD8z7fDvnaspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocny +Yh0igzyXxfkZYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw== +-----END CERTIFICATE----- + +Security Communication RootCA2 +============================== +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc +U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNh +dGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMC +SlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3Vy +aXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +ANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGrzbl+dp++ ++T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVMVAX3NuRFg3sUZdbcDE3R +3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQhNBqyjoGADdH5H5XTz+L62e4iKrFvlNV +spHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1K +EOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8 +QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB +CwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEj +u/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk +3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6q +tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29 +mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03 +-----END CERTIFICATE----- + +EC-ACC +====== +-----BEGIN CERTIFICATE----- +MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB8zELMAkGA1UE +BhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2VydGlmaWNhY2lvIChOSUYgUS0w +ODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYD +VQQLEyxWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UE +CxMsSmVyYXJxdWlhIEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMT +BkVDLUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQGEwJFUzE7 +MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8gKE5JRiBRLTA4MDExNzYt +SSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBDZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZl +Z2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQubmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJh +cnF1aWEgRW50aXRhdHMgZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUND +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R85iK +w5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm4CgPukLjbo73FCeT +ae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaVHMf5NLWUhdWZXqBIoH7nF2W4onW4 +HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNdQlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0a +E9jD2z3Il3rucO2n5nzbcc8tlGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw +0JDnJwIDAQABo4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E +BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4opvpXY0wfwYD +VR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBodHRwczovL3d3dy5jYXRjZXJ0 +Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5l +dC92ZXJhcnJlbCAwDQYJKoZIhvcNAQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJ +lF7W2u++AVtd0x7Y/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNa +Al6kSBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhyRp/7SNVe +l+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOSAgu+TGbrIP65y7WZf+a2 +E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xlnJ2lYJU6Un/10asIbvPuW/mIPX64b24D +5EI= +-----END CERTIFICATE----- + +Hellenic Academic and Research Institutions RootCA 2011 +======================================================= +-----BEGIN CERTIFICATE----- +MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT +O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y +aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z +IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT +AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z +IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo +IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI +1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa +71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u +8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH +3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/ +MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8 +MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu +b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt +XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8 +TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD +/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N +7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4 +-----END CERTIFICATE----- + +Actalis Authentication Root CA +============================== +-----BEGIN CERTIFICATE----- +MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UEBhMCSVQxDjAM +BgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UE +AwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDky +MjExMjIwMlowazELMAkGA1UEBhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlz +IFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290 +IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNvUTufClrJ +wkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX4ay8IMKx4INRimlNAJZa +by/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9KK3giq0itFZljoZUj5NDKd45RnijMCO6 +zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1f +YVEiVRvjRuPjPdA1YprbrxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2 +oxgkg4YQ51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2Fbe8l +EfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxeKF+w6D9Fz8+vm2/7 +hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4Fv6MGn8i1zeQf1xcGDXqVdFUNaBr8 +EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbnfpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5 +jF66CyCU3nuDuP/jVo23Eek7jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLY +iDrIn3hm7YnzezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt +ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQALe3KHwGCmSUyI +WOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70jsNjLiNmsGe+b7bAEzlgqqI0 +JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDzWochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKx +K3JCaKygvU5a2hi/a5iB0P2avl4VSM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+ +Xlff1ANATIGk0k9jpwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC +4yyXX04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+OkfcvHlXHo +2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7RK4X9p2jIugErsWx0Hbhz +lefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btUZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXem +OR/qnuOf0GZvBeyqdn6/axag67XH/JJULysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9 +vwGYT7JZVEc+NHt4bVaTLnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg== +-----END CERTIFICATE----- + +Trustis FPS Root CA +=================== +-----BEGIN CERTIFICATE----- +MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQG +EwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQLExNUcnVzdGlzIEZQUyBSb290 +IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTExMzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNV +BAoTD1RydXN0aXMgTGltaXRlZDEcMBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQ +RUN+AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihHiTHcDnlk +H5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjjvSkCqPoc4Vu5g6hBSLwa +cY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zt +o3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlBOrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEA +AaNTMFEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAd +BgNVHQ4EFgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01GX2c +GE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmWzaD+vkAMXBJV+JOC +yinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP41BIy+Q7DsdwyhEQsb8tGD+pmQQ9P +8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZEf1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHV +l/9D7S3B2l0pKoU/rGXuhg8FjZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYl +iB6XzCGcKQENZetX2fNXlrtIzYE= +-----END CERTIFICATE----- + +StartCom Certification Authority +================================ +-----BEGIN CERTIFICATE----- +MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN +U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu +ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0 +NjM3WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk +LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg +U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw +ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y +o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/ +Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d +eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt +2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z +6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ +osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/ +untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc +UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT +37uMdBNSSwIDAQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD +VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFulF2mHMMo0aEPQ +Qa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCCATgwLgYIKwYBBQUHAgEWImh0 +dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cu +c3RhcnRzc2wuY29tL2ludGVybWVkaWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENv +bW1lcmNpYWwgKFN0YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0 +aGUgc2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0aWZpY2F0 +aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuc3RhcnRzc2wuY29t +L3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBG +cmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5 +fPGFf59Jb2vKXfuM/gTFwWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWm +N3PH/UvSTa0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst0OcN +Org+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNcpRJvkrKTlMeIFw6T +tn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKlCcWw0bdT82AUuoVpaiF8H3VhFyAX +e2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVFP0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA +2MFrLH9ZXF2RsXAiV+uKa0hK1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBs +HvUwyKMQ5bLmKhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE +JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ8dCAWZvLMdib +D4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnmfyWl8kgAwKQB2j8= +-----END CERTIFICATE----- + +StartCom Certification Authority G2 +=================================== +-----BEGIN CERTIFICATE----- +MIIFYzCCA0ugAwIBAgIBOzANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJJTDEWMBQGA1UEChMN +U3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg +RzIwHhcNMTAwMTAxMDEwMDAxWhcNMzkxMjMxMjM1OTAxWjBTMQswCQYDVQQGEwJJTDEWMBQGA1UE +ChMNU3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3Jp +dHkgRzIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2iTZbB7cgNr2Cu+EWIAOVeq8O +o1XJJZlKxdBWQYeQTSFgpBSHO839sj60ZwNq7eEPS8CRhXBF4EKe3ikj1AENoBB5uNsDvfOpL9HG +4A/LnooUCri99lZi8cVytjIl2bLzvWXFDSxu1ZJvGIsAQRSCb0AgJnooD/Uefyf3lLE3PbfHkffi +Aez9lInhzG7TNtYKGXmu1zSCZf98Qru23QumNK9LYP5/Q0kGi4xDuFby2X8hQxfqp0iVAXV16iul +Q5XqFYSdCI0mblWbq9zSOdIxHWDirMxWRST1HFSr7obdljKF+ExP6JV2tgXdNiNnvP8V4so75qbs +O+wmETRIjfaAKxojAuuKHDp2KntWFhxyKrOq42ClAJ8Em+JvHhRYW6Vsi1g8w7pOOlz34ZYrPu8H +vKTlXcxNnw3h3Kq74W4a7I/htkxNeXJdFzULHdfBR9qWJODQcqhaX2YtENwvKhOuJv4KHBnM0D4L +nMgJLvlblnpHnOl68wVQdJVznjAJ85eCXuaPOQgeWeU1FEIT/wCc976qUM/iUUjXuG+v+E5+M5iS +FGI6dWPPe/regjupuznixL0sAA7IF6wT700ljtizkC+p2il9Ha90OrInwMEePnWjFqmveiJdnxMa +z6eg6+OGCtP95paV1yPIN93EfKo2rJgaErHgTuixO/XWb/Ew1wIDAQABo0IwQDAPBgNVHRMBAf8E +BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUS8W0QGutHLOlHGVuRjaJhwUMDrYwDQYJ +KoZIhvcNAQELBQADggIBAHNXPyzVlTJ+N9uWkusZXn5T50HsEbZH77Xe7XRcxfGOSeD8bpkTzZ+K +2s06Ctg6Wgk/XzTQLwPSZh0avZyQN8gMjgdalEVGKua+etqhqaRpEpKwfTbURIfXUfEpY9Z1zRbk +J4kd+MIySP3bmdCPX1R0zKxnNBFi2QwKN4fRoxdIjtIXHfbX/dtl6/2o1PXWT6RbdejF0mCy2wl+ +JYt7ulKSnj7oxXehPOBKc2thz4bcQ///If4jXSRK9dNtD2IEBVeC2m6kMyV5Sy5UGYvMLD0w6dEG +/+gyRr61M3Z3qAFdlsHB1b6uJcDJHgoJIIihDsnzb02CVAAgp9KP5DlUFy6NHrgbuxu9mk47EDTc +nIhT76IxW1hPkWLIwpqazRVdOKnWvvgTtZ8SafJQYqz7Fzf07rh1Z2AQ+4NQ+US1dZxAF7L+/Xld +blhYXzD8AK6vM8EOTmy6p6ahfzLbOOCxchcKK5HsamMm7YnUeMx0HgX4a/6ManY5Ka5lIxKVCCIc +l85bBu4M4ru8H0ST9tg4RQUh7eStqxK2A6RCLi3ECToDZ2mEmuFZkIoohdVddLHRDiBYmxOlsGOm +7XtH/UVVMKTumtTm4ofvmMkyghEpIrwACjFeLQ/Ajulrso8uBtjRkcfGEvRM/TAXw8HaOFvjqerm +obp573PYtlNXLfbQ4ddI +-----END CERTIFICATE----- + +Buypass Class 2 Root CA +======================= +-----BEGIN CERTIFICATE----- +MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU +QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMiBSb290IENBMB4X +DTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1owTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1 +eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIw +DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1 +g1Lr6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPVL4O2fuPn +9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC911K2GScuVr1QGbNgGE41b +/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHxMlAQTn/0hpPshNOOvEu/XAFOBz3cFIqU +CqTqc/sLUegTBxj6DvEr0VQVfTzh97QZQmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeff +awrbD02TTqigzXsu8lkBarcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgI +zRFo1clrUs3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLiFRhn +Bkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRSP/TizPJhk9H9Z2vX +Uq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN9SG9dKpN6nIDSdvHXx1iY8f93ZHs +M+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxPAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFMmAd+BikoL1RpzzuvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF +AAOCAgEAU18h9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s +A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3tOluwlN5E40EI +osHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo+fsicdl9sz1Gv7SEr5AcD48S +aq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYd +DnkM/crqJIByw5c/8nerQyIKx+u2DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWD +LfJ6v9r9jv6ly0UsH8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0 +oyLQI+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK75t98biGC +wWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h3PFaTWwyI0PurKju7koS +CTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPzY11aWOIv4x3kqdbQCtCev9eBCfHJxyYN +rJgWVqA= +-----END CERTIFICATE----- + +Buypass Class 3 Root CA +======================= +-----BEGIN CERTIFICATE----- +MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU +QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMyBSb290IENBMB4X +DTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFowTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1 +eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIw +DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRH +sJ8YZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3EN3coTRiR +5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9tznDDgFHmV0ST9tD+leh +7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX0DJq1l1sDPGzbjniazEuOQAnFN44wOwZ +ZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH +2xc519woe2v1n/MuwU8XKhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV +/afmiSTYzIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvSO1UQ +RwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D34xFMFbG02SrZvPA +Xpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgPK9Dx2hzLabjKSWJtyNBjYt1gD1iq +j6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFEe4zf/lb+74suwvTg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF +AAOCAgEAACAjQTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV +cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXSIGrs/CIBKM+G +uIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2HJLw5QY33KbmkJs4j1xrG0aG +Q0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsaO5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8 +ZORK15FTAaggiG6cX0S5y2CBNOxv033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2 +KSb12tjE8nVhz36udmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz +6MkEkbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg413OEMXbug +UZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvDu79leNKGef9JOxqDDPDe +eOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq4/g7u9xN12TyUb7mqqta6THuBrxzvxNi +Cp/HuZc= +-----END CERTIFICATE----- + +T-TeleSec GlobalRoot Class 3 +============================ +-----BEGIN CERTIFICATE----- +MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM +IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU +cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgx +MDAxMTAyOTU2WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz +dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD +ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN8ELg63iIVl6bmlQdTQyK +9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/RLyTPWGrTs0NvvAgJ1gORH8EGoel15YU +NpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZF +iP0Zf3WHHx+xGwpzJFu5ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W +0eDrXltMEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGjQjBA +MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1A/d2O2GCahKqGFPr +AyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOyWL6ukK2YJ5f+AbGwUgC4TeQbIXQb +fsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzT +ucpH9sry9uetuUg/vBa3wW306gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7h +P0HHRwA11fXT91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml +e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw== +-----END CERTIFICATE----- + +EE Certification Centre Root CA +=============================== +-----BEGIN CERTIFICATE----- +MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG +EwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEoMCYGA1UEAwwfRUUgQ2Vy +dGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIw +MTAxMDMwMTAxMDMwWhgPMjAzMDEyMTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlB +UyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRy +ZSBSb290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUyeuuOF0+W2Ap7kaJjbMeM +TC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvObntl8jixwKIy72KyaOBhU8E2lf/slLo2 +rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIwWFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw +93X2PaRka9ZP585ArQ/dMtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtN +P2MbRMNE1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYDVR0T +AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/zQas8fElyalL1BSZ +MEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEF +BQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEFBQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+Rj +xY6hUFaTlrg4wCQiZrxTFGGVv9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqM +lIpPnTX/dqQGE5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u +uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIWiAYLtqZLICjU +3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/vGVCJYMzpJJUPwssd8m92kMfM +dcGWxZ0= +-----END CERTIFICATE----- + +TURKTRUST Certificate Services Provider Root 2007 +================================================= +-----BEGIN CERTIFICATE----- +MIIEPTCCAyWgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvzE/MD0GA1UEAww2VMOcUktUUlVTVCBF +bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP +MA0GA1UEBwwGQW5rYXJhMV4wXAYDVQQKDFVUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg +QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgQXJhbMSxayAyMDA3MB4X +DTA3MTIyNTE4MzcxOVoXDTE3MTIyMjE4MzcxOVowgb8xPzA9BgNVBAMMNlTDnFJLVFJVU1QgRWxl +a3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTELMAkGA1UEBhMCVFIxDzAN +BgNVBAcMBkFua2FyYTFeMFwGA1UECgxVVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp +bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4gKGMpIEFyYWzEsWsgMjAwNzCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKu3PgqMyKVYFeaK7yc9SrToJdPNM8Ig3BnuiD9N +YvDdE3ePYakqtdTyuTFYKTsvP2qcb3N2Je40IIDu6rfwxArNK4aUyeNgsURSsloptJGXg9i3phQv +KUmi8wUG+7RP2qFsmmaf8EMJyupyj+sA1zU511YXRxcw9L6/P8JorzZAwan0qafoEGsIiveGHtya +KhUG9qPw9ODHFNRRf8+0222vR5YXm3dx2KdxnSQM9pQ/hTEST7ruToK4uT6PIzdezKKqdfcYbwnT +rqdUKDT74eA7YH2gvnmJhsifLfkKS8RQouf9eRbHegsYz85M733WB2+Y8a+xwXrXgTW4qhe04MsC +AwEAAaNCMEAwHQYDVR0OBBYEFCnFkKslrxHkYb+j/4hhkeYO/pyBMA4GA1UdDwEB/wQEAwIBBjAP +BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAQDdr4Ouwo0RSVgrESLFF6QSU2TJ/s +Px+EnWVUXKgWAkD6bho3hO9ynYYKVZ1WKKxmLNA6VpM0ByWtCLCPyA8JWcqdmBzlVPi5RX9ql2+I +aE1KBiY3iAIOtsbWcpnOa3faYjGkVh+uX4132l32iPwa2Z61gfAyuOOI0JzzaqC5mxRZNTZPz/OO +Xl0XrRWV2N2y1RVuAE6zS89mlOTgzbUF2mNXi+WzqtvALhyQRNsaXRik7r4EW5nVcV9VZWRi1aKb +BFmGyGJ353yCRWo9F7/snXUMrqNvWtMvmDb08PUZqxFdyKbjKlhqQgnDvZImZjINXQhVdP+MmNAK +poRq0Tl9 +-----END CERTIFICATE----- + +D-TRUST Root Class 3 CA 2 2009 +============================== +-----BEGIN CERTIFICATE----- +MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQK +DAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTAe +Fw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NThaME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxE +LVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOAD +ER03UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42tSHKXzlA +BF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9RySPocq60vFYJfxLLHLGv +KZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsMlFqVlNpQmvH/pStmMaTJOKDfHR+4CS7z +p+hnUquVH+BGPtikw8paxTGA6Eian5Rp/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUC +AwEAAaOCARowggEWMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ +4PGEMA4GA1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVjdG9y +eS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUyMENBJTIwMiUyMDIw +MDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwQ6BBoD+G +PWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAw +OS5jcmwwDQYJKoZIhvcNAQELBQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm +2H6NMLVwMeniacfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0 +o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4KzCUqNQT4YJEV +dT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8PIWmawomDeCTmGCufsYkl4ph +X5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3YJohw1+qRzT65ysCQblrGXnRl11z+o+I= +-----END CERTIFICATE----- + +D-TRUST Root Class 3 CA 2 EV 2009 +================================= +-----BEGIN CERTIFICATE----- +MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK +DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw +OTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUwNDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK +DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw +OTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfS +egpnljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM03TP1YtHh +zRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6ZqQTMFexgaDbtCHu39b+T +7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lRp75mpoo6Kr3HGrHhFPC+Oh25z1uxav60 +sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure35 +11H3a6UCAwEAAaOCASQwggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyv +cop9NteaHNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFwOi8v +ZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xhc3MlMjAzJTIwQ0El +MjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1ERT9jZXJ0aWZpY2F0ZXJldm9jYXRp +b25saXN0MEagRKBChkBodHRwOi8vd3d3LmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xh +c3NfM19jYV8yX2V2XzIwMDkuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+ +PPoeUSbrh/Yp3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05 +nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNFCSuGdXzfX2lX +ANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7naxpeG0ILD5EJt/rDiZE4OJudA +NCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqXKVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVv +w9y4AyHqnxbxLFS1 +-----END CERTIFICATE----- + +PSCProcert +========== +-----BEGIN CERTIFICATE----- +MIIJhjCCB26gAwIBAgIBCzANBgkqhkiG9w0BAQsFADCCAR4xPjA8BgNVBAMTNUF1dG9yaWRhZCBk +ZSBDZXJ0aWZpY2FjaW9uIFJhaXogZGVsIEVzdGFkbyBWZW5lem9sYW5vMQswCQYDVQQGEwJWRTEQ +MA4GA1UEBxMHQ2FyYWNhczEZMBcGA1UECBMQRGlzdHJpdG8gQ2FwaXRhbDE2MDQGA1UEChMtU2lz +dGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMUMwQQYDVQQLEzpTdXBl +cmludGVuZGVuY2lhIGRlIFNlcnZpY2lvcyBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMSUw +IwYJKoZIhvcNAQkBFhZhY3JhaXpAc3VzY2VydGUuZ29iLnZlMB4XDTEwMTIyODE2NTEwMFoXDTIw +MTIyNTIzNTk1OVowgdExJjAkBgkqhkiG9w0BCQEWF2NvbnRhY3RvQHByb2NlcnQubmV0LnZlMQ8w +DQYDVQQHEwZDaGFjYW8xEDAOBgNVBAgTB01pcmFuZGExKjAoBgNVBAsTIVByb3ZlZWRvciBkZSBD +ZXJ0aWZpY2Fkb3MgUFJPQ0VSVDE2MDQGA1UEChMtU2lzdGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZp +Y2FjaW9uIEVsZWN0cm9uaWNhMQswCQYDVQQGEwJWRTETMBEGA1UEAxMKUFNDUHJvY2VydDCCAiIw +DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANW39KOUM6FGqVVhSQ2oh3NekS1wwQYalNo97BVC +wfWMrmoX8Yqt/ICV6oNEolt6Vc5Pp6XVurgfoCfAUFM+jbnADrgV3NZs+J74BCXfgI8Qhd19L3uA +3VcAZCP4bsm+lU/hdezgfl6VzbHvvnpC2Mks0+saGiKLt38GieU89RLAu9MLmV+QfI4tL3czkkoh +RqipCKzx9hEC2ZUWno0vluYC3XXCFCpa1sl9JcLB/KpnheLsvtF8PPqv1W7/U0HU9TI4seJfxPmO +EO8GqQKJ/+MMbpfg353bIdD0PghpbNjU5Db4g7ayNo+c7zo3Fn2/omnXO1ty0K+qP1xmk6wKImG2 +0qCZyFSTXai20b1dCl53lKItwIKOvMoDKjSuc/HUtQy9vmebVOvh+qBa7Dh+PsHMosdEMXXqP+UH +0quhJZb25uSgXTcYOWEAM11G1ADEtMo88aKjPvM6/2kwLkDd9p+cJsmWN63nOaK/6mnbVSKVUyqU +td+tFjiBdWbjxywbk5yqjKPK2Ww8F22c3HxT4CAnQzb5EuE8XL1mv6JpIzi4mWCZDlZTOpx+FIyw +Bm/xhnaQr/2v/pDGj59/i5IjnOcVdo/Vi5QTcmn7K2FjiO/mpF7moxdqWEfLcU8UC17IAggmosvp +r2uKGcfLFFb14dq12fy/czja+eevbqQ34gcnAgMBAAGjggMXMIIDEzASBgNVHRMBAf8ECDAGAQH/ +AgEBMDcGA1UdEgQwMC6CD3N1c2NlcnRlLmdvYi52ZaAbBgVghl4CAqASDBBSSUYtRy0yMDAwNDAz +Ni0wMB0GA1UdDgQWBBRBDxk4qpl/Qguk1yeYVKIXTC1RVDCCAVAGA1UdIwSCAUcwggFDgBStuyId +xuDSAaj9dlBSk+2YwU2u06GCASakggEiMIIBHjE+MDwGA1UEAxM1QXV0b3JpZGFkIGRlIENlcnRp +ZmljYWNpb24gUmFpeiBkZWwgRXN0YWRvIFZlbmV6b2xhbm8xCzAJBgNVBAYTAlZFMRAwDgYDVQQH +EwdDYXJhY2FzMRkwFwYDVQQIExBEaXN0cml0byBDYXBpdGFsMTYwNAYDVQQKEy1TaXN0ZW1hIE5h +Y2lvbmFsIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExQzBBBgNVBAsTOlN1cGVyaW50ZW5k +ZW5jaWEgZGUgU2VydmljaW9zIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExJTAjBgkqhkiG +9w0BCQEWFmFjcmFpekBzdXNjZXJ0ZS5nb2IudmWCAQowDgYDVR0PAQH/BAQDAgEGME0GA1UdEQRG +MESCDnByb2NlcnQubmV0LnZloBUGBWCGXgIBoAwMClBTQy0wMDAwMDKgGwYFYIZeAgKgEgwQUklG +LUotMzE2MzUzNzMtNzB2BgNVHR8EbzBtMEagRKBChkBodHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52 +ZS9sY3IvQ0VSVElGSUNBRE8tUkFJWi1TSEEzODRDUkxERVIuY3JsMCOgIaAfhh1sZGFwOi8vYWNy +YWl6LnN1c2NlcnRlLmdvYi52ZTA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9v +Y3NwLnN1c2NlcnRlLmdvYi52ZTBBBgNVHSAEOjA4MDYGBmCGXgMBAjAsMCoGCCsGAQUFBwIBFh5o +dHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52ZS9kcGMwDQYJKoZIhvcNAQELBQADggIBACtZ6yKZu4Sq +T96QxtGGcSOeSwORR3C7wJJg7ODU523G0+1ng3dS1fLld6c2suNUvtm7CpsR72H0xpkzmfWvADmN +g7+mvTV+LFwxNG9s2/NkAZiqlCxB3RWGymspThbASfzXg0gTB1GEMVKIu4YXx2sviiCtxQuPcD4q +uxtxj7mkoP3YldmvWb8lK5jpY5MvYB7Eqvh39YtsL+1+LrVPQA3uvFd359m21D+VJzog1eWuq2w1 +n8GhHVnchIHuTQfiSLaeS5UtQbHh6N5+LwUeaO6/u5BlOsju6rEYNxxik6SgMexxbJHmpHmJWhSn +FFAFTKQAVzAswbVhltw+HoSvOULP5dAssSS830DD7X9jSr3hTxJkhpXzsOfIt+FTvZLm8wyWuevo +5pLtp4EJFAv8lXrPj9Y0TzYS3F7RNHXGRoAvlQSMx4bEqCaJqD8Zm4G7UaRKhqsLEQ+xrmNTbSjq +3TNWOByyrYDT13K9mmyZY+gAu0F2BbdbmRiKw7gSXFbPVgx96OLP7bx0R/vu0xdOIk9W/1DzLuY5 +poLWccret9W6aAjtmcz9opLLabid+Qqkpj5PkygqYWwHJgD/ll9ohri4zspV4KuxPX+Y1zMOWj3Y +eMLEYC/HYvBhkdI4sPaeVdtAgAUSM84dkpvRabP/v/GSCmE1P93+hvS84Bpxs2Km +-----END CERTIFICATE----- + +China Internet Network Information Center EV Certificates Root +============================================================== +-----BEGIN CERTIFICATE----- +MIID9zCCAt+gAwIBAgIESJ8AATANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCQ04xMjAwBgNV +BAoMKUNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyMUcwRQYDVQQDDD5D +aGluYSBJbnRlcm5ldCBOZXR3b3JrIEluZm9ybWF0aW9uIENlbnRlciBFViBDZXJ0aWZpY2F0ZXMg +Um9vdDAeFw0xMDA4MzEwNzExMjVaFw0zMDA4MzEwNzExMjVaMIGKMQswCQYDVQQGEwJDTjEyMDAG +A1UECgwpQ2hpbmEgSW50ZXJuZXQgTmV0d29yayBJbmZvcm1hdGlvbiBDZW50ZXIxRzBFBgNVBAMM +PkNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyIEVWIENlcnRpZmljYXRl +cyBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm35z7r07eKpkQ0H1UN+U8i6y +jUqORlTSIRLIOTJCBumD1Z9S7eVnAztUwYyZmczpwA//DdmEEbK40ctb3B75aDFk4Zv6dOtouSCV +98YPjUesWgbdYavi7NifFy2cyjw1l1VxzUOFsUcW9SxTgHbP0wBkvUCZ3czY28Sf1hNfQYOL+Q2H +klY0bBoQCxfVWhyXWIQ8hBouXJE0bhlffxdpxWXvayHG1VA6v2G5BY3vbzQ6sm8UY78WO5upKv23 +KzhmBsUs4qpnHkWnjQRmQvaPK++IIGmPMowUc9orhpFjIpryp9vOiYurXccUwVswah+xt54ugQEC +7c+WXmPbqOY4twIDAQABo2MwYTAfBgNVHSMEGDAWgBR8cks5x8DbYqVPm6oYNJKiyoOCWTAPBgNV +HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUfHJLOcfA22KlT5uqGDSSosqD +glkwDQYJKoZIhvcNAQEFBQADggEBACrDx0M3j92tpLIM7twUbY8opJhJywyA6vPtI2Z1fcXTIWd5 +0XPFtQO3WKwMVC/GVhMPMdoG52U7HW8228gd+f2ABsqjPWYWqJ1MFn3AlUa1UeTiH9fqBk1jjZaM +7+czV0I664zBechNdn3e9rG3geCg+aF4RhcaVpjwTj2rHO3sOdwHSPdj/gauwqRcalsyiMXHM4Ws +ZkJHwlgkmeHlPuV1LI5D1l08eB6olYIpUNHRFrrvwb562bTYzB5MRuF3sTGrvSrIzo9uoV1/A3U0 +5K2JRVRevq4opbs/eHnrc7MKDf2+yfdWrPa37S+bISnHOLaVxATywy39FCqQmbkHzJ8= +-----END CERTIFICATE----- + +Swisscom Root CA 2 +================== +-----BEGIN CERTIFICATE----- +MIIF2TCCA8GgAwIBAgIQHp4o6Ejy5e/DfEoeWhhntjANBgkqhkiG9w0BAQsFADBkMQswCQYDVQQG +EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy +dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMjAeFw0xMTA2MjQwODM4MTRaFw0zMTA2 +MjUwNzM4MTRaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln +aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAyMIIC +IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAlUJOhJ1R5tMJ6HJaI2nbeHCOFvErjw0DzpPM +LgAIe6szjPTpQOYXTKueuEcUMncy3SgM3hhLX3af+Dk7/E6J2HzFZ++r0rk0X2s682Q2zsKwzxNo +ysjL67XiPS4h3+os1OD5cJZM/2pYmLcX5BtS5X4HAB1f2uY+lQS3aYg5oUFgJWFLlTloYhyxCwWJ +wDaCFCE/rtuh/bxvHGCGtlOUSbkrRsVPACu/obvLP+DHVxxX6NZp+MEkUp2IVd3Chy50I9AU/SpH +Wrumnf2U5NGKpV+GY3aFy6//SSj8gO1MedK75MDvAe5QQQg1I3ArqRa0jG6F6bYRzzHdUyYb3y1a +SgJA/MTAtukxGggo5WDDH8SQjhBiYEQN7Aq+VRhxLKX0srwVYv8c474d2h5Xszx+zYIdkeNL6yxS +NLCK/RJOlrDrcH+eOfdmQrGrrFLadkBXeyq96G4DsguAhYidDMfCd7Camlf0uPoTXGiTOmekl9Ab +mbeGMktg2M7v0Ax/lZ9vh0+Hio5fCHyqW/xavqGRn1V9TrALacywlKinh/LTSlDcX3KwFnUey7QY +Ypqwpzmqm59m2I2mbJYV4+by+PGDYmy7Velhk6M99bFXi08jsJvllGov34zflVEpYKELKeRcVVi3 +qPyZ7iVNTA6z00yPhOgpD/0QVAKFyPnlw4vP5w8CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw +HQYDVR0hBBYwFDASBgdghXQBUwIBBgdghXQBUwIBMBIGA1UdEwEB/wQIMAYBAf8CAQcwHQYDVR0O +BBYEFE0mICKJS9PVpAqhb97iEoHF8TwuMB8GA1UdIwQYMBaAFE0mICKJS9PVpAqhb97iEoHF8Twu +MA0GCSqGSIb3DQEBCwUAA4ICAQAyCrKkG8t9voJXiblqf/P0wS4RfbgZPnm3qKhyN2abGu2sEzsO +v2LwnN+ee6FTSA5BesogpxcbtnjsQJHzQq0Qw1zv/2BZf82Fo4s9SBwlAjxnffUy6S8w5X2lejjQ +82YqZh6NM4OKb3xuqFp1mrjX2lhIREeoTPpMSQpKwhI3qEAMw8jh0FcNlzKVxzqfl9NX+Ave5XLz +o9v/tdhZsnPdTSpxsrpJ9csc1fV5yJmz/MFMdOO0vSk3FQQoHt5FRnDsr7p4DooqzgB53MBfGWcs +a0vvaGgLQ+OswWIJ76bdZWGgr4RVSJFSHMYlkSrQwSIjYVmvRRGFHQEkNI/Ps/8XciATwoCqISxx +OQ7Qj1zB09GOInJGTB2Wrk9xseEFKZZZ9LuedT3PDTcNYtsmjGOpI99nBjx8Oto0QuFmtEYE3saW +mA9LSHokMnWRn6z3aOkquVVlzl1h0ydw2Df+n7mvoC5Wt6NlUe07qxS/TFED6F+KBZvuim6c779o ++sjaC+NCydAXFJy3SuCvkychVSa1ZC+N8f+mQAWFBVzKBxlcCxMoTFh/wqXvRdpg065lYZ1Tg3TC +rvJcwhbtkj6EPnNgiLx29CzP0H1907he0ZESEOnN3col49XtmS++dYFLJPlFRpTJKSFTnCZFqhMX +5OfNeOI5wSsSnqaeG8XmDtkx2Q== +-----END CERTIFICATE----- + +Swisscom Root EV CA 2 +===================== +-----BEGIN CERTIFICATE----- +MIIF4DCCA8igAwIBAgIRAPL6ZOJ0Y9ON/RAdBB92ylgwDQYJKoZIhvcNAQELBQAwZzELMAkGA1UE +BhMCY2gxETAPBgNVBAoTCFN3aXNzY29tMSUwIwYDVQQLExxEaWdpdGFsIENlcnRpZmljYXRlIFNl +cnZpY2VzMR4wHAYDVQQDExVTd2lzc2NvbSBSb290IEVWIENBIDIwHhcNMTEwNjI0MDk0NTA4WhcN +MzEwNjI1MDg0NTA4WjBnMQswCQYDVQQGEwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsT +HERpZ2l0YWwgQ2VydGlmaWNhdGUgU2VydmljZXMxHjAcBgNVBAMTFVN3aXNzY29tIFJvb3QgRVYg +Q0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMT3HS9X6lds93BdY7BxUglgRCgz +o3pOCvrY6myLURYaVa5UJsTMRQdBTxB5f3HSek4/OE6zAMaVylvNwSqD1ycfMQ4jFrclyxy0uYAy +Xhqdk/HoPGAsp15XGVhRXrwsVgu42O+LgrQ8uMIkqBPHoCE2G3pXKSinLr9xJZDzRINpUKTk4Rti +GZQJo/PDvO/0vezbE53PnUgJUmfANykRHvvSEaeFGHR55E+FFOtSN+KxRdjMDUN/rhPSays/p8Li +qG12W0OfvrSdsyaGOx9/5fLoZigWJdBLlzin5M8J0TbDC77aO0RYjb7xnglrPvMyxyuHxuxenPaH +Za0zKcQvidm5y8kDnftslFGXEBuGCxobP/YCfnvUxVFkKJ3106yDgYjTdLRZncHrYTNaRdHLOdAG +alNgHa/2+2m8atwBz735j9m9W8E6X47aD0upm50qKGsaCnw8qyIL5XctcfaCNYGu+HuB5ur+rPQa +m3Rc6I8k9l2dRsQs0h4rIWqDJ2dVSqTjyDKXZpBy2uPUZC5f46Fq9mDU5zXNysRojddxyNMkM3Ox +bPlq4SjbX8Y96L5V5jcb7STZDxmPX2MYWFCBUWVv8p9+agTnNCRxunZLWB4ZvRVgRaoMEkABnRDi +xzgHcgplwLa7JSnaFp6LNYth7eVxV4O1PHGf40+/fh6Bn0GXAgMBAAGjgYYwgYMwDgYDVR0PAQH/ +BAQDAgGGMB0GA1UdIQQWMBQwEgYHYIV0AVMCAgYHYIV0AVMCAjASBgNVHRMBAf8ECDAGAQH/AgED +MB0GA1UdDgQWBBRF2aWBbj2ITY1x0kbBbkUe88SAnTAfBgNVHSMEGDAWgBRF2aWBbj2ITY1x0kbB +bkUe88SAnTANBgkqhkiG9w0BAQsFAAOCAgEAlDpzBp9SSzBc1P6xXCX5145v9Ydkn+0UjrgEjihL +j6p7jjm02Vj2e6E1CqGdivdj5eu9OYLU43otb98TPLr+flaYC/NUn81ETm484T4VvwYmneTwkLbU +wp4wLh/vx3rEUMfqe9pQy3omywC0Wqu1kx+AiYQElY2NfwmTv9SoqORjbdlk5LgpWgi/UOGED1V7 +XwgiG/W9mR4U9s70WBCCswo9GcG/W6uqmdjyMb3lOGbcWAXH7WMaLgqXfIeTK7KK4/HsGOV1timH +59yLGn602MnTihdsfSlEvoqq9X46Lmgxk7lq2prg2+kupYTNHAq4Sgj5nPFhJpiTt3tm7JFe3VE/ +23MPrQRYCd0EApUKPtN236YQHoA96M2kZNEzx5LH4k5E4wnJTsJdhw4Snr8PyQUQ3nqjsTzyP6Wq +J3mtMX0f/fwZacXduT98zca0wjAefm6S139hdlqP65VNvBFuIXxZN5nQBrz5Bm0yFqXZaajh3DyA +HmBR3NdUIR7KYndP+tiPsys6DXhyyWhBWkdKwqPrGtcKqzwyVcgKEZzfdNbwQBUdyLmPtTbFr/gi +uMod89a2GQ+fYWVq6nTIfI/DT11lgh/ZDYnadXL77/FHZxOzyNEZiCcmmpl5fx7kLD977vHeTYuW +l8PVP3wbI+2ksx0WckNLIOFZfsLorSa/ovc= +-----END CERTIFICATE----- + +CA Disig Root R1 +================ +-----BEGIN CERTIFICATE----- +MIIFaTCCA1GgAwIBAgIJAMMDmu5QkG4oMA0GCSqGSIb3DQEBBQUAMFIxCzAJBgNVBAYTAlNLMRMw +EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp +ZyBSb290IFIxMB4XDTEyMDcxOTA5MDY1NloXDTQyMDcxOTA5MDY1NlowUjELMAkGA1UEBhMCU0sx +EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp +c2lnIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCqw3j33Jijp1pedxiy +3QRkD2P9m5YJgNXoqqXinCaUOuiZc4yd39ffg/N4T0Dhf9Kn0uXKE5Pn7cZ3Xza1lK/oOI7bm+V8 +u8yN63Vz4STN5qctGS7Y1oprFOsIYgrY3LMATcMjfF9DCCMyEtztDK3AfQ+lekLZWnDZv6fXARz2 +m6uOt0qGeKAeVjGu74IKgEH3G8muqzIm1Cxr7X1r5OJeIgpFy4QxTaz+29FHuvlglzmxZcfe+5nk +CiKxLU3lSCZpq+Kq8/v8kiky6bM+TR8noc2OuRf7JT7JbvN32g0S9l3HuzYQ1VTW8+DiR0jm3hTa +YVKvJrT1cU/J19IG32PK/yHoWQbgCNWEFVP3Q+V8xaCJmGtzxmjOZd69fwX3se72V6FglcXM6pM6 +vpmumwKjrckWtc7dXpl4fho5frLABaTAgqWjR56M6ly2vGfb5ipN0gTco65F97yLnByn1tUD3AjL +LhbKXEAz6GfDLuemROoRRRw1ZS0eRWEkG4IupZ0zXWX4Qfkuy5Q/H6MMMSRE7cderVC6xkGbrPAX +ZcD4XW9boAo0PO7X6oifmPmvTiT6l7Jkdtqr9O3jw2Dv1fkCyC2fg69naQanMVXVz0tv/wQFx1is +XxYb5dKj6zHbHzMVTdDypVP1y+E9Tmgt2BLdqvLmTZtJ5cUoobqwWsagtQIDAQABo0IwQDAPBgNV +HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUiQq0OJMa5qvum5EY+fU8PjXQ +04IwDQYJKoZIhvcNAQEFBQADggIBADKL9p1Kyb4U5YysOMo6CdQbzoaz3evUuii+Eq5FLAR0rBNR +xVgYZk2C2tXck8An4b58n1KeElb21Zyp9HWc+jcSjxyT7Ff+Bw+r1RL3D65hXlaASfX8MPWbTx9B +LxyE04nH4toCdu0Jz2zBuByDHBb6lM19oMgY0sidbvW9adRtPTXoHqJPYNcHKfyyo6SdbhWSVhlM +CrDpfNIZTUJG7L399ldb3Zh+pE3McgODWF3vkzpBemOqfDqo9ayk0d2iLbYq/J8BjuIQscTK5Gfb +VSUZP/3oNn6z4eGBrxEWi1CXYBmCAMBrTXO40RMHPuq2MU/wQppt4hF05ZSsjYSVPCGvxdpHyN85 +YmLLW1AL14FABZyb7bq2ix4Eb5YgOe2kfSnbSM6C3NQCjR0EMVrHS/BsYVLXtFHCgWzN4funodKS +ds+xDzdYpPJScWc/DIh4gInByLUfkmO+p3qKViwaqKactV2zY9ATIKHrkWzQjX2v3wvkF7mGnjix +lAxYjOBVqjtjbZqJYLhkKpLGN/R+Q0O3c+gB53+XD9fyexn9GtePyfqFa3qdnom2piiZk4hA9z7N +UaPK6u95RyG1/jLix8NRb76AdPCkwzryT+lf3xkK8jsTQ6wxpLPn6/wY1gGp8yqPNg7rtLG8t0zJ +a7+h89n07eLw4+1knj0vllJPgFOL +-----END CERTIFICATE----- + +CA Disig Root R2 +================ +-----BEGIN CERTIFICATE----- +MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNVBAYTAlNLMRMw +EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp +ZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQyMDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sx +EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp +c2lnIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbC +w3OeNcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNHPWSb6Wia +xswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3Ix2ymrdMxp7zo5eFm1tL7 +A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbeQTg06ov80egEFGEtQX6sx3dOy1FU+16S +GBsEWmjGycT6txOgmLcRK7fWV8x8nhfRyyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqV +g8NTEQxzHQuyRpDRQjrOQG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa +5Beny912H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJQfYE +koopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUDi/ZnWejBBhG93c+A +Ak9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORsnLMOPReisjQS1n6yqEm70XooQL6i +Fh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNV +HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5u +Qu0wDQYJKoZIhvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM +tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqfGopTpti72TVV +sRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkblvdhuDvEK7Z4bLQjb/D907Je +dR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka+elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W8 +1k/BfDxujRNt+3vrMNDcTa/F1balTFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjx +mHHEt38OFdAlab0inSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01 +utI3gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18DrG5gPcFw0 +sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3OszMOl6W8KjptlwlCFtaOg +UxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8xL4ysEr3vQCj8KWefshNPZiTEUxnpHikV +7+ZtsH8tZ/3zbBt1RqPlShfppNcL +-----END CERTIFICATE----- + +ACCVRAIZ1 +========= +-----BEGIN CERTIFICATE----- +MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UEAwwJQUNDVlJB +SVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQswCQYDVQQGEwJFUzAeFw0xMTA1 +MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQBgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwH +UEtJQUNDVjENMAsGA1UECgwEQUNDVjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQCbqau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gM +jmoYHtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWoG2ioPej0 +RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpAlHPrzg5XPAOBOp0KoVdD +aaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhrIA8wKFSVf+DuzgpmndFALW4ir50awQUZ +0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDG +WuzndN9wrqODJerWx5eHk6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs7 +8yM2x/474KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMOm3WR +5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpacXpkatcnYGMN285J +9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPluUsXQA+xtrn13k/c4LOsOxFwYIRK +Q26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYIKwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRw +Oi8vd3d3LmFjY3YuZXMvZmlsZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEu +Y3J0MB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2 +VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeTVfZW6oHlNsyM +Hj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIGCCsGAQUFBwICMIIBFB6CARAA +QQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUAcgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBh +AO0AegAgAGQAZQAgAGwAYQAgAEEAQwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUA +YwBuAG8AbABvAGcA7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBj +AHQAcgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAAQwBQAFMA +IABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUAczAwBggrBgEFBQcCARYk +aHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2MuaHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0 +dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRtaW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2 +MV9kZXIuY3JsMA4GA1UdDwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZI +hvcNAQEFBQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdpD70E +R9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gUJyCpZET/LtZ1qmxN +YEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+mAM/EKXMRNt6GGT6d7hmKG9Ww7Y49 +nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepDvV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJ +TS+xJlsndQAJxGJ3KQhfnlmstn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3 +sCPdK6jT2iWH7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h +I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szAh1xA2syVP1Xg +Nce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xFd3+YJ5oyXSrjhO7FmGYvliAd +3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2HpPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3p +EfbRD0tVNEYqi4Y7 +-----END CERTIFICATE----- + +TWCA Global Root CA +=================== +-----BEGIN CERTIFICATE----- +MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcxEjAQBgNVBAoT +CVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMTVFdDQSBHbG9iYWwgUm9vdCBD +QTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQK +EwlUQUlXQU4tQ0ExEDAOBgNVBAsTB1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3Qg +Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2C +nJfF10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz0ALfUPZV +r2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfChMBwqoJimFb3u/Rk28OKR +Q4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbHzIh1HrtsBv+baz4X7GGqcXzGHaL3SekV +tTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1W +KKD+u4ZqyPpcC1jcxkt2yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99 +sy2sbZCilaLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYPoA/p +yJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQABDzfuBSO6N+pjWxn +kjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcEqYSjMq+u7msXi7Kx/mzhkIyIqJdI +zshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMC +AQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6g +cFGn90xHNcgL1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn +LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WFH6vPNOw/KP4M +8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNoRI2T9GRwoD2dKAXDOXC4Ynsg +/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlg +lPx4mI88k1HtQJAH32RjJMtOcQWh15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryP +A9gK8kxkRr05YuWW6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3m +i4TWnsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5jwa19hAM8 +EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWzaGHQRiapIVJpLesux+t3 +zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmyKwbQBM0= +-----END CERTIFICATE----- + +TeliaSonera Root CA v1 +====================== +-----BEGIN CERTIFICATE----- +MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAwNzEUMBIGA1UE +CgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJvb3QgQ0EgdjEwHhcNMDcxMDE4 +MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYDVQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwW +VGVsaWFTb25lcmEgUm9vdCBDQSB2MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+ +6yfwIaPzaSZVfp3FVRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA +3GV17CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+XZ75Ljo1k +B1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+/jXh7VB7qTCNGdMJjmhn +Xb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxH +oLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkmdtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3 +F0fUTPHSiXk+TT2YqGHeOh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJ +oWjiUIMusDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4pgd7 +gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fsslESl1MpWtTwEhDc +TwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQarMCpgKIv7NHfirZ1fpoeDVNAgMB +AAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qW +DNXr+nuqF+gTEjANBgkqhkiG9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNm +zqjMDfz1mgbldxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx +0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1TjTQpgcmLNkQfW +pb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBedY2gea+zDTYa4EzAvXUYNR0PV +G6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpc +c41teyWRyu5FrgZLAMzTsVlQ2jqIOylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOT +JsjrDNYmiLbAJM+7vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2 +qReWt88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcnHL/EVlP6 +Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVxSK236thZiNSQvxaz2ems +WWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY= +-----END CERTIFICATE----- + +E-Tugra Certification Authority +=============================== +-----BEGIN CERTIFICATE----- +MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNVBAYTAlRSMQ8w +DQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamls +ZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN +ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMw +NTEyMDk0OFoXDTIzMDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmEx +QDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxl +cmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQD +DB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A +MIICCgKCAgEA4vU/kwVRHoViVF56C/UYB4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vd +hQd2h8y/L5VMzH2nPbxHD5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5K +CKpbknSFQ9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEoq1+g +ElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3Dk14opz8n8Y4e0ypQ +BaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcHfC425lAcP9tDJMW/hkd5s3kc91r0 +E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsutdEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gz +rt48Ue7LE3wBf4QOXVGUnhMMti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAq +jqFGOjGY5RH8zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn +rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUXU8u3Zg5mTPj5 +dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6Jyr+zE7S6E5UMA8GA1UdEwEB +/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEG +MA0GCSqGSIb3DQEBCwUAA4ICAQAFNzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAK +kEh47U6YA5n+KGCRHTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jO +XKqYGwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c77NCR807 +VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3+GbHeJAAFS6LrVE1Uweo +a2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WKvJUawSg5TB9D0pH0clmKuVb8P7Sd2nCc +dlqMQ1DujjByTd//SffGqWfZbawCEeI6FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEV +KV0jq9BgoRJP3vQXzTLlyb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gT +Dx4JnW2PAJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpDy4Q0 +8ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8dNL/+I5c30jn6PQ0G +C7TbO6Orb1wdtn7os4I07QZcJA== +-----END CERTIFICATE----- + +T-TeleSec GlobalRoot Class 2 +============================ +-----BEGIN CERTIFICATE----- +MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM +IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU +cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgx +MDAxMTA0MDE0WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz +dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD +ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUdAqSzm1nzHoqvNK38DcLZ +SBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiCFoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/F +vudocP05l03Sx5iRUKrERLMjfTlH6VJi1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx970 +2cu+fjOlbpSD8DT6IavqjnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGV +WOHAD3bZwI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGjQjBA +MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/WSA2AHmgoCJrjNXy +YdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhyNsZt+U2e+iKo4YFWz827n+qrkRk4 +r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPACuvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNf +vNoBYimipidx5joifsFvHZVwIEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR +3p1m0IvVVGb6g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN +9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlPBSeOE6Fuwg== +-----END CERTIFICATE----- + +Atos TrustedRoot 2011 +===================== +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UEAwwVQXRvcyBU +cnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0xMTA3MDcxNDU4 +MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMMFUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsG +A1UECgwEQXRvczELMAkGA1UEBhMCREUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCV +hTuXbyo7LjvPpvMpNb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr +54rMVD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+SZFhyBH+ +DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ4J7sVaE3IqKHBAUsR320 +HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0Lcp2AMBYHlT8oDv3FdU9T1nSatCQujgKR +z3bFmx5VdJx4IbHwLfELn8LVlhgf8FQieowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7R +l+lwrrw7GWzbITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZ +bNshMBgGA1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB +CwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8jvZfza1zv7v1Apt+h +k6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kPDpFrdRbhIfzYJsdHt6bPWHJxfrrh +TZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pcmaHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a9 +61qn8FYiqTxlVMYVqL2Gns2Dlmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G +3mB/ufNPRJLvKrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed +-----END CERTIFICATE----- + +QuoVadis Root CA 1 G3 +===================== +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQELBQAwSDELMAkG +A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv +b3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJN +MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEg +RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakE +PBtVwedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWerNrwU8lm +PNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF34168Xfuw6cwI2H44g4hWf6 +Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh4Pw5qlPafX7PGglTvF0FBM+hSo+LdoIN +ofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXpUhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/l +g6AnhF4EwfWQvTA9xO+oabw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV +7qJZjqlc3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/GKubX +9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSthfbZxbGL0eUQMk1f +iyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KOTk0k+17kBL5yG6YnLUlamXrXXAkg +t3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOtzCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZI +hvcNAQELBQADggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC +MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2cDMT/uFPpiN3 +GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUNqXsCHKnQO18LwIE6PWThv6ct +Tr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP ++V04ikkwj+3x6xn0dxoxGE1nVGwvb2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh +3jRJjehZrJ3ydlo28hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fa +wx/kNSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNjZgKAvQU6 +O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhpq1467HxpvMc7hU6eFbm0 +FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFtnh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOV +hMJKzRwuJIczYOXD +-----END CERTIFICATE----- + +QuoVadis Root CA 2 G3 +===================== +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQELBQAwSDELMAkG +A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv +b3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJN +MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIg +RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFh +ZiFfqq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMWn4rjyduY +NM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ymc5GQYaYDFCDy54ejiK2t +oIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+O7q414AB+6XrW7PFXmAqMaCvN+ggOp+o +MiwMzAkd056OXbxMmO7FGmh77FOm6RQ1o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+l +V0POKa2Mq1W/xPtbAd0jIaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZo +L1NesNKqIcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz8eQQ +sSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43ehvNURG3YBZwjgQQvD +6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l7ZizlWNof/k19N+IxWA1ksB8aRxh +lRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALGcC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZI +hvcNAQELBQADggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66 +AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RCroijQ1h5fq7K +pVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0GaW/ZZGYjeVYg3UQt4XAoeo0L9 +x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4nlv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgz +dWqTHBLmYF5vHX/JHyPLhGGfHoJE+V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6X +U/IyAgkwo1jwDQHVcsaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+Nw +mNtddbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNgKCLjsZWD +zYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeMHVOyToV7BjjHLPj4sHKN +JeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4WSr2Rz0ZiC3oheGe7IUIarFsNMkd7Egr +O3jtZsSOeWmD3n+M +-----END CERTIFICATE----- + +QuoVadis Root CA 3 G3 +===================== +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQELBQAwSDELMAkG +A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv +b3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJN +MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMg +RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286 +IxSR/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNuFoM7pmRL +Mon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXRU7Ox7sWTaYI+FrUoRqHe +6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+cra1AdHkrAj80//ogaX3T7mH1urPnMNA3 +I4ZyYUUpSFlob3emLoG+B01vr87ERRORFHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3U +VDmrJqMz6nWB2i3ND0/kA9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f7 +5li59wzweyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634RylsSqi +Md5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBpVzgeAVuNVejH38DM +dyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0QA4XN8f+MFrXBsj6IbGB/kE+V9/Yt +rQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZI +hvcNAQELBQADggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px +KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnIFUBhynLWcKzS +t/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5WvvoxXqA/4Ti2Tk08HS6IT7SdEQ +TXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFgu/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9Du +DcpmvJRPpq3t/O5jrFc/ZSXPsoaP0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGib +Ih6BJpsQBJFxwAYf3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmD +hPbl8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+DhcI00iX +0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HNPlopNLk9hM6xZdRZkZFW +dSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/ywaZWWDYWGWVjUTR939+J399roD1B0y2 +PpxxVJkES/1Y+Zj0 +-----END CERTIFICATE----- + +DigiCert Assured ID Root G2 +=========================== +-----BEGIN CERTIFICATE----- +MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw +IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgw +MTE1MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL +ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIw +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSAn61UQbVH +35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4HteccbiJVMWWXvdMX0h5i89vq +bFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9HpEgjAALAcKxHad3A2m67OeYfcgnDmCXRw +VWmvo2ifv922ebPynXApVfSr/5Vh88lAbx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OP +YLfykqGxvYmJHzDNw6YuYjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+Rn +lTGNAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTO +w0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPIQW5pJ6d1Ee88hjZv +0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I0jJmwYrA8y8678Dj1JGG0VDjA9tz +d29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4GnilmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAW +hsI6yLETcDbYz+70CjTVW0z9B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0M +jomZmWzwPDCvON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo +IhNzbM8m9Yop5w== +-----END CERTIFICATE----- + +DigiCert Assured ID Root G3 +=========================== +-----BEGIN CERTIFICATE----- +MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV +UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYD +VQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1 +MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQ +BgcqhkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJfZn4f5dwb +RXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17QRSAPWXYQ1qAk8C3eNvJs +KTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgF +UaFNN6KDec6NHSrkhDAKBggqhkjOPQQDAwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5Fy +YZ5eEJJZVrmDxxDnOOlYJjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy +1vUhZscv6pZjamVFkpUBtA== +-----END CERTIFICATE----- + +DigiCert Global Root G2 +======================= +-----BEGIN CERTIFICATE----- +MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw +HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUx +MjAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 +dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkq +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI2/Ou8jqJ +kTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx1x7e/dfgy5SDN67sH0NO +3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQq2EGnI/yuum06ZIya7XzV+hdG82MHauV +BJVJ8zUtluNJbd134/tJS7SsVQepj5WztCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyM +UNGPHgm+F6HmIcr9g+UQvIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQAB +o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV5uNu +5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY1Yl9PMWLSn/pvtsr +F9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4NeF22d+mQrvHRAiGfzZ0JFrabA0U +WTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NGFdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBH +QRFXGU7Aj64GxJUTFy8bJZ918rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/ +iyK5S9kJRaTepLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl +MrY= +-----END CERTIFICATE----- + +DigiCert Global Root G3 +======================= +-----BEGIN CERTIFICATE----- +MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQswCQYDVQQGEwJV +UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYD +VQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAw +MDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5k +aWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0C +AQYFK4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FGfp4tn+6O +YwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPOZ9wj/wMco+I+o0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNp +Yim8S8YwCgYIKoZIzj0EAwMDaAAwZQIxAK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y +3maTD/HMsQmP3Wyr+mt/oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34 +VOKa5Vt8sycX +-----END CERTIFICATE----- + +DigiCert Trusted Root G4 +======================== +-----BEGIN CERTIFICATE----- +MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBiMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSEw +HwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1 +MTIwMDAwWjBiMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3yithZwuEp +pz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1Ifxp4VpX6+n6lXFllVcq9o +k3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDVySAdYyktzuxeTsiT+CFhmzTrBcZe7Fsa +vOvJz82sNEBfsXpm7nfISKhmV1efVFiODCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGY +QJB5w3jHtrHEtWoYOAMQjdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6 +MUSaM0C/CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCiEhtm +mnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADMfRyVw4/3IbKyEbe7 +f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QYuKZ3AeEPlAwhHbJUKSWJbOUOUlFH +dL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXKchYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8 +oR7FwI+isX4KJpn15GkvmB0t9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud +DwEB/wQEAwIBhjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD +ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2SV1EY+CtnJYY +ZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd+SeuMIW59mdNOj6PWTkiU0Tr +yF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWcfFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy +7zBZLq7gcfJW5GqXb5JQbZaNaHqasjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iah +ixTXTBmyUEFxPT9NcCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN +5r5N0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie4u1Ki7wb +/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mIr/OSmbaz5mEP0oUA51Aa +5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tK +G48BtieVU+i2iW1bvGjUI+iLUaJW+fCmgKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP +82Z+ +-----END CERTIFICATE----- + +WoSign +====== +-----BEGIN CERTIFICATE----- +MIIFdjCCA16gAwIBAgIQXmjWEXGUY1BWAGjzPsnFkTANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQG +EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxKjAoBgNVBAMTIUNlcnRpZmljYXRpb24g +QXV0aG9yaXR5IG9mIFdvU2lnbjAeFw0wOTA4MDgwMTAwMDFaFw0zOTA4MDgwMTAwMDFaMFUxCzAJ +BgNVBAYTAkNOMRowGAYDVQQKExFXb1NpZ24gQ0EgTGltaXRlZDEqMCgGA1UEAxMhQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkgb2YgV29TaWduMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +vcqNrLiRFVaXe2tcesLea9mhsMMQI/qnobLMMfo+2aYpbxY94Gv4uEBf2zmoAHqLoE1UfcIiePyO +CbiohdfMlZdLdNiefvAA5A6JrkkoRBoQmTIPJYhTpA2zDxIIFgsDcSccf+Hb0v1naMQFXQoOXXDX +2JegvFNBmpGN9J42Znp+VsGQX+axaCA2pIwkLCxHC1l2ZjC1vt7tj/id07sBMOby8w7gLJKA84X5 +KIq0VC6a7fd2/BVoFutKbOsuEo/Uz/4Mx1wdC34FMr5esAkqQtXJTpCzWQ27en7N1QhatH/YHGkR ++ScPewavVIMYe+HdVHpRaG53/Ma/UkpmRqGyZxq7o093oL5d//xWC0Nyd5DKnvnyOfUNqfTq1+ez +EC8wQjchzDBwyYaYD8xYTYO7feUapTeNtqwylwA6Y3EkHp43xP901DfA4v6IRmAR3Qg/UDaruHqk +lWJqbrDKaiFaafPz+x1wOZXzp26mgYmhiMU7ccqjUu6Du/2gd/Tkb+dC221KmYo0SLwX3OSACCK2 +8jHAPwQ+658geda4BmRkAjHXqc1S+4RFaQkAKtxVi8QGRkvASh0JWzko/amrzgD5LkhLJuYwTKVY +yrREgk/nkR4zw7CT/xH8gdLKH3Ep3XZPkiWvHYG3Dy+MwwbMLyejSuQOmbp8HkUff6oZRZb9/D0C +AwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFOFmzw7R +8bNLtwYgFP6HEtX2/vs+MA0GCSqGSIb3DQEBBQUAA4ICAQCoy3JAsnbBfnv8rWTjMnvMPLZdRtP1 +LOJwXcgu2AZ9mNELIaCJWSQBnfmvCX0KI4I01fx8cpm5o9dU9OpScA7F9dY74ToJMuYhOZO9sxXq +T2r09Ys/L3yNWC7F4TmgPsc9SnOeQHrAK2GpZ8nzJLmzbVUsWh2eJXLOC62qx1ViC777Y7NhRCOj +y+EaDveaBk3e1CNOIZZbOVtXHS9dCF4Jef98l7VNg64N1uajeeAz0JmWAjCnPv/So0M/BVoG6kQC +2nz4SNAzqfkHx5Xh9T71XXG68pWpdIhhWeO/yloTunK0jF02h+mmxTwTv97QRCbut+wucPrXnbes +5cVAWubXbHssw1abR80LzvobtCHXt2a49CUwi1wNuepnsvRtrtWhnk/Yn+knArAdBtaP4/tIEp9/ +EaEQPkxROpaw0RPxx9gmrjrKkcRpnd8BKWRRb2jaFOwIQZeQjdCygPLPwj2/kWjFgGcexGATVdVh +mVd8upUPYUk6ynW8yQqTP2cOEvIo4jEbwFcW3wh8GcF+Dx+FHgo2fFt+J7x6v+Db9NpSvd4MVHAx +kUOVyLzwPt0JfjBkUO1/AaQzZ01oT74V77D2AhGiGxMlOtzCWfHjXEa7ZywCRuoeSKbmW9m1vFGi +kpbbqsY3Iqb+zCB0oy2pLmvLwIIRIbWTee5Ehr7XHuQe+w== +-----END CERTIFICATE----- + +WoSign China +============ +-----BEGIN CERTIFICATE----- +MIIFWDCCA0CgAwIBAgIQUHBrzdgT/BtOOzNy0hFIjTANBgkqhkiG9w0BAQsFADBGMQswCQYDVQQG +EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxGzAZBgNVBAMMEkNBIOayg+mAmuagueiv +geS5pjAeFw0wOTA4MDgwMTAwMDFaFw0zOTA4MDgwMTAwMDFaMEYxCzAJBgNVBAYTAkNOMRowGAYD +VQQKExFXb1NpZ24gQ0EgTGltaXRlZDEbMBkGA1UEAwwSQ0Eg5rKD6YCa5qC56K+B5LmmMIICIjAN +BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0EkhHiX8h8EqwqzbdoYGTufQdDTc7WU1/FDWiD+k +8H/rD195L4mx/bxjWDeTmzj4t1up+thxx7S8gJeNbEvxUNUqKaqoGXqW5pWOdO2XCld19AXbbQs5 +uQF/qvbW2mzmBeCkTVL829B0txGMe41P/4eDrv8FAxNXUDf+jJZSEExfv5RxadmWPgxDT74wwJ85 +dE8GRV2j1lY5aAfMh09Qd5Nx2UQIsYo06Yms25tO4dnkUkWMLhQfkWsZHWgpLFbE4h4TV2TwYeO5 +Ed+w4VegG63XX9Gv2ystP9Bojg/qnw+LNVgbExz03jWhCl3W6t8Sb8D7aQdGctyB9gQjF+BNdeFy +b7Ao65vh4YOhn0pdr8yb+gIgthhid5E7o9Vlrdx8kHccREGkSovrlXLp9glk3Kgtn3R46MGiCWOc +76DbT52VqyBPt7D3h1ymoOQ3OMdc4zUPLK2jgKLsLl3Az+2LBcLmc272idX10kaO6m1jGx6KyX2m ++Jzr5dVjhU1zZmkR/sgO9MHHZklTfuQZa/HpelmjbX7FF+Ynxu8b22/8DU0GAbQOXDBGVWCvOGU6 +yke6rCzMRh+yRpY/8+0mBe53oWprfi1tWFxK1I5nuPHa1UaKJ/kR8slC/k7e3x9cxKSGhxYzoacX +GKUN5AXlK8IrC6KVkLn9YDxOiT7nnO4fuwECAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFOBNv9ybQV0T6GTwp+kVpOGBwboxMA0GCSqGSIb3DQEBCwUA +A4ICAQBqinA4WbbaixjIvirTthnVZil6Xc1bL3McJk6jfW+rtylNpumlEYOnOXOvEESS5iVdT2H6 +yAa+Tkvv/vMx/sZ8cApBWNromUuWyXi8mHwCKe0JgOYKOoICKuLJL8hWGSbueBwj/feTZU7n85iY +r83d2Z5AiDEoOqsuC7CsDCT6eiaY8xJhEPRdF/d+4niXVOKM6Cm6jBAyvd0zaziGfjk9DgNyp115 +j0WKWa5bIW4xRtVZjc8VX90xJc/bYNaBRHIpAlf2ltTW/+op2znFuCyKGo3Oy+dCMYYFaA6eFN0A +kLppRQjbbpCBhqcqBT/mhDn4t/lXX0ykeVoQDF7Va/81XwVRHmyjdanPUIPTfPRm94KNPQx96N97 +qA4bLJyuQHCH2u2nFoJavjVsIE4iYdm8UXrNemHcSxH5/mc0zy4EZmFcV5cjjPOGG0jfKq+nwf/Y +jj4Du9gqsPoUJbJRa4ZDhS4HIxaAjUz7tGM7zMN07RujHv41D198HRaG9Q7DlfEvr10lO1Hm13ZB +ONFLAzkopR6RctR9q5czxNM+4Gm2KHmgCY0c0f9BckgG/Jou5yD5m6Leie2uPAmvylezkolwQOQv +T8Jwg0DXJCxr5wkf09XHwQj02w47HAcLQxGEIYbpgNR12KvxAmLBsX5VYc8T1yaw15zLKYs4SgsO +kI26oQ== +-----END CERTIFICATE----- + +COMODO RSA Certification Authority +================================== +-----BEGIN CERTIFICATE----- +MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCBhTELMAkGA1UE +BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG +A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwHhcNMTAwMTE5MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMC +R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE +ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR6FSS0gpWsawNJN3Fz0Rn +dJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8Xpz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZ +FGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+ +5eNu/Nio5JIk2kNrYrhV/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pG +x8cgoLEfZd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z+pUX +2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7wqP/0uK3pN/u6uPQL +OvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZahSL0896+1DSJMwBGB7FY79tOi4lu3 +sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVICu9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+C +GCe01a60y1Dma/RMhnEw6abfFobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5 +WdYgGq/yapiqcrxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E +FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w +DQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvlwFTPoCWOAvn9sKIN9SCYPBMt +rFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+ +nq6PK7o9mfjYcwlYRm6mnPTXJ9OV2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSg +tZx8jb8uk2IntznaFxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwW +sRqZCuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiKboHGhfKp +pC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmckejkk9u+UJueBPSZI9FoJA +zMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yLS0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHq +ZJx64SIDqZxubw5lT2yHh17zbqD5daWbQOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk52 +7RH89elWsn2/x20Kk4yl0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7I +LaZRfyHBNVOFBkpdn627G190 +-----END CERTIFICATE----- + +USERTrust RSA Certification Authority +===================================== +-----BEGIN CERTIFICATE----- +MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCBiDELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK +ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK +ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCAEmUXNg7D2wiz +0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2j +Y0K2dvKpOyuR+OJv0OwWIJAJPuLodMkYtJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFn +RghRy4YUVD+8M/5+bJz/Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O ++T23LLb2VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT79uq +/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6c0Plfg6lZrEpfDKE +Y1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmTYo61Zs8liM2EuLE/pDkP2QKe6xJM +lXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97lc6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8 +yexDJtC/QV9AqURE9JnnV4eeUB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+ +eLf8ZxXhyVeEHg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd +BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF +MAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPFUp/L+M+ZBn8b2kMVn54CVVeW +FPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KOVWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ +7l8wXEskEVX/JJpuXior7gtNn3/3ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQ +Eg9zKC7F4iRO/Fjs8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM +8WcRiQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYzeSf7dNXGi +FSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZXHlKYC6SQK5MNyosycdi +yA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9c +J2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRBVXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGw +sAvgnEzDHNb842m1R0aBL6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gx +Q+6IHdfGjjxDah2nGN59PRbxYvnKkKj9 +-----END CERTIFICATE----- + +USERTrust ECC Certification Authority +===================================== +-----BEGIN CERTIFICATE----- +MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDELMAkGA1UEBhMC +VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU +aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMC +VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU +aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqfloI+d61SRvU8Za2EurxtW2 +0eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinngo4N+LZfQYcTxmdwlkWOrfzCjtHDix6Ez +nPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0GA1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNV +HQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBB +HU6+4WMBzzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbWRNZu +9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg= +-----END CERTIFICATE----- + +GlobalSign ECC Root CA - R4 +=========================== +-----BEGIN CERTIFICATE----- +MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5049sJQ6fLjkZHAOkrprl +OQcJFspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5RikqtlxP6jUuc6MHaNCMEAwDgYDVR0P +AQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFSwe61FuOJAf/sKbvu+M8k8o4TV +MAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGXkPoUVy0D7O48027KqGx2vKLeuwIgJ6iF +JzWbVsaj8kfSt24bAgAXqmemFZHe+pTsewv4n4Q= +-----END CERTIFICATE----- + +GlobalSign ECC Root CA - R5 +=========================== +-----BEGIN CERTIFICATE----- +MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6 +SFkc8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8kehOvRnkmS +h5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd +BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx +uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7 +yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3 +-----END CERTIFICATE----- + +Staat der Nederlanden Root CA - G3 +================================== +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIEAJiiOTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE +CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g +Um9vdCBDQSAtIEczMB4XDTEzMTExNDExMjg0MloXDTI4MTExMzIzMDAwMFowWjELMAkGA1UEBhMC +TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l +ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL4y +olQPcPssXFnrbMSkUeiFKrPMSjTysF/zDsccPVMeiAho2G89rcKezIJnByeHaHE6n3WWIkYFsO2t +x1ueKt6c/DrGlaf1F2cY5y9JCAxcz+bMNO14+1Cx3Gsy8KL+tjzk7FqXxz8ecAgwoNzFs21v0IJy +EavSgWhZghe3eJJg+szeP4TrjTgzkApyI/o1zCZxMdFyKJLZWyNtZrVtB0LrpjPOktvA9mxjeM3K +Tj215VKb8b475lRgsGYeCasH/lSJEULR9yS6YHgamPfJEf0WwTUaVHXvQ9Plrk7O53vDxk5hUUur +mkVLoR9BvUhTFXFkC4az5S6+zqQbwSmEorXLCCN2QyIkHxcE1G6cxvx/K2Ya7Irl1s9N9WMJtxU5 +1nus6+N86U78dULI7ViVDAZCopz35HCz33JvWjdAidiFpNfxC95DGdRKWCyMijmev4SH8RY7Ngzp +07TKbBlBUgmhHbBqv4LvcFEhMtwFdozL92TkA1CvjJFnq8Xy7ljY3r735zHPbMk7ccHViLVlvMDo +FxcHErVc0qsgk7TmgoNwNsXNo42ti+yjwUOH5kPiNL6VizXtBznaqB16nzaeErAMZRKQFWDZJkBE +41ZgpRDUajz9QdwOWke275dhdU/Z/seyHdTtXUmzqWrLZoQT1Vyg3N9udwbRcXXIV2+vD3dbAgMB +AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRUrfrHkleu +yjWcLhL75LpdINyUVzANBgkqhkiG9w0BAQsFAAOCAgEAMJmdBTLIXg47mAE6iqTnB/d6+Oea31BD +U5cqPco8R5gu4RV78ZLzYdqQJRZlwJ9UXQ4DO1t3ApyEtg2YXzTdO2PCwyiBwpwpLiniyMMB8jPq +KqrMCQj3ZWfGzd/TtiunvczRDnBfuCPRy5FOCvTIeuXZYzbB1N/8Ipf3YF3qKS9Ysr1YvY2WTxB1 +v0h7PVGHoTx0IsL8B3+A3MSs/mrBcDCw6Y5p4ixpgZQJut3+TcCDjJRYwEYgr5wfAvg1VUkvRtTA +8KCWAg8zxXHzniN9lLf9OtMJgwYh/WA9rjLA0u6NpvDntIJ8CsxwyXmA+P5M9zWEGYox+wrZ13+b +8KKaa8MFSu1BYBQw0aoRQm7TIwIEC8Zl3d1Sd9qBa7Ko+gE4uZbqKmxnl4mUnrzhVNXkanjvSr0r +mj1AfsbAddJu+2gw7OyLnflJNZoaLNmzlTnVHpL3prllL+U9bTpITAjc5CgSKL59NVzq4BZ+Extq +1z7XnvwtdbLBFNUjA9tbbws+eC8N3jONFrdI54OagQ97wUNNVQQXOEpR1VmiiXTTn74eS9fGbbeI +JG9gkaSChVtWQbzQRKtqE77RLFi3EjNYsjdj3BP1lB0/QFH1T/U67cjF68IeHRaVesd+QnGTbksV +tzDfqu1XhUisHWrdOWnk4Xl4vs4Fv6EM94B7IWcnMFk= +-----END CERTIFICATE----- + +Staat der Nederlanden EV Root CA +================================ +-----BEGIN CERTIFICATE----- +MIIFcDCCA1igAwIBAgIEAJiWjTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJOTDEeMBwGA1UE +CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFhdCBkZXIgTmVkZXJsYW5kZW4g +RVYgUm9vdCBDQTAeFw0xMDEyMDgxMTE5MjlaFw0yMjEyMDgxMTEwMjhaMFgxCzAJBgNVBAYTAk5M +MR4wHAYDVQQKDBVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xKTAnBgNVBAMMIFN0YWF0IGRlciBOZWRl +cmxhbmRlbiBFViBSb290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA48d+ifkk +SzrSM4M1LGns3Amk41GoJSt5uAg94JG6hIXGhaTK5skuU6TJJB79VWZxXSzFYGgEt9nCUiY4iKTW +O0Cmws0/zZiTs1QUWJZV1VD+hq2kY39ch/aO5ieSZxeSAgMs3NZmdO3dZ//BYY1jTw+bbRcwJu+r +0h8QoPnFfxZpgQNH7R5ojXKhTbImxrpsX23Wr9GxE46prfNeaXUmGD5BKyF/7otdBwadQ8QpCiv8 +Kj6GyzyDOvnJDdrFmeK8eEEzduG/L13lpJhQDBXd4Pqcfzho0LKmeqfRMb1+ilgnQ7O6M5HTp5gV +XJrm0w912fxBmJc+qiXbj5IusHsMX/FjqTf5m3VpTCgmJdrV8hJwRVXj33NeN/UhbJCONVrJ0yPr +08C+eKxCKFhmpUZtcALXEPlLVPxdhkqHz3/KRawRWrUgUY0viEeXOcDPusBCAUCZSCELa6fS/ZbV +0b5GnUngC6agIk440ME8MLxwjyx1zNDFjFE7PZQIZCZhfbnDZY8UnCHQqv0XcgOPvZuM5l5Tnrmd +74K74bzickFbIZTTRTeU0d8JOV3nI6qaHcptqAqGhYqCvkIH1vI4gnPah1vlPNOePqc7nvQDs/nx +fRN0Av+7oeX6AHkcpmZBiFxgV6YuCcS6/ZrPpx9Aw7vMWgpVSzs4dlG4Y4uElBbmVvMCAwEAAaNC +MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP6rAJCYniT8qcwa +ivsnuL8wbqg7MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsI +eK9p0gtJ3jPFrK3CiAJ9Brc1AsFgyb/E6JTe1NOpEyVa/m6irn0F3H3zbPB+po3u2dfOWBfoqSmu +c0iH55vKbimhZF8ZE/euBhD/UcabTVUlT5OZEAFTdfETzsemQUHSv4ilf0X8rLiltTMMgsT7B/Zq +5SWEXwbKwYY5EdtYzXc7LMJMD16a4/CrPmEbUCTCwPTxGfARKbalGAKb12NMcIxHowNDXLldRqAN +b/9Zjr7dn3LDWyvfjFvO5QxGbJKyCqNMVEIYFRIYvdr8unRu/8G2oGTYqV9Vrp9canaW2HNnh/tN +f1zuacpzEPuKqf2evTY4SUmH9A4U8OmHuD+nT3pajnnUk+S7aFKErGzp85hwVXIy+TSrK0m1zSBi +5Dp6Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCjuTaPPoIaGl6I6lD4 +WeKDRikL40Rc4ZW2aZCaFG+XroHPaO+Zmr615+F/+PoTRxZMzG0IQOeLeG9QgkRQP2YGiqtDhFZK +DyAthg710tvSeopLzaXoTvFeJiUBWSOgftL2fiFX1ye8FVdMpEbB4IMeDExNH08GGeL5qPQ6gqGy +eUN51q1veieQA6TqJIc/2b3Z6fJfUEkc7uzXLg== +-----END CERTIFICATE----- + +IdenTrust Commercial Root CA 1 +============================== +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBKMQswCQYDVQQG +EwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBS +b290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQwMTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzES +MBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENB +IDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ld +hNlT3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU+ehcCuz/ +mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gpS0l4PJNgiCL8mdo2yMKi +1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1bVoE/c40yiTcdCMbXTMTEl3EASX2MN0C +XZ/g1Ue9tOsbobtJSdifWwLziuQkkORiT0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl +3ZBWzvurpWCdxJ35UrCLvYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzy +NeVJSQjKVsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZKdHzV +WYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHTc+XvvqDtMwt0viAg +xGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hvl7yTmvmcEpB4eoCHFddydJxVdHix +uuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5NiGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC +AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZI +hvcNAQELBQADggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH +6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwtLRvM7Kqas6pg +ghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93nAbowacYXVKV7cndJZ5t+qnt +ozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3+wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmV +YjzlVYA211QC//G5Xc7UI2/YRYRKW2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUX +feu+h1sXIFRRk0pTAwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/ro +kTLql1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG4iZZRHUe +2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZmUlO+KWA2yUPHGNiiskz +Z2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7R +cGzM7vRX+Bi6hG6H +-----END CERTIFICATE----- + +IdenTrust Public Sector Root CA 1 +================================= +-----BEGIN CERTIFICATE----- +MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBNMQswCQYDVQQG +EwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3Rv +ciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcNMzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJV +UzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBS +b290IENBIDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTy +P4o7ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGyRBb06tD6 +Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlSbdsHyo+1W/CD80/HLaXI +rcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF/YTLNiCBWS2ab21ISGHKTN9T0a9SvESf +qy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoS +mJxZZoY+rfGwyj4GD3vwEUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFn +ol57plzy9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9VGxyh +LrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ2fjXctscvG29ZV/v +iDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsVWaFHVCkugyhfHMKiq3IXAAaOReyL +4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gDW/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8B +Af8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMw +DQYJKoZIhvcNAQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj +t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHVDRDtfULAj+7A +mgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9TaDKQGXSc3z1i9kKlT/YPyNt +GtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8GlwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFt +m6/n6J91eEyrRjuazr8FGF1NFTwWmhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMx +NRF4eKLg6TCMf4DfWN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4 +Mhn5+bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJtshquDDI +ajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhAGaQdp/lLQzfcaFpPz+vC +ZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ +3Wl9af0AVqW3rLatt8o+Ae+c +-----END CERTIFICATE----- + +Entrust Root Certification Authority - G2 +========================================= +-----BEGIN CERTIFICATE----- +MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMCVVMxFjAUBgNV +BAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVy +bXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ug +b25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIw +HhcNMDkwNzA3MTcyNTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoT +DUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMx +OTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25s +eTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP +/vaCeb9zYQYKpSfYs1/TRU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXz +HHfV1IWNcCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hWwcKU +s/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1U1+cPvQXLOZprE4y +TGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0jaWvYkxN4FisZDQSA/i2jZRjJKRx +AgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ6 +0B7vfec7aVHUbI2fkBJmqzANBgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5Z +iXMRrEPR9RP/jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ +Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v1fN2D807iDgi +nWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4RnAuknZoh8/CbCzB428Hch0P+ +vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmHVHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xO +e4pIb4tF9g== +-----END CERTIFICATE----- + +Entrust Root Certification Authority - EC1 +========================================== +-----BEGIN CERTIFICATE----- +MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkGA1UEBhMCVVMx +FjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVn +YWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXpl +ZCB1c2Ugb25seTEzMDEGA1UEAxMqRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +IC0gRUMxMB4XDTEyMTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYw +FAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2Fs +LXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQg +dXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt +IEVDMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHy +AsWfoPZb1YsGGYZPUxBtByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef +9eNi1KlHBz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE +FLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVCR98crlOZF7ZvHH3h +vxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nXhTcGtXsI/esni0qU+eH6p44mCOh8 +kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G +-----END CERTIFICATE----- + +CFCA EV ROOT +============ +-----BEGIN CERTIFICATE----- +MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJDTjEwMC4GA1UE +CgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNB +IEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkxMjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEw +MC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQD +DAxDRkNBIEVWIFJPT1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnV +BU03sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpLTIpTUnrD +7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5/ZOkVIBMUtRSqy5J35DN +uF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp7hZZLDRJGqgG16iI0gNyejLi6mhNbiyW +ZXvKWfry4t3uMCz7zEasxGPrb382KzRzEpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7 +xzbh72fROdOXW3NiGUgthxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9f +py25IGvPa931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqotaK8K +gWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNgTnYGmE69g60dWIol +hdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfVPKPtl8MeNPo4+QgO48BdK4PRVmrJ +tqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hvcWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAf +BgNVHSMEGDAWgBTj/i39KNALtbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB +/wQEAwIBBjAdBgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB +ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObTej/tUxPQ4i9q +ecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdLjOztUmCypAbqTuv0axn96/Ua +4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBSESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sG +E5uPhnEFtC+NiWYzKXZUmhH4J/qyP5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfX +BDrDMlI1Dlb4pd19xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjn +aH9dCi77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN5mydLIhy +PDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe/v5WOaHIz16eGWRGENoX +kbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+ZAAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3C +ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su +-----END CERTIFICATE----- + +TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5 +========================================================= +-----BEGIN CERTIFICATE----- +MIIEJzCCAw+gAwIBAgIHAI4X/iQggTANBgkqhkiG9w0BAQsFADCBsTELMAkGA1UEBhMCVFIxDzAN +BgNVBAcMBkFua2FyYTFNMEsGA1UECgxEVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp +bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4xQjBABgNVBAMMOVTDnFJLVFJVU1Qg +RWxla3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSBINTAeFw0xMzA0MzAw +ODA3MDFaFw0yMzA0MjgwODA3MDFaMIGxMQswCQYDVQQGEwJUUjEPMA0GA1UEBwwGQW5rYXJhMU0w +SwYDVQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnE +n2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBFbGVrdHJvbmlrIFNlcnRp +ZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEApCUZ4WWe60ghUEoI5RHwWrom/4NZzkQqL/7hzmAD/I0Dpe3/a6i6zDQGn1k19uwsu537 +jVJp45wnEFPzpALFp/kRGml1bsMdi9GYjZOHp3GXDSHHmflS0yxjXVW86B8BSLlg/kJK9siArs1m +ep5Fimh34khon6La8eHBEJ/rPCmBp+EyCNSgBbGM+42WAA4+Jd9ThiI7/PS98wl+d+yG6w8z5UNP +9FR1bSmZLmZaQ9/LXMrI5Tjxfjs1nQ/0xVqhzPMggCTTV+wVunUlm+hkS7M0hO8EuPbJbKoCPrZV +4jI3X/xml1/N1p7HIL9Nxqw/dV8c7TKcfGkAaZHjIxhT6QIDAQABo0IwQDAdBgNVHQ4EFgQUVpkH +HtOsDGlktAxQR95DLL4gwPswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI +hvcNAQELBQADggEBAJ5FdnsXSDLyOIspve6WSk6BGLFRRyDN0GSxDsnZAdkJzsiZ3GglE9Rc8qPo +BP5yCccLqh0lVX6Wmle3usURehnmp349hQ71+S4pL+f5bFgWV1Al9j4uPqrtd3GqqpmWRgqujuwq +URawXs3qZwQcWDD1YIq9pr1N5Za0/EKJAWv2cMhQOQwt1WbZyNKzMrcbGW3LM/nfpeYVhDfwwvJl +lpKQd/Ct9JDpEXjXk4nAPQu6KfTomZ1yju2dL+6SfaHx/126M2CFYv4HAqGEVka+lgqaE9chTLd8 +B59OTj+RdPsnnRHM3eaxynFNExc5JsUpISuTKWqW+qtB4Uu2NQvAmxU= +-----END CERTIFICATE----- + +TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H6 +========================================================= +-----BEGIN CERTIFICATE----- +MIIEJjCCAw6gAwIBAgIGfaHyZeyKMA0GCSqGSIb3DQEBCwUAMIGxMQswCQYDVQQGEwJUUjEPMA0G +A1UEBwwGQW5rYXJhMU0wSwYDVQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls +acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBF +bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg2MB4XDTEzMTIxODA5 +MDQxMFoXDTIzMTIxNjA5MDQxMFowgbExCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExTTBL +BgNVBAoMRFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBCaWxpxZ9pbSBHw7x2ZW5sacSf +aSBIaXptZXRsZXJpIEEuxZ4uMUIwQAYDVQQDDDlUw5xSS1RSVVNUIEVsZWt0cm9uaWsgU2VydGlm +aWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLEgSDYwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQCdsGjW6L0UlqMACprx9MfMkU1xeHe59yEmFXNRFpQJRwXiM/VomjX/3EsvMsew7eKC5W/a +2uqsxgbPJQ1BgfbBOCK9+bGlprMBvD9QFyv26WZV1DOzXPhDIHiTVRZwGTLmiddk671IUP320EED +wnS3/faAz1vFq6TWlRKb55cTMgPp1KtDWxbtMyJkKbbSk60vbNg9tvYdDjTu0n2pVQ8g9P0pu5Fb +HH3GQjhtQiht1AH7zYiXSX6484P4tZgvsycLSF5W506jM7NE1qXyGJTtHB6plVxiSvgNZ1GpryHV ++DKdeboaX+UEVU0TRv/yz3THGmNtwx8XEsMeED5gCLMxAgMBAAGjQjBAMB0GA1UdDgQWBBTdVRcT +9qzoSCHK77Wv0QAy7Z6MtTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG +9w0BAQsFAAOCAQEAb1gNl0OqFlQ+v6nfkkU/hQu7VtMMUszIv3ZnXuaqs6fvuay0EBQNdH49ba3R +fdCaqaXKGDsCQC4qnFAUi/5XfldcEQlLNkVS9z2sFP1E34uXI9TDwe7UU5X+LEr+DXCqu4svLcsy +o4LyVN/Y8t3XSHLuSqMplsNEzm61kod2pLv0kmzOLBQJZo6NrRa1xxsJYTvjIKIDgI6tflEATseW +hvtDmHd9KMeP2Cpu54Rvl0EpABZeTeIT6lnAY2c6RPuY/ATTMHKm9ocJV612ph1jmv3XZch4gyt1 +O6VbuA1df74jrlZVlFjvH4GMKrLN5ptjnhi85WsGtAuYSyher4hYyw== +-----END CERTIFICATE----- + +Certinomis - Root CA +==================== +-----BEGIN CERTIFICATE----- +MIIFkjCCA3qgAwIBAgIBATANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJGUjETMBEGA1UEChMK +Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxHTAbBgNVBAMTFENlcnRpbm9taXMg +LSBSb290IENBMB4XDTEzMTAyMTA5MTcxOFoXDTMzMTAyMTA5MTcxOFowWjELMAkGA1UEBhMCRlIx +EzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMR0wGwYDVQQDExRD +ZXJ0aW5vbWlzIC0gUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANTMCQos +P5L2fxSeC5yaah1AMGT9qt8OHgZbn1CF6s2Nq0Nn3rD6foCWnoR4kkjW4znuzuRZWJflLieY6pOo +d5tK8O90gC3rMB+12ceAnGInkYjwSond3IjmFPnVAy//ldu9n+ws+hQVWZUKxkd8aRi5pwP5ynap +z8dvtF4F/u7BUrJ1Mofs7SlmO/NKFoL21prbcpjp3vDFTKWrteoB4owuZH9kb/2jJZOLyKIOSY00 +8B/sWEUuNKqEUL3nskoTuLAPrjhdsKkb5nPJWqHZZkCqqU2mNAKthH6yI8H7KsZn9DS2sJVqM09x +RLWtwHkziOC/7aOgFLScCbAK42C++PhmiM1b8XcF4LVzbsF9Ri6OSyemzTUK/eVNfaoqoynHWmgE +6OXWk6RiwsXm9E/G+Z8ajYJJGYrKWUM66A0ywfRMEwNvbqY/kXPLynNvEiCL7sCCeN5LLsJJwx3t +FvYk9CcbXFcx3FXuqB5vbKziRcxXV4p1VxngtViZSTYxPDMBbRZKzbgqg4SGm/lg0h9tkQPTYKbV +PZrdd5A9NaSfD171UkRpucC63M9933zZxKyGIjK8e2uR73r4F2iw4lNVYC2vPsKD2NkJK/DAZNuH +i5HMkesE/Xa0lZrmFAYb1TQdvtj/dBxThZngWVJKYe2InmtJiUZ+IFrZ50rlau7SZRFDAgMBAAGj +YzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTvkUz1pcMw6C8I +6tNxIqSSaHh02TAfBgNVHSMEGDAWgBTvkUz1pcMw6C8I6tNxIqSSaHh02TANBgkqhkiG9w0BAQsF +AAOCAgEAfj1U2iJdGlg+O1QnurrMyOMaauo++RLrVl89UM7g6kgmJs95Vn6RHJk/0KGRHCwPT5iV +WVO90CLYiF2cN/z7ZMF4jIuaYAnq1fohX9B0ZedQxb8uuQsLrbWwF6YSjNRieOpWauwK0kDDPAUw +Pk2Ut59KA9N9J0u2/kTO+hkzGm2kQtHdzMjI1xZSg081lLMSVX3l4kLr5JyTCcBMWwerx20RoFAX +lCOotQqSD7J6wWAsOMwaplv/8gzjqh8c3LigkyfeY+N/IZ865Z764BNqdeuWXGKRlI5nU7aJ+BIJ +y29SWwNyhlCVCNSNh4YVH5Uk2KRvms6knZtt0rJ2BobGVgjF6wnaNsIbW0G+YSrjcOa4pvi2WsS9 +Iff/ql+hbHY5ZtbqTFXhADObE5hjyW/QASAJN1LnDE8+zbz1X5YnpyACleAu6AdBBR8Vbtaw5Bng +DwKTACdyxYvRVB9dSsNAl35VpnzBMwQUAR1JIGkLGZOdblgi90AMRgwjY/M50n92Uaf0yKHxDHYi +I0ZSKS3io0EHVmmY0gUJvGnHWmHNj4FgFU2A3ZDifcRQ8ow7bkrHxuaAKzyBvBGAFhAn1/DNP3nM +cyrDflOR1m749fPH0FFNjkulW+YZFzvWgQncItzujrnEj1PhZ7szuIgVRs/taTX/dQ1G885x4cVr +hkIGuUE= +-----END CERTIFICATE----- \ No newline at end of file diff --git a/system/vendor/michelf/php-markdown/.editorconfig b/system/vendor/michelf/php-markdown/.editorconfig new file mode 100644 index 0000000..179d40c --- /dev/null +++ b/system/vendor/michelf/php-markdown/.editorconfig @@ -0,0 +1,11 @@ +# EditorConfig is awesome: https://EditorConfig.org +root = true + +[*] +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = false + +[*.php] +indent_style = tab +insert_final_newline = true diff --git a/system/vendor/michelf/php-markdown/.gitignore b/system/vendor/michelf/php-markdown/.gitignore new file mode 100644 index 0000000..5bd6475 --- /dev/null +++ b/system/vendor/michelf/php-markdown/.gitignore @@ -0,0 +1,3 @@ +*~ +/composer.lock +/vendor/ diff --git a/system/vendor/michelf/php-markdown/.scrutinizer.yml b/system/vendor/michelf/php-markdown/.scrutinizer.yml new file mode 100644 index 0000000..b4f5dfb --- /dev/null +++ b/system/vendor/michelf/php-markdown/.scrutinizer.yml @@ -0,0 +1,36 @@ +build: + environment: + php: + version: '7.0.20' + nodes: + analysis: + project_setup: + override: + - 'true' + tests: + override: + - + command: 'vendor/bin/phpunit --coverage-clover=clover.xml' + coverage: + file: 'clover.xml' + format: 'clover' + - + command: phpcs-run + use_website_config: true + environment: + node: + version: 6.0.0 + tests: true +filter: + excluded_paths: + - 'test/*' +checks: + php: true +coding_style: + php: + indentation: + general: + use_tabs: true + spaces: + around_operators: + concatenation: true diff --git a/system/vendor/michelf/php-markdown/.travis.yml b/system/vendor/michelf/php-markdown/.travis.yml new file mode 100644 index 0000000..440045b --- /dev/null +++ b/system/vendor/michelf/php-markdown/.travis.yml @@ -0,0 +1,33 @@ +language: php + +matrix: + include: + - php: hhvm-3.18 + dist: trusty + - php: 5.3 + dist: precise + - php: 5.4 + dist: trusty + - php: 5.5 + dist: trusty + - php: 5.6 + dist: xenial + - php: 7.0 + dist: xenial + - php: 7.1 + dist: bionic + - php: 7.2 + dist: bionic + - php: 7.3 + dist: bionic + - php: 7.4 + dist: bionic + +install: + - composer install --prefer-dist + +script: + - vendor/bin/phpunit --log-junit=phpunit.log + +notifications: + email: false diff --git a/system/vendor/michelf/php-markdown/License.md b/system/vendor/michelf/php-markdown/License.md new file mode 100644 index 0000000..25d1e16 --- /dev/null +++ b/system/vendor/michelf/php-markdown/License.md @@ -0,0 +1,36 @@ +PHP Markdown Lib +Copyright (c) 2004-2021 Michel Fortin + +All rights reserved. + +Based on Markdown +Copyright (c) 2003-2006 John Gruber + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +* Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +* Neither the name "Markdown" nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +This software is provided by the copyright holders and contributors "as +is" and any express or implied warranties, including, but not limited +to, the implied warranties of merchantability and fitness for a +particular purpose are disclaimed. In no event shall the copyright owner +or contributors be liable for any direct, indirect, incidental, special, +exemplary, or consequential damages (including, but not limited to, +procurement of substitute goods or services; loss of use, data, or +profits; or business interruption) however caused and on any theory of +liability, whether in contract, strict liability, or tort (including +negligence or otherwise) arising in any way out of the use of this +software, even if advised of the possibility of such damage. diff --git a/system/vendor/michelf/php-markdown/Michelf/Markdown.inc.php b/system/vendor/michelf/php-markdown/Michelf/Markdown.inc.php new file mode 100644 index 0000000..e2bd380 --- /dev/null +++ b/system/vendor/michelf/php-markdown/Michelf/Markdown.inc.php @@ -0,0 +1,10 @@ + + * @copyright 2004-2021 Michel Fortin + * @copyright (Original Markdown) 2004-2006 John Gruber + */ + +namespace Michelf; + +/** + * Markdown Parser Class + */ +class Markdown implements MarkdownInterface { + /** + * Define the package version + * @var string + */ + const MARKDOWNLIB_VERSION = "1.9.1"; + + /** + * Simple function interface - Initialize the parser and return the result + * of its transform method. This will work fine for derived classes too. + * + * @api + * + * @param string $text + * @return string + */ + public static function defaultTransform($text) { + // Take parser class on which this function was called. + $parser_class = \get_called_class(); + + // Try to take parser from the static parser list + static $parser_list; + $parser =& $parser_list[$parser_class]; + + // Create the parser it not already set + if (!$parser) { + $parser = new $parser_class; + } + + // Transform text using parser. + return $parser->transform($text); + } + + /** + * Configuration variables + */ + + /** + * Change to ">" for HTML output. + * @var string + */ + public $empty_element_suffix = " />"; + + /** + * The width of indentation of the output markup + * @var int + */ + public $tab_width = 4; + + /** + * Change to `true` to disallow markup or entities. + * @var boolean + */ + public $no_markup = false; + public $no_entities = false; + + + /** + * Change to `true` to enable line breaks on \n without two trailling spaces + * @var boolean + */ + public $hard_wrap = false; + + /** + * Predefined URLs and titles for reference links and images. + * @var array + */ + public $predef_urls = array(); + public $predef_titles = array(); + + /** + * Optional filter function for URLs + * @var callable|null + */ + public $url_filter_func = null; + + /** + * Optional header id="" generation callback function. + * @var callable|null + */ + public $header_id_func = null; + + /** + * Optional function for converting code block content to HTML + * @var callable|null + */ + public $code_block_content_func = null; + + /** + * Optional function for converting code span content to HTML. + * @var callable|null + */ + public $code_span_content_func = null; + + /** + * Class attribute to toggle "enhanced ordered list" behaviour + * setting this to true will allow ordered lists to start from the index + * number that is defined first. + * + * For example: + * 2. List item two + * 3. List item three + * + * Becomes: + *
          + *
        1. List item two
        2. + *
        3. List item three
        4. + *
        + * + * @var bool + */ + public $enhanced_ordered_list = false; + + /** + * Parser implementation + */ + + /** + * Regex to match balanced [brackets]. + * Needed to insert a maximum bracked depth while converting to PHP. + * @var int + */ + protected $nested_brackets_depth = 6; + protected $nested_brackets_re; + + protected $nested_url_parenthesis_depth = 4; + protected $nested_url_parenthesis_re; + + /** + * Table of hash values for escaped characters: + * @var string + */ + protected $escape_chars = '\`*_{}[]()>#+-.!'; + protected $escape_chars_re; + + /** + * Constructor function. Initialize appropriate member variables. + * @return void + */ + public function __construct() { + $this->_initDetab(); + $this->prepareItalicsAndBold(); + + $this->nested_brackets_re = + str_repeat('(?>[^\[\]]+|\[', $this->nested_brackets_depth). + str_repeat('\])*', $this->nested_brackets_depth); + + $this->nested_url_parenthesis_re = + str_repeat('(?>[^()\s]+|\(', $this->nested_url_parenthesis_depth). + str_repeat('(?>\)))*', $this->nested_url_parenthesis_depth); + + $this->escape_chars_re = '['.preg_quote($this->escape_chars).']'; + + // Sort document, block, and span gamut in ascendent priority order. + asort($this->document_gamut); + asort($this->block_gamut); + asort($this->span_gamut); + } + + + /** + * Internal hashes used during transformation. + * @var array + */ + protected $urls = array(); + protected $titles = array(); + protected $html_hashes = array(); + + /** + * Status flag to avoid invalid nesting. + * @var boolean + */ + protected $in_anchor = false; + + /** + * Status flag to avoid invalid nesting. + * @var boolean + */ + protected $in_emphasis_processing = false; + + /** + * Called before the transformation process starts to setup parser states. + * @return void + */ + protected function setup() { + // Clear global hashes. + $this->urls = $this->predef_urls; + $this->titles = $this->predef_titles; + $this->html_hashes = array(); + $this->in_anchor = false; + $this->in_emphasis_processing = false; + } + + /** + * Called after the transformation process to clear any variable which may + * be taking up memory unnecessarly. + * @return void + */ + protected function teardown() { + $this->urls = array(); + $this->titles = array(); + $this->html_hashes = array(); + } + + /** + * Main function. Performs some preprocessing on the input text and pass + * it through the document gamut. + * + * @api + * + * @param string $text + * @return string + */ + public function transform($text) { + $this->setup(); + + # Remove UTF-8 BOM and marker character in input, if present. + $text = preg_replace('{^\xEF\xBB\xBF|\x1A}', '', $text); + + # Standardize line endings: + # DOS to Unix and Mac to Unix + $text = preg_replace('{\r\n?}', "\n", $text); + + # Make sure $text ends with a couple of newlines: + $text .= "\n\n"; + + # Convert all tabs to spaces. + $text = $this->detab($text); + + # Turn block-level HTML blocks into hash entries + $text = $this->hashHTMLBlocks($text); + + # Strip any lines consisting only of spaces and tabs. + # This makes subsequent regexen easier to write, because we can + # match consecutive blank lines with /\n+/ instead of something + # contorted like /[ ]*\n+/ . + $text = preg_replace('/^[ ]+$/m', '', $text); + + # Run document gamut methods. + foreach ($this->document_gamut as $method => $priority) { + $text = $this->$method($text); + } + + $this->teardown(); + + return $text . "\n"; + } + + /** + * Define the document gamut + * @var array + */ + protected $document_gamut = array( + // Strip link definitions, store in hashes. + "stripLinkDefinitions" => 20, + "runBasicBlockGamut" => 30, + ); + + /** + * Strips link definitions from text, stores the URLs and titles in + * hash references + * @param string $text + * @return string + */ + protected function stripLinkDefinitions($text) { + + $less_than_tab = $this->tab_width - 1; + + // Link defs are in the form: ^[id]: url "optional title" + $text = preg_replace_callback('{ + ^[ ]{0,'.$less_than_tab.'}\[(.+)\][ ]?: # id = $1 + [ ]* + \n? # maybe *one* newline + [ ]* + (?: + <(.+?)> # url = $2 + | + (\S+?) # url = $3 + ) + [ ]* + \n? # maybe one newline + [ ]* + (?: + (?<=\s) # lookbehind for whitespace + ["(] + (.*?) # title = $4 + [")] + [ ]* + )? # title is optional + (?:\n+|\Z) + }xm', + array($this, '_stripLinkDefinitions_callback'), + $text + ); + return $text; + } + + /** + * The callback to strip link definitions + * @param array $matches + * @return string + */ + protected function _stripLinkDefinitions_callback($matches) { + $link_id = strtolower($matches[1]); + $url = $matches[2] == '' ? $matches[3] : $matches[2]; + $this->urls[$link_id] = $url; + $this->titles[$link_id] =& $matches[4]; + return ''; // String that will replace the block + } + + /** + * Hashify HTML blocks + * @param string $text + * @return string + */ + protected function hashHTMLBlocks($text) { + if ($this->no_markup) { + return $text; + } + + $less_than_tab = $this->tab_width - 1; + + /** + * Hashify HTML blocks: + * + * We only want to do this for block-level HTML tags, such as headers, + * lists, and tables. That's because we still want to wrap

        s around + * "paragraphs" that are wrapped in non-block-level tags, such as + * anchors, phrase emphasis, and spans. The list of tags we're looking + * for is hard-coded: + * + * * List "a" is made of tags which can be both inline or block-level. + * These will be treated block-level when the start tag is alone on + * its line, otherwise they're not matched here and will be taken as + * inline later. + * * List "b" is made of tags which are always block-level; + */ + $block_tags_a_re = 'ins|del'; + $block_tags_b_re = 'p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|address|'. + 'script|noscript|style|form|fieldset|iframe|math|svg|'. + 'article|section|nav|aside|hgroup|header|footer|'. + 'figure|details|summary'; + + // Regular expression for the content of a block tag. + $nested_tags_level = 4; + $attr = ' + (?> # optional tag attributes + \s # starts with whitespace + (?> + [^>"/]+ # text outside quotes + | + /+(?!>) # slash not followed by ">" + | + "[^"]*" # text inside double quotes (tolerate ">") + | + \'[^\']*\' # text inside single quotes (tolerate ">") + )* + )? + '; + $content = + str_repeat(' + (?> + [^<]+ # content without tag + | + <\2 # nested opening tag + '.$attr.' # attributes + (?> + /> + | + >', $nested_tags_level). // end of opening tag + '.*?'. // last level nested tag content + str_repeat(' + # closing nested tag + ) + | + <(?!/\2\s*> # other tags with a different name + ) + )*', + $nested_tags_level); + $content2 = str_replace('\2', '\3', $content); + + /** + * First, look for nested blocks, e.g.: + *

        + *
        + * tags for inner block must be indented. + *
        + *
        + * + * The outermost tags must start at the left margin for this to match, + * and the inner nested divs must be indented. + * We need to do this before the next, more liberal match, because the + * next match will start at the first `
        ` and stop at the + * first `
        `. + */ + $text = preg_replace_callback('{(?> + (?> + (?<=\n) # Starting on its own line + | # or + \A\n? # the at beginning of the doc + ) + ( # save in $1 + + # Match from `\n` to `\n`, handling nested tags + # in between. + + [ ]{0,'.$less_than_tab.'} + <('.$block_tags_b_re.')# start tag = $2 + '.$attr.'> # attributes followed by > and \n + '.$content.' # content, support nesting + # the matching end tag + [ ]* # trailing spaces/tabs + (?=\n+|\Z) # followed by a newline or end of document + + | # Special version for tags of group a. + + [ ]{0,'.$less_than_tab.'} + <('.$block_tags_a_re.')# start tag = $3 + '.$attr.'>[ ]*\n # attributes followed by > + '.$content2.' # content, support nesting + # the matching end tag + [ ]* # trailing spaces/tabs + (?=\n+|\Z) # followed by a newline or end of document + + | # Special case just for
        . It was easier to make a special + # case than to make the other regex more complicated. + + [ ]{0,'.$less_than_tab.'} + <(hr) # start tag = $2 + '.$attr.' # attributes + /?> # the matching end tag + [ ]* + (?=\n{2,}|\Z) # followed by a blank line or end of document + + | # Special case for standalone HTML comments: + + [ ]{0,'.$less_than_tab.'} + (?s: + + ) + [ ]* + (?=\n{2,}|\Z) # followed by a blank line or end of document + + | # PHP and ASP-style processor instructions ( + ) + [ ]* + (?=\n{2,}|\Z) # followed by a blank line or end of document + + ) + )}Sxmi', + array($this, '_hashHTMLBlocks_callback'), + $text + ); + + return $text; + } + + /** + * The callback for hashing HTML blocks + * @param string $matches + * @return string + */ + protected function _hashHTMLBlocks_callback($matches) { + $text = $matches[1]; + $key = $this->hashBlock($text); + return "\n\n$key\n\n"; + } + + /** + * Called whenever a tag must be hashed when a function insert an atomic + * element in the text stream. Passing $text to through this function gives + * a unique text-token which will be reverted back when calling unhash. + * + * The $boundary argument specify what character should be used to surround + * the token. By convension, "B" is used for block elements that needs not + * to be wrapped into paragraph tags at the end, ":" is used for elements + * that are word separators and "X" is used in the general case. + * + * @param string $text + * @param string $boundary + * @return string + */ + protected function hashPart($text, $boundary = 'X') { + // Swap back any tag hash found in $text so we do not have to `unhash` + // multiple times at the end. + $text = $this->unhash($text); + + // Then hash the block. + static $i = 0; + $key = "$boundary\x1A" . ++$i . $boundary; + $this->html_hashes[$key] = $text; + return $key; // String that will replace the tag. + } + + /** + * Shortcut function for hashPart with block-level boundaries. + * @param string $text + * @return string + */ + protected function hashBlock($text) { + return $this->hashPart($text, 'B'); + } + + /** + * Define the block gamut - these are all the transformations that form + * block-level tags like paragraphs, headers, and list items. + * @var array + */ + protected $block_gamut = array( + "doHeaders" => 10, + "doHorizontalRules" => 20, + "doLists" => 40, + "doCodeBlocks" => 50, + "doBlockQuotes" => 60, + ); + + /** + * Run block gamut tranformations. + * + * We need to escape raw HTML in Markdown source before doing anything + * else. This need to be done for each block, and not only at the + * begining in the Markdown function since hashed blocks can be part of + * list items and could have been indented. Indented blocks would have + * been seen as a code block in a previous pass of hashHTMLBlocks. + * + * @param string $text + * @return string + */ + protected function runBlockGamut($text) { + $text = $this->hashHTMLBlocks($text); + return $this->runBasicBlockGamut($text); + } + + /** + * Run block gamut tranformations, without hashing HTML blocks. This is + * useful when HTML blocks are known to be already hashed, like in the first + * whole-document pass. + * + * @param string $text + * @return string + */ + protected function runBasicBlockGamut($text) { + + foreach ($this->block_gamut as $method => $priority) { + $text = $this->$method($text); + } + + // Finally form paragraph and restore hashed blocks. + $text = $this->formParagraphs($text); + + return $text; + } + + /** + * Convert horizontal rules + * @param string $text + * @return string + */ + protected function doHorizontalRules($text) { + return preg_replace( + '{ + ^[ ]{0,3} # Leading space + ([-*_]) # $1: First marker + (?> # Repeated marker group + [ ]{0,2} # Zero, one, or two spaces. + \1 # Marker character + ){2,} # Group repeated at least twice + [ ]* # Tailing spaces + $ # End of line. + }mx', + "\n".$this->hashBlock("empty_element_suffix")."\n", + $text + ); + } + + /** + * These are all the transformations that occur *within* block-level + * tags like paragraphs, headers, and list items. + * @var array + */ + protected $span_gamut = array( + // Process character escapes, code spans, and inline HTML + // in one shot. + "parseSpan" => -30, + // Process anchor and image tags. Images must come first, + // because ![foo][f] looks like an anchor. + "doImages" => 10, + "doAnchors" => 20, + // Make links out of things like `` + // Must come after doAnchors, because you can use < and > + // delimiters in inline links like [this](). + "doAutoLinks" => 30, + "encodeAmpsAndAngles" => 40, + "doItalicsAndBold" => 50, + "doHardBreaks" => 60, + ); + + /** + * Run span gamut transformations + * @param string $text + * @return string + */ + protected function runSpanGamut($text) { + foreach ($this->span_gamut as $method => $priority) { + $text = $this->$method($text); + } + + return $text; + } + + /** + * Do hard breaks + * @param string $text + * @return string + */ + protected function doHardBreaks($text) { + if ($this->hard_wrap) { + return preg_replace_callback('/ *\n/', + array($this, '_doHardBreaks_callback'), $text); + } else { + return preg_replace_callback('/ {2,}\n/', + array($this, '_doHardBreaks_callback'), $text); + } + } + + /** + * Trigger part hashing for the hard break (callback method) + * @param array $matches + * @return string + */ + protected function _doHardBreaks_callback($matches) { + return $this->hashPart("empty_element_suffix\n"); + } + + /** + * Turn Markdown link shortcuts into XHTML tags. + * @param string $text + * @return string + */ + protected function doAnchors($text) { + if ($this->in_anchor) { + return $text; + } + $this->in_anchor = true; + + // First, handle reference-style links: [link text] [id] + $text = preg_replace_callback('{ + ( # wrap whole match in $1 + \[ + ('.$this->nested_brackets_re.') # link text = $2 + \] + + [ ]? # one optional space + (?:\n[ ]*)? # one optional newline followed by spaces + + \[ + (.*?) # id = $3 + \] + ) + }xs', + array($this, '_doAnchors_reference_callback'), $text); + + // Next, inline-style links: [link text](url "optional title") + $text = preg_replace_callback('{ + ( # wrap whole match in $1 + \[ + ('.$this->nested_brackets_re.') # link text = $2 + \] + \( # literal paren + [ \n]* + (?: + <(.+?)> # href = $3 + | + ('.$this->nested_url_parenthesis_re.') # href = $4 + ) + [ \n]* + ( # $5 + ([\'"]) # quote char = $6 + (.*?) # Title = $7 + \6 # matching quote + [ \n]* # ignore any spaces/tabs between closing quote and ) + )? # title is optional + \) + ) + }xs', + array($this, '_doAnchors_inline_callback'), $text); + + // Last, handle reference-style shortcuts: [link text] + // These must come last in case you've also got [link text][1] + // or [link text](/foo) + $text = preg_replace_callback('{ + ( # wrap whole match in $1 + \[ + ([^\[\]]+) # link text = $2; can\'t contain [ or ] + \] + ) + }xs', + array($this, '_doAnchors_reference_callback'), $text); + + $this->in_anchor = false; + return $text; + } + + /** + * Callback method to parse referenced anchors + * @param string $matches + * @return string + */ + protected function _doAnchors_reference_callback($matches) { + $whole_match = $matches[1]; + $link_text = $matches[2]; + $link_id =& $matches[3]; + + if ($link_id == "") { + // for shortcut links like [this][] or [this]. + $link_id = $link_text; + } + + // lower-case and turn embedded newlines into spaces + $link_id = strtolower($link_id); + $link_id = preg_replace('{[ ]?\n}', ' ', $link_id); + + if (isset($this->urls[$link_id])) { + $url = $this->urls[$link_id]; + $url = $this->encodeURLAttribute($url); + + $result = "titles[$link_id] ) ) { + $title = $this->titles[$link_id]; + $title = $this->encodeAttribute($title); + $result .= " title=\"$title\""; + } + + $link_text = $this->runSpanGamut($link_text); + $result .= ">$link_text"; + $result = $this->hashPart($result); + } else { + $result = $whole_match; + } + return $result; + } + + /** + * Callback method to parse inline anchors + * @param string $matches + * @return string + */ + protected function _doAnchors_inline_callback($matches) { + $link_text = $this->runSpanGamut($matches[2]); + $url = $matches[3] === '' ? $matches[4] : $matches[3]; + $title =& $matches[7]; + + // If the URL was of the form it got caught by the HTML + // tag parser and hashed. Need to reverse the process before using + // the URL. + $unhashed = $this->unhash($url); + if ($unhashed !== $url) + $url = preg_replace('/^<(.*)>$/', '\1', $unhashed); + + $url = $this->encodeURLAttribute($url); + + $result = "encodeAttribute($title); + $result .= " title=\"$title\""; + } + + $link_text = $this->runSpanGamut($link_text); + $result .= ">$link_text"; + + return $this->hashPart($result); + } + + /** + * Turn Markdown image shortcuts into tags. + * @param string $text + * @return string + */ + protected function doImages($text) { + // First, handle reference-style labeled images: ![alt text][id] + $text = preg_replace_callback('{ + ( # wrap whole match in $1 + !\[ + ('.$this->nested_brackets_re.') # alt text = $2 + \] + + [ ]? # one optional space + (?:\n[ ]*)? # one optional newline followed by spaces + + \[ + (.*?) # id = $3 + \] + + ) + }xs', + array($this, '_doImages_reference_callback'), $text); + + // Next, handle inline images: ![alt text](url "optional title") + // Don't forget: encode * and _ + $text = preg_replace_callback('{ + ( # wrap whole match in $1 + !\[ + ('.$this->nested_brackets_re.') # alt text = $2 + \] + \s? # One optional whitespace character + \( # literal paren + [ \n]* + (?: + <(\S*)> # src url = $3 + | + ('.$this->nested_url_parenthesis_re.') # src url = $4 + ) + [ \n]* + ( # $5 + ([\'"]) # quote char = $6 + (.*?) # title = $7 + \6 # matching quote + [ \n]* + )? # title is optional + \) + ) + }xs', + array($this, '_doImages_inline_callback'), $text); + + return $text; + } + + /** + * Callback to parse references image tags + * @param array $matches + * @return string + */ + protected function _doImages_reference_callback($matches) { + $whole_match = $matches[1]; + $alt_text = $matches[2]; + $link_id = strtolower($matches[3]); + + if ($link_id == "") { + $link_id = strtolower($alt_text); // for shortcut links like ![this][]. + } + + $alt_text = $this->encodeAttribute($alt_text); + if (isset($this->urls[$link_id])) { + $url = $this->encodeURLAttribute($this->urls[$link_id]); + $result = "\"$alt_text\"";titles[$link_id])) { + $title = $this->titles[$link_id]; + $title = $this->encodeAttribute($title); + $result .= " title=\"$title\""; + } + $result .= $this->empty_element_suffix; + $result = $this->hashPart($result); + } else { + // If there's no such link ID, leave intact: + $result = $whole_match; + } + + return $result; + } + + /** + * Callback to parse inline image tags + * @param array $matches + * @return string + */ + protected function _doImages_inline_callback($matches) { + $whole_match = $matches[1]; + $alt_text = $matches[2]; + $url = $matches[3] == '' ? $matches[4] : $matches[3]; + $title =& $matches[7]; + + $alt_text = $this->encodeAttribute($alt_text); + $url = $this->encodeURLAttribute($url); + $result = "\"$alt_text\"";encodeAttribute($title); + $result .= " title=\"$title\""; // $title already quoted + } + $result .= $this->empty_element_suffix; + + return $this->hashPart($result); + } + + /** + * Parse Markdown heading elements to HTML + * @param string $text + * @return string + */ + protected function doHeaders($text) { + /** + * Setext-style headers: + * Header 1 + * ======== + * + * Header 2 + * -------- + */ + $text = preg_replace_callback('{ ^(.+?)[ ]*\n(=+|-+)[ ]*\n+ }mx', + array($this, '_doHeaders_callback_setext'), $text); + + /** + * atx-style headers: + * # Header 1 + * ## Header 2 + * ## Header 2 with closing hashes ## + * ... + * ###### Header 6 + */ + $text = preg_replace_callback('{ + ^(\#{1,6}) # $1 = string of #\'s + [ ]* + (.+?) # $2 = Header text + [ ]* + \#* # optional closing #\'s (not counted) + \n+ + }xm', + array($this, '_doHeaders_callback_atx'), $text); + + return $text; + } + + /** + * Setext header parsing callback + * @param array $matches + * @return string + */ + protected function _doHeaders_callback_setext($matches) { + // Terrible hack to check we haven't found an empty list item. + if ($matches[2] == '-' && preg_match('{^-(?: |$)}', $matches[1])) { + return $matches[0]; + } + + $level = $matches[2][0] == '=' ? 1 : 2; + + // ID attribute generation + $idAtt = $this->_generateIdFromHeaderValue($matches[1]); + + $block = "".$this->runSpanGamut($matches[1]).""; + return "\n" . $this->hashBlock($block) . "\n\n"; + } + + /** + * ATX header parsing callback + * @param array $matches + * @return string + */ + protected function _doHeaders_callback_atx($matches) { + // ID attribute generation + $idAtt = $this->_generateIdFromHeaderValue($matches[2]); + + $level = strlen($matches[1]); + $block = "".$this->runSpanGamut($matches[2]).""; + return "\n" . $this->hashBlock($block) . "\n\n"; + } + + /** + * If a header_id_func property is set, we can use it to automatically + * generate an id attribute. + * + * This method returns a string in the form id="foo", or an empty string + * otherwise. + * @param string $headerValue + * @return string + */ + protected function _generateIdFromHeaderValue($headerValue) { + if (!is_callable($this->header_id_func)) { + return ""; + } + + $idValue = call_user_func($this->header_id_func, $headerValue); + if (!$idValue) { + return ""; + } + + return ' id="' . $this->encodeAttribute($idValue) . '"'; + } + + /** + * Form HTML ordered (numbered) and unordered (bulleted) lists. + * @param string $text + * @return string + */ + protected function doLists($text) { + $less_than_tab = $this->tab_width - 1; + + // Re-usable patterns to match list item bullets and number markers: + $marker_ul_re = '[*+-]'; + $marker_ol_re = '\d+[\.]'; + + $markers_relist = array( + $marker_ul_re => $marker_ol_re, + $marker_ol_re => $marker_ul_re, + ); + + foreach ($markers_relist as $marker_re => $other_marker_re) { + // Re-usable pattern to match any entirel ul or ol list: + $whole_list_re = ' + ( # $1 = whole list + ( # $2 + ([ ]{0,'.$less_than_tab.'}) # $3 = number of spaces + ('.$marker_re.') # $4 = first list item marker + [ ]+ + ) + (?s:.+?) + ( # $5 + \z + | + \n{2,} + (?=\S) + (?! # Negative lookahead for another list item marker + [ ]* + '.$marker_re.'[ ]+ + ) + | + (?= # Lookahead for another kind of list + \n + \3 # Must have the same indentation + '.$other_marker_re.'[ ]+ + ) + ) + ) + '; // mx + + // We use a different prefix before nested lists than top-level lists. + //See extended comment in _ProcessListItems(). + + if ($this->list_level) { + $text = preg_replace_callback('{ + ^ + '.$whole_list_re.' + }mx', + array($this, '_doLists_callback'), $text); + } else { + $text = preg_replace_callback('{ + (?:(?<=\n)\n|\A\n?) # Must eat the newline + '.$whole_list_re.' + }mx', + array($this, '_doLists_callback'), $text); + } + } + + return $text; + } + + /** + * List parsing callback + * @param array $matches + * @return string + */ + protected function _doLists_callback($matches) { + // Re-usable patterns to match list item bullets and number markers: + $marker_ul_re = '[*+-]'; + $marker_ol_re = '\d+[\.]'; + $marker_any_re = "(?:$marker_ul_re|$marker_ol_re)"; + $marker_ol_start_re = '[0-9]+'; + + $list = $matches[1]; + $list_type = preg_match("/$marker_ul_re/", $matches[4]) ? "ul" : "ol"; + + $marker_any_re = ( $list_type == "ul" ? $marker_ul_re : $marker_ol_re ); + + $list .= "\n"; + $result = $this->processListItems($list, $marker_any_re); + + $ol_start = 1; + if ($this->enhanced_ordered_list) { + // Get the start number for ordered list. + if ($list_type == 'ol') { + $ol_start_array = array(); + $ol_start_check = preg_match("/$marker_ol_start_re/", $matches[4], $ol_start_array); + if ($ol_start_check){ + $ol_start = $ol_start_array[0]; + } + } + } + + if ($ol_start > 1 && $list_type == 'ol'){ + $result = $this->hashBlock("<$list_type start=\"$ol_start\">\n" . $result . ""); + } else { + $result = $this->hashBlock("<$list_type>\n" . $result . ""); + } + return "\n". $result ."\n\n"; + } + + /** + * Nesting tracker for list levels + * @var integer + */ + protected $list_level = 0; + + /** + * Process the contents of a single ordered or unordered list, splitting it + * into individual list items. + * @param string $list_str + * @param string $marker_any_re + * @return string + */ + protected function processListItems($list_str, $marker_any_re) { + /** + * The $this->list_level global keeps track of when we're inside a list. + * Each time we enter a list, we increment it; when we leave a list, + * we decrement. If it's zero, we're not in a list anymore. + * + * We do this because when we're not inside a list, we want to treat + * something like this: + * + * I recommend upgrading to version + * 8. Oops, now this line is treated + * as a sub-list. + * + * As a single paragraph, despite the fact that the second line starts + * with a digit-period-space sequence. + * + * Whereas when we're inside a list (or sub-list), that line will be + * treated as the start of a sub-list. What a kludge, huh? This is + * an aspect of Markdown's syntax that's hard to parse perfectly + * without resorting to mind-reading. Perhaps the solution is to + * change the syntax rules such that sub-lists must start with a + * starting cardinal number; e.g. "1." or "a.". + */ + $this->list_level++; + + // Trim trailing blank lines: + $list_str = preg_replace("/\n{2,}\\z/", "\n", $list_str); + + $list_str = preg_replace_callback('{ + (\n)? # leading line = $1 + (^[ ]*) # leading whitespace = $2 + ('.$marker_any_re.' # list marker and space = $3 + (?:[ ]+|(?=\n)) # space only required if item is not empty + ) + ((?s:.*?)) # list item text = $4 + (?:(\n+(?=\n))|\n) # tailing blank line = $5 + (?= \n* (\z | \2 ('.$marker_any_re.') (?:[ ]+|(?=\n)))) + }xm', + array($this, '_processListItems_callback'), $list_str); + + $this->list_level--; + return $list_str; + } + + /** + * List item parsing callback + * @param array $matches + * @return string + */ + protected function _processListItems_callback($matches) { + $item = $matches[4]; + $leading_line =& $matches[1]; + $leading_space =& $matches[2]; + $marker_space = $matches[3]; + $tailing_blank_line =& $matches[5]; + + if ($leading_line || $tailing_blank_line || + preg_match('/\n{2,}/', $item)) + { + // Replace marker with the appropriate whitespace indentation + $item = $leading_space . str_repeat(' ', strlen($marker_space)) . $item; + $item = $this->runBlockGamut($this->outdent($item)."\n"); + } else { + // Recursion for sub-lists: + $item = $this->doLists($this->outdent($item)); + $item = $this->formParagraphs($item, false); + } + + return "
      • " . $item . "
      • \n"; + } + + /** + * Process Markdown `
        ` blocks.
        +	 * @param  string $text
        +	 * @return string
        +	 */
        +	protected function doCodeBlocks($text) {
        +		$text = preg_replace_callback('{
        +				(?:\n\n|\A\n?)
        +				(	            # $1 = the code block -- one or more lines, starting with a space/tab
        +				  (?>
        +					[ ]{'.$this->tab_width.'}  # Lines must start with a tab or a tab-width of spaces
        +					.*\n+
        +				  )+
        +				)
        +				((?=^[ ]{0,'.$this->tab_width.'}\S)|\Z)	# Lookahead for non-space at line-start, or end of doc
        +			}xm',
        +			array($this, '_doCodeBlocks_callback'), $text);
        +
        +		return $text;
        +	}
        +
        +	/**
        +	 * Code block parsing callback
        +	 * @param  array $matches
        +	 * @return string
        +	 */
        +	protected function _doCodeBlocks_callback($matches) {
        +		$codeblock = $matches[1];
        +
        +		$codeblock = $this->outdent($codeblock);
        +		if (is_callable($this->code_block_content_func)) {
        +			$codeblock = call_user_func($this->code_block_content_func, $codeblock, "");
        +		} else {
        +			$codeblock = htmlspecialchars($codeblock, ENT_NOQUOTES);
        +		}
        +
        +		# trim leading newlines and trailing newlines
        +		$codeblock = preg_replace('/\A\n+|\n+\z/', '', $codeblock);
        +
        +		$codeblock = "
        $codeblock\n
        "; + return "\n\n" . $this->hashBlock($codeblock) . "\n\n"; + } + + /** + * Create a code span markup for $code. Called from handleSpanToken. + * @param string $code + * @return string + */ + protected function makeCodeSpan($code) { + if (is_callable($this->code_span_content_func)) { + $code = call_user_func($this->code_span_content_func, $code); + } else { + $code = htmlspecialchars(trim($code), ENT_NOQUOTES); + } + return $this->hashPart("$code"); + } + + /** + * Define the emphasis operators with their regex matches + * @var array + */ + protected $em_relist = array( + '' => '(?:(? '(? '(? '(?:(? '(? '(? '(?:(? '(? '(?em_relist as $em => $em_re) { + foreach ($this->strong_relist as $strong => $strong_re) { + // Construct list of allowed token expressions. + $token_relist = array(); + if (isset($this->em_strong_relist["$em$strong"])) { + $token_relist[] = $this->em_strong_relist["$em$strong"]; + } + $token_relist[] = $em_re; + $token_relist[] = $strong_re; + + // Construct master expression from list. + $token_re = '{(' . implode('|', $token_relist) . ')}'; + $this->em_strong_prepared_relist["$em$strong"] = $token_re; + } + } + } + + /** + * Convert Markdown italics (emphasis) and bold (strong) to HTML + * @param string $text + * @return string + */ + protected function doItalicsAndBold($text) { + if ($this->in_emphasis_processing) { + return $text; // avoid reentrency + } + $this->in_emphasis_processing = true; + + $token_stack = array(''); + $text_stack = array(''); + $em = ''; + $strong = ''; + $tree_char_em = false; + + while (1) { + // Get prepared regular expression for seraching emphasis tokens + // in current context. + $token_re = $this->em_strong_prepared_relist["$em$strong"]; + + // Each loop iteration search for the next emphasis token. + // Each token is then passed to handleSpanToken. + $parts = preg_split($token_re, $text, 2, PREG_SPLIT_DELIM_CAPTURE); + $text_stack[0] .= $parts[0]; + $token =& $parts[1]; + $text =& $parts[2]; + + if (empty($token)) { + // Reached end of text span: empty stack without emitting. + // any more emphasis. + while ($token_stack[0]) { + $text_stack[1] .= array_shift($token_stack); + $text_stack[0] .= array_shift($text_stack); + } + break; + } + + $token_len = strlen($token); + if ($tree_char_em) { + // Reached closing marker while inside a three-char emphasis. + if ($token_len == 3) { + // Three-char closing marker, close em and strong. + array_shift($token_stack); + $span = array_shift($text_stack); + $span = $this->runSpanGamut($span); + $span = "$span"; + $text_stack[0] .= $this->hashPart($span); + $em = ''; + $strong = ''; + } else { + // Other closing marker: close one em or strong and + // change current token state to match the other + $token_stack[0] = str_repeat($token[0], 3-$token_len); + $tag = $token_len == 2 ? "strong" : "em"; + $span = $text_stack[0]; + $span = $this->runSpanGamut($span); + $span = "<$tag>$span"; + $text_stack[0] = $this->hashPart($span); + $$tag = ''; // $$tag stands for $em or $strong + } + $tree_char_em = false; + } else if ($token_len == 3) { + if ($em) { + // Reached closing marker for both em and strong. + // Closing strong marker: + for ($i = 0; $i < 2; ++$i) { + $shifted_token = array_shift($token_stack); + $tag = strlen($shifted_token) == 2 ? "strong" : "em"; + $span = array_shift($text_stack); + $span = $this->runSpanGamut($span); + $span = "<$tag>$span"; + $text_stack[0] .= $this->hashPart($span); + $$tag = ''; // $$tag stands for $em or $strong + } + } else { + // Reached opening three-char emphasis marker. Push on token + // stack; will be handled by the special condition above. + $em = $token[0]; + $strong = "$em$em"; + array_unshift($token_stack, $token); + array_unshift($text_stack, ''); + $tree_char_em = true; + } + } else if ($token_len == 2) { + if ($strong) { + // Unwind any dangling emphasis marker: + if (strlen($token_stack[0]) == 1) { + $text_stack[1] .= array_shift($token_stack); + $text_stack[0] .= array_shift($text_stack); + $em = ''; + } + // Closing strong marker: + array_shift($token_stack); + $span = array_shift($text_stack); + $span = $this->runSpanGamut($span); + $span = "$span"; + $text_stack[0] .= $this->hashPart($span); + $strong = ''; + } else { + array_unshift($token_stack, $token); + array_unshift($text_stack, ''); + $strong = $token; + } + } else { + // Here $token_len == 1 + if ($em) { + if (strlen($token_stack[0]) == 1) { + // Closing emphasis marker: + array_shift($token_stack); + $span = array_shift($text_stack); + $span = $this->runSpanGamut($span); + $span = "$span"; + $text_stack[0] .= $this->hashPart($span); + $em = ''; + } else { + $text_stack[0] .= $token; + } + } else { + array_unshift($token_stack, $token); + array_unshift($text_stack, ''); + $em = $token; + } + } + } + $this->in_emphasis_processing = false; + return $text_stack[0]; + } + + /** + * Parse Markdown blockquotes to HTML + * @param string $text + * @return string + */ + protected function doBlockQuotes($text) { + $text = preg_replace_callback('/ + ( # Wrap whole match in $1 + (?> + ^[ ]*>[ ]? # ">" at the start of a line + .+\n # rest of the first line + (.+\n)* # subsequent consecutive lines + \n* # blanks + )+ + ) + /xm', + array($this, '_doBlockQuotes_callback'), $text); + + return $text; + } + + /** + * Blockquote parsing callback + * @param array $matches + * @return string + */ + protected function _doBlockQuotes_callback($matches) { + $bq = $matches[1]; + // trim one level of quoting - trim whitespace-only lines + $bq = preg_replace('/^[ ]*>[ ]?|^[ ]+$/m', '', $bq); + $bq = $this->runBlockGamut($bq); // recurse + + $bq = preg_replace('/^/m', " ", $bq); + // These leading spaces cause problem with
         content,
        +		// so we need to fix that:
        +		$bq = preg_replace_callback('{(\s*
        .+?
        )}sx', + array($this, '_doBlockQuotes_callback2'), $bq); + + return "\n" . $this->hashBlock("
        \n$bq\n
        ") . "\n\n"; + } + + /** + * Blockquote parsing callback + * @param array $matches + * @return string + */ + protected function _doBlockQuotes_callback2($matches) { + $pre = $matches[1]; + $pre = preg_replace('/^ /m', '', $pre); + return $pre; + } + + /** + * Parse paragraphs + * + * @param string $text String to process in paragraphs + * @param boolean $wrap_in_p Whether paragraphs should be wrapped in

        tags + * @return string + */ + protected function formParagraphs($text, $wrap_in_p = true) { + // Strip leading and trailing lines: + $text = preg_replace('/\A\n+|\n+\z/', '', $text); + + $grafs = preg_split('/\n{2,}/', $text, -1, PREG_SPLIT_NO_EMPTY); + + // Wrap

        tags and unhashify HTML blocks + foreach ($grafs as $key => $value) { + if (!preg_match('/^B\x1A[0-9]+B$/', $value)) { + // Is a paragraph. + $value = $this->runSpanGamut($value); + if ($wrap_in_p) { + $value = preg_replace('/^([ ]*)/', "

        ", $value); + $value .= "

        "; + } + $grafs[$key] = $this->unhash($value); + } else { + // Is a block. + // Modify elements of @grafs in-place... + $graf = $value; + $block = $this->html_hashes[$graf]; + $graf = $block; +// if (preg_match('{ +// \A +// ( # $1 =
        tag +//
        ]* +// \b +// markdown\s*=\s* ([\'"]) # $2 = attr quote char +// 1 +// \2 +// [^>]* +// > +// ) +// ( # $3 = contents +// .* +// ) +// (
        ) # $4 = closing tag +// \z +// }xs', $block, $matches)) +// { +// list(, $div_open, , $div_content, $div_close) = $matches; +// +// // We can't call Markdown(), because that resets the hash; +// // that initialization code should be pulled into its own sub, though. +// $div_content = $this->hashHTMLBlocks($div_content); +// +// // Run document gamut methods on the content. +// foreach ($this->document_gamut as $method => $priority) { +// $div_content = $this->$method($div_content); +// } +// +// $div_open = preg_replace( +// '{\smarkdown\s*=\s*([\'"]).+?\1}', '', $div_open); +// +// $graf = $div_open . "\n" . $div_content . "\n" . $div_close; +// } + $grafs[$key] = $graf; + } + } + + return implode("\n\n", $grafs); + } + + /** + * Encode text for a double-quoted HTML attribute. This function + * is *not* suitable for attributes enclosed in single quotes. + * @param string $text + * @return string + */ + protected function encodeAttribute($text) { + $text = $this->encodeAmpsAndAngles($text); + $text = str_replace('"', '"', $text); + return $text; + } + + /** + * Encode text for a double-quoted HTML attribute containing a URL, + * applying the URL filter if set. Also generates the textual + * representation for the URL (removing mailto: or tel:) storing it in $text. + * This function is *not* suitable for attributes enclosed in single quotes. + * + * @param string $url + * @param string $text Passed by reference + * @return string URL + */ + protected function encodeURLAttribute($url, &$text = null) { + if (is_callable($this->url_filter_func)) { + $url = call_user_func($this->url_filter_func, $url); + } + + if (preg_match('{^mailto:}i', $url)) { + $url = $this->encodeEntityObfuscatedAttribute($url, $text, 7); + } else if (preg_match('{^tel:}i', $url)) { + $url = $this->encodeAttribute($url); + $text = substr($url, 4); + } else { + $url = $this->encodeAttribute($url); + $text = $url; + } + + return $url; + } + + /** + * Smart processing for ampersands and angle brackets that need to + * be encoded. Valid character entities are left alone unless the + * no-entities mode is set. + * @param string $text + * @return string + */ + protected function encodeAmpsAndAngles($text) { + if ($this->no_entities) { + $text = str_replace('&', '&', $text); + } else { + // Ampersand-encoding based entirely on Nat Irons's Amputator + // MT plugin: + $text = preg_replace('/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/', + '&', $text); + } + // Encode remaining <'s + $text = str_replace('<', '<', $text); + + return $text; + } + + /** + * Parse Markdown automatic links to anchor HTML tags + * @param string $text + * @return string + */ + protected function doAutoLinks($text) { + $text = preg_replace_callback('{<((https?|ftp|dict|tel):[^\'">\s]+)>}i', + array($this, '_doAutoLinks_url_callback'), $text); + + // Email addresses: + $text = preg_replace_callback('{ + < + (?:mailto:)? + ( + (?: + [-!#$%&\'*+/=?^_`.{|}~\w\x80-\xFF]+ + | + ".*?" + ) + \@ + (?: + [-a-z0-9\x80-\xFF]+(\.[-a-z0-9\x80-\xFF]+)*\.[a-z]+ + | + \[[\d.a-fA-F:]+\] # IPv4 & IPv6 + ) + ) + > + }xi', + array($this, '_doAutoLinks_email_callback'), $text); + + return $text; + } + + /** + * Parse URL callback + * @param array $matches + * @return string + */ + protected function _doAutoLinks_url_callback($matches) { + $url = $this->encodeURLAttribute($matches[1], $text); + $link = "$text"; + return $this->hashPart($link); + } + + /** + * Parse email address callback + * @param array $matches + * @return string + */ + protected function _doAutoLinks_email_callback($matches) { + $addr = $matches[1]; + $url = $this->encodeURLAttribute("mailto:$addr", $text); + $link = "$text"; + return $this->hashPart($link); + } + + /** + * Input: some text to obfuscate, e.g. "mailto:foo@example.com" + * + * Output: the same text but with most characters encoded as either a + * decimal or hex entity, in the hopes of foiling most address + * harvesting spam bots. E.g.: + * + * mailto:foo + * @example.co + * m + * + * Note: the additional output $tail is assigned the same value as the + * ouput, minus the number of characters specified by $head_length. + * + * Based by a filter by Matthew Wickline, posted to BBEdit-Talk. + * With some optimizations by Milian Wolff. Forced encoding of HTML + * attribute special characters by Allan Odgaard. + * + * @param string $text + * @param string $tail Passed by reference + * @param integer $head_length + * @return string + */ + protected function encodeEntityObfuscatedAttribute($text, &$tail = null, $head_length = 0) { + if ($text == "") { + return $tail = ""; + } + + $chars = preg_split('/(? $char) { + $ord = ord($char); + // Ignore non-ascii chars. + if ($ord < 128) { + $r = ($seed * (1 + $key)) % 100; // Pseudo-random function. + // roughly 10% raw, 45% hex, 45% dec + // '@' *must* be encoded. I insist. + // '"' and '>' have to be encoded inside the attribute + if ($r > 90 && strpos('@"&>', $char) === false) { + /* do nothing */ + } else if ($r < 45) { + $chars[$key] = '&#x'.dechex($ord).';'; + } else { + $chars[$key] = '&#'.$ord.';'; + } + } + } + + $text = implode('', $chars); + $tail = $head_length ? implode('', array_slice($chars, $head_length)) : $text; + + return $text; + } + + /** + * Take the string $str and parse it into tokens, hashing embeded HTML, + * escaped characters and handling code spans. + * @param string $str + * @return string + */ + protected function parseSpan($str) { + $output = ''; + + $span_re = '{ + ( + \\\\'.$this->escape_chars_re.' + | + (?no_markup ? '' : ' + | + # comment + | + <\?.*?\?> | <%.*?%> # processing instruction + | + <[!$]?[-a-zA-Z0-9:_]+ # regular tags + (?> + \s + (?>[^"\'>]+|"[^"]*"|\'[^\']*\')* + )? + > + | + <[-a-zA-Z0-9:_]+\s*/> # xml-style empty tag + | + # closing tag + ').' + ) + }xs'; + + while (1) { + // Each loop iteration seach for either the next tag, the next + // openning code span marker, or the next escaped character. + // Each token is then passed to handleSpanToken. + $parts = preg_split($span_re, $str, 2, PREG_SPLIT_DELIM_CAPTURE); + + // Create token from text preceding tag. + if ($parts[0] != "") { + $output .= $parts[0]; + } + + // Check if we reach the end. + if (isset($parts[1])) { + $output .= $this->handleSpanToken($parts[1], $parts[2]); + $str = $parts[2]; + } else { + break; + } + } + + return $output; + } + + /** + * Handle $token provided by parseSpan by determining its nature and + * returning the corresponding value that should replace it. + * @param string $token + * @param string $str Passed by reference + * @return string + */ + protected function handleSpanToken($token, &$str) { + switch ($token[0]) { + case "\\": + return $this->hashPart("&#". ord($token[1]). ";"); + case "`": + // Search for end marker in remaining text. + if (preg_match('/^(.*?[^`])'.preg_quote($token).'(?!`)(.*)$/sm', + $str, $matches)) + { + $str = $matches[2]; + $codespan = $this->makeCodeSpan($matches[1]); + return $this->hashPart($codespan); + } + return $token; // Return as text since no ending marker found. + default: + return $this->hashPart($token); + } + } + + /** + * Remove one level of line-leading tabs or spaces + * @param string $text + * @return string + */ + protected function outdent($text) { + return preg_replace('/^(\t|[ ]{1,' . $this->tab_width . '})/m', '', $text); + } + + + /** + * String length function for detab. `_initDetab` will create a function to + * handle UTF-8 if the default function does not exist. + * @var string + */ + protected $utf8_strlen = 'mb_strlen'; + + /** + * Replace tabs with the appropriate amount of spaces. + * + * For each line we separate the line in blocks delemited by tab characters. + * Then we reconstruct every line by adding the appropriate number of space + * between each blocks. + * + * @param string $text + * @return string + */ + protected function detab($text) { + $text = preg_replace_callback('/^.*\t.*$/m', + array($this, '_detab_callback'), $text); + + return $text; + } + + /** + * Replace tabs callback + * @param string $matches + * @return string + */ + protected function _detab_callback($matches) { + $line = $matches[0]; + $strlen = $this->utf8_strlen; // strlen function for UTF-8. + + // Split in blocks. + $blocks = explode("\t", $line); + // Add each blocks to the line. + $line = $blocks[0]; + unset($blocks[0]); // Do not add first block twice. + foreach ($blocks as $block) { + // Calculate amount of space, insert spaces, insert block. + $amount = $this->tab_width - + $strlen($line, 'UTF-8') % $this->tab_width; + $line .= str_repeat(" ", $amount) . $block; + } + return $line; + } + + /** + * Check for the availability of the function in the `utf8_strlen` property + * (initially `mb_strlen`). If the function is not available, create a + * function that will loosely count the number of UTF-8 characters with a + * regular expression. + * @return void + */ + protected function _initDetab() { + + if (function_exists($this->utf8_strlen)) { + return; + } + + $this->utf8_strlen = function($text) { + return preg_match_all('/[\x00-\xBF]|[\xC0-\xFF][\x80-\xBF]*/', $text, $m); + }; + } + + /** + * Swap back in all the tags hashed by _HashHTMLBlocks. + * @param string $text + * @return string + */ + protected function unhash($text) { + return preg_replace_callback('/(.)\x1A[0-9]+\1/', + array($this, '_unhash_callback'), $text); + } + + /** + * Unhashing callback + * @param array $matches + * @return string + */ + protected function _unhash_callback($matches) { + return $this->html_hashes[$matches[0]]; + } +} diff --git a/system/vendor/michelf/php-markdown/Michelf/MarkdownExtra.inc.php b/system/vendor/michelf/php-markdown/Michelf/MarkdownExtra.inc.php new file mode 100644 index 0000000..d09bd7a --- /dev/null +++ b/system/vendor/michelf/php-markdown/Michelf/MarkdownExtra.inc.php @@ -0,0 +1,11 @@ + + * @copyright 2004-2021 Michel Fortin + * @copyright (Original Markdown) 2004-2006 John Gruber + */ + +namespace Michelf; + +/** + * Markdown Extra Parser Class + */ +class MarkdownExtra extends \Michelf\Markdown { + /** + * Configuration variables + */ + + /** + * Prefix for footnote ids. + * @var string + */ + public $fn_id_prefix = ""; + + /** + * Optional title attribute for footnote links. + * @var string + */ + public $fn_link_title = ""; + + /** + * Optional class attribute for footnote links and backlinks. + * @var string + */ + public $fn_link_class = "footnote-ref"; + public $fn_backlink_class = "footnote-backref"; + + /** + * Content to be displayed within footnote backlinks. The default is '↩'; + * the U+FE0E on the end is a Unicode variant selector used to prevent iOS + * from displaying the arrow character as an emoji. + * Optionally use '^^' and '%%' to refer to the footnote number and + * reference number respectively. {@see parseFootnotePlaceholders()} + * @var string + */ + public $fn_backlink_html = '↩︎'; + + /** + * Optional title and aria-label attributes for footnote backlinks for + * added accessibility (to ensure backlink uniqueness). + * Use '^^' and '%%' to refer to the footnote number and reference number + * respectively. {@see parseFootnotePlaceholders()} + * @var string + */ + public $fn_backlink_title = ""; + public $fn_backlink_label = ""; + + /** + * Class name for table cell alignment (%% replaced left/center/right) + * For instance: 'go-%%' becomes 'go-left' or 'go-right' or 'go-center' + * If empty, the align attribute is used instead of a class name. + * @var string + */ + public $table_align_class_tmpl = ''; + + /** + * Optional class prefix for fenced code block. + * @var string + */ + public $code_class_prefix = ""; + + /** + * Class attribute for code blocks goes on the `code` tag; + * setting this to true will put attributes on the `pre` tag instead. + * @var boolean + */ + public $code_attr_on_pre = false; + + /** + * Predefined abbreviations. + * @var array + */ + public $predef_abbr = array(); + + /** + * Only convert atx-style headers if there's a space between the header and # + * @var boolean + */ + public $hashtag_protection = false; + + /** + * Determines whether footnotes should be appended to the end of the document. + * If true, footnote html can be retrieved from $this->footnotes_assembled. + * @var boolean + */ + public $omit_footnotes = false; + + + /** + * After parsing, the HTML for the list of footnotes appears here. + * This is available only if $omit_footnotes == true. + * + * Note: when placing the content of `footnotes_assembled` on the page, + * consider adding the attribute `role="doc-endnotes"` to the `div` or + * `section` that will enclose the list of footnotes so they are + * reachable to accessibility tools the same way they would be with the + * default HTML output. + * @var null|string + */ + public $footnotes_assembled = null; + + /** + * Parser implementation + */ + + /** + * Constructor function. Initialize the parser object. + * @return void + */ + public function __construct() { + // Add extra escapable characters before parent constructor + // initialize the table. + $this->escape_chars .= ':|'; + + // Insert extra document, block, and span transformations. + // Parent constructor will do the sorting. + $this->document_gamut += array( + "doFencedCodeBlocks" => 5, + "stripFootnotes" => 15, + "stripAbbreviations" => 25, + "appendFootnotes" => 50, + ); + $this->block_gamut += array( + "doFencedCodeBlocks" => 5, + "doTables" => 15, + "doDefLists" => 45, + ); + $this->span_gamut += array( + "doFootnotes" => 5, + "doStrikethrough" => 55, + "doAbbreviations" => 70, + ); + + $this->enhanced_ordered_list = true; + parent::__construct(); + } + + + /** + * Extra variables used during extra transformations. + * @var array + */ + protected $footnotes = array(); + protected $footnotes_ordered = array(); + protected $footnotes_ref_count = array(); + protected $footnotes_numbers = array(); + protected $abbr_desciptions = array(); + /** @var string */ + protected $abbr_word_re = ''; + + /** + * Give the current footnote number. + * @var integer + */ + protected $footnote_counter = 1; + + /** + * Ref attribute for links + * @var array + */ + protected $ref_attr = array(); + + /** + * Setting up Extra-specific variables. + */ + protected function setup() { + parent::setup(); + + $this->footnotes = array(); + $this->footnotes_ordered = array(); + $this->footnotes_ref_count = array(); + $this->footnotes_numbers = array(); + $this->abbr_desciptions = array(); + $this->abbr_word_re = ''; + $this->footnote_counter = 1; + $this->footnotes_assembled = null; + + foreach ($this->predef_abbr as $abbr_word => $abbr_desc) { + if ($this->abbr_word_re) + $this->abbr_word_re .= '|'; + $this->abbr_word_re .= preg_quote($abbr_word); + $this->abbr_desciptions[$abbr_word] = trim($abbr_desc); + } + } + + /** + * Clearing Extra-specific variables. + */ + protected function teardown() { + $this->footnotes = array(); + $this->footnotes_ordered = array(); + $this->footnotes_ref_count = array(); + $this->footnotes_numbers = array(); + $this->abbr_desciptions = array(); + $this->abbr_word_re = ''; + + if ( ! $this->omit_footnotes ) + $this->footnotes_assembled = null; + + parent::teardown(); + } + + + /** + * Extra attribute parser + */ + + /** + * Expression to use to catch attributes (includes the braces) + * @var string + */ + protected $id_class_attr_catch_re = '\{((?>[ ]*[#.a-z][-_:a-zA-Z0-9=]+){1,})[ ]*\}'; + + /** + * Expression to use when parsing in a context when no capture is desired + * @var string + */ + protected $id_class_attr_nocatch_re = '\{(?>[ ]*[#.a-z][-_:a-zA-Z0-9=]+){1,}[ ]*\}'; + + /** + * Parse attributes caught by the $this->id_class_attr_catch_re expression + * and return the HTML-formatted list of attributes. + * + * Currently supported attributes are .class and #id. + * + * In addition, this method also supports supplying a default Id value, + * which will be used to populate the id attribute in case it was not + * overridden. + * @param string $tag_name + * @param string $attr + * @param mixed $defaultIdValue + * @param array $classes + * @return string + */ + protected function doExtraAttributes($tag_name, $attr, $defaultIdValue = null, $classes = array()) { + if (empty($attr) && !$defaultIdValue && empty($classes)) { + return ""; + } + + // Split on components + preg_match_all('/[#.a-z][-_:a-zA-Z0-9=]+/', $attr, $matches); + $elements = $matches[0]; + + // Handle classes and IDs (only first ID taken into account) + $attributes = array(); + $id = false; + foreach ($elements as $element) { + if ($element[0] === '.') { + $classes[] = substr($element, 1); + } else if ($element[0] === '#') { + if ($id === false) $id = substr($element, 1); + } else if (strpos($element, '=') > 0) { + $parts = explode('=', $element, 2); + $attributes[] = $parts[0] . '="' . $parts[1] . '"'; + } + } + + if ($id === false || $id === '') { + $id = $defaultIdValue; + } + + // Compose attributes as string + $attr_str = ""; + if (!empty($id)) { + $attr_str .= ' id="'.$this->encodeAttribute($id) .'"'; + } + if (!empty($classes)) { + $attr_str .= ' class="'. implode(" ", $classes) . '"'; + } + if (!$this->no_markup && !empty($attributes)) { + $attr_str .= ' '.implode(" ", $attributes); + } + return $attr_str; + } + + /** + * Strips link definitions from text, stores the URLs and titles in + * hash references. + * @param string $text + * @return string + */ + protected function stripLinkDefinitions($text) { + $less_than_tab = $this->tab_width - 1; + + // Link defs are in the form: ^[id]: url "optional title" + $text = preg_replace_callback('{ + ^[ ]{0,'.$less_than_tab.'}\[(.+)\][ ]?: # id = $1 + [ ]* + \n? # maybe *one* newline + [ ]* + (?: + <(.+?)> # url = $2 + | + (\S+?) # url = $3 + ) + [ ]* + \n? # maybe one newline + [ ]* + (?: + (?<=\s) # lookbehind for whitespace + ["(] + (.*?) # title = $4 + [")] + [ ]* + )? # title is optional + (?:[ ]* '.$this->id_class_attr_catch_re.' )? # $5 = extra id & class attr + (?:\n+|\Z) + }xm', + array($this, '_stripLinkDefinitions_callback'), + $text); + return $text; + } + + /** + * Strip link definition callback + * @param array $matches + * @return string + */ + protected function _stripLinkDefinitions_callback($matches) { + $link_id = strtolower($matches[1]); + $url = $matches[2] == '' ? $matches[3] : $matches[2]; + $this->urls[$link_id] = $url; + $this->titles[$link_id] =& $matches[4]; + $this->ref_attr[$link_id] = $this->doExtraAttributes("", $dummy =& $matches[5]); + return ''; // String that will replace the block + } + + + /** + * HTML block parser + */ + + /** + * Tags that are always treated as block tags + * @var string + */ + protected $block_tags_re = 'p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|address|form|fieldset|iframe|hr|legend|article|section|nav|aside|hgroup|header|footer|figcaption|figure|details|summary'; + + /** + * Tags treated as block tags only if the opening tag is alone on its line + * @var string + */ + protected $context_block_tags_re = 'script|noscript|style|ins|del|iframe|object|source|track|param|math|svg|canvas|audio|video'; + + /** + * Tags where markdown="1" default to span mode: + * @var string + */ + protected $contain_span_tags_re = 'p|h[1-6]|li|dd|dt|td|th|legend|address'; + + /** + * Tags which must not have their contents modified, no matter where + * they appear + * @var string + */ + protected $clean_tags_re = 'script|style|math|svg'; + + /** + * Tags that do not need to be closed. + * @var string + */ + protected $auto_close_tags_re = 'hr|img|param|source|track'; + + /** + * Hashify HTML Blocks and "clean tags". + * + * We only want to do this for block-level HTML tags, such as headers, + * lists, and tables. That's because we still want to wrap

        s around + * "paragraphs" that are wrapped in non-block-level tags, such as anchors, + * phrase emphasis, and spans. The list of tags we're looking for is + * hard-coded. + * + * This works by calling _HashHTMLBlocks_InMarkdown, which then calls + * _HashHTMLBlocks_InHTML when it encounter block tags. When the markdown="1" + * attribute is found within a tag, _HashHTMLBlocks_InHTML calls back + * _HashHTMLBlocks_InMarkdown to handle the Markdown syntax within the tag. + * These two functions are calling each other. It's recursive! + * @param string $text + * @return string + */ + protected function hashHTMLBlocks($text) { + if ($this->no_markup) { + return $text; + } + + // Call the HTML-in-Markdown hasher. + list($text, ) = $this->_hashHTMLBlocks_inMarkdown($text); + + return $text; + } + + /** + * Parse markdown text, calling _HashHTMLBlocks_InHTML for block tags. + * + * * $indent is the number of space to be ignored when checking for code + * blocks. This is important because if we don't take the indent into + * account, something like this (which looks right) won't work as expected: + * + *

        + *
        + * Hello World. <-- Is this a Markdown code block or text? + *
        <-- Is this a Markdown code block or a real tag? + *
        + * + * If you don't like this, just don't indent the tag on which + * you apply the markdown="1" attribute. + * + * * If $enclosing_tag_re is not empty, stops at the first unmatched closing + * tag with that name. Nested tags supported. + * + * * If $span is true, text inside must treated as span. So any double + * newline will be replaced by a single newline so that it does not create + * paragraphs. + * + * Returns an array of that form: ( processed text , remaining text ) + * + * @param string $text + * @param integer $indent + * @param string $enclosing_tag_re + * @param boolean $span + * @return array + */ + protected function _hashHTMLBlocks_inMarkdown($text, $indent = 0, + $enclosing_tag_re = '', $span = false) + { + + if ($text === '') return array('', ''); + + // Regex to check for the presense of newlines around a block tag. + $newline_before_re = '/(?:^\n?|\n\n)*$/'; + $newline_after_re = + '{ + ^ # Start of text following the tag. + (?>[ ]*)? # Optional comment. + [ ]*\n # Must be followed by newline. + }xs'; + + // Regex to match any tag. + $block_tag_re = + '{ + ( # $2: Capture whole tag. + # Tag name. + ' . $this->block_tags_re . ' | + ' . $this->context_block_tags_re . ' | + ' . $this->clean_tags_re . ' | + (?!\s)'.$enclosing_tag_re . ' + ) + (?: + (?=[\s"\'/a-zA-Z0-9]) # Allowed characters after tag name. + (?> + ".*?" | # Double quotes (can contain `>`) + \'.*?\' | # Single quotes (can contain `>`) + .+? # Anything but quotes and `>`. + )*? + )? + > # End of tag. + | + # HTML Comment + | + <\?.*?\?> | <%.*?%> # Processing instruction + | + # CData Block + ' . ( !$span ? ' # If not in span. + | + # Indented code block + (?: ^[ ]*\n | ^ | \n[ ]*\n ) + [ ]{' . ($indent + 4) . '}[^\n]* \n + (?> + (?: [ ]{' . ($indent + 4) . '}[^\n]* | [ ]* ) \n + )* + | + # Fenced code block marker + (?<= ^ | \n ) + [ ]{0,' . ($indent + 3) . '}(?:~{3,}|`{3,}) + [ ]* + (?: \.?[-_:a-zA-Z0-9]+ )? # standalone class name + [ ]* + (?: ' . $this->id_class_attr_nocatch_re . ' )? # extra attributes + [ ]* + (?= \n ) + ' : '' ) . ' # End (if not is span). + | + # Code span marker + # Note, this regex needs to go after backtick fenced + # code blocks but it should also be kept outside of the + # "if not in span" condition adding backticks to the parser + `+ + ) + }xs'; + + + $depth = 0; // Current depth inside the tag tree. + $parsed = ""; // Parsed text that will be returned. + + // Loop through every tag until we find the closing tag of the parent + // or loop until reaching the end of text if no parent tag specified. + do { + // Split the text using the first $tag_match pattern found. + // Text before pattern will be first in the array, text after + // pattern will be at the end, and between will be any catches made + // by the pattern. + $parts = preg_split($block_tag_re, $text, 2, + PREG_SPLIT_DELIM_CAPTURE); + + // If in Markdown span mode, add a empty-string span-level hash + // after each newline to prevent triggering any block element. + if ($span) { + $void = $this->hashPart("", ':'); + $newline = "\n$void"; + $parts[0] = $void . str_replace("\n", $newline, $parts[0]) . $void; + } + + $parsed .= $parts[0]; // Text before current tag. + + // If end of $text has been reached. Stop loop. + if (count($parts) < 3) { + $text = ""; + break; + } + + $tag = $parts[1]; // Tag to handle. + $text = $parts[2]; // Remaining text after current tag. + + // Check for: Fenced code block marker. + // Note: need to recheck the whole tag to disambiguate backtick + // fences from code spans + if (preg_match('{^\n?([ ]{0,' . ($indent + 3) . '})(~{3,}|`{3,})[ ]*(?:\.?[-_:a-zA-Z0-9]+)?[ ]*(?:' . $this->id_class_attr_nocatch_re . ')?[ ]*\n?$}', $tag, $capture)) { + // Fenced code block marker: find matching end marker. + $fence_indent = strlen($capture[1]); // use captured indent in re + $fence_re = $capture[2]; // use captured fence in re + if (preg_match('{^(?>.*\n)*?[ ]{' . ($fence_indent) . '}' . $fence_re . '[ ]*(?:\n|$)}', $text, + $matches)) + { + // End marker found: pass text unchanged until marker. + $parsed .= $tag . $matches[0]; + $text = substr($text, strlen($matches[0])); + } + else { + // No end marker: just skip it. + $parsed .= $tag; + } + } + // Check for: Indented code block. + else if ($tag[0] === "\n" || $tag[0] === " ") { + // Indented code block: pass it unchanged, will be handled + // later. + $parsed .= $tag; + } + // Check for: Code span marker + // Note: need to check this after backtick fenced code blocks + else if ($tag[0] === "`") { + // Find corresponding end marker. + $tag_re = preg_quote($tag); + if (preg_match('{^(?>.+?|\n(?!\n))*?(?block_tags_re . ')\b}', $tag) || + ( preg_match('{^<(?:' . $this->context_block_tags_re . ')\b}', $tag) && + preg_match($newline_before_re, $parsed) && + preg_match($newline_after_re, $text) ) + ) + { + // Need to parse tag and following text using the HTML parser. + list($block_text, $text) = + $this->_hashHTMLBlocks_inHTML($tag . $text, "hashBlock", true); + + // Make sure it stays outside of any paragraph by adding newlines. + $parsed .= "\n\n$block_text\n\n"; + } + // Check for: Clean tag (like script, math) + // HTML Comments, processing instructions. + else if (preg_match('{^<(?:' . $this->clean_tags_re . ')\b}', $tag) || + $tag[1] === '!' || $tag[1] === '?') + { + // Need to parse tag and following text using the HTML parser. + // (don't check for markdown attribute) + list($block_text, $text) = + $this->_hashHTMLBlocks_inHTML($tag . $text, "hashClean", false); + + $parsed .= $block_text; + } + // Check for: Tag with same name as enclosing tag. + else if ($enclosing_tag_re !== '' && + // Same name as enclosing tag. + preg_match('{^= 0); + + return array($parsed, $text); + } + + /** + * Parse HTML, calling _HashHTMLBlocks_InMarkdown for block tags. + * + * * Calls $hash_method to convert any blocks. + * * Stops when the first opening tag closes. + * * $md_attr indicate if the use of the `markdown="1"` attribute is allowed. + * (it is not inside clean tags) + * + * Returns an array of that form: ( processed text , remaining text ) + * @param string $text + * @param string $hash_method + * @param bool $md_attr Handle `markdown="1"` attribute + * @return array + */ + protected function _hashHTMLBlocks_inHTML($text, $hash_method, $md_attr) { + if ($text === '') return array('', ''); + + // Regex to match `markdown` attribute inside of a tag. + $markdown_attr_re = ' + { + \s* # Eat whitespace before the `markdown` attribute + markdown + \s*=\s* + (?> + (["\']) # $1: quote delimiter + (.*?) # $2: attribute value + \1 # matching delimiter + | + ([^\s>]*) # $3: unquoted attribute value + ) + () # $4: make $3 always defined (avoid warnings) + }xs'; + + // Regex to match any tag. + $tag_re = '{ + ( # $2: Capture whole tag. + + ".*?" | # Double quotes (can contain `>`) + \'.*?\' | # Single quotes (can contain `>`) + .+? # Anything but quotes and `>`. + )*? + )? + > # End of tag. + | + # HTML Comment + | + <\?.*?\?> | <%.*?%> # Processing instruction + | + # CData Block + ) + }xs'; + + $original_text = $text; // Save original text in case of faliure. + + $depth = 0; // Current depth inside the tag tree. + $block_text = ""; // Temporary text holder for current text. + $parsed = ""; // Parsed text that will be returned. + $base_tag_name_re = ''; + + // Get the name of the starting tag. + // (This pattern makes $base_tag_name_re safe without quoting.) + if (preg_match('/^<([\w:$]*)\b/', $text, $matches)) + $base_tag_name_re = $matches[1]; + + // Loop through every tag until we find the corresponding closing tag. + do { + // Split the text using the first $tag_match pattern found. + // Text before pattern will be first in the array, text after + // pattern will be at the end, and between will be any catches made + // by the pattern. + $parts = preg_split($tag_re, $text, 2, PREG_SPLIT_DELIM_CAPTURE); + + if (count($parts) < 3) { + // End of $text reached with unbalenced tag(s). + // In that case, we return original text unchanged and pass the + // first character as filtered to prevent an infinite loop in the + // parent function. + return array($original_text[0], substr($original_text, 1)); + } + + $block_text .= $parts[0]; // Text before current tag. + $tag = $parts[1]; // Tag to handle. + $text = $parts[2]; // Remaining text after current tag. + + // Check for: Auto-close tag (like
        ) + // Comments and Processing Instructions. + if (preg_match('{^auto_close_tags_re . ')\b}', $tag) || + $tag[1] === '!' || $tag[1] === '?') + { + // Just add the tag to the block as if it was text. + $block_text .= $tag; + } + else { + // Increase/decrease nested tag count. Only do so if + // the tag's name match base tag's. + if (preg_match('{^contain_span_tags_re . ')\b}', $tag)); + + // Calculate indent before tag. + if (preg_match('/(?:^|\n)( *?)(?! ).*?$/', $block_text, $matches)) { + $strlen = $this->utf8_strlen; + $indent = $strlen($matches[1], 'UTF-8'); + } else { + $indent = 0; + } + + // End preceding block with this tag. + $block_text .= $tag; + $parsed .= $this->$hash_method($block_text); + + // Get enclosing tag name for the ParseMarkdown function. + // (This pattern makes $tag_name_re safe without quoting.) + preg_match('/^<([\w:$]*)\b/', $tag, $matches); + $tag_name_re = $matches[1]; + + // Parse the content using the HTML-in-Markdown parser. + list ($block_text, $text) + = $this->_hashHTMLBlocks_inMarkdown($text, $indent, + $tag_name_re, $span_mode); + + // Outdent markdown text. + if ($indent > 0) { + $block_text = preg_replace("/^[ ]{1,$indent}/m", "", + $block_text); + } + + // Append tag content to parsed text. + if (!$span_mode) { + $parsed .= "\n\n$block_text\n\n"; + } else { + $parsed .= (string) $block_text; + } + + // Start over with a new block. + $block_text = ""; + } + else $block_text .= $tag; + } + + } while ($depth > 0); + + // Hash last block text that wasn't processed inside the loop. + $parsed .= $this->$hash_method($block_text); + + return array($parsed, $text); + } + + /** + * Called whenever a tag must be hashed when a function inserts a "clean" tag + * in $text, it passes through this function and is automaticaly escaped, + * blocking invalid nested overlap. + * @param string $text + * @return string + */ + protected function hashClean($text) { + return $this->hashPart($text, 'C'); + } + + /** + * Turn Markdown link shortcuts into XHTML tags. + * @param string $text + * @return string + */ + protected function doAnchors($text) { + if ($this->in_anchor) { + return $text; + } + $this->in_anchor = true; + + // First, handle reference-style links: [link text] [id] + $text = preg_replace_callback('{ + ( # wrap whole match in $1 + \[ + (' . $this->nested_brackets_re . ') # link text = $2 + \] + + [ ]? # one optional space + (?:\n[ ]*)? # one optional newline followed by spaces + + \[ + (.*?) # id = $3 + \] + ) + }xs', + array($this, '_doAnchors_reference_callback'), $text); + + // Next, inline-style links: [link text](url "optional title") + $text = preg_replace_callback('{ + ( # wrap whole match in $1 + \[ + (' . $this->nested_brackets_re . ') # link text = $2 + \] + \( # literal paren + [ \n]* + (?: + <(.+?)> # href = $3 + | + (' . $this->nested_url_parenthesis_re . ') # href = $4 + ) + [ \n]* + ( # $5 + ([\'"]) # quote char = $6 + (.*?) # Title = $7 + \6 # matching quote + [ \n]* # ignore any spaces/tabs between closing quote and ) + )? # title is optional + \) + (?:[ ]? ' . $this->id_class_attr_catch_re . ' )? # $8 = id/class attributes + ) + }xs', + array($this, '_doAnchors_inline_callback'), $text); + + // Last, handle reference-style shortcuts: [link text] + // These must come last in case you've also got [link text][1] + // or [link text](/foo) + $text = preg_replace_callback('{ + ( # wrap whole match in $1 + \[ + ([^\[\]]+) # link text = $2; can\'t contain [ or ] + \] + ) + }xs', + array($this, '_doAnchors_reference_callback'), $text); + + $this->in_anchor = false; + return $text; + } + + /** + * Callback for reference anchors + * @param array $matches + * @return string + */ + protected function _doAnchors_reference_callback($matches) { + $whole_match = $matches[1]; + $link_text = $matches[2]; + $link_id =& $matches[3]; + + if ($link_id == "") { + // for shortcut links like [this][] or [this]. + $link_id = $link_text; + } + + // lower-case and turn embedded newlines into spaces + $link_id = strtolower($link_id); + $link_id = preg_replace('{[ ]?\n}', ' ', $link_id); + + if (isset($this->urls[$link_id])) { + $url = $this->urls[$link_id]; + $url = $this->encodeURLAttribute($url); + + $result = "titles[$link_id] ) ) { + $title = $this->titles[$link_id]; + $title = $this->encodeAttribute($title); + $result .= " title=\"$title\""; + } + if (isset($this->ref_attr[$link_id])) + $result .= $this->ref_attr[$link_id]; + + $link_text = $this->runSpanGamut($link_text); + $result .= ">$link_text"; + $result = $this->hashPart($result); + } + else { + $result = $whole_match; + } + return $result; + } + + /** + * Callback for inline anchors + * @param array $matches + * @return string + */ + protected function _doAnchors_inline_callback($matches) { + $link_text = $this->runSpanGamut($matches[2]); + $url = $matches[3] === '' ? $matches[4] : $matches[3]; + $title_quote =& $matches[6]; + $title =& $matches[7]; + $attr = $this->doExtraAttributes("a", $dummy =& $matches[8]); + + // if the URL was of the form it got caught by the HTML + // tag parser and hashed. Need to reverse the process before using the URL. + $unhashed = $this->unhash($url); + if ($unhashed !== $url) + $url = preg_replace('/^<(.*)>$/', '\1', $unhashed); + + $url = $this->encodeURLAttribute($url); + + $result = "encodeAttribute($title); + $result .= " title=\"$title\""; + } + $result .= $attr; + + $link_text = $this->runSpanGamut($link_text); + $result .= ">$link_text"; + + return $this->hashPart($result); + } + + /** + * Turn Markdown image shortcuts into tags. + * @param string $text + * @return string + */ + protected function doImages($text) { + // First, handle reference-style labeled images: ![alt text][id] + $text = preg_replace_callback('{ + ( # wrap whole match in $1 + !\[ + (' . $this->nested_brackets_re . ') # alt text = $2 + \] + + [ ]? # one optional space + (?:\n[ ]*)? # one optional newline followed by spaces + + \[ + (.*?) # id = $3 + \] + + ) + }xs', + array($this, '_doImages_reference_callback'), $text); + + // Next, handle inline images: ![alt text](url "optional title") + // Don't forget: encode * and _ + $text = preg_replace_callback('{ + ( # wrap whole match in $1 + !\[ + (' . $this->nested_brackets_re . ') # alt text = $2 + \] + \s? # One optional whitespace character + \( # literal paren + [ \n]* + (?: + <(\S*)> # src url = $3 + | + (' . $this->nested_url_parenthesis_re . ') # src url = $4 + ) + [ \n]* + ( # $5 + ([\'"]) # quote char = $6 + (.*?) # title = $7 + \6 # matching quote + [ \n]* + )? # title is optional + \) + (?:[ ]? ' . $this->id_class_attr_catch_re . ' )? # $8 = id/class attributes + ) + }xs', + array($this, '_doImages_inline_callback'), $text); + + return $text; + } + + /** + * Callback for referenced images + * @param array $matches + * @return string + */ + protected function _doImages_reference_callback($matches) { + $whole_match = $matches[1]; + $alt_text = $matches[2]; + $link_id = strtolower($matches[3]); + + if ($link_id === "") { + $link_id = strtolower($alt_text); // for shortcut links like ![this][]. + } + + $alt_text = $this->encodeAttribute($alt_text); + if (isset($this->urls[$link_id])) { + $url = $this->encodeURLAttribute($this->urls[$link_id]); + $result = "\"$alt_text\"";titles[$link_id])) { + $title = $this->titles[$link_id]; + $title = $this->encodeAttribute($title); + $result .= " title=\"$title\""; + } + if (isset($this->ref_attr[$link_id])) { + $result .= $this->ref_attr[$link_id]; + } + $result .= $this->empty_element_suffix; + $result = $this->hashPart($result); + } + else { + // If there's no such link ID, leave intact: + $result = $whole_match; + } + + return $result; + } + + /** + * Callback for inline images + * @param array $matches + * @return string + */ + protected function _doImages_inline_callback($matches) { + $alt_text = $matches[2]; + $url = $matches[3] === '' ? $matches[4] : $matches[3]; + $title_quote =& $matches[6]; + $title =& $matches[7]; + $attr = $this->doExtraAttributes("img", $dummy =& $matches[8]); + + $alt_text = $this->encodeAttribute($alt_text); + $url = $this->encodeURLAttribute($url); + $result = "\"$alt_text\"";encodeAttribute($title); + $result .= " title=\"$title\""; // $title already quoted + } + $result .= $attr; + $result .= $this->empty_element_suffix; + + return $this->hashPart($result); + } + + /** + * Process markdown headers. Redefined to add ID and class attribute support. + * @param string $text + * @return string + */ + protected function doHeaders($text) { + // Setext-style headers: + // Header 1 {#header1} + // ======== + // + // Header 2 {#header2 .class1 .class2} + // -------- + // + $text = preg_replace_callback( + '{ + (^.+?) # $1: Header text + (?:[ ]+ ' . $this->id_class_attr_catch_re . ' )? # $3 = id/class attributes + [ ]*\n(=+|-+)[ ]*\n+ # $3: Header footer + }mx', + array($this, '_doHeaders_callback_setext'), $text); + + // atx-style headers: + // # Header 1 {#header1} + // ## Header 2 {#header2} + // ## Header 2 with closing hashes ## {#header3.class1.class2} + // ... + // ###### Header 6 {.class2} + // + $text = preg_replace_callback('{ + ^(\#{1,6}) # $1 = string of #\'s + [ ]'.($this->hashtag_protection ? '+' : '*').' + (.+?) # $2 = Header text + [ ]* + \#* # optional closing #\'s (not counted) + (?:[ ]+ ' . $this->id_class_attr_catch_re . ' )? # $3 = id/class attributes + [ ]* + \n+ + }xm', + array($this, '_doHeaders_callback_atx'), $text); + + return $text; + } + + /** + * Callback for setext headers + * @param array $matches + * @return string + */ + protected function _doHeaders_callback_setext($matches) { + if ($matches[3] === '-' && preg_match('{^- }', $matches[1])) { + return $matches[0]; + } + + $level = $matches[3][0] === '=' ? 1 : 2; + + $defaultId = is_callable($this->header_id_func) ? call_user_func($this->header_id_func, $matches[1]) : null; + + $attr = $this->doExtraAttributes("h$level", $dummy =& $matches[2], $defaultId); + $block = "" . $this->runSpanGamut($matches[1]) . ""; + return "\n" . $this->hashBlock($block) . "\n\n"; + } + + /** + * Callback for atx headers + * @param array $matches + * @return string + */ + protected function _doHeaders_callback_atx($matches) { + $level = strlen($matches[1]); + + $defaultId = is_callable($this->header_id_func) ? call_user_func($this->header_id_func, $matches[2]) : null; + $attr = $this->doExtraAttributes("h$level", $dummy =& $matches[3], $defaultId); + $block = "" . $this->runSpanGamut($matches[2]) . ""; + return "\n" . $this->hashBlock($block) . "\n\n"; + } + + /** + * Form HTML tables. + * @param string $text + * @return string + */ + protected function doTables($text) { + $less_than_tab = $this->tab_width - 1; + // Find tables with leading pipe. + // + // | Header 1 | Header 2 + // | -------- | -------- + // | Cell 1 | Cell 2 + // | Cell 3 | Cell 4 + $text = preg_replace_callback(' + { + ^ # Start of a line + [ ]{0,' . $less_than_tab . '} # Allowed whitespace. + [|] # Optional leading pipe (present) + (.+) \n # $1: Header row (at least one pipe) + + [ ]{0,' . $less_than_tab . '} # Allowed whitespace. + [|] ([ ]*[-:]+[-| :]*) \n # $2: Header underline + + ( # $3: Cells + (?> + [ ]* # Allowed whitespace. + [|] .* \n # Row content. + )* + ) + (?=\n|\Z) # Stop at final double newline. + }xm', + array($this, '_doTable_leadingPipe_callback'), $text); + + // Find tables without leading pipe. + // + // Header 1 | Header 2 + // -------- | -------- + // Cell 1 | Cell 2 + // Cell 3 | Cell 4 + $text = preg_replace_callback(' + { + ^ # Start of a line + [ ]{0,' . $less_than_tab . '} # Allowed whitespace. + (\S.*[|].*) \n # $1: Header row (at least one pipe) + + [ ]{0,' . $less_than_tab . '} # Allowed whitespace. + ([-:]+[ ]*[|][-| :]*) \n # $2: Header underline + + ( # $3: Cells + (?> + .* [|] .* \n # Row content + )* + ) + (?=\n|\Z) # Stop at final double newline. + }xm', + array($this, '_DoTable_callback'), $text); + + return $text; + } + + /** + * Callback for removing the leading pipe for each row + * @param array $matches + * @return string + */ + protected function _doTable_leadingPipe_callback($matches) { + $head = $matches[1]; + $underline = $matches[2]; + $content = $matches[3]; + + $content = preg_replace('/^ *[|]/m', '', $content); + + return $this->_doTable_callback(array($matches[0], $head, $underline, $content)); + } + + /** + * Make the align attribute in a table + * @param string $alignname + * @return string + */ + protected function _doTable_makeAlignAttr($alignname) { + if (empty($this->table_align_class_tmpl)) { + return " align=\"$alignname\""; + } + + $classname = str_replace('%%', $alignname, $this->table_align_class_tmpl); + return " class=\"$classname\""; + } + + /** + * Calback for processing tables + * @param array $matches + * @return string + */ + protected function _doTable_callback($matches) { + $head = $matches[1]; + $underline = $matches[2]; + $content = $matches[3]; + + // Remove any tailing pipes for each line. + $head = preg_replace('/[|] *$/m', '', $head); + $underline = preg_replace('/[|] *$/m', '', $underline); + $content = preg_replace('/[|] *$/m', '', $content); + + // Reading alignement from header underline. + $separators = preg_split('/ *[|] */', $underline); + foreach ($separators as $n => $s) { + if (preg_match('/^ *-+: *$/', $s)) + $attr[$n] = $this->_doTable_makeAlignAttr('right'); + else if (preg_match('/^ *:-+: *$/', $s)) + $attr[$n] = $this->_doTable_makeAlignAttr('center'); + else if (preg_match('/^ *:-+ *$/', $s)) + $attr[$n] = $this->_doTable_makeAlignAttr('left'); + else + $attr[$n] = ''; + } + + // Parsing span elements, including code spans, character escapes, + // and inline HTML tags, so that pipes inside those gets ignored. + $head = $this->parseSpan($head); + $headers = preg_split('/ *[|] */', $head); + $col_count = count($headers); + $attr = array_pad($attr, $col_count, ''); + + // Write column headers. + $text = "\n"; + $text .= "\n"; + $text .= "\n"; + foreach ($headers as $n => $header) { + $text .= " " . $this->runSpanGamut(trim($header)) . "\n"; + } + $text .= "\n"; + $text .= "\n"; + + // Split content by row. + $rows = explode("\n", trim($content, "\n")); + + $text .= "\n"; + foreach ($rows as $row) { + // Parsing span elements, including code spans, character escapes, + // and inline HTML tags, so that pipes inside those gets ignored. + $row = $this->parseSpan($row); + + // Split row by cell. + $row_cells = preg_split('/ *[|] */', $row, $col_count); + $row_cells = array_pad($row_cells, $col_count, ''); + + $text .= "\n"; + foreach ($row_cells as $n => $cell) { + $text .= " " . $this->runSpanGamut(trim($cell)) . "\n"; + } + $text .= "\n"; + } + $text .= "\n"; + $text .= "
        "; + + return $this->hashBlock($text) . "\n"; + } + + /** + * Form HTML definition lists. + * @param string $text + * @return string + */ + protected function doDefLists($text) { + $less_than_tab = $this->tab_width - 1; + + // Re-usable pattern to match any entire dl list: + $whole_list_re = '(?> + ( # $1 = whole list + ( # $2 + [ ]{0,' . $less_than_tab . '} + ((?>.*\S.*\n)+) # $3 = defined term + \n? + [ ]{0,' . $less_than_tab . '}:[ ]+ # colon starting definition + ) + (?s:.+?) + ( # $4 + \z + | + \n{2,} + (?=\S) + (?! # Negative lookahead for another term + [ ]{0,' . $less_than_tab . '} + (?: \S.*\n )+? # defined term + \n? + [ ]{0,' . $less_than_tab . '}:[ ]+ # colon starting definition + ) + (?! # Negative lookahead for another definition + [ ]{0,' . $less_than_tab . '}:[ ]+ # colon starting definition + ) + ) + ) + )'; // mx + + $text = preg_replace_callback('{ + (?>\A\n?|(?<=\n\n)) + ' . $whole_list_re . ' + }mx', + array($this, '_doDefLists_callback'), $text); + + return $text; + } + + /** + * Callback for processing definition lists + * @param array $matches + * @return string + */ + protected function _doDefLists_callback($matches) { + // Re-usable patterns to match list item bullets and number markers: + $list = $matches[1]; + + // Turn double returns into triple returns, so that we can make a + // paragraph for the last item in a list, if necessary: + $result = trim($this->processDefListItems($list)); + $result = "
        \n" . $result . "\n
        "; + return $this->hashBlock($result) . "\n\n"; + } + + /** + * Process the contents of a single definition list, splitting it + * into individual term and definition list items. + * @param string $list_str + * @return string + */ + protected function processDefListItems($list_str) { + + $less_than_tab = $this->tab_width - 1; + + // Trim trailing blank lines: + $list_str = preg_replace("/\n{2,}\\z/", "\n", $list_str); + + // Process definition terms. + $list_str = preg_replace_callback('{ + (?>\A\n?|\n\n+) # leading line + ( # definition terms = $1 + [ ]{0,' . $less_than_tab . '} # leading whitespace + (?!\:[ ]|[ ]) # negative lookahead for a definition + # mark (colon) or more whitespace. + (?> \S.* \n)+? # actual term (not whitespace). + ) + (?=\n?[ ]{0,3}:[ ]) # lookahead for following line feed + # with a definition mark. + }xm', + array($this, '_processDefListItems_callback_dt'), $list_str); + + // Process actual definitions. + $list_str = preg_replace_callback('{ + \n(\n+)? # leading line = $1 + ( # marker space = $2 + [ ]{0,' . $less_than_tab . '} # whitespace before colon + \:[ ]+ # definition mark (colon) + ) + ((?s:.+?)) # definition text = $3 + (?= \n+ # stop at next definition mark, + (?: # next term or end of text + [ ]{0,' . $less_than_tab . '} \:[ ] | +
        | \z + ) + ) + }xm', + array($this, '_processDefListItems_callback_dd'), $list_str); + + return $list_str; + } + + /** + * Callback for
        elements in definition lists + * @param array $matches + * @return string + */ + protected function _processDefListItems_callback_dt($matches) { + $terms = explode("\n", trim($matches[1])); + $text = ''; + foreach ($terms as $term) { + $term = $this->runSpanGamut(trim($term)); + $text .= "\n
        " . $term . "
        "; + } + return $text . "\n"; + } + + /** + * Callback for
        elements in definition lists + * @param array $matches + * @return string + */ + protected function _processDefListItems_callback_dd($matches) { + $leading_line = $matches[1]; + $marker_space = $matches[2]; + $def = $matches[3]; + + if ($leading_line || preg_match('/\n{2,}/', $def)) { + // Replace marker with the appropriate whitespace indentation + $def = str_repeat(' ', strlen($marker_space)) . $def; + $def = $this->runBlockGamut($this->outdent($def . "\n\n")); + $def = "\n". $def ."\n"; + } + else { + $def = rtrim($def); + $def = $this->runSpanGamut($this->outdent($def)); + } + + return "\n
        " . $def . "
        \n"; + } + + /** + * Adding the fenced code block syntax to regular Markdown: + * + * ~~~ + * Code block + * ~~~ + * + * @param string $text + * @return string + */ + protected function doFencedCodeBlocks($text) { + + $text = preg_replace_callback('{ + (?:\n|\A) + # 1: Opening marker + ( + (?:~{3,}|`{3,}) # 3 or more tildes/backticks. + ) + [ ]* + (?: + \.?([-_:a-zA-Z0-9]+) # 2: standalone class name + )? + [ ]* + (?: + ' . $this->id_class_attr_catch_re . ' # 3: Extra attributes + )? + [ ]* \n # Whitespace and newline following marker. + + # 4: Content + ( + (?> + (?!\1 [ ]* \n) # Not a closing marker. + .*\n+ + )+ + ) + + # Closing marker. + \1 [ ]* (?= \n ) + }xm', + array($this, '_doFencedCodeBlocks_callback'), $text); + + return $text; + } + + /** + * Callback to process fenced code blocks + * @param array $matches + * @return string + */ + protected function _doFencedCodeBlocks_callback($matches) { + $classname =& $matches[2]; + $attrs =& $matches[3]; + $codeblock = $matches[4]; + + if ($this->code_block_content_func) { + $codeblock = call_user_func($this->code_block_content_func, $codeblock, $classname); + } else { + $codeblock = htmlspecialchars($codeblock, ENT_NOQUOTES); + } + + $codeblock = preg_replace_callback('/^\n+/', + array($this, '_doFencedCodeBlocks_newlines'), $codeblock); + + $classes = array(); + if ($classname !== "") { + if ($classname[0] === '.') { + $classname = substr($classname, 1); + } + $classes[] = $this->code_class_prefix . $classname; + } + $attr_str = $this->doExtraAttributes($this->code_attr_on_pre ? "pre" : "code", $attrs, null, $classes); + $pre_attr_str = $this->code_attr_on_pre ? $attr_str : ''; + $code_attr_str = $this->code_attr_on_pre ? '' : $attr_str; + $codeblock = "$codeblock
        "; + + return "\n\n".$this->hashBlock($codeblock)."\n\n"; + } + + /** + * Replace new lines in fenced code blocks + * @param array $matches + * @return string + */ + protected function _doFencedCodeBlocks_newlines($matches) { + return str_repeat("empty_element_suffix", + strlen($matches[0])); + } + + /** + * Redefining emphasis markers so that emphasis by underscore does not + * work in the middle of a word. + * @var array + */ + protected $em_relist = array( + '' => '(?:(? '(? '(? '(?:(? '(? '(? '(?:(? '(? '(? tags + * @return string HTML output + */ + protected function formParagraphs($text, $wrap_in_p = true) { + // Strip leading and trailing lines: + $text = preg_replace('/\A\n+|\n+\z/', '', $text); + + $grafs = preg_split('/\n{2,}/', $text, -1, PREG_SPLIT_NO_EMPTY); + + // Wrap

        tags and unhashify HTML blocks + foreach ($grafs as $key => $value) { + $value = trim($this->runSpanGamut($value)); + + // Check if this should be enclosed in a paragraph. + // Clean tag hashes & block tag hashes are left alone. + $is_p = $wrap_in_p && !preg_match('/^B\x1A[0-9]+B|^C\x1A[0-9]+C$/', $value); + + if ($is_p) { + $value = "

        $value

        "; + } + $grafs[$key] = $value; + } + + // Join grafs in one text, then unhash HTML tags. + $text = implode("\n\n", $grafs); + + // Finish by removing any tag hashes still present in $text. + $text = $this->unhash($text); + + return $text; + } + + + /** + * Footnotes - Strips link definitions from text, stores the URLs and + * titles in hash references. + * @param string $text + * @return string + */ + protected function stripFootnotes($text) { + $less_than_tab = $this->tab_width - 1; + + // Link defs are in the form: [^id]: url "optional title" + $text = preg_replace_callback('{ + ^[ ]{0,' . $less_than_tab . '}\[\^(.+?)\][ ]?: # note_id = $1 + [ ]* + \n? # maybe *one* newline + ( # text = $2 (no blank lines allowed) + (?: + .+ # actual text + | + \n # newlines but + (?!\[.+?\][ ]?:\s)# negative lookahead for footnote or link definition marker. + (?!\n+[ ]{0,3}\S)# ensure line is not blank and followed + # by non-indented content + )* + ) + }xm', + array($this, '_stripFootnotes_callback'), + $text); + return $text; + } + + /** + * Callback for stripping footnotes + * @param array $matches + * @return string + */ + protected function _stripFootnotes_callback($matches) { + $note_id = $this->fn_id_prefix . $matches[1]; + $this->footnotes[$note_id] = $this->outdent($matches[2]); + return ''; // String that will replace the block + } + + /** + * Replace footnote references in $text [^id] with a special text-token + * which will be replaced by the actual footnote marker in appendFootnotes. + * @param string $text + * @return string + */ + protected function doFootnotes($text) { + if (!$this->in_anchor) { + $text = preg_replace('{\[\^(.+?)\]}', "F\x1Afn:\\1\x1A:", $text); + } + return $text; + } + + /** + * Append footnote list to text + * @param string $text + * @return string + */ + protected function appendFootnotes($text) { + $text = preg_replace_callback('{F\x1Afn:(.*?)\x1A:}', + array($this, '_appendFootnotes_callback'), $text); + + if ( ! empty( $this->footnotes_ordered ) ) { + $this->_doFootnotes(); + if ( ! $this->omit_footnotes ) { + $text .= "\n\n"; + $text .= "
        \n"; + $text .= "empty_element_suffix . "\n"; + $text .= $this->footnotes_assembled; + $text .= "
        "; + } + } + return $text; + } + + + /** + * Generates the HTML for footnotes. Called by appendFootnotes, even if + * footnotes are not being appended. + * @return void + */ + protected function _doFootnotes() { + $attr = array(); + if ($this->fn_backlink_class !== "") { + $class = $this->fn_backlink_class; + $class = $this->encodeAttribute($class); + $attr['class'] = " class=\"$class\""; + } + $attr['role'] = " role=\"doc-backlink\""; + $num = 0; + + $text = "
          \n\n"; + while (!empty($this->footnotes_ordered)) { + $footnote = reset($this->footnotes_ordered); + $note_id = key($this->footnotes_ordered); + unset($this->footnotes_ordered[$note_id]); + $ref_count = $this->footnotes_ref_count[$note_id]; + unset($this->footnotes_ref_count[$note_id]); + unset($this->footnotes[$note_id]); + + $footnote .= "\n"; // Need to append newline before parsing. + $footnote = $this->runBlockGamut("$footnote\n"); + $footnote = preg_replace_callback('{F\x1Afn:(.*?)\x1A:}', + array($this, '_appendFootnotes_callback'), $footnote); + + $num++; + $note_id = $this->encodeAttribute($note_id); + + // Prepare backlink, multiple backlinks if multiple references + // Do not create empty backlinks if the html is blank + $backlink = ""; + if (!empty($this->fn_backlink_html)) { + for ($ref_num = 1; $ref_num <= $ref_count; ++$ref_num) { + if (!empty($this->fn_backlink_title)) { + $attr['title'] = ' title="' . $this->encodeAttribute($this->fn_backlink_title) . '"'; + } + if (!empty($this->fn_backlink_label)) { + $attr['label'] = ' aria-label="' . $this->encodeAttribute($this->fn_backlink_label) . '"'; + } + $parsed_attr = $this->parseFootnotePlaceholders( + implode('', $attr), + $num, + $ref_num + ); + $backlink_text = $this->parseFootnotePlaceholders( + $this->fn_backlink_html, + $num, + $ref_num + ); + $ref_count_mark = $ref_num > 1 ? $ref_num : ''; + $backlink .= " $backlink_text"; + } + $backlink = trim($backlink); + } + + // Add backlink to last paragraph; create new paragraph if needed. + if (!empty($backlink)) { + if (preg_match('{

          $}', $footnote)) { + $footnote = substr($footnote, 0, -4) . " $backlink

          "; + } else { + $footnote .= "\n\n

          $backlink

          "; + } + } + + $text .= "
        1. \n"; + $text .= $footnote . "\n"; + $text .= "
        2. \n\n"; + } + $text .= "
        \n"; + + $this->footnotes_assembled = $text; + } + + /** + * Callback for appending footnotes + * @param array $matches + * @return string + */ + protected function _appendFootnotes_callback($matches) { + $node_id = $this->fn_id_prefix . $matches[1]; + + // Create footnote marker only if it has a corresponding footnote *and* + // the footnote hasn't been used by another marker. + if (isset($this->footnotes[$node_id])) { + $num =& $this->footnotes_numbers[$node_id]; + if (!isset($num)) { + // Transfer footnote content to the ordered list and give it its + // number + $this->footnotes_ordered[$node_id] = $this->footnotes[$node_id]; + $this->footnotes_ref_count[$node_id] = 1; + $num = $this->footnote_counter++; + $ref_count_mark = ''; + } else { + $ref_count_mark = $this->footnotes_ref_count[$node_id] += 1; + } + + $attr = ""; + if ($this->fn_link_class !== "") { + $class = $this->fn_link_class; + $class = $this->encodeAttribute($class); + $attr .= " class=\"$class\""; + } + if ($this->fn_link_title !== "") { + $title = $this->fn_link_title; + $title = $this->encodeAttribute($title); + $attr .= " title=\"$title\""; + } + $attr .= " role=\"doc-noteref\""; + + $attr = str_replace("%%", $num, $attr); + $node_id = $this->encodeAttribute($node_id); + + return + "". + "$num". + ""; + } + + return "[^" . $matches[1] . "]"; + } + + /** + * Build footnote label by evaluating any placeholders. + * - ^^ footnote number + * - %% footnote reference number (Nth reference to footnote number) + * @param string $label + * @param int $footnote_number + * @param int $reference_number + * @return string + */ + protected function parseFootnotePlaceholders($label, $footnote_number, $reference_number) { + return str_replace( + array('^^', '%%'), + array($footnote_number, $reference_number), + $label + ); + } + + + /** + * Abbreviations - strips abbreviations from text, stores titles in hash + * references. + * @param string $text + * @return string + */ + protected function stripAbbreviations($text) { + $less_than_tab = $this->tab_width - 1; + + // Link defs are in the form: [id]*: url "optional title" + $text = preg_replace_callback('{ + ^[ ]{0,' . $less_than_tab . '}\*\[(.+?)\][ ]?: # abbr_id = $1 + (.*) # text = $2 (no blank lines allowed) + }xm', + array($this, '_stripAbbreviations_callback'), + $text); + return $text; + } + + /** + * Callback for stripping abbreviations + * @param array $matches + * @return string + */ + protected function _stripAbbreviations_callback($matches) { + $abbr_word = $matches[1]; + $abbr_desc = $matches[2]; + if ($this->abbr_word_re) { + $this->abbr_word_re .= '|'; + } + $this->abbr_word_re .= preg_quote($abbr_word); + $this->abbr_desciptions[$abbr_word] = trim($abbr_desc); + return ''; // String that will replace the block + } + + /** + * Find defined abbreviations in text and wrap them in elements. + * @param string $text + * @return string + */ + protected function doAbbreviations($text) { + if ($this->abbr_word_re) { + // cannot use the /x modifier because abbr_word_re may + // contain significant spaces: + $text = preg_replace_callback('{' . + '(?abbr_word_re . ')' . + '(?![\w\x1A])' . + '}', + array($this, '_doAbbreviations_callback'), $text); + } + return $text; + } + + /** + * Callback for processing abbreviations + * @param array $matches + * @return string + */ + protected function _doAbbreviations_callback($matches) { + $abbr = $matches[0]; + if (isset($this->abbr_desciptions[$abbr])) { + $desc = $this->abbr_desciptions[$abbr]; + if (empty($desc)) { + return $this->hashPart("$abbr"); + } + $desc = $this->encodeAttribute($desc); + return $this->hashPart("$abbr"); + } + return $matches[0]; + } + + protected function doStrikethrough($text) { + # + # Strikethrough: + # in: text ~~deleted~~ from doc + # out: text deleted from doc + # + $parts = preg_split('/(?' : ''); + $inTag = !$inTag; + } + } + + //no hanging delimiter + if($inTag) + $parts[] = ''; + + return implode('', $parts); + } + +} diff --git a/system/vendor/michelf/php-markdown/Michelf/MarkdownInterface.inc.php b/system/vendor/michelf/php-markdown/Michelf/MarkdownInterface.inc.php new file mode 100644 index 0000000..c4e9ac7 --- /dev/null +++ b/system/vendor/michelf/php-markdown/Michelf/MarkdownInterface.inc.php @@ -0,0 +1,9 @@ + + * @copyright 2004-2021 Michel Fortin + * @copyright (Original Markdown) 2004-2006 John Gruber + */ + +namespace Michelf; + +/** + * Markdown Parser Interface + */ +interface MarkdownInterface { + /** + * Initialize the parser and return the result of its transform method. + * This will work fine for derived classes too. + * + * @api + * + * @param string $text + * @return string + */ + public static function defaultTransform($text); + + /** + * Main function. Performs some preprocessing on the input text + * and pass it through the document gamut. + * + * @api + * + * @param string $text + * @return string + */ + public function transform($text); +} diff --git a/system/vendor/michelf/php-markdown/Readme.md b/system/vendor/michelf/php-markdown/Readme.md new file mode 100644 index 0000000..1a0ee06 --- /dev/null +++ b/system/vendor/michelf/php-markdown/Readme.md @@ -0,0 +1,448 @@ +PHP Markdown +============ + +PHP Markdown Lib 1.9.1 - 23 Nov 2021 + +by Michel Fortin + + +based on Markdown by John Gruber + + + +Introduction +------------ + +This is a library package that includes the PHP Markdown parser and its +sibling PHP Markdown Extra with additional features. + +Markdown is a text-to-HTML conversion tool for web writers. Markdown +allows you to write using an easy-to-read, easy-to-write plain text +format, then convert it to structurally valid XHTML (or HTML). + +"Markdown" is actually two things: a plain text markup syntax, and a +software tool, originally written in Perl, that converts the plain text +markup to HTML. PHP Markdown is a port to PHP of the original Markdown +program by John Gruber. + +* [Full documentation of the Markdown syntax]() + — Daring Fireball (John Gruber) +* [Markdown Extra syntax additions]() + — Michel Fortin + + +Requirement +----------- + +This library package requires PHP 5.3 or later. + +Note: The older plugin/library hybrid package for PHP Markdown and +PHP Markdown Extra is no longer maintained but will work with PHP 4.0.5 and +later. + +Before PHP 5.3.7, pcre.backtrack_limit defaults to 100 000, which is too small +in many situations. You might need to set it to higher values. Later PHP +releases defaults to 1 000 000, which is usually fine. + + +Usage +----- + +To use this library with Composer, first install it with: + + $ composer require michelf/php-markdown + +Then include Composer's generated vendor/autoload.php to [enable autoloading]: + + require 'vendor/autoload.php'; + +Without Composer, for autoloading to work, your project needs an autoloader +compatible with PSR-4 or PSR-0. See the included Readme.php file for a minimal +autoloader setup. (If you cannot use autoloading, see below.) + +With class autoloading in place: + + use Michelf\Markdown; + $my_html = Markdown::defaultTransform($my_text); + +Markdown Extra syntax is also available the same way: + + use Michelf\MarkdownExtra; + $my_html = MarkdownExtra::defaultTransform($my_text); + +If you wish to use PHP Markdown with another text filter function +built to parse HTML, you should filter the text *after* the `transform` +function call. This is an example with [PHP SmartyPants]: + + use Michelf\Markdown, Michelf\SmartyPants; + $my_html = Markdown::defaultTransform($my_text); + $my_html = SmartyPants::defaultTransform($my_html); + +All these examples are using the static `defaultTransform` static function +found inside the parser class. If you want to customize the parser +configuration, you can also instantiate it directly and change some +configuration variables: + + use Michelf\MarkdownExtra; + $parser = new MarkdownExtra; + $parser->fn_id_prefix = "post22-"; + $my_html = $parser->transform($my_text); + +To learn more, see the full list of [configuration variables]. + + [enable autoloading]: https://getcomposer.org/doc/01-basic-usage.md#autoloading + [PHP SmartyPants]: https://michelf.ca/projects/php-smartypants/ + [configuration variables]: https://michelf.ca/projects/php-markdown/configuration/ + + +### Usage without an autoloader + +If you cannot use class autoloading, you can still use `include` or `require` +to access the parser. To load the `Michelf\Markdown` parser, do it this way: + + require_once 'Michelf/Markdown.inc.php'; + +Or, if you need the `Michelf\MarkdownExtra` parser: + + require_once 'Michelf/MarkdownExtra.inc.php'; + +While the plain `.php` files depend on autoloading to work correctly, using the +`.inc.php` files instead will eagerly load the dependencies that would be +loaded on demand if you were using autoloading. + + +Public API and Versioning Policy +--------------------------------- + +Version numbers are of the form *major*.*minor*.*patch*. + +The public API of PHP Markdown consist of the two parser classes `Markdown` +and `MarkdownExtra`, their constructors, the `transform` and `defaultTransform` +functions and their configuration variables. The public API is stable for +a given major version number. It might get additions when the minor version +number increments. + +**Protected members are not considered public API.** This is unconventional +and deserves an explanation. Incrementing the major version number every time +the underlying implementation of something changes is going to give +nonessential version numbers for the vast majority of people who just use the +parser. Protected members are meant to create parser subclasses that behave in +different ways. Very few people create parser subclasses. I don't want to +discourage it by making everything private, but at the same time I can't +guarantee any stable hook between versions if you use protected members. + +**Syntax changes** will increment the minor number for new features, and the +patch number for small corrections. A *new feature* is something that needs a +change in the syntax documentation. Note that since PHP Markdown Lib includes +two parsers, a syntax change for either of them will increment the minor +number. Also note that there is nothing perfectly backward-compatible with the +Markdown syntax: all inputs are always valid, so new features always replace +something that was previously legal, although generally nonsensical to do. + + +Bugs +---- + +To file bug reports please send email to: + + +Please include with your report: (1) the example input; (2) the output you +expected; (3) the output PHP Markdown actually produced. + +If you have a problem where Markdown gives you an empty result, first check +that the backtrack limit is not too low by running `php --info | grep pcre`. +See Installation and Requirement above for details. + + +Development and Testing +----------------------- + +Pull requests for fixing bugs are welcome. Proposed new features are +going to be meticulously reviewed -- taking into account backward compatibility, +potential side effects, and future extensibility -- before deciding on +acceptance or rejection. + +If you make a pull request that includes changes to the parser please add +tests for what is being changed to the `test/` directory. This can be as +simple as adding a `.text` (input) file with a corresponding `.xhtml` +(output) file to proper category under `./test/resources/`. + +Traditionally tests were in a separate repository, [MDTest](https://github.com/michelf/mdtest) +but they are now located here, alongside the source code. + + +Donations +--------- + +If you wish to make a donation that will help me devote more time to +PHP Markdown, please visit [michelf.ca/donate]. + + [michelf.ca/donate]: https://michelf.ca/donate/#!Thanks%20for%20PHP%20Markdown + + +Version History +--------------- + +PHP Markdown Lib 1.9.1 (23 Nov 2021) + +* Now treating `
        ` and `` as block level so they don't + get wrapped in `

        `. + (Thanks to Thomas Hochstein for the fix.) + +* Fix for unintended blank title attribute when adding supplementary attributes + to a link in Markdown Extra. + (Thanks to Richie Black for the fix.) + + +PHP Markdown Lib 1.9.0 (1 Dec 2019) + +* Added `fn_backlink_label` configuration variable to put some text in the + `aria-label` attribute. + (Thanks to Sunny Walker for the implementation.) + +* Occurances of "`^^`" in `fn_backlink_html`, `fn_backlink_class`, + `fn_backlink_title`, and `fn_backlink_label` will be replaced by the + corresponding footnote number in the HTML output. Occurances of "`%%`" will be + replaced by a number for the reference (footnotes can have multiple references). + (Thanks to Sunny Walker for the implementation.) + +* Added configuration variable `omit_footnotes`. When `true` footnotes are not + appended at the end of the generated HTML and the `footnotes_assembled` + variable will contain the HTML for the footnote list, allowing footnotes to be + moved somewhere else on the page. + (Thanks to James K. for the implementation.) + + Note: when placing the content of `footnotes_assembled` on the page, consider + adding the attribute `role="doc-endnotes"` to the `

        ` or `
        ` that will + enclose the list of footnotes so they are reachable to accessibility tools the + same way they would be with the default HTML output. + +* Fixed deprecation warnings from PHP about usage of curly braces to access + characters in text strings. + (Thanks to Remi Collet and Frans-Willem Post.) + + +PHP Markdown Lib 1.8.0 (14 Jan 2018) + +* Autoloading with Composer now uses PSR-4. + +* HTML output for Markdown Extra footnotes now include `role` attributes + with values from [WAI-ARIA](https://www.w3.org/TR/dpub-aria/) to + make them more accessible. + (Thanks to Tobias Bengfort) + +* In Markdown Extra, added the `hashtag_protection` configuration variable. + When set to `true` it prevents ATX-style headers with no space after the initial + hash from being interpreted as headers. This way your precious hashtags + are preserved. + (Thanks to Jaussoin Timothée for the implementation.) + + +PHP Markdown Lib 1.7.0 (29 Oct 2016) + +* Added a `hard_wrap` configuration variable to make all newline characters + in the text become `
        ` tags in the HTML output. By default, according + to the standard Markdown syntax these newlines are ignored unless they a + preceded by two spaces. Thanks to Jonathan Cohlmeyer for the implementation. + +* Improved the parsing of list items to fix problematic cases that came to + light with the addition of `hard_wrap`. This should have no effect on the + output except span-level list items that ended with two spaces (and thus + ended with a line break). + +* Added a `code_span_content_func` configuration variable which takes a + function that will convert the content of the code span to HTML. This can + be useful to implement syntax highlighting. Although contrary to its + code block equivalent, there is no syntax for specifying a language. + Credits to styxit for the implementation. + +* Fixed a Markdown Extra issue where two-space-at-end-of-line hard breaks + wouldn't work inside of HTML block elements such as `

        ` + where the element expects only span-level content. + +* In the parser code, switched to PHPDoc comment format. Thanks to + Robbie Averill for the help. + + +PHP Markdown Lib 1.6.0 (23 Dec 2015) + +Note: this version was incorrectly released as 1.5.1 on Dec 22, a number +that contradicted the versioning policy. + +* For fenced code blocks in Markdown Extra, can now set a class name for the + code block's language before the special attribute block. Previously, this + class name was only allowed in the absence of the special attribute block. + +* Added a `code_block_content_func` configuration variable which takes a + function that will convert the content of the code block to HTML. This is + most useful for syntax highlighting. For fenced code blocks in Markdown + Extra, the function has access to the language class name (the one outside + of the special attribute block). Credits to Mario Konrad for providing the + implementation. + +* The curled arrow character for the backlink in footnotes is now followed + by a Unicode variant selector to prevent it from being displayed in emoji + form on iOS. + + Note that in older browsers the variant selector is often interpreted as a + separate character, making it visible after the arrow. So there is now a + also a `fn_backlink_html` configuration variable that can be used to set + the link text to something else. Credits to Dana for providing the + implementation. + +* Fixed an issue in MarkdownExtra where long header lines followed by a + special attribute block would hit the backtrack limit an cause an empty + string to be returned. + + +PHP Markdown Lib 1.5.0 (1 Mar 2015) + +* Added the ability start ordered lists with a number different from 1 and + and have that reflected in the HTML output. This can be enabled with + the `enhanced_ordered_lists` configuration variable for the Markdown + parser; it is enabled by default for Markdown Extra. + Credits to Matt Gorle for providing the implementation. + +* Added the ability to insert custom HTML attributes with simple values + everywhere an extra attribute block is allowed (links, images, headers). + The value must be unquoted, cannot contains spaces and is limited to + alphanumeric ASCII characters. + Credits to Peter Droogmans for providing the implementation. + +* Added a `header_id_func` configuration variable which takes a function + that can generate an `id` attribute value from the header text. + Credits to Evert Pot for providing the implementation. + +* Added a `url_filter_func` configuration variable which takes a function + that can rewrite any link or image URL to something different. + + +PHP Markdown Lib 1.4.1 (4 May 2014) + +* The HTML block parser will now treat `

        ` as a block-level element + (as it should) and no longer wrap it in `

        ` or parse it's content with + the as Markdown syntax (although with Extra you can use `markdown="1"` + if you wish to use the Markdown syntax inside it). + +* The content of ` +

        +
        + + + + + +
        +
        +
        + + + + + + + + \ No newline at end of file diff --git a/themes/blog/main.html.php b/themes/blog/main.html.php new file mode 100644 index 0000000..b9f9831 --- /dev/null +++ b/themes/blog/main.html.php @@ -0,0 +1,88 @@ + + + + + +
        +
        +
        +
        +

        title;?>

        + +
        + body; ?> +
        +
        +
        +
        +
        + + + +
        +
        +
        +
        + image)) { ?> + + + video)) { ?> + + + audio)) { ?> + + + quote)) { ?> + + +
        + link)) { ?> +

        title;?>

        + +

        title;?>

        + +

        + - + category;?> + + + - + + - url ?>> + + Edit'; } ?> +

        +
        +
        + body, $p->url);?> + [...] +
        +
        + + + + +
        +
        +
        +
        +
        +
        + + + + + + + \ No newline at end of file diff --git a/themes/blog/no-posts.html.php b/themes/blog/no-posts.html.php new file mode 100644 index 0000000..aec4646 --- /dev/null +++ b/themes/blog/no-posts.html.php @@ -0,0 +1,2 @@ + +

        !

        \ No newline at end of file diff --git a/themes/blog/post.html.php b/themes/blog/post.html.php new file mode 100644 index 0000000..71c5649 --- /dev/null +++ b/themes/blog/post.html.php @@ -0,0 +1,112 @@ + + + + +
        +
        +
        + +
        + image)) { ?> + + + video)) { ?> + + + audio)) { ?> + + + quote)) { ?> + + +
        + link)) { ?> +

        title;?>

        + +

        title;?>

        + +

        + - + category;?> + +

        +
        +
        + body; ?> +
        +
        + tag;?> + + + + url ?>> + + +
        +
        +
        +
        + + + + + + +
        +
        + + title, $p->url) ?> + + + + + related, true, config('related.count'));?> + = 1) { ?> + + +
        +
        +
        +
        + +
        +
        +
        +
        +

        Comments

        + +
        + + +
        + +
        +
        +
        +
        + \ No newline at end of file diff --git a/themes/blog/profile.html.php b/themes/blog/profile.html.php new file mode 100644 index 0000000..3300f02 --- /dev/null +++ b/themes/blog/profile.html.php @@ -0,0 +1,34 @@ + + + + +
        +
        +
        +
        +

        name ?>

        +
        + about; ?> +
        +

        + +
          + +
        • + title ?> - + date) ?> - category ?> +
        • + +
        + +
        +
        +
        +
        + + + + + \ No newline at end of file diff --git a/themes/blog/static.html.php b/themes/blog/static.html.php new file mode 100644 index 0000000..7b2013b --- /dev/null +++ b/themes/blog/static.html.php @@ -0,0 +1,27 @@ + + + + +
        +
        +
        + +
        +

        title;?>

        +
        + body; ?> +
        +
        +
        + + + + + + +
        +
        +
        +
        +
        +
        \ No newline at end of file diff --git a/themes/clean/404-search.html.php b/themes/clean/404-search.html.php new file mode 100644 index 0000000..8a7946f --- /dev/null +++ b/themes/clean/404-search.html.php @@ -0,0 +1,13 @@ + + + + +
        +
        +

        Search results not found!

        +

        Please search again, or would you like to try our homepage instead?

        +
        + +
        +
        +
        diff --git a/themes/clean/404.html.php b/themes/clean/404.html.php new file mode 100644 index 0000000..d8058e9 --- /dev/null +++ b/themes/clean/404.html.php @@ -0,0 +1,11 @@ + + + + +
        +
        +

        This page doesn't exist!

        +

        Please search to find what you're looking for or visit our homepage instead.

        + +
        +
        \ No newline at end of file diff --git a/themes/clean/css/style.css b/themes/clean/css/style.css new file mode 100644 index 0000000..ad24c3e --- /dev/null +++ b/themes/clean/css/style.css @@ -0,0 +1,956 @@ +/*------------------------- + Simple reset +--------------------------*/ + +* { + margin: 0; + padding: 0; +} + +/*------------------------- + General Styles +--------------------------*/ + +html { + +} + +body { + font: 16px/1.6 Georgia, Arial, sans-serif; + color: #4f4f4f; +} + +a, a:visited { + outline: none; + color: #389dc1; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +section, footer, header, aside, nav { + display: block; +} + +img { + border: 0 none; + height: auto; + max-width: 100%; + outline: 0 none; +} + +.hide { + position: absolute; + top: -9999em; + left: -9999em; +} + +/*---------------------------- + Headings +-----------------------------*/ + +h1 { + font: 28px 'Open Sans Condensed', sans-serif; + line-height: 1.2; + margin: 0.5em 0; +} + +h1.blog-title, h2.blog-title { + text-transform: uppercase; + font: 20px 'Open Sans Condensed', sans-serif; + margin-bottom: 1em; + line-height: 1.3; +} + +h1.blog-title a, h2.blog-title a { + color: #4f4f4f; + text-decoration: none; +} + +h1.blog-title a:hover, h2.blog-title a:hover { + color: #389dc1; +} + +h1.title-post, h2.title-index { + font: 28px 'Open Sans Condensed', sans-serif; + line-height: 1.2; + text-transform: normal; + margin: 0 0 20px 0; +} + +h1.title-post a, h2.title-index a { + color: #4f4f4f; + text-decoration: none; +} + +h1.title-post a:hover, h2.title-index a:hover { + color: #389dc1; +} + +h2 { + font: 22px 'Open Sans Condensed', sans-serif; + line-height: 1.2; + margin: 0.5em 0; +} + +h2.title-index { + font: 28px 'Open Sans Condensed', sans-serif; + line-height: 1.2; + text-transform: normal; + margin: 0 0 20px 0; +} + +h3 { + font: 18px 'Open Sans Condensed', sans-serif; + line-height: 1.2; + margin: 0.5em 0; +} + +h4 { + font: 16px 'Open Sans Condensed', sans-serif; + line-height: 1.2; + margin: 0.5em 0; +} + +h5 { + font: 14px 'Open Sans Condensed', sans-serif; + line-height: 1.2; + margin: 0.5em 0; +} + +h6 { + font: 12px 'Open Sans Condensed', sans-serif; + line-height: 1.2; + margin: 0.5em 0; +} + +/*------------------------- + Tab +--------------------------*/ + +.tab { + width: 100%; + margin: 0.5em 0 0.5em 0; + line-height: 1; + border-bottom: 1px solid #E4E7EE; +} + +.tab ul { + padding:0; + margin:0; +} + +.tab li { + display: inline-block; + margin:0; + padding:0; +} + +.tab a { + background: #E4E7EE; + border-radius: 6px 6px 0px 0; + color: #555555; + text-align: center; + padding: 8px 14px; + display: inline-block; + margin: 0 5px; + font-size: 12px; + font-weight: bold; + font-family: 'Open Sans', sans-serif; +} + +#content ul.nav, #content ul.nav li { + margin-bottom:0; +} + +/*---------------------------- + Content & Posts +-----------------------------*/ + +#content { + position: absolute; + width: 580px; + left: 50%; + margin-left: -100px; +} + +#content p, +#content ul { + margin: 1em 0; +} + +#content ul { + padding-left: 20px; +} + +#content li { + margin-bottom: 5px; +} + +#content div.actions { + margin-top: 25px; + font-size: 14px; + font-family: 'Open Sans Condensed', sans-serif; +} + +#content div.actions .readmore { + text-decoration: none !important; + padding: 0 2px; +} + +#content div.actions .readmore:hover { + background-color: #389dc1; + color: #fff; +} + +#content div.actions .comments { + color: #ccc; + margin-left: 10px; + text-decoration: none; +} + +.in-front .post, .in-tag .post, .in-archive .post, .in-search .post, .in-profile .post, .in-category .post, .in-blog .post, .in-type .post{ + border-bottom: 1px solid #dfdfdf; + padding: 30px 0 10px 0; +} + +.in-front .post.first { + padding-top: 50px; +} + +.in-tag .post.first, .in-archive .post.first, .in-search .post.first, .in-profile .post.first { + padding-top: 0px; +} + +.post .date { + font: bold 12px 'Open Sans Condensed', sans-serif; + text-transform: uppercase; + color: #a7a7a7; + margin: 0 0 20px 20px; + position: relative; +} + +.post .date:before { + width: 18px; + height: 18px; + position: absolute; + content: ''; + left: -22px; + top: -1px; + background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoyNjZDQjA1OTM1ODZFMjExQUUwM0IwQzQwMjlEOTczMyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpENjYzQjI4QjhCNDYxMUUyQjNENkFGQ0NCRUExRDM1NSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpENjYzQjI4QThCNDYxMUUyQjNENkFGQ0NCRUExRDM1NSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4NjA1NUJCNzUzOEFFMjExQUUwM0IwQzQwMjlEOTczMyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyNjZDQjA1OTM1ODZFMjExQUUwM0IwQzQwMjlEOTczMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhTXJRoAAADXSURBVHjaYvz//z8DNQDL7t27sYmDTGfEoQdDztXVlYEJyg4B4rdA/AGLJhjGJgfS4wfiwAyaCcRCQMwGxMxQMTY0jdjkQHqmwQzihwqAACcQ50CdXoRmEC45aXAYYQmDCVDMQIocskGMZEbYB+QwQokBEAaCzch8dDF0wMRAJcC4a9cufqjzYF7bTKReX5jXgC4UYMHiNbACYEJ9AaQkkL2BLIaekIeA15AUbEZiM+ARo67XQAZ9BOJ3eFxGSOwFcspOBOLnoBgh0SEgQ+LAgU2tgg0gwACqTkAIjemp4gAAAABJRU5ErkJggg==') +} + +pre { + margin: 1em 0; + overflow: auto; + background: #F1F1FF; + color: #333333; + display: block; + font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif; + font-size: 14px; + padding: 10px; + line-height: 1.3; +} + +code { + color: #333333; + font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif; + font-size: 15px; + padding: 3px 8px; + background: #F1F1FF; +} + +pre code { + color: #333333; + display: block; + font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif; + font-size: 14px; + padding: 0; + line-height: 1.6; +} + +.comments { + position: relative; + display: block; + font-size: 16px; + float: left; + width: 100%; +} + +.border { + border-top: 1px solid #DFDFDF; + padding-bottom: 15px; + margin-bottom: 15px; + margin-top: 10px; +} + +.border .fb-comments, .border #disqus_thread { + padding-top: 1.2em; +} + +#disqus_thread { + font-family: Georgia, Times, Cambria, serif; + float: left; + width: 100%; +} + +.breadcrumb { + padding-top: 50px; + padding-bottom: 10px; + font: normal 14px 'Open Sans Condensed', sans-serif; +} + +.thumbnail { + float: left; + height: 80px; + width: 80px; + margin: 5px 15px 0 0; + overflow: hidden; + display: block; + background-repeat: no-repeat; + background-position: center; + background-size: cover; +} + +blockquote:before { + color: #BBBBBB; + content: "“"; + font-size: 3em; + line-height: 0.1em; + margin-right: 0.2em; + vertical-align: -0.4em; +} + +blockquote:after { + color: #BBBBBB; + content: "”"; + font-size: 3em; + line-height: 0.1em; + vertical-align: -0.45em; +} + +blockquote p { + display: inline; +} + +.credit { + font-size: 12px; + text-align: center; + padding: 10px 0; +} + +.category { + background-color: #f9f9f9; + border: 1px solid #ccc; + border-radius: 4px; + color: #333; + display: block; + font-size: 13px; + margin: 20px 0; + padding: 0 1em; +} + +.tags a:after { + content:", "; +} +.tags a:last-child:after { + content:""; +} + +/*------------------------- + Table +--------------------------*/ + +table { + font-size: 12px; + border: none; + width: 100%; + color: #333333; + border: 1px solid #E3E3E3; + margin: 1em 0; +} + +table h2.title { + margin: 5px 0; +} + +th, td { + padding: 5px 10px; + border: none; +} + +th.title { + margin: 5px 0; + font-family: 'Open Sans Condensed', sans-serif; + font-size: 18px; + font-weight: normal; +} + +td.title { + font-weight: normal; + background-color: #f6f6f6; + font-family: 'Open Sans Condensed', sans-serif; +} + +th { + background-color: #f6f6f6; + border-bottom: 1px solid #E3E3E3; + border-right: 1px solid #E3E3E3; + font-family: 'Open Sans Condensed', sans-serif; + font-size: 18px; +} + +td { + background-color: #fafafa; + border: 1px solid #E3E3E3; + border-top: none; + border-left: none; +} + +/*---------------------------- + The left bar +-----------------------------*/ + +aside { + position: absolute; + width: 250px; + height: auto; + top: 0; + left: 50%; + bottom: 0; + margin-left: -460px; + padding-top: 65px; +} + +aside .blog-tagline p { + font-size: 14px; + margin-bottom: 1.2em; + color: #787878; +} + +aside .social { + margin-bottom: 1.2em; +} + +.gsc-control-searchbox-only { + width: 220px; +} + +aside .menu { + margin-bottom: 1.2em; +} + +aside h3 { + font: normal 16px 'Open Sans Condensed', sans-serif; + text-transform: uppercase; +} + +aside .menu ul { + font: bold 18px 'Open Sans Condensed', sans-serif; + text-transform: uppercase; + list-style: none; +} + +aside .menu ul li a { + text-decoration: none !important; + display: inline-block; + padding: 0 3px; + margin: 2px 0 2px 10px; +} + +aside .archive, aside .tagcloud, aside .category-list, aside .recent { + font-size: 14px; + font-family: Georgia, sans-serif; + margin-bottom: 1.2em; + margin-left: 10px; +} + +aside .tagcloud ul li, aside .recent ul li, aside .category-list ul li { + margin-left: 15px; +} + +aside .archive ul li ul { + margin-left: 18px; +} + +aside .menu ul li > a:hover, aside .menu ul li.active > a { + background-color: #389dc1; + color: #fff; +} + +aside .menu ul li ul.subnav { + display:none; +} + +aside .copyright { + padding: 1.2em 0 65px 0; + color: #888; + font: 11px Georgia, sans-serif; + font-weight: normal; + font-style: italic; +} + +aside .copyright p { + margin: 5px 0; +} + +/*------------------------- + Raleted posts +--------------------------*/ + +.related { + font-size: 14px; + font-family: 'Open Sans Condensed', sans-serif; + width: 100%; + float: left; +} + +.related ul { + margin: 0; +} + +/*---------------------------- + Pagination buttons +-----------------------------*/ + +.postnav { + width: 100%; + float: left; + padding: 0 0 30px 0; +} + +.postnav .pagination-arrow { + display: inline-block; + font: bold 12px/1 'Open Sans Condensed', sans-serif; + border: 1px solid #ccc; + border-radius: 3px; + color: #555 !important; + padding: 8px 12px; + text-decoration: none !important; + text-transform: none; + position: relative; +} + +.postnav .pagination-arrow.newer { + padding-left: 20px; +} + +.postnav .pagination-arrow.older { + padding-right: 20px; + float: right; +} + +.postnav .pagination-arrow.newer:before, +.postnav .pagination-arrow.older:before { + content: ''; + border: 5px solid #555; + border-color: transparent #555 transparent transparent; + width: 0; + height: 0; + position: absolute; + left: 3px; + top: 10px; +} + +.postnav .pagination-arrow.older:before { + left: auto; + right: 3px; + border-color: transparent transparent transparent #555; +} + +.pager { + width: 100%; + float: left; + padding: 30px 0 30px 0; + text-align:center; +} + +.pager .pagination-arrow { + display: inline-block; + font: bold 16px/1 'Open Sans Condensed', sans-serif; + border: 1px solid #ccc; + border-radius: 3px; + color: #555 !important; + padding: 8px 12px; + text-decoration: none !important; + text-transform: uppercase; + position: relative; +} + +.pager .pagination-arrow.newer { + padding-left: 20px; + float:left; +} + +.pager .pagination-arrow.older { + padding-right: 20px; + float: right; +} + +.pager .pagination-arrow.newer:before, +.pager .pagination-arrow.older:before { + content: ''; + border: 5px solid #555; + border-color: transparent #555 transparent transparent; + width: 0; + height: 0; + position: absolute; + left: 3px; + top: 12px; +} + +.pager .pagination-arrow.older:before { + left: auto; + right: 3px; + border-color: transparent transparent transparent #555; +} + +/*---------------------------- + The 404 page +-----------------------------*/ + +.message { + padding-top: 50px; +} + +.message h1 { + font-size: 36px; + margin-bottom: 18px; +} + +.message p { + font-size: 13px; +} + +.center { + text-align: center; +} + +/*---------------------------- + Search form +-----------------------------*/ + +.search { + position: relative; + float: left; + width: 100%; + margin-bottom: 1.2em; +} + +.search-input { + margin: 0; + padding: 5px 15px; + font-family: Arial, Helvetica, sans-serif; + font-size: 14px; + border: 1px solid #0076a3; + border-top-left-radius: 5px 5px; + border-bottom-left-radius: 5px 5px; + width: 120px; + color: #888888; +} + +.search-button { + margin: 0; + padding: 5px; + font-family: Arial, Helvetica, sans-serif; + font-size: 14px; + outline: none; + cursor: pointer; + text-align: center; + text-decoration: none; + color: #ffffff; + border: solid 1px #0076a3; + border-right: 0px; + background: #0095cd; + background: -webkit-gradient(linear, left top, left bottom, from(#00adee), to(#0078a5)); + background: -moz-linear-gradient(top, #00adee, #0078a5); + border-top-right-radius: 5px 5px; + border-bottom-right-radius: 5px 5px; + width: 60px; +} + +.search-button:hover { + text-decoration: none; + background: #007ead; + background: -webkit-gradient(linear, left top, left bottom, from(#0095cc), to(#00678e)); + background: -moz-linear-gradient(top, #0095cc, #00678e); +} + +/* Fixes submit button height problem in Firefox */ +.search-button::-moz-focus-inner { + border: 0; +} + +/*---------------------------- + Profile +-----------------------------*/ + +.profile { + font-size: 12px; + font-style: italic; + border-bottom: solid 1px #dfdfdf; + margin-bottom: 2em; + padding-bottom: 1em; +} + +.post-list { + padding-bottom: 2em; + border-bottom: solid 1px #dfdfdf; + font-size: 12px; +} + +/*---------------------------- + Share + Author info +-----------------------------*/ + +.separator { + text-align: left; + font-size: 18px; + line-height: 1; +} + +.share-box { + margin-bottom: 0.75em; +} + +.author-info { + font-size: 12px; + font-style: italic; + float: left; + width: 430px; + margin-right: 2em; +} + +.share { + font-size: 12px; + font-style: italic; + width: 120px; + float: right; +} + +.share a { + display: inline-block; + width: 18px; + height: 18px; + margin: 0; + padding: 0 5px; + vertical-align: middle; + -o-transition: all .3s; + -moz-transition: all .3s; + -webkit-transition: all .3s; + -ms-transition: all .3s; + text-indent: -9999em; +} + +.share a.twitter { + background: url(../../../system/resources/images/share-twitter.png) left top no-repeat; +} + +.share a.facebook { + background: url(../../../system/resources/images/share-facebook.png) left top no-repeat; +} + +.share a:hover { + background-position: left -26px; +} + +/*---------------------------- + Media queries +-----------------------------*/ + +@media all and (max-width: 1024px) { + aside { + left: 5%; + margin-left: 0; + width: 25%; + } + + #content { + left: 35%; + margin-left: 0; + width: 60%; + } +} + +@media all and (max-width: 840px) { + + h2 { + font-size: 22px; + } + + h1.title-post, h2.title-index { + font-size: 26px; + } + + aside { + margin-left: 0; + position: static; + width: 90%; + padding: 5% 5% 0 5%; + text-align: center; + } + + aside .blog-tagline { + margin-bottom: 25px; + } + + aside li { + display: inline-block; + } + + aside ul { + text-align: center; + } + + aside .archive, aside .tagcloud, aside .copyright, aside .recent { + display: none; + } + + #content { + position: static; + padding: 5%; + padding-top: 0; + width: 90%; + } + + .gsc-control-searchbox-only { + width: auto; + } + + .infront .post.first { + padding-top: 0px; + } + + .breadcrumb { + padding-top: 0px; + } + + .in-front .post, .in-tag .post, .in-archive .post, .in-search .post { + padding: 30px 0 20px 0; + } + + .search { + text-align: center; + } + + .author-info { + width: 100%; + } + + .share { + float: left; + width: 100%; + padding-bottom: 1em; + } +} + +/*---------------------------- + Video +-----------------------------*/ + +.video-wrapper { + margin: 1em 0; +} + +@media all and (min-width: 420px) { + .video-wrapper { + padding-top: 315px !important; + position: relative; + width: 100%; + max-width: 420px !important; + max-height: 315px !important; + } + + .video-wrapper iframe, .video-wrapper object, .video-wrapper embed { + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; + max-width: 420px !important; + max-height: 315px !important; + } + +} + +@media all and (max-width: 420px) { + .postnav .pagination-arrow.newer { + padding-left: 20px; + float: none; + margin-bottom: 20px; + } + + .postnav .pagination-arrow.older { + padding-right: 20px; + float: none; + } + + .video-wrapper { + position: relative; + padding-bottom: 56.25%; + padding-top: 30px; + height: 0; + overflow: hidden; + } + + .video-wrapper iframe, .video-wrapper object, .video-wrapper embed { + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; + } + +} + +@media all and (max-width: 560px) { + + .featured-video, .featured-audio { + position: relative; + padding-bottom: 56.25%; + padding-top: 30px; + height: 0; + overflow: hidden; + } + + .featured-video iframe, .featured-video object, .featured-video embed, .featured-audio iframe, .featured-audio object, .featured-audio embed { + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; + } + +} + +/*---------------------------- + Archive +-----------------------------*/ + +ul.archivegroup { + padding: 0; + margin: 0; +} + +.archivegroup .expanded ul { + display: block; +} + +.archivegroup .collapsed ul { + display: none; +} + +.archivegroup li.expanded, .archivegroup li.collapsed, .archivegroup li.expanded li, .archivegroup li.collapsed li { + list-style: none; + background:none; +} + +#more { + display:block; + height:1rem; + margin-top:-1rem; + box-shadow: none; + border: none; +} \ No newline at end of file diff --git a/themes/clean/layout.html.php b/themes/clean/layout.html.php new file mode 100644 index 0000000..c8ce330 --- /dev/null +++ b/themes/clean/layout.html.php @@ -0,0 +1,50 @@ + + + + + + <?php echo $title;?> + + + + + + + + +
        + + +
        + + + +
        + +
        + + + \ No newline at end of file diff --git a/themes/clean/main.html.php b/themes/clean/main.html.php new file mode 100644 index 0000000..2366c65 --- /dev/null +++ b/themes/clean/main.html.php @@ -0,0 +1,74 @@ + + + + + +
        +

        title;?>

        +
        + body; ?> +
        +
        + + + +
        +
        + link)) { ?> +

        title ?> →

        + +

        title ?>

        + +
        + - + category ?> + + - + + - + url ?>> + + Edit'; } ?> +
        + image)) { ?> + + + video)) { ?> + + + audio)) { ?> + + + quote)) { ?> + + +
        + body) ?> + body, $p->url) ?> + [...] +
        +
        +
        + + +
        + + + + + + + +
        + + + + \ No newline at end of file diff --git a/themes/clean/no-posts.html.php b/themes/clean/no-posts.html.php new file mode 100644 index 0000000..aec4646 --- /dev/null +++ b/themes/clean/no-posts.html.php @@ -0,0 +1,2 @@ + +

        !

        \ No newline at end of file diff --git a/themes/clean/post.html.php b/themes/clean/post.html.php new file mode 100644 index 0000000..ce52637 --- /dev/null +++ b/themes/clean/post.html.php @@ -0,0 +1,82 @@ + + + + + +
        +
        + + link)) { ?> +

        title ?> →

        + +

        title ?>

        + +
        + + - + category ?> + - + Permalink +
        + image)) { ?> + + + video)) { ?> + + + audio)) { ?> + + + quote)) { ?> + + +
        + body; ?> +
        +
        : tag;?>
        +
        +
        + + +
        + +
        + + +
        + +
        +
        + + + + + + +
        + + title, $p->url) ?> + +
        \ No newline at end of file diff --git a/themes/clean/profile.html.php b/themes/clean/profile.html.php new file mode 100644 index 0000000..6e2c1e6 --- /dev/null +++ b/themes/clean/profile.html.php @@ -0,0 +1,34 @@ + + + + +
        +
        +

        name ?>

        +
        about ?>
        +
        +
        +

        + +
          + +
        • + title ?> - + date) ?> - category; ?> +
        • + +
        + +
        + + + + + + + +
        + + \ No newline at end of file diff --git a/themes/clean/static.html.php b/themes/clean/static.html.php new file mode 100644 index 0000000..b126b6f --- /dev/null +++ b/themes/clean/static.html.php @@ -0,0 +1,22 @@ + + + + + +
        +
        +

        title ?>

        +
        + body; ?> +
        +
        +
        +
        + + + + + + +
        +
        \ No newline at end of file diff --git a/themes/doks/404-search.html.php b/themes/doks/404-search.html.php new file mode 100644 index 0000000..3feaab1 --- /dev/null +++ b/themes/doks/404-search.html.php @@ -0,0 +1,10 @@ + +
        +
        +

        Search results not found!

        +
        +
        +

        Please search again, or would you like to visit our homepage instead?

        + +
        +
        \ No newline at end of file diff --git a/themes/doks/404.html.php b/themes/doks/404.html.php new file mode 100644 index 0000000..285ed23 --- /dev/null +++ b/themes/doks/404.html.php @@ -0,0 +1,10 @@ + +
        +
        +

        This page doesn't exist!

        +
        +
        +

        Please search to find what you're looking for or visit our homepage instead.

        + +
        +
        \ No newline at end of file diff --git a/themes/doks/LICENSE.txt b/themes/doks/LICENSE.txt new file mode 100644 index 0000000..efec0b6 --- /dev/null +++ b/themes/doks/LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Hyas + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/themes/doks/README.md b/themes/doks/README.md new file mode 100644 index 0000000..11f586a --- /dev/null +++ b/themes/doks/README.md @@ -0,0 +1,16 @@ +# HTMLy Doks + +Documentation theme by getdoks.org ported to HTMLy + +## Installations + + - Upload and extract the zip file into themes directory. + - Activate it from HTMLy panel. + +## Doks landing page + +Go to `admin/config/reading` and choose `Front page displays` as `Static page`. + +## License + +See the LICENSE.txt diff --git a/themes/doks/css/style.css b/themes/doks/css/style.css new file mode 100644 index 0000000..db93cfa --- /dev/null +++ b/themes/doks/css/style.css @@ -0,0 +1,3583 @@ +/*! + * Bootstrap v5.0.0-beta3 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors + * Copyright 2011-2021 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root { + --bs-blue: #0d6efd; + --bs-indigo: #6610f2; + --bs-purple: #5d2f86; + --bs-pink: #d63384; + --bs-red: #dc3545; + --bs-orange: #fd7e14; + --bs-yellow: #ffe000; + --bs-green: #198754; + --bs-teal: #20c997; + --bs-cyan: #0dcaf0; + --bs-white: #fff; + --bs-gray: #6c757d; + --bs-gray-dark: #343a40; + --bs-primary: #2b388f; + --bs-secondary: #6c757d; + --bs-success: #198754; + --bs-info: #0dcaf0; + --bs-warning: #ffe000; + --bs-danger: #dc3545; + --bs-light: #f8f9fa; + --bs-dark: #212529; + --bs-font-sans-serif: "Jost", -apple-system, blinkmacsystemfont, "Segoe UI", roboto, "Helvetica Neue", arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --bs-font-monospace: sfmono-regular, menlo, monaco, consolas, "Liberation Mono", "Courier New", monospace; + --bs-gradient: linear-gradient(180deg, rgba(255,255,255,0.15), rgba(255,255,255,0)) +} +*, +*::before, +*::after { + box-sizing:border-box +} +@media (prefers-reduced-motion: no-preference) { + :root { + scroll-behavior:smooth + } +} +body { + margin:0; + font-family:"Jost",-apple-system,blinkmacsystemfont,"Segoe UI",roboto,"Helvetica Neue",arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; + font-size:1rem; + font-weight:400; + line-height:1.5; + color:#1d2d35; + background-color:#fff; + -webkit-text-size-adjust:100%; + -webkit-tap-highlight-color:rgba(29,45,53,0) +} +h4, +.h4, +h3, +.h3, +h2, +.h2, +h1, +.h1 { + margin-top:0; + margin-bottom:.5rem; + font-weight:700; + line-height:1.2 +} +h1, +.h1 { + font-size:calc(1.375rem + 1.5vw) +} +@media (min-width: 1200px) { + h1, + .h1 { + font-size:2.5rem + } +} +h2, +.h2 { + font-size:calc(1.325rem + .9vw) +} +@media (min-width: 1200px) { + h2, + .h2 { + font-size:2rem + } +} +h3, +.h3 { + font-size:calc(1.3rem + .6vw) +} +@media (min-width: 1200px) { + h3, + .h3 { + font-size:1.75rem + } +} +h4, +.h4 { + font-size:calc(1.275rem + .3vw) +} +@media (min-width: 1200px) { + h4, + .h4 { + font-size:1.5rem + } +} +p { + margin-top:0; + margin-bottom:1rem +} +ol, +ul { + padding-left:2rem +} +ol, +ul { + margin-top:0; + margin-bottom:1rem +} +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom:0 +} +blockquote { + margin:0 0 1rem +} +strong { + font-weight:bolder +} +small, +.small { + font-size:.875em +} +a { + color:#5d2f86; + text-decoration:none +} +a:hover { + color:#4a266b +} +a:not([href]):not([class]), +a:not([href]):not([class]):hover { + color:inherit; + text-decoration:none +} +pre, +code, +kbd, +samp { + font-family:var(--bs-font-monospace); + font-size:1em; + direction:ltr /* rtl:ignore */; + unicode-bidi:bidi-override +} +pre { + display:block; + margin-top:0; + margin-bottom:1rem; + overflow:auto; + font-size:.875em +} +pre code { + font-size:inherit; + color:inherit; + word-break:normal +} +code { + font-size:.875em; + color:#d63384; + word-wrap:break-word +} +a>code { + color:inherit +} +kbd { + padding:.2rem .4rem; + font-size:.875em; + color:#fff; + background-color:#212529; + border-radius:.2rem +} +kbd kbd { + padding:0; + font-size:1em; + font-weight:700 +} +figure { + margin:0 0 1rem +} +img, +svg { + vertical-align:middle +} +table { + caption-side:bottom; + border-collapse:collapse +} +caption { + padding-top:.5rem; + padding-bottom:.5rem; + color:#6c757d; + text-align:left +} +th { + text-align:inherit; + text-align:-webkit-match-parent +} +thead, +tbody, +tr, +td, +th { + border-color:inherit; + border-style:solid; + border-width:0 +} +label { + display:inline-block +} +button { + border-radius:0 +} +button:focus:not(:focus-visible) { + outline:0 +} +input, +button { + margin:0; + font-family:inherit; + font-size:inherit; + line-height:inherit +} +button { + text-transform:none +} +[role="button"] { + cursor:pointer +} +[list]::-webkit-calendar-picker-indicator { + display:none +} +button, +[type="button"] { + -webkit-appearance:button +} +button:not(:disabled), +[type="button"]:not(:disabled) { + cursor:pointer +} +[type="search"] { + outline-offset:-2px; + -webkit-appearance:textfield +} +summary { + display:list-item; + cursor:pointer +} +.lead { + font-size:1.25rem; + font-weight:400 +} +.list-unstyled { + padding-left:0; + list-style:none +} +.list-inline { + padding-left:0; + list-style:none +} +.list-inline-item { + display:inline-block +} +.list-inline-item:not(:last-child) { + margin-right:.5rem +} +.blockquote { + margin-bottom:1rem; + font-size:1.25rem +} +.blockquote>:last-child { + margin-bottom:0 +} +.img-fluid { + max-width:100%; + height:auto +} +.figure { + display:inline-block +} +.figure-caption { + font-size:.875em; + color:#6c757d +} +.container, +.container-fluid { + width:100%; + padding-right:var(--bs-gutter-x, 24px); + padding-left:var(--bs-gutter-x, 24px); + margin-right:auto; + margin-left:auto +} +@media (min-width: 576px) { + .container { + max-width:540px + } +} +@media (min-width: 768px) { + .container { + max-width:720px + } +} +@media (min-width: 992px) { + .container { + max-width:960px + } +} +@media (min-width: 1200px) { + .container { + max-width:1240px + } +} +@media (min-width: 1400px) { + .container { + max-width:1320px + } +} +.row { + --bs-gutter-x: 48px; + --bs-gutter-y: 0; + display:flex; + flex-wrap:wrap; + margin-top:calc(var(--bs-gutter-y) * -1); + margin-right:calc(var(--bs-gutter-x) / -2); + margin-left:calc(var(--bs-gutter-x) / -2) +} +.row>* { + flex-shrink:0; + width:100%; + max-width:100%; + padding-right:calc(var(--bs-gutter-x) / 2); + padding-left:calc(var(--bs-gutter-x) / 2); + margin-top:var(--bs-gutter-y) +} +@media (min-width: 768px) { + .col-md-12 { + flex:0 0 auto; + width:75% + } +} +@media (min-width: 992px) { + .col-lg-5 { + flex:0 0 auto; + width:31.25% + } + .col-lg-8 { + flex:0 0 auto; + width:50% + } + .col-lg-9 { + flex:0 0 auto; + width:56.25% + } + .col-lg-10 { + flex:0 0 auto; + width:62.5% + } + .col-lg-11 { + flex:0 0 auto; + width:68.75% + } + .col-lg-12 { + flex:0 0 auto; + width:75% + } +} +@media (min-width: 1200px) { + .col-xl-3 { + flex:0 0 auto; + width:18.75% + } + .col-xl-4 { + flex:0 0 auto; + width:25% + } + .col-xl-8 { + flex:0 0 auto; + width:50% + } + .col-xl-9 { + flex:0 0 auto; + width:56.25% + } +} +.table, +table { + --bs-table-bg: rgba(0,0,0,0); + --bs-table-striped-color: #1d2d35; + --bs-table-striped-bg: rgba(29,45,53,0.05); + --bs-table-active-color: #1d2d35; + --bs-table-active-bg: rgba(29,45,53,0.1); + --bs-table-hover-color: #1d2d35; + --bs-table-hover-bg: rgba(29,45,53,0.075); + width:100%; + margin-bottom:1rem; + color:#1d2d35; + vertical-align:top; + border-color:#e9ecef +} +.table>:not(caption)>*>*, +table>:not(caption)>*>* { + padding:.5rem .5rem; + background-color:var(--bs-table-bg); + border-bottom-width:1px; + box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg) +} +.table>tbody, +table>tbody { + vertical-align:inherit +} +.table>thead, +table>thead { + vertical-align:bottom +} +.table>:not(:last-child)>:last-child>*, +table>:not(:last-child)>:last-child>* { + border-bottom-color:currentColor +} +body.dark table { + --bs-table-bg: #212529; + --bs-table-striped-bg: #2c3034; + --bs-table-striped-color: #fff; + --bs-table-active-bg: #373b3e; + --bs-table-active-color: #fff; + --bs-table-hover-bg: #323539; + --bs-table-hover-color: #fff; + color:#fff; + border-color:#373b3e +} +.form-control { + display:block; + width:100%; + padding:.375rem .75rem; + font-size:1rem; + font-weight:400; + line-height:1.5; + color:#1d2d35; + background-color:#fff; + background-clip:padding-box; + border:1px solid #ced4da; + -webkit-appearance:none; + -moz-appearance:none; + appearance:none; + border-radius:.25rem; + transition:border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out +} +@media (prefers-reduced-motion: reduce) { + .form-control { + transition:none + } +} +.form-control:focus { + color:#1d2d35; + background-color:#fff; + border-color:#959cc7; + outline:0; + box-shadow:0 0 0 .25rem rgba(43,56,143,0.25) +} +.form-control::-webkit-date-and-time-value { + height:1.5em +} +.form-control::-moz-placeholder { + color:#6c757d; + opacity:1 +} +.form-control:-ms-input-placeholder { + color:#6c757d; + opacity:1 +} +.form-control::placeholder { + color:#6c757d; + opacity:1 +} +.form-control:disabled { + background-color:#e9ecef; + opacity:1 +} +.form-control::file-selector-button { + padding:.375rem .75rem; + margin:-.375rem -.75rem; + -webkit-margin-end:.75rem; + margin-inline-end:.75rem; + color:#1d2d35; + background-color:#e9ecef; + pointer-events:none; + border-color:inherit; + border-style:solid; + border-width:0; + border-inline-end-width:1px; + border-radius:0; + transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out +} +@media (prefers-reduced-motion: reduce) { + .form-control::file-selector-button { + transition:none + } +} +.form-control:hover:not(:disabled):not([readonly])::file-selector-button { + background-color:#dde0e3 +} +.form-control::-webkit-file-upload-button { + padding:.375rem .75rem; + margin:-.375rem -.75rem; + -webkit-margin-end:.75rem; + margin-inline-end:.75rem; + color:#1d2d35; + background-color:#e9ecef; + pointer-events:none; + border-color:inherit; + border-style:solid; + border-width:0; + border-inline-end-width:1px; + border-radius:0; + -webkit-transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out; + transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out +} +@media (prefers-reduced-motion: reduce) { + .form-control::-webkit-file-upload-button { + -webkit-transition:none; + transition:none + } +} +.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button { + background-color:#dde0e3 +} +.btn { + display:inline-block; + font-weight:400; + line-height:1.5; + color:#1d2d35; + text-align:center; + vertical-align:middle; + cursor:pointer; + -webkit-user-select:none; + -moz-user-select:none; + -ms-user-select:none; + user-select:none; + background-color:transparent; + border:1px solid transparent; + padding:.375rem .75rem; + font-size:1rem; + border-radius:.25rem; + transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out +} +@media (prefers-reduced-motion: reduce) { + .btn { + transition:none + } +} +.btn:hover { + color:#1d2d35 +} +.btn:focus { + outline:0; + box-shadow:0 0 0 .25rem rgba(43,56,143,0.25) +} +.btn:disabled, +.btn.disabled { + pointer-events:none; + opacity:.65 +} +.btn-primary { + color:#fff; + background-color:#5d2f86; + border-color:#5d2f86 +} +.btn-primary:hover { + color:#fff; + background-color:#49256a; + border-color:#432260 +} +.btn-primary:focus, +.btn-primary.focus { + color:#fff; + background-color:#49256a; + border-color:#432260; + box-shadow:0 0 0 .2rem rgba(117,78,152,0.5) +} +.btn-primary.disabled, +.btn-primary:disabled { + color:#fff; + background-color:#5d2f86; + border-color:#5d2f86 +} +.btn-primary:not(:disabled):not(.disabled):active, +.btn-primary.active:not(:disabled):not(.disabled) { + color:#fff; + background-color:#432260; + border-color:#3c1e57 +} +.btn-primary:not(:disabled):not(.disabled):active:focus, +.btn-primary.active:not(:disabled):not(.disabled):focus { + box-shadow:0 0 0 .2rem rgba(117,78,152,0.5) +} +.btn-outline-primary { + color:#2b388f; + border-color:#2b388f +} +.btn-outline-primary:hover { + color:#fff; + background-color:#2b388f; + border-color:#2b388f +} +.btn-outline-primary:focus { + box-shadow:0 0 0 .25rem rgba(43,56,143,0.5) +} +.btn-outline-primary:active, +.btn-outline-primary.active { + color:#fff; + background-color:#2b388f; + border-color:#2b388f +} +.btn-outline-primary:active:focus, +.btn-outline-primary.active:focus { + box-shadow:0 0 0 .25rem rgba(43,56,143,0.5) +} +.btn-outline-primary:disabled, +.btn-outline-primary.disabled { + color:#2b388f; + background-color:transparent +} +.btn-link { + font-weight:400; + color:#5d2f86; + text-decoration:none +} +.btn-link:hover { + color:#4a266b +} +.btn-link:disabled, +.btn-link.disabled { + color:#6c757d +} +.btn-lg { + padding:.5rem 1rem; + font-size:1.25rem; + border-radius:.3rem +} +.collapse:not(.show) { + display:none +} +.nav { + display:flex; + flex-wrap:wrap; + padding-left:0; + margin-bottom:0; + list-style:none +} +.nav-link { + display:block; + padding:.5rem 1rem; + transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out +} +@media (prefers-reduced-motion: reduce) { + .nav-link { + transition:none + } +} +.nav-link.disabled { + color:#6c757d; + pointer-events:none; + cursor:default +} +.navbar { + position:relative; + display:flex; + flex-wrap:wrap; + align-items:center; + justify-content:space-between; + padding-top:.5rem; + padding-bottom:.5rem +} +.navbar>.container, +.navbar>.container-fluid { + display:flex; + flex-wrap:inherit; + align-items:center; + justify-content:space-between +} +.navbar-brand { + padding-top:.3125rem; + padding-bottom:.3125rem; + margin-right:1rem; + font-size:1.25rem; + white-space:nowrap +} +.navbar-nav { + display:flex; + flex-direction:column; + padding-left:0; + margin-bottom:0; + list-style:none +} +.navbar-nav .nav-link { + padding-right:0; + padding-left:0 +} +.navbar-text { + padding-top:.5rem; + padding-bottom:.5rem +} +.navbar-collapse { + flex-basis:100%; + flex-grow:1; + align-items:center +} +@media (min-width: 768px) { + .navbar-expand-md { + flex-wrap:nowrap; + justify-content:flex-start + } + .navbar-expand-md .navbar-nav { + flex-direction:row + } + .navbar-expand-md .navbar-nav .nav-link { + padding-right:.5rem; + padding-left:.5rem + } + .navbar-expand-md .navbar-collapse { + display:flex !important; + flex-basis:auto + } +} +.navbar-light .navbar-brand { + color:#5d2f86 +} +.navbar-light .navbar-brand:hover, +.navbar-light .navbar-brand:focus { + color:#5d2f86 +} +.navbar-light .navbar-nav .nav-link { + color:#1d2d35 +} +.navbar-light .navbar-nav .nav-link:hover, +.navbar-light .navbar-nav .nav-link:focus { + color:#5d2f86 +} +.navbar-light .navbar-nav .nav-link.disabled { + color:rgba(29,45,53,0.3) +} +.navbar-light .navbar-nav .show>.nav-link, +.navbar-light .navbar-nav .nav-link.active { + color:#5d2f86 +} +.navbar-light .navbar-text { + color:#1d2d35 +} +.navbar-light .navbar-text a, +.navbar-light .navbar-text a:hover, +.navbar-light .navbar-text a:focus { + color:#5d2f86 +} +.card { + position:relative; + display:flex; + flex-direction:column; + min-width:0; + word-wrap:break-word; + background-color:#fff; + background-clip:border-box; + border:1px solid #e9ecef; + border-radius:.25rem +} +.card-body { + flex:1 1 auto; + padding:1rem 1rem +} +.breadcrumb { + display:flex; + flex-wrap:wrap; + padding:0 0; + margin-bottom:1rem; + list-style:none +} +.breadcrumb-item+.breadcrumb-item { + padding-left:.5rem +} +.breadcrumb-item+.breadcrumb-item::before { + float:left; + padding-right:.5rem; + color:#6c757d; + content:var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */ +} +.breadcrumb-item.active { + color:#6c757d +} +.pagination { + display:flex; + padding-left:0; + list-style:none +} +.alert { + position:relative; + padding:1rem 1.5rem; + margin-bottom:0; + border:0 solid transparent; + border-radius:0 +} +.alert-primary { + color:#fff; + background-color:#2b388f; + border-color:#2b388f +} +.alert-warning { + color:#1d2d35; + background-color:#ffe000; + border-color:#ffe000 +} +@-webkit-keyframes progress-bar-stripes { + 0% { + background-position-x:1rem + } +} +@keyframes progress-bar-stripes { + 0% { + background-position-x:1rem + } +} +@-webkit-keyframes spinner-border { + to { + transform:rotate(360deg) /* rtl:ignore */ + } +} +@keyframes spinner-border { + to { + transform:rotate(360deg) /* rtl:ignore */ + } +} +@-webkit-keyframes spinner-grow { + 0% { + transform:scale(0) + } + 50% { + opacity:1; + transform:none + } +} +@keyframes spinner-grow { + 0% { + transform:scale(0) + } + 50% { + opacity:1; + transform:none + } +} +.fixed-top { + position:fixed; + top:0; + right:0; + left:0; + z-index:1030 +} +.fixed-bottom { + position:fixed; + right:0; + bottom:0; + left:0; + z-index:1030 +} +.visually-hidden { + position:absolute !important; + width:1px !important; + height:1px !important; + padding:0 !important; + margin:-1px !important; + overflow:hidden !important; + clip:rect(0, 0, 0, 0) !important; + white-space:nowrap !important; + border:0 !important +} +.stretched-link::after { + position:absolute; + top:0; + right:0; + bottom:0; + left:0; + z-index:1; + content:"" +} +.d-flex { + display:flex !important +} +.d-none { + display:none !important +} +.shadow { + box-shadow:0 0.5rem 1rem rgba(29,45,53,0.15) !important +} +.position-relative { + position:relative !important +} +.border-top { + border-top:1px solid #e9ecef !important +} +.w-100 { + width:100% !important +} +.flex-grow-1 { + flex-grow:1 !important +} +.flex-shrink-1 { + flex-shrink:1 !important +} +.justify-content-center { + justify-content:center !important +} +.justify-content-between { + justify-content:space-between !important +} +.order-first { + order:-1 !important +} +.order-0 { + order:0 !important +} +.order-1 { + order:1 !important +} +.order-2 { + order:2 !important +} +.order-3 { + order:3 !important +} +.order-4 { + order:4 !important +} +.order-5 { + order:5 !important +} +.order-last { + order:6 !important +} +.my-1 { + margin-top:.25rem !important; + margin-bottom:.25rem !important +} +.my-3 { + margin-top:1rem !important; + margin-bottom:1rem !important +} +.mt-0 { + margin-top:0 !important +} +.me-auto { + margin-right:auto !important +} +.mb-2 { + margin-bottom:.5rem !important +} +.ms-2 { + margin-left:.5rem !important +} +.ms-auto { + margin-left:auto !important +} +.mt-n3 { + margin-top:-1rem !important +} +.px-4 { + padding-right:1.5rem !important; + padding-left:1.5rem !important +} +.py-2 { + padding-top:.5rem !important; + padding-bottom:.5rem !important +} +.pb-3 { + padding-bottom:1rem !important +} +.text-center { + text-align:center !important +} +.text-body { + color:#1d2d35 !important +} +.text-muted { + color:#6c757d !important +} +.bg-light { + background-color:#f8f9fa !important +} +.bg-white { + background-color:#fff !important +} +.rounded { + border-radius:.25rem !important +} +@media (min-width: 768px) { + .d-md-none { + display:none !important + } + .order-md-0 { + order:0 !important + } + .order-md-1 { + order:1 !important + } + .order-md-2 { + order:2 !important + } + .order-md-3 { + order:3 !important + } + .order-md-4 { + order:4 !important + } + .order-md-5 { + order:5 !important + } +} +@media (min-width: 992px) { + .order-lg-first { + order:-1 !important + } + .order-lg-last { + order:6 !important + } + .text-lg-end { + text-align:right !important + } +} +@media (min-width: 1200px) { + .d-xl-block { + display:block !important + } + .flex-xl-nowrap { + flex-wrap:nowrap !important + } + .mx-xl-auto { + margin-right:auto !important; + margin-left:auto !important + } +} +@font-face { + font-family:'KaTeX_AMS'; + src:url(../fonts/KaTeX_AMS-Regular.woff2) format("woff2"), + url(../fonts/KaTeX_AMS-Regular.woff) format("woff"), + url(../fonts/KaTeX_AMS-Regular.ttf) format("truetype"); + font-weight:normal; + font-style:normal +} +@font-face { + font-family:'KaTeX_Caligraphic'; + src:url(../fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2"), + url(../fonts/KaTeX_Caligraphic-Bold.woff) format("woff"), + url(../fonts/KaTeX_Caligraphic-Bold.ttf) format("truetype"); + font-weight:bold; + font-style:normal +} +@font-face { + font-family:'KaTeX_Caligraphic'; + src:url(../fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2"), + url(../fonts/KaTeX_Caligraphic-Regular.woff) format("woff"), + url(../fonts/KaTeX_Caligraphic-Regular.ttf) format("truetype"); + font-weight:normal; + font-style:normal +} +@font-face { + font-family:'KaTeX_Fraktur'; + src:url(../fonts/KaTeX_Fraktur-Bold.woff2) format("woff2"), + url(../fonts/KaTeX_Fraktur-Bold.woff) format("woff"), + url(../fonts/KaTeX_Fraktur-Bold.ttf) format("truetype"); + font-weight:bold; + font-style:normal +} +@font-face { + font-family:'KaTeX_Fraktur'; + src:url(../fonts/KaTeX_Fraktur-Regular.woff2) format("woff2"), + url(../fonts/KaTeX_Fraktur-Regular.woff) format("woff"), + url(../fonts/KaTeX_Fraktur-Regular.ttf) format("truetype"); + font-weight:normal; + font-style:normal +} +@font-face { + font-family:'KaTeX_Main'; + src:url(../fonts/KaTeX_Main-Bold.woff2) format("woff2"), + url(../fonts/KaTeX_Main-Bold.woff) format("woff"), + url(../fonts/KaTeX_Main-Bold.ttf) format("truetype"); + font-weight:bold; + font-style:normal +} +@font-face { + font-family:'KaTeX_Main'; + src:url(../fonts/KaTeX_Main-BoldItalic.woff2) format("woff2"), + url(../fonts/KaTeX_Main-BoldItalic.woff) format("woff"), + url(../fonts/KaTeX_Main-BoldItalic.ttf) format("truetype"); + font-weight:bold; + font-style:italic +} +@font-face { + font-family:'KaTeX_Main'; + src:url(../fonts/KaTeX_Main-Italic.woff2) format("woff2"), + url(../fonts/KaTeX_Main-Italic.woff) format("woff"), + url(../fonts/KaTeX_Main-Italic.ttf) format("truetype"); + font-weight:normal; + font-style:italic +} +@font-face { + font-family:'KaTeX_Main'; + src:url(../fonts/KaTeX_Main-Regular.woff2) format("woff2"), + url(../fonts/KaTeX_Main-Regular.woff) format("woff"), + url(../fonts/KaTeX_Main-Regular.ttf) format("truetype"); + font-weight:normal; + font-style:normal +} +@font-face { + font-family:'KaTeX_Math'; + src:url(../fonts/KaTeX_Math-BoldItalic.woff2) format("woff2"), + url(../fonts/KaTeX_Math-BoldItalic.woff) format("woff"), + url(../fonts/KaTeX_Math-BoldItalic.ttf) format("truetype"); + font-weight:bold; + font-style:italic +} +@font-face { + font-family:'KaTeX_Math'; + src:url(../fonts/KaTeX_Math-Italic.woff2) format("woff2"), + url(../fonts/KaTeX_Math-Italic.woff) format("woff"), + url(../fonts/KaTeX_Math-Italic.ttf) format("truetype"); + font-weight:normal; + font-style:italic +} +@font-face { + font-family:'KaTeX_SansSerif'; + src:url(../fonts/KaTeX_SansSerif-Bold.woff2) format("woff2"), + url(../fonts/KaTeX_SansSerif-Bold.woff) format("woff"), + url(../fonts/KaTeX_SansSerif-Bold.ttf) format("truetype"); + font-weight:bold; + font-style:normal +} +@font-face { + font-family:'KaTeX_SansSerif'; + src:url(../fonts/KaTeX_SansSerif-Italic.woff2) format("woff2"), + url(../fonts/KaTeX_SansSerif-Italic.woff) format("woff"), + url(../fonts/KaTeX_SansSerif-Italic.ttf) format("truetype"); + font-weight:normal; + font-style:italic +} +@font-face { + font-family:'KaTeX_SansSerif'; + src:url(../fonts/KaTeX_SansSerif-Regular.woff2) format("woff2"), + url(../fonts/KaTeX_SansSerif-Regular.woff) format("woff"), + url(../fonts/KaTeX_SansSerif-Regular.ttf) format("truetype"); + font-weight:normal; + font-style:normal +} +@font-face { + font-family:'KaTeX_Script'; + src:url(../fonts/KaTeX_Script-Regular.woff2) format("woff2"), + url(../fonts/KaTeX_Script-Regular.woff) format("woff"), + url(../fonts/KaTeX_Script-Regular.ttf) format("truetype"); + font-weight:normal; + font-style:normal +} +@font-face { + font-family:'KaTeX_Size1'; + src:url(../fonts/KaTeX_Size1-Regular.woff2) format("woff2"), + url(../fonts/KaTeX_Size1-Regular.woff) format("woff"), + url(../fonts/KaTeX_Size1-Regular.ttf) format("truetype"); + font-weight:normal; + font-style:normal +} +@font-face { + font-family:'KaTeX_Size2'; + src:url(../fonts/KaTeX_Size2-Regular.woff2) format("woff2"), + url(../fonts/KaTeX_Size2-Regular.woff) format("woff"), + url(../fonts/KaTeX_Size2-Regular.ttf) format("truetype"); + font-weight:normal; + font-style:normal +} +@font-face { + font-family:'KaTeX_Size3'; + src:url(../fonts/KaTeX_Size3-Regular.woff2) format("woff2"), + url(../fonts/KaTeX_Size3-Regular.woff) format("woff"), + url(../fonts/KaTeX_Size3-Regular.ttf) format("truetype"); + font-weight:normal; + font-style:normal +} +@font-face { + font-family:'KaTeX_Size4'; + src:url(../fonts/KaTeX_Size4-Regular.woff2) format("woff2"), + url(../fonts/KaTeX_Size4-Regular.woff) format("woff"), + url(../fonts/KaTeX_Size4-Regular.ttf) format("truetype"); + font-weight:normal; + font-style:normal +} +@font-face { + font-family:'KaTeX_Typewriter'; + src:url(../fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"), + url(../fonts/KaTeX_Typewriter-Regular.woff) format("woff"), + url(../fonts/KaTeX_Typewriter-Regular.ttf) format("truetype"); + font-weight:normal; + font-style:normal +} +.katex { + font:normal 1.21em KaTeX_Main, Times New Roman, serif; + line-height:1.2; + text-indent:0; + text-rendering:auto +} +.katex * { + -ms-high-contrast-adjust:none !important; + border-color:currentColor +} +.katex .katex-version::after { + content:"0.13.2" +} +.katex .katex-mathml { + position:absolute; + clip:rect(1px, 1px, 1px, 1px); + padding:0; + border:0; + height:1px; + width:1px; + overflow:hidden +} +.katex .katex-html>.newline { + display:block +} +.katex .base { + position:relative; + display:inline-block; + white-space:nowrap; + width:-webkit-min-content; + width:-moz-min-content; + width:min-content +} +.katex .strut { + display:inline-block +} +.katex .textbf { + font-weight:bold +} +.katex .textit { + font-style:italic +} +.katex .textrm { + font-family:KaTeX_Main +} +.katex .textsf { + font-family:KaTeX_SansSerif +} +.katex .texttt { + font-family:KaTeX_Typewriter +} +.katex .mathnormal { + font-family:KaTeX_Math; + font-style:italic +} +.katex .mathit { + font-family:KaTeX_Main; + font-style:italic +} +.katex .mathrm { + font-style:normal +} +.katex .mathbf { + font-family:KaTeX_Main; + font-weight:bold +} +.katex .boldsymbol { + font-family:KaTeX_Math; + font-weight:bold; + font-style:italic +} +.katex .amsrm { + font-family:KaTeX_AMS +} +.katex .mathbb, +.katex .textbb { + font-family:KaTeX_AMS +} +.katex .mathcal { + font-family:KaTeX_Caligraphic +} +.katex .mathfrak, +.katex .textfrak { + font-family:KaTeX_Fraktur +} +.katex .mathtt { + font-family:KaTeX_Typewriter +} +.katex .mathscr, +.katex .textscr { + font-family:KaTeX_Script +} +.katex .mathsf, +.katex .textsf { + font-family:KaTeX_SansSerif +} +.katex .mathboldsf, +.katex .textboldsf { + font-family:KaTeX_SansSerif; + font-weight:bold +} +.katex .mathitsf, +.katex .textitsf { + font-family:KaTeX_SansSerif; + font-style:italic +} +.katex .mainrm { + font-family:KaTeX_Main; + font-style:normal +} +.katex .vlist-t { + display:inline-table; + table-layout:fixed; + border-collapse:collapse +} +.katex .vlist-r { + display:table-row +} +.katex .vlist { + display:table-cell; + vertical-align:bottom; + position:relative +} +.katex .vlist>span { + display:block; + height:0; + position:relative +} +.katex .vlist>span>span { + display:inline-block +} +.katex .vlist>span>.pstrut { + overflow:hidden; + width:0 +} +.katex .vlist-t2 { + margin-right:-2px +} +.katex .vlist-s { + display:table-cell; + vertical-align:bottom; + font-size:1px; + width:2px; + min-width:2px +} +.katex .vbox { + display:inline-flex; + flex-direction:column; + align-items:baseline +} +.katex .hbox { + display:inline-flex; + flex-direction:row; + width:100% +} +.katex .thinbox { + display:inline-flex; + flex-direction:row; + width:0; + max-width:0 +} +.katex .msupsub { + text-align:left +} +.katex .mfrac>span>span { + text-align:center +} +.katex .mfrac .frac-line { + display:inline-block; + width:100%; + border-bottom-style:solid +} +.katex .mfrac .frac-line, +.katex .overline .overline-line, +.katex .underline .underline-line, +.katex .hline, +.katex .hdashline, +.katex .rule { + min-height:1px +} +.katex .mspace { + display:inline-block +} +.katex .llap, +.katex .rlap, +.katex .clap { + width:0; + position:relative +} +.katex .llap>.inner, +.katex .rlap>.inner, +.katex .clap>.inner { + position:absolute +} +.katex .llap>.fix, +.katex .rlap>.fix, +.katex .clap>.fix { + display:inline-block +} +.katex .llap>.inner { + right:0 +} +.katex .rlap>.inner, +.katex .clap>.inner { + left:0 +} +.katex .clap>.inner>span { + margin-left:-50%; + margin-right:50% +} +.katex .rule { + display:inline-block; + border:solid 0; + position:relative +} +.katex .overline .overline-line, +.katex .underline .underline-line, +.katex .hline { + display:inline-block; + width:100%; + border-bottom-style:solid +} +.katex .hdashline { + display:inline-block; + width:100%; + border-bottom-style:dashed +} +.katex .sqrt>.root { + margin-left:0.27777778em; + margin-right:-0.55555556em +} +.katex .sizing.reset-size1.size1, +.katex .fontsize-ensurer.reset-size1.size1 { + font-size:1em +} +.katex .sizing.reset-size1.size2, +.katex .fontsize-ensurer.reset-size1.size2 { + font-size:1.2em +} +.katex .sizing.reset-size1.size3, +.katex .fontsize-ensurer.reset-size1.size3 { + font-size:1.4em +} +.katex .sizing.reset-size1.size4, +.katex .fontsize-ensurer.reset-size1.size4 { + font-size:1.6em +} +.katex .sizing.reset-size1.size5, +.katex .fontsize-ensurer.reset-size1.size5 { + font-size:1.8em +} +.katex .sizing.reset-size1.size6, +.katex .fontsize-ensurer.reset-size1.size6 { + font-size:2em +} +.katex .sizing.reset-size1.size7, +.katex .fontsize-ensurer.reset-size1.size7 { + font-size:2.4em +} +.katex .sizing.reset-size1.size8, +.katex .fontsize-ensurer.reset-size1.size8 { + font-size:2.88em +} +.katex .sizing.reset-size1.size9, +.katex .fontsize-ensurer.reset-size1.size9 { + font-size:3.456em +} +.katex .sizing.reset-size1.size10, +.katex .fontsize-ensurer.reset-size1.size10 { + font-size:4.148em +} +.katex .sizing.reset-size1.size11, +.katex .fontsize-ensurer.reset-size1.size11 { + font-size:4.976em +} +.katex .sizing.reset-size2.size1, +.katex .fontsize-ensurer.reset-size2.size1 { + font-size:0.83333333em +} +.katex .sizing.reset-size2.size2, +.katex .fontsize-ensurer.reset-size2.size2 { + font-size:1em +} +.katex .sizing.reset-size2.size3, +.katex .fontsize-ensurer.reset-size2.size3 { + font-size:1.16666667em +} +.katex .sizing.reset-size2.size4, +.katex .fontsize-ensurer.reset-size2.size4 { + font-size:1.33333333em +} +.katex .sizing.reset-size2.size5, +.katex .fontsize-ensurer.reset-size2.size5 { + font-size:1.5em +} +.katex .sizing.reset-size2.size6, +.katex .fontsize-ensurer.reset-size2.size6 { + font-size:1.66666667em +} +.katex .sizing.reset-size2.size7, +.katex .fontsize-ensurer.reset-size2.size7 { + font-size:2em +} +.katex .sizing.reset-size2.size8, +.katex .fontsize-ensurer.reset-size2.size8 { + font-size:2.4em +} +.katex .sizing.reset-size2.size9, +.katex .fontsize-ensurer.reset-size2.size9 { + font-size:2.88em +} +.katex .sizing.reset-size2.size10, +.katex .fontsize-ensurer.reset-size2.size10 { + font-size:3.45666667em +} +.katex .sizing.reset-size2.size11, +.katex .fontsize-ensurer.reset-size2.size11 { + font-size:4.14666667em +} +.katex .sizing.reset-size3.size1, +.katex .fontsize-ensurer.reset-size3.size1 { + font-size:0.71428571em +} +.katex .sizing.reset-size3.size2, +.katex .fontsize-ensurer.reset-size3.size2 { + font-size:0.85714286em +} +.katex .sizing.reset-size3.size3, +.katex .fontsize-ensurer.reset-size3.size3 { + font-size:1em +} +.katex .sizing.reset-size3.size4, +.katex .fontsize-ensurer.reset-size3.size4 { + font-size:1.14285714em +} +.katex .sizing.reset-size3.size5, +.katex .fontsize-ensurer.reset-size3.size5 { + font-size:1.28571429em +} +.katex .sizing.reset-size3.size6, +.katex .fontsize-ensurer.reset-size3.size6 { + font-size:1.42857143em +} +.katex .sizing.reset-size3.size7, +.katex .fontsize-ensurer.reset-size3.size7 { + font-size:1.71428571em +} +.katex .sizing.reset-size3.size8, +.katex .fontsize-ensurer.reset-size3.size8 { + font-size:2.05714286em +} +.katex .sizing.reset-size3.size9, +.katex .fontsize-ensurer.reset-size3.size9 { + font-size:2.46857143em +} +.katex .sizing.reset-size3.size10, +.katex .fontsize-ensurer.reset-size3.size10 { + font-size:2.96285714em +} +.katex .sizing.reset-size3.size11, +.katex .fontsize-ensurer.reset-size3.size11 { + font-size:3.55428571em +} +.katex .sizing.reset-size4.size1, +.katex .fontsize-ensurer.reset-size4.size1 { + font-size:0.625em +} +.katex .sizing.reset-size4.size2, +.katex .fontsize-ensurer.reset-size4.size2 { + font-size:0.75em +} +.katex .sizing.reset-size4.size3, +.katex .fontsize-ensurer.reset-size4.size3 { + font-size:0.875em +} +.katex .sizing.reset-size4.size4, +.katex .fontsize-ensurer.reset-size4.size4 { + font-size:1em +} +.katex .sizing.reset-size4.size5, +.katex .fontsize-ensurer.reset-size4.size5 { + font-size:1.125em +} +.katex .sizing.reset-size4.size6, +.katex .fontsize-ensurer.reset-size4.size6 { + font-size:1.25em +} +.katex .sizing.reset-size4.size7, +.katex .fontsize-ensurer.reset-size4.size7 { + font-size:1.5em +} +.katex .sizing.reset-size4.size8, +.katex .fontsize-ensurer.reset-size4.size8 { + font-size:1.8em +} +.katex .sizing.reset-size4.size9, +.katex .fontsize-ensurer.reset-size4.size9 { + font-size:2.16em +} +.katex .sizing.reset-size4.size10, +.katex .fontsize-ensurer.reset-size4.size10 { + font-size:2.5925em +} +.katex .sizing.reset-size4.size11, +.katex .fontsize-ensurer.reset-size4.size11 { + font-size:3.11em +} +.katex .sizing.reset-size5.size1, +.katex .fontsize-ensurer.reset-size5.size1 { + font-size:0.55555556em +} +.katex .sizing.reset-size5.size2, +.katex .fontsize-ensurer.reset-size5.size2 { + font-size:0.66666667em +} +.katex .sizing.reset-size5.size3, +.katex .fontsize-ensurer.reset-size5.size3 { + font-size:0.77777778em +} +.katex .sizing.reset-size5.size4, +.katex .fontsize-ensurer.reset-size5.size4 { + font-size:0.88888889em +} +.katex .sizing.reset-size5.size5, +.katex .fontsize-ensurer.reset-size5.size5 { + font-size:1em +} +.katex .sizing.reset-size5.size6, +.katex .fontsize-ensurer.reset-size5.size6 { + font-size:1.11111111em +} +.katex .sizing.reset-size5.size7, +.katex .fontsize-ensurer.reset-size5.size7 { + font-size:1.33333333em +} +.katex .sizing.reset-size5.size8, +.katex .fontsize-ensurer.reset-size5.size8 { + font-size:1.6em +} +.katex .sizing.reset-size5.size9, +.katex .fontsize-ensurer.reset-size5.size9 { + font-size:1.92em +} +.katex .sizing.reset-size5.size10, +.katex .fontsize-ensurer.reset-size5.size10 { + font-size:2.30444444em +} +.katex .sizing.reset-size5.size11, +.katex .fontsize-ensurer.reset-size5.size11 { + font-size:2.76444444em +} +.katex .sizing.reset-size6.size1, +.katex .fontsize-ensurer.reset-size6.size1 { + font-size:0.5em +} +.katex .sizing.reset-size6.size2, +.katex .fontsize-ensurer.reset-size6.size2 { + font-size:0.6em +} +.katex .sizing.reset-size6.size3, +.katex .fontsize-ensurer.reset-size6.size3 { + font-size:0.7em +} +.katex .sizing.reset-size6.size4, +.katex .fontsize-ensurer.reset-size6.size4 { + font-size:0.8em +} +.katex .sizing.reset-size6.size5, +.katex .fontsize-ensurer.reset-size6.size5 { + font-size:0.9em +} +.katex .sizing.reset-size6.size6, +.katex .fontsize-ensurer.reset-size6.size6 { + font-size:1em +} +.katex .sizing.reset-size6.size7, +.katex .fontsize-ensurer.reset-size6.size7 { + font-size:1.2em +} +.katex .sizing.reset-size6.size8, +.katex .fontsize-ensurer.reset-size6.size8 { + font-size:1.44em +} +.katex .sizing.reset-size6.size9, +.katex .fontsize-ensurer.reset-size6.size9 { + font-size:1.728em +} +.katex .sizing.reset-size6.size10, +.katex .fontsize-ensurer.reset-size6.size10 { + font-size:2.074em +} +.katex .sizing.reset-size6.size11, +.katex .fontsize-ensurer.reset-size6.size11 { + font-size:2.488em +} +.katex .sizing.reset-size7.size1, +.katex .fontsize-ensurer.reset-size7.size1 { + font-size:0.41666667em +} +.katex .sizing.reset-size7.size2, +.katex .fontsize-ensurer.reset-size7.size2 { + font-size:0.5em +} +.katex .sizing.reset-size7.size3, +.katex .fontsize-ensurer.reset-size7.size3 { + font-size:0.58333333em +} +.katex .sizing.reset-size7.size4, +.katex .fontsize-ensurer.reset-size7.size4 { + font-size:0.66666667em +} +.katex .sizing.reset-size7.size5, +.katex .fontsize-ensurer.reset-size7.size5 { + font-size:0.75em +} +.katex .sizing.reset-size7.size6, +.katex .fontsize-ensurer.reset-size7.size6 { + font-size:0.83333333em +} +.katex .sizing.reset-size7.size7, +.katex .fontsize-ensurer.reset-size7.size7 { + font-size:1em +} +.katex .sizing.reset-size7.size8, +.katex .fontsize-ensurer.reset-size7.size8 { + font-size:1.2em +} +.katex .sizing.reset-size7.size9, +.katex .fontsize-ensurer.reset-size7.size9 { + font-size:1.44em +} +.katex .sizing.reset-size7.size10, +.katex .fontsize-ensurer.reset-size7.size10 { + font-size:1.72833333em +} +.katex .sizing.reset-size7.size11, +.katex .fontsize-ensurer.reset-size7.size11 { + font-size:2.07333333em +} +.katex .sizing.reset-size8.size1, +.katex .fontsize-ensurer.reset-size8.size1 { + font-size:0.34722222em +} +.katex .sizing.reset-size8.size2, +.katex .fontsize-ensurer.reset-size8.size2 { + font-size:0.41666667em +} +.katex .sizing.reset-size8.size3, +.katex .fontsize-ensurer.reset-size8.size3 { + font-size:0.48611111em +} +.katex .sizing.reset-size8.size4, +.katex .fontsize-ensurer.reset-size8.size4 { + font-size:0.55555556em +} +.katex .sizing.reset-size8.size5, +.katex .fontsize-ensurer.reset-size8.size5 { + font-size:0.625em +} +.katex .sizing.reset-size8.size6, +.katex .fontsize-ensurer.reset-size8.size6 { + font-size:0.69444444em +} +.katex .sizing.reset-size8.size7, +.katex .fontsize-ensurer.reset-size8.size7 { + font-size:0.83333333em +} +.katex .sizing.reset-size8.size8, +.katex .fontsize-ensurer.reset-size8.size8 { + font-size:1em +} +.katex .sizing.reset-size8.size9, +.katex .fontsize-ensurer.reset-size8.size9 { + font-size:1.2em +} +.katex .sizing.reset-size8.size10, +.katex .fontsize-ensurer.reset-size8.size10 { + font-size:1.44027778em +} +.katex .sizing.reset-size8.size11, +.katex .fontsize-ensurer.reset-size8.size11 { + font-size:1.72777778em +} +.katex .sizing.reset-size9.size1, +.katex .fontsize-ensurer.reset-size9.size1 { + font-size:0.28935185em +} +.katex .sizing.reset-size9.size2, +.katex .fontsize-ensurer.reset-size9.size2 { + font-size:0.34722222em +} +.katex .sizing.reset-size9.size3, +.katex .fontsize-ensurer.reset-size9.size3 { + font-size:0.40509259em +} +.katex .sizing.reset-size9.size4, +.katex .fontsize-ensurer.reset-size9.size4 { + font-size:0.46296296em +} +.katex .sizing.reset-size9.size5, +.katex .fontsize-ensurer.reset-size9.size5 { + font-size:0.52083333em +} +.katex .sizing.reset-size9.size6, +.katex .fontsize-ensurer.reset-size9.size6 { + font-size:0.5787037em +} +.katex .sizing.reset-size9.size7, +.katex .fontsize-ensurer.reset-size9.size7 { + font-size:0.69444444em +} +.katex .sizing.reset-size9.size8, +.katex .fontsize-ensurer.reset-size9.size8 { + font-size:0.83333333em +} +.katex .sizing.reset-size9.size9, +.katex .fontsize-ensurer.reset-size9.size9 { + font-size:1em +} +.katex .sizing.reset-size9.size10, +.katex .fontsize-ensurer.reset-size9.size10 { + font-size:1.20023148em +} +.katex .sizing.reset-size9.size11, +.katex .fontsize-ensurer.reset-size9.size11 { + font-size:1.43981481em +} +.katex .sizing.reset-size10.size1, +.katex .fontsize-ensurer.reset-size10.size1 { + font-size:0.24108004em +} +.katex .sizing.reset-size10.size2, +.katex .fontsize-ensurer.reset-size10.size2 { + font-size:0.28929605em +} +.katex .sizing.reset-size10.size3, +.katex .fontsize-ensurer.reset-size10.size3 { + font-size:0.33751205em +} +.katex .sizing.reset-size10.size4, +.katex .fontsize-ensurer.reset-size10.size4 { + font-size:0.38572806em +} +.katex .sizing.reset-size10.size5, +.katex .fontsize-ensurer.reset-size10.size5 { + font-size:0.43394407em +} +.katex .sizing.reset-size10.size6, +.katex .fontsize-ensurer.reset-size10.size6 { + font-size:0.48216008em +} +.katex .sizing.reset-size10.size7, +.katex .fontsize-ensurer.reset-size10.size7 { + font-size:0.57859209em +} +.katex .sizing.reset-size10.size8, +.katex .fontsize-ensurer.reset-size10.size8 { + font-size:0.69431051em +} +.katex .sizing.reset-size10.size9, +.katex .fontsize-ensurer.reset-size10.size9 { + font-size:0.83317261em +} +.katex .sizing.reset-size10.size10, +.katex .fontsize-ensurer.reset-size10.size10 { + font-size:1em +} +.katex .sizing.reset-size10.size11, +.katex .fontsize-ensurer.reset-size10.size11 { + font-size:1.19961427em +} +.katex .sizing.reset-size11.size1, +.katex .fontsize-ensurer.reset-size11.size1 { + font-size:0.20096463em +} +.katex .sizing.reset-size11.size2, +.katex .fontsize-ensurer.reset-size11.size2 { + font-size:0.24115756em +} +.katex .sizing.reset-size11.size3, +.katex .fontsize-ensurer.reset-size11.size3 { + font-size:0.28135048em +} +.katex .sizing.reset-size11.size4, +.katex .fontsize-ensurer.reset-size11.size4 { + font-size:0.32154341em +} +.katex .sizing.reset-size11.size5, +.katex .fontsize-ensurer.reset-size11.size5 { + font-size:0.36173633em +} +.katex .sizing.reset-size11.size6, +.katex .fontsize-ensurer.reset-size11.size6 { + font-size:0.40192926em +} +.katex .sizing.reset-size11.size7, +.katex .fontsize-ensurer.reset-size11.size7 { + font-size:0.48231511em +} +.katex .sizing.reset-size11.size8, +.katex .fontsize-ensurer.reset-size11.size8 { + font-size:0.57877814em +} +.katex .sizing.reset-size11.size9, +.katex .fontsize-ensurer.reset-size11.size9 { + font-size:0.69453376em +} +.katex .sizing.reset-size11.size10, +.katex .fontsize-ensurer.reset-size11.size10 { + font-size:0.83360129em +} +.katex .sizing.reset-size11.size11, +.katex .fontsize-ensurer.reset-size11.size11 { + font-size:1em +} +.katex .delimsizing.size1 { + font-family:KaTeX_Size1 +} +.katex .delimsizing.size2 { + font-family:KaTeX_Size2 +} +.katex .delimsizing.size3 { + font-family:KaTeX_Size3 +} +.katex .delimsizing.size4 { + font-family:KaTeX_Size4 +} +.katex .delimsizing.mult .delim-size1>span { + font-family:KaTeX_Size1 +} +.katex .delimsizing.mult .delim-size4>span { + font-family:KaTeX_Size4 +} +.katex .nulldelimiter { + display:inline-block; + width:0.12em +} +.katex .delimcenter { + position:relative +} +.katex .op-symbol { + position:relative +} +.katex .op-symbol.small-op { + font-family:KaTeX_Size1 +} +.katex .op-symbol.large-op { + font-family:KaTeX_Size2 +} +.katex .op-limits>.vlist-t { + text-align:center +} +.katex .accent>.vlist-t { + text-align:center +} +.katex .accent .accent-body { + position:relative +} +.katex .accent .accent-body:not(.accent-full) { + width:0 +} +.katex .overlay { + display:block +} +.katex .mtable .vertical-separator { + display:inline-block; + min-width:1px +} +.katex .mtable .arraycolsep { + display:inline-block +} +.katex .mtable .col-align-c>.vlist-t { + text-align:center +} +.katex .mtable .col-align-l>.vlist-t { + text-align:left +} +.katex .mtable .col-align-r>.vlist-t { + text-align:right +} +.katex .svg-align { + text-align:left +} +.katex svg { + display:block; + position:absolute; + width:100%; + height:inherit; + fill:currentColor; + stroke:currentColor; + fill-rule:nonzero; + fill-opacity:1; + stroke-width:1; + stroke-linecap:butt; + stroke-linejoin:miter; + stroke-miterlimit:4; + stroke-dasharray:none; + stroke-dashoffset:0; + stroke-opacity:1 +} +.katex svg path { + stroke:none +} +.katex img { + border-style:none; + min-width:0; + min-height:0; + max-width:none; + max-height:none +} +.katex .stretchy { + width:100%; + display:block; + position:relative; + overflow:hidden +} +.katex .stretchy::before, +.katex .stretchy::after { + content:"" +} +.katex .hide-tail { + width:100%; + position:relative; + overflow:hidden +} +.katex .halfarrow-left { + position:absolute; + left:0; + width:50.2%; + overflow:hidden +} +.katex .halfarrow-right { + position:absolute; + right:0; + width:50.2%; + overflow:hidden +} +.katex .brace-left { + position:absolute; + left:0; + width:25.1%; + overflow:hidden +} +.katex .brace-center { + position:absolute; + left:25%; + width:50%; + overflow:hidden +} +.katex .brace-right { + position:absolute; + right:0; + width:25.1%; + overflow:hidden +} +.katex .x-arrow-pad { + padding:0 0.5em +} +.katex .cd-arrow-pad { + padding:0 0.55556em 0 0.27778em +} +.katex .x-arrow, +.katex .mover, +.katex .munder { + text-align:center +} +.katex .boxpad { + padding:0 0.3em 0 0.3em +} +.katex .fbox, +.katex .fcolorbox { + box-sizing:border-box; + border:0.04em solid +} +.katex .cancel-pad { + padding:0 0.2em 0 0.2em +} +.katex .cancel-lap { + margin-left:-0.2em; + margin-right:-0.2em +} +.katex .sout { + border-bottom-style:solid; + border-bottom-width:0.08em +} +.katex .angl { + box-sizing:border-content; + border-top:0.049em solid; + border-right:0.049em solid; + margin-right:0.03889em +} +.katex .anglpad { + padding:0 0.03889em 0 0.03889em +} +.katex .eqn-num::before { + counter-increment:katexEqnNo; + content:"(" counter(katexEqnNo) ")" +} +.katex .mml-eqn-num::before { + counter-increment:mmlEqnNo; + content:"(" counter(mmlEqnNo) ")" +} +.katex .mtr-glue { + width:50% +} +.katex .cd-vert-arrow { + display:inline-block; + position:relative +} +.katex .cd-label-left { + display:inline-block; + position:absolute; + right:calc(50% + 0.3em); + text-align:left +} +.katex .cd-label-right { + display:inline-block; + position:absolute; + left:calc(50% + 0.3em); + text-align:right +} +.katex-display { + display:block; + margin:1em 0; + text-align:center +} +.katex-display>.katex { + display:block; + text-align:center; + white-space:nowrap +} +.katex-display>.katex>.katex-html { + display:block; + position:relative +} +.katex-display>.katex>.katex-html>.tag { + position:absolute; + right:0 +} +.katex-display.leqno>.katex>.katex-html>.tag { + left:0; + right:auto +} +.katex-display.fleqn>.katex { + text-align:left; + padding-left:2em +} +body { + counter-reset:katexEqnNo mmlEqnNo +} +@font-face { + font-family:"Jost"; + font-style:normal; + font-weight:400; + font-display:swap; + src:local("Jost"), + url("../fonts/jost/jost-v4-latin-regular.woff2") format("woff2"), + url("../fonts/jost/jost-v4-latin-regular.woff") format("woff") +} +@font-face { + font-family:"Jost"; + font-style:normal; + font-weight:500; + font-display:swap; + src:local("Jost"), + url("../fonts/jost/jost-v4-latin-500.woff2") format("woff2"), + url("../fonts/jost/jost-v4-latin-500.woff") format("woff") +} +@font-face { + font-family:"Jost"; + font-style:normal; + font-weight:700; + font-display:swap; + src:local("Jost"), + url("../fonts/jost/jost-v4-latin-700.woff2") format("woff2"), + url("../fonts/jost/jost-v4-latin-700.woff") format("woff") +} +@font-face { + font-family:"Jost"; + font-style:italic; + font-weight:400; + font-display:swap; + src:local("Jost"), + url("../fonts/jost/jost-v4-latin-italic.woff2") format("woff2"), + url("../fonts/jost/jost-v4-latin-italic.woff") format("woff") +} +@font-face { + font-family:"Jost"; + font-style:italic; + font-weight:500; + font-display:swap; + src:local("Jost"), + url("../fonts/jost/jost-v4-latin-500italic.woff2") format("woff2"), + url("../fonts/jost/jost-v4-latin-500italic.woff") format("woff") +} +@font-face { + font-family:"Jost"; + font-style:italic; + font-weight:700; + font-display:swap; + src:local("Jost"), + url("../fonts/jost/jost-v4-latin-700italic.woff2") format("woff2"), + url("../fonts/jost/jost-v4-latin-700italic.woff") format("woff") +} +.contributors .content, +.blog .content, +.page .content, +.error404 .content, +.docs.list .content { + padding-top:1rem; + padding-bottom:3rem +} +h1, +h2, +h3, +h4, +.h1, +.h2, +.h3, +.h4 { + margin:2rem 0 1rem +} +@media (min-width: 768px) { + body { + font-size:1.125rem; + padding-top:4rem !important + } + h1, + h2, + h3, + h4, + .h1, + .h2, + .h3, + .h4 { + margin-bottom:1.125rem + } +} +.home h1, +.home .h1 { + font-size:calc(1.875rem + 1.5vw) +} +a:hover, +a:focus { + text-decoration:underline +} +a.btn:hover, +a.btn:focus { + text-decoration:none +} +.section { + padding-top:5rem; + padding-bottom:5rem +} +.section-sm { + padding-top:1rem; + padding-bottom:1rem +} +body { + padding-top:3.5625rem +} +.docs-sidebar { + order:0; + display:none; +} +.docs-bar .menu-icon { + display:block; +} +@media (min-width: 992px) { + .docs-sidebar { + order:0; + display:block; + } + .docs-bar { + border-right:1px solid #e9ecef + } + .docs-bar .menu-icon { + display:none; + } + @supports (position: sticky) { + .docs-sidebar { + position:sticky; + top:4rem; + z-index:1000; + height:calc(100vh - 4rem) + } + } +} +@media (min-width: 1200px) { + .docs-sidebar { + flex:0 1 320px + } +} +.docs-links { + padding-bottom:5rem +} +@media (min-width: 992px) { + @supports (position: sticky) { + .docs-links { + max-height:calc(100vh - 4rem); + overflow-y:scroll + } + } +} +@media (min-width: 992px) { + .docs-links { + display:block; + width:auto; + margin-right:-1.5rem; + padding-bottom:4rem + } +} +.docs-toc { + order:2 +} +@supports (position: sticky) { + .docs-toc { + position:sticky; + top:4rem; + height:calc(100vh - 4rem); + overflow-y:auto + } +} +.docs-content { + padding-bottom:3rem; + order:1 +} +.docs-navigation { + border-top:1px solid #e9ecef; + margin-top:2rem; + margin-bottom:0; + padding-top:2rem +} +.docs-navigation a { + font-size:.9rem +} +@media (min-width: 992px) { + .docs-navigation { + margin-bottom:-1rem + } + .docs-navigation a { + font-size:1rem + } +} +.navbar a:hover, +.navbar a:focus { + text-decoration:none +} +#toc ul { + padding-left:0; + list-style:none +} +::-moz-selection { + background:rgba(212,53,159,0.2) +} +::selection { + background:rgba(212,53,159,0.2) +} +.bg-dots { + background-image:radial-gradient(#dee2e6 15%, transparent 15%); + background-position:0 0; + background-size:1rem 1rem; + -webkit-mask:linear-gradient(to top, #fff, transparent); + mask:linear-gradient(to top, #fff, transparent); + width:100%; + height:9rem; + margin-top:-10rem; + z-index:-1 +} +.katex { + font-size:1.125rem +} +body.dark { + background:#212529; + color:#dee2e6 +} +body.dark a { + color:#8ed6fb +} +body.dark a.text-body { + color:#dee2e6 !important +} +body.dark .btn-primary { + color:#1d2d35; + background-color:#8ed6fb; + border-color:#8ed6fb; + color:#212529 !important +} +body.dark .btn-primary:hover { + color:#1d2d35; + background-color:#9fdcfc; + border-color:#99dafb +} +body.dark .btn-primary:focus { + color:#1d2d35; + background-color:#9fdcfc; + border-color:#99dafb; + box-shadow:0 0 0 .25rem rgba(125,189,221,0.5) +} +body.dark .btn-primary:active, +body.dark .btn-primary.active { + color:#1d2d35; + background-color:#a5defc; + border-color:#99dafb +} +body.dark .btn-primary:active:focus, +body.dark .btn-primary.active:focus { + box-shadow:0 0 0 .25rem rgba(125,189,221,0.5) +} +body.dark .btn-primary:disabled, +body.dark .btn-primary.disabled { + color:#1d2d35; + background-color:#8ed6fb; + border-color:#8ed6fb +} +body.dark .btn-outline-primary { + color:#8ed6fb; + border-color:#8ed6fb; + color:#8ed6fb +} +body.dark .btn-outline-primary:hover { + color:#8ed6fb; + background-color:#8ed6fb; + border-color:#8ed6fb +} +body.dark .btn-outline-primary:focus { + box-shadow:0 0 0 .25rem rgba(142,214,251,0.5) +} +body.dark .btn-outline-primary:active, +body.dark .btn-outline-primary.active { + color:#1d2d35; + background-color:#8ed6fb; + border-color:#8ed6fb +} +body.dark .btn-outline-primary:active:focus, +body.dark .btn-outline-primary.active:focus { + box-shadow:0 0 0 .25rem rgba(142,214,251,0.5) +} +body.dark .btn-outline-primary:disabled, +body.dark .btn-outline-primary.disabled { + color:#8ed6fb; + background-color:transparent +} +body.dark .btn-outline-primary:hover { + color:#212529 +} +body.dark .navbar { + background:#212529; + opacity:0.975; + border-bottom:1px solid #1b1f22 +} +body.dark.home .navbar { + border-bottom:0 +} +body.dark .navbar-light .navbar-brand { + color:#dee2e6 !important +} +body.dark .navbar-light .navbar-nav .nav-link { + color:#dee2e6 +} +body.dark .navbar-light .navbar-nav .nav-link:hover, +body.dark .navbar-light .navbar-nav .nav-link:focus { + color:#8ed6fb +} +body.dark .navbar-light .navbar-nav .nav-link.disabled { + color:rgba(255,255,255,0.25) +} +body.dark .navbar-light .navbar-nav .show>.nav-link, +body.dark .navbar-light .navbar-nav .active>.nav-link, +body.dark .navbar-light .navbar-nav .nav-link.show, +body.dark .navbar-light .navbar-nav .nav-link.active { + color:#8ed6fb +} +body.dark .navbar-light .navbar-text { + color:#dee2e6 +} +body.dark .alert-primary a { + color:#212529 +} +body.dark .alert-warning { + background:#1b1f22; + color:#dee2e6 +} +body.dark .page-links a { + color:#dee2e6 +} +body.dark .showcase-meta a { + color:#dee2e6 +} +body.dark .showcase-meta a:hover, +body.dark .showcase-meta a:focus { + color:#8ed6fb +} +body.dark .docs-link:hover, +body.dark .docs-link.active, +body.dark .page-links a:hover { + text-decoration:none; + color:#8ed6fb +} +body.dark .navbar-light .navbar-text a { + color:#8ed6fb +} +body.dark .docs-links h3.sidebar-link a, +body.dark .docs-links .sidebar-link.h3 a, +body.dark .page-links h3.sidebar-link a, +body.dark .page-links .sidebar-link.h3 a { + color:#dee2e6 +} +body.dark .navbar-light .navbar-text a:hover, +body.dark .navbar-light .navbar-text a:focus { + color:#8ed6fb +} +body.dark .navbar .btn-link { + color:#dee2e6 +} +body.dark .content .btn-link { + color:#8ed6fb +} +body.dark .content .btn-link:hover { + color:#8ed6fb +} +body.dark .navbar .btn-link:hover { + color:#8ed6fb +} +body.dark .navbar .btn-link:active { + color:#8ed6fb +} +body.dark .form-control.is-search { + background:#1b1f22 +} +body.dark .navbar-form::after { + color:#6c757d; + border:1px solid #343a40 +} +body.dark .form-control { + color:#adb5bd +} +body.dark .form-control:focus { + box-shadow:0 0 0 0.2rem #9adafb +} +body.dark .border-top { + border-top:1px solid #1b1f22 !important +} +@media (min-width: 992px) { + body.dark .docs-sidebar { + order:0; + display:block; + } + body.dark .docs-bar { + border-right:1px solid #1b1f22; + } +} +body.dark .docs-navigation { + border-top:1px solid #1b1f22 +} +body.dark pre code::-webkit-scrollbar-thumb { + background:#1b1f22 +} +body.dark code:not(.hljs) { + background:#1b1f22; + color:#dee2e6 +} +body.dark pre code:hover { + scrollbar-width:thin; + scrollbar-color:#1b1f22 transparent +} +body.dark pre code::-webkit-scrollbar-thumb:hover { + background:#1b1f22 +} +body.dark blockquote { + border-left:3px solid #1b1f22 +} +body.dark .footer { + border-top:1px solid #1b1f22 +} +body.dark .docs-links, +body.dark .docs-toc { + scrollbar-width:thin; + scrollbar-color:#212529 #212529 +} +body.dark .docs-links::-webkit-scrollbar, +body.dark .docs-toc::-webkit-scrollbar { + width:5px +} +body.dark .docs-links::-webkit-scrollbar-track, +body.dark .docs-toc::-webkit-scrollbar-track { + background:#212529 +} +body.dark .docs-links::-webkit-scrollbar-thumb, +body.dark .docs-toc::-webkit-scrollbar-thumb { + background:#212529 +} +body.dark .docs-links:hover, +body.dark .docs-toc:hover { + scrollbar-width:thin; + scrollbar-color:#1b1f22 #212529 +} +body.dark .docs-links:hover::-webkit-scrollbar-thumb, +body.dark .docs-toc:hover::-webkit-scrollbar-thumb { + background:#1b1f22 +} +body.dark .docs-links::-webkit-scrollbar-thumb:hover, +body.dark .docs-toc::-webkit-scrollbar-thumb:hover { + background:#1b1f22 +} +body.dark .docs-links h3:not(:first-child), +body.dark .docs-links .h3:not(:first-child) { + border-top:1px solid #1b1f22 +} +body.dark a.docs-link { + color:#dee2e6 +} +body.dark .page-links li:not(:first-child) { + border-top:1px dashed #1b1f22 +} +body.dark .card { + background:#212529; + border:1px solid #1b1f22 +} +body.dark .card.bg-light { + background:#1b1f22 !important +} +body.dark .navbar .menu-icon .navicon { + background:#dee2e6 +} +body.dark .navbar .menu-icon .navicon::before, +body.dark .navbar .menu-icon .navicon::after { + background:#dee2e6 +} +body.dark .logo-light { + display:none !important +} +body.dark .logo-dark { + display:inline-block !important +} +body.dark .bg-light { + background:#1e2125 !important +} +body.dark .bg-dots { + background-image:radial-gradient(#556370 15%, transparent 15%) +} +body.dark .text-muted { + color:#c8cfd6 !important +} +body.dark .alert-primary { + background:#8ed6fb; + color:#212529 +} +body.dark .figure-caption { + color:#dee2e6 +} +body.dark .copy-status::after { + content:"Copy"; + display:block; + color:#dee2e6 +} +body.dark .copy-status:hover::after { + content:"Copy"; + display:block; + color:#8ed6fb +} +body.dark .copy-status:focus::after, +body.dark .copy-status:active::after { + content:"Copied"; + display:block; + color:#8ed6fb +} +.hljs { + display:block; + overflow-x:auto; + padding:0.5em; + background:#fbf7f0; + color:#1d2d35 +} +.hljs-string, +.hljs-variable, +.hljs-template-variable, +.hljs-symbol, +.hljs-bullet, +.hljs-section, +.hljs-addition, +.hljs-attribute, +.hljs-link { + color:#d32e9d +} +.hljs-comment, +.hljs-quote, +.hljs-meta, +.hljs-deletion { + color:#888 +} +.hljs-keyword, +.hljs-selector-tag, +.hljs-section, +.hljs-name, +.hljs-type, +.hljs-strong { + font-weight:bold +} +.hljs-emphasis { + font-style:italic +} +body.dark .hljs { + background:#1b1f22; + color:#dee2e6 +} +body.dark .hljs-string, +body.dark .hljs-variable, +body.dark .hljs-template-variable, +body.dark .hljs-symbol, +body.dark .hljs-bullet, +body.dark .hljs-section, +body.dark .hljs-addition, +body.dark .hljs-attribute, +body.dark .hljs-link { + color:#8ed6fb +} +pre, +code, +kbd, +samp { + font-family:sfmono-regular,menlo,monaco,consolas,"Liberation Mono","Courier New",monospace; + font-size:.875rem; + border-radius:.25rem +} +code { + background:#fbf7f0; + color:#1d2d35; + padding:0.25rem 0.5rem +} +pre { + margin:2rem 0 +} +pre code { + display:block; + overflow-x:auto; + line-height:1.5; + padding:1.25rem 1.5rem; + -moz-tab-size:4; + -o-tab-size:4; + tab-size:4; + scrollbar-width:thin; + scrollbar-color:transparent transparent +} +.hljs { + padding:1.25rem 1.5rem +} +@media (max-width: 575.98px) { + pre, + code, + kbd, + samp { + border-radius:0 + } + pre { + margin:2rem -1.5rem + } +} +pre code::-webkit-scrollbar { + height:5px +} +pre code::-webkit-scrollbar-thumb { + background:#e9ecef +} +pre code:hover { + scrollbar-width:thin; + scrollbar-color:#e9ecef transparent +} +pre code::-webkit-scrollbar-thumb:hover { + background:#e9ecef +} +.alert { + font-family:sfmono-regular,menlo,monaco,consolas,"Liberation Mono","Courier New",monospace; + font-size:.875rem +} +.alert-icon { + margin-right:0.75rem +} +.docs .alert { + margin:2rem -1.5rem +} +.alert-warning { + background:#fbf7f0; + color:#1d2d35 +} +.alert-primary { + color:#fff; + background-color:#2b388f +} +.navbar .btn-link { + color:#1d2d35; + padding:0.4375rem 0 +} +#mode { + margin-right:0.5rem +} +.btn-link:focus { + outline:0; + box-shadow:none +} +#navigation { + margin-left:1.25rem +} +@media (min-width: 768px) { + #mode { + margin-right:0.5rem + } + .navbar .btn-link { + padding:0.5625em 0.25rem 0.5rem 0.125rem + } +} +.navbar .btn-link:hover { + color:#5d2f86 +} +.navbar .btn-link:active { + color:#5d2f86 +} +body .toggle-dark { + display:block +} +body .toggle-light { + display:none +} +body.dark .toggle-light { + display:block +} +body.dark .toggle-dark { + display:none +} +.btn-clipboard { + display:none +} +@media (min-width: 768px) { + .doks-clipboard { + position:relative; + float:right + } + .btn-clipboard { + position:absolute; + top:1rem; + right:0.25rem; + z-index:10; + display:block; + padding:0.25rem 0.5rem; + font-size:.875rem + } +} +.copy-status::after { + content:"Copy"; + display:block; + color:#1d2d35 +} +.copy-status:hover::after { + content:"Copy"; + display:block; + color:#d32e9d +} +.copy-status:focus::after, +.copy-status:active::after { + content:"Copied"; + display:block; + color:#d32e9d +} +blockquote { + margin-bottom:1rem; + font-size:1.25rem; + border-left:3px solid #dee2e6; + padding-left:1rem +} +figure { + margin:2rem 0 +} +.figure-caption { + margin:0.25rem 0 0.75rem +} +.blur-up { + filter:blur(5px) +} +.blur-up.lazyloaded { + filter:unset +} +.img-simple { + margin-top:0.375rem; + margin-bottom:1.25rem +} +.navbar-form { + position:relative +} +#suggestions { + position:absolute; + right:0; + margin-top:0.5rem; + width:calc(100vw - 3rem) +} +#suggestions a { + display:block; + text-decoration:none; + padding:0.75rem; + margin:0 0.5rem +} +#suggestions a:focus { + background:#f8f9fa; + outline:0 +} +#suggestions div:not(:first-child) { + border-top:1px dashed #e9ecef +} +#suggestions div:first-child { + margin-top:0.5rem +} +#suggestions div:last-child { + margin-bottom:0.5rem +} +#suggestions a:hover { + background:#f8f9fa +} +#suggestions span { + display:flex; + font-size:1rem +} +#suggestions span:first-child { + font-weight:700; + color:#1d2d35 +} +#suggestions span:nth-child(2) { + color:#495057 +} +@media (min-width: 576px) { + #suggestions { + width:30rem + } + #suggestions a { + display:flex + } + #suggestions span:first-child { + width:9rem; + padding-right:1rem; + border-right:1px solid #e9ecef; + display:inline-block; + text-align:right + } + #suggestions span:nth-child(2) { + width:19rem; + padding-left:1rem + } +} +table { + margin:3rem 0 +} +.footer { + border-top:1px solid #e9ecef; + padding-top:1.125rem; + padding-bottom:1.125rem +} +.footer ul { + margin-bottom:0 +} +.footer li { + font-size:.875rem; + margin-bottom:0 +} +@media (min-width: 768px) { + .footer li { + font-size:1rem + } +} +.navbar-text { + margin-left:1rem +} +.navbar-brand { + font-weight:700 +} +.navbar-light .navbar-brand, +.navbar-light .navbar-brand:hover, +.navbar-light .navbar-brand:active { + color:#1d2d35 +} +.navbar-light .navbar-nav .active .nav-link { + color: #5d2f86; +} +@media (min-width: 768px) { + .navbar-brand { + font-size:1.375rem + } + .navbar-text { + margin-left:1.25rem + } +} +.navbar-nav { + flex-direction:row +} +.nav-item { + margin-left:1.25rem +} +@media (min-width: 768px) { + .nav-item { + margin-left:0.5rem + } +} +@media (max-width: 575.98px) { + .nav-item:first-child { + margin-left:0 + } +} +@media (max-width: 767.98px) { + .navbar .container { + padding-left:1.5rem; + padding-right:1.5rem + } +} +.break { + flex-basis:100%; + height:0 +} +.navbar { + background-color:rgba(255,255,255,0.95); + border-bottom:1px solid #e9ecef; + margin-top:4px +} +.header-bar { + border-top:4px solid; + border-image-source:linear-gradient(90deg, #2b388f, #8ed6fb 50%, #d32e9d); + border-image-slice:1 +} +.home .navbar { + border-bottom:0 +} +.navbar-form { + position:relative; + margin-top:0.25rem +} +@media (min-width: 768px) { + .navbar-brand { + margin-right:1rem !important + } + .main-nav .nav-item:first-child .nav-link, + .social-nav .nav-item:first-child .nav-link { + padding-left:0 + } + .main-nav .nav-item:last-child .nav-link, + .social-nav .nav-item:last-child .nav-link { + padding-right:0 + } + .navbar-form { + margin-top:0; + margin-left:6rem; + margin-right:1.5rem + } +} +@media (min-width: 992px) { + .navbar-form { + margin-left:15rem + } +} +@media (min-width: 1200px) { + .navbar-form { + margin-left:30rem + } +} +.form-control.is-search { + padding-right:2.5rem; + background:#f8f9fa; + border:0 +} +.navbar-form::after { + position:absolute; + top:0.4625rem; + right:0.5375rem; + display:flex; + align-items:center; + justify-content:center; + height:1.5rem; + padding-right:0.4375rem; + padding-left:0.4375rem; + font-size:.75rem; + color:#495057; + content:"/"; + border:1px solid #dee2e6; + border-radius:0.25rem +} +.algolia-autocomplete { + display:flex !important +} +.algolia-autocomplete .ds-dropdown-menu { + box-shadow:0 0.5rem 1rem rgba(0,0,0,0.15) !important +} +@media (max-width: 575.98px) { + .algolia-autocomplete .ds-dropdown-menu { + max-width:512px !important; + min-width:312px !important; + width:auto !important + } + .algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column::after { + content:"|"; + margin-right:0.25rem + } +} +.algolia-autocomplete .algolia-docsearch-suggestion--title { + margin-bottom:0 +} +.algolia-autocomplete .algolia-docsearch-suggestion--highlight { + padding:0 0.05em +} +.algolia-autocomplete .algolia-docsearch-footer { + margin-top:1rem; + margin-right:0.5rem; + margin-bottom:0.5rem +} +.navbar .menu-icon { + cursor:pointer; + padding:1.125rem 0.625rem; + margin:0 0 0 -0.625rem; + -webkit-user-select:none; + -moz-user-select:none; + -ms-user-select:none; + user-select:none +} +.navbar .menu-icon .navicon { + background:#1d2d35; + display:block; + height:2px; + position:relative; + transition:background 0.2s ease-out; + width:18px +} +.navbar .menu-icon .navicon::before, +.navbar .menu-icon .navicon::after { + background:#1d2d35; + content:""; + display:block; + height:100%; + position:absolute; + transition:all 0.2s ease-out; + width:100% +} +.navbar .menu-icon .navicon::before { + top:5px +} +.navbar .menu-icon .navicon::after { + top:-5px +} +.navbar .menu-btn { + display:none +} +.navbar .menu-btn:checked~.navbar-collapse { + display:block; + max-height:100vh +} +.navbar .menu-btn:checked~.menu-icon .navicon { + background:transparent +} +.navbar .menu-btn:checked~.menu-icon .navicon::before { + transform:rotate(-45deg) +} +.navbar .menu-btn:checked~.menu-icon .navicon::after { + transform:rotate(45deg) +} +.navbar .menu-btn:checked~.menu-icon:not(.steps) .navicon::before, +.navbar .menu-btn:checked~.menu-icon:not(.steps) .navicon::after { + top:0 +} +#content>h1[id]::before, +#content>.h1[id]::before, +#content>h2[id]::before, +#content>.h2[id]::before, +#content>h3[id]::before, +#content>.h3[id]::before, +#content>h4[id]::before, +#content>.h4[id]::before, +.subpages h2[id]::before { + display:block; + height:6rem; + margin-top:-6rem; + content:"" +} +#more { + display:block; + height:6rem; + margin-top:-6rem; + content:"" +} +.anchor { + visibility:hidden; + padding-left:0.5rem +} +h1:hover a, +.h1:hover a, +h2:hover a, +.h2:hover a, +h3:hover a, +.h3:hover a, +h4:hover a, +.h4:hover a { + visibility:visible; + text-decoration:none +} +.card-list { + margin-top:2.25rem +} +.edit-page { + margin-top:3rem; + font-size:1rem +} +.edit-page svg { + margin-right:0.5rem; + margin-bottom:0.25rem +} +p.meta { + margin-top:0.5rem; + font-size:1rem +} +.breadcrumb { + margin-top:2.25rem; + font-size:1rem +} +.home .card, +.contributors.list .card, +.blog.list .card { + margin-top:2rem; + margin-bottom:2rem; +} +.home .card:hover, +.contributors.list .card:hover, +.blog.list .card:hover { + +} +.home .card-body, +.contributors.list .card-body, +.blog.list .card-body { + padding:0 2rem 1rem +} +.blog-header { + margin-bottom:2rem +} +.docs-links, +.docs-toc { + scrollbar-width:thin; + scrollbar-color:#fff #fff +} +.docs-links::-webkit-scrollbar, +.docs-toc::-webkit-scrollbar { + width:5px +} +.docs-links::-webkit-scrollbar-track, +.docs-toc::-webkit-scrollbar-track { + background:#fff +} +.docs-links::-webkit-scrollbar-thumb, +.docs-toc::-webkit-scrollbar-thumb { + background:#fff +} +.docs-links:hover, +.docs-toc:hover { + scrollbar-width:thin; + scrollbar-color:#e9ecef #fff +} +.docs-links:hover::-webkit-scrollbar-thumb, +.docs-toc:hover::-webkit-scrollbar-thumb { + background:#e9ecef +} +.docs-links::-webkit-scrollbar-thumb:hover, +.docs-toc::-webkit-scrollbar-thumb:hover { + background:#e9ecef +} +.docs-links h3, +.docs-links .h3, +.page-links h3, +.page-links .h3 { + text-transform:uppercase; + font-size:1rem; + margin:1.25rem 0 0.5rem 0; + padding:1.5rem 0 0 0 +} +@media (min-width: 992px) { + .docs-links h3, + .docs-links .h3, + .page-links h3, + .page-links .h3 { + margin:1.125rem 1.5rem 0.75rem 0; + padding:1.375rem 0 0 0 + } +} +.docs-links h3:not(:first-child), +.docs-links .h3:not(:first-child) { + border-top:1px solid #e9ecef +} +a.docs-link, .subnav a { + color:#1d2d35; + display:block; + padding:0.125rem 0; + font-size:1rem +} +.subnav .active > a{ + color: #5d2f86; +} +.page-links li { + margin-top:0.375rem; + padding-top:0.375rem +} +.page-links li ul li { + border-top:none; + padding-left:1rem; + margin-top:0.125rem; + padding-top:0.125rem +} +.page-links li:not(:first-child) { + border-top:1px dashed #e9ecef +} +.page-links a { + color:#1d2d35; + display:block; + padding:0.125rem 0; + font-size:.9375rem +} +.docs-link:hover, +.docs-link.active, +.page-links a:hover { + text-decoration:none; + color:#5d2f86 +} +.docs-links h3.sidebar-link, +.docs-links .sidebar-link.h3, +.page-links h3.sidebar-link, +.page-links .sidebar-link.h3 { + text-transform:none; + font-size:1.125rem; + font-weight:normal +} +.docs-links h3.sidebar-link a, +.docs-links .sidebar-link.h3 a, +.page-links h3.sidebar-link a, +.page-links .sidebar-link.h3 a { + color:#1d2d35 +} +.docs-links h3.sidebar-link a:hover, +.docs-links .sidebar-link.h3 a:hover, +.page-links h3.sidebar-link a:hover, +.page-links .sidebar-link.h3 a:hover { + text-decoration:underline +} + +.nav { + display: block; +} + +.navbar-nav { + display:flex; +} + +.breadcrumb a { + padding: 0 0.3rem; +} + +.breadcrumb a:first-child{ + padding-left:0; +} + +.nav, .subnav { + padding-left: 0; + list-style: none; +} + +.docs-links .nav > li { + margin: 1.125rem 1.5rem 0.75rem 0; + padding: 1.375rem 0 0 0; +} + +.docs-links .nav > li:not(:first-child) { + border-top: 1px solid #e9ecef; +} + +.docs-toc #toc { + border-bottom: 1px solid #e9ecef; + margin-bottom:1rem; + padding-bottom: 1rem; +} + +body.dark .docs-links .nav > li:not(:first-child) { + border-top: 1px solid #1b1f22; +} + +body.dark .docs-toc #toc { + border-bottom: 1px solid #1b1f22; + margin-bottom:1rem; + padding-bottom: 1rem; +} + +.docs-links .nav > li > a { + text-transform: uppercase; + font-size: 1rem; + font-weight: 700; + line-height: 1.2; +} + +body.dark .docs-links .nav > li a { + color: #dee2e6; +} + +body.dark .docs-links .nav > li.active li.active > a, body.dark .docs-links .nav > li.active > a.dropdown-toggle { + text-decoration: none; + color: #8ed6fb; +} + +#toc .h3-toc { + margin-left: .25in; +} +#toc .h4-toc { + margin-left: .50in; +} +#toc .h5-toc { + margin-left: .75in; +} +#toc .h6-toc { + margin-left: 1in; +} + +#toc > div { + margin-bottom:0.3rem; +} + +div.content-body { + margin-bottom: 1rem; +} + +.top-menu ul.dropdown-menu { + display:none; +} + +img, iframe { + max-width:100%; +} + +p.post-footer { + padding-top:1rem; +} + +.cat-meta { +padding-right: 0.5rem; +} + +.tag-meta a::after { + content: ','; +} +.tag-meta a:last-child:after { + content: ''; +} + +.quote blockquote{ + padding: 2rem; +} + +.content-media { + margin-bottom: 2rem; +} + +.related { + padding-top: 1rem; +} + +.related ul { + padding-bottom: 0.5rem; +} + +/*! Docs icon */ +.docs-bar .menu-icon { + cursor:pointer; + padding:1.75rem 0; + padding-bottom: 1.25rem; + margin:0 0 0 -0.625rem; + -webkit-user-select:none; + -moz-user-select:none; + -ms-user-select:none; + user-select:none +} +.docs-bar .menu-icon .navicon { + background:#1d2d35; + display:block; + height:2px; + position:relative; + transition:background 0.2s ease-out; + width:18px +} +.docs-bar .menu-icon .navicon::before, +.docs-bar .menu-icon .navicon::after { + background:#1d2d35; + content:""; + display:block; + height:100%; + position:absolute; + transition:all 0.2s ease-out; + width:100% +} +.docs-bar .menu-icon .navicon::before { + top:5px +} +.docs-bar .menu-icon .navicon::after { + top:-5px +} +.docs-bar .menu-btn { + display:none +} +.docs-bar .menu-btn:checked~.docs-bar-collapse { + display:block; + max-height:100vh +} +.docs-bar .menu-btn:checked~.menu-icon .navicon { + background:transparent +} +.docs-bar .menu-btn:checked~.menu-icon .navicon::before { + transform:rotate(-45deg) +} +.docs-bar .menu-btn:checked~.menu-icon .navicon::after { + transform:rotate(45deg) +} +.docs-bar .menu-btn:checked~.menu-icon:not(.steps) .navicon::before, +.docs-bar .menu-btn:checked~.menu-icon:not(.steps) .navicon::after { + top:0 +} + +.docs-bar .menu-btn:checked ~ .docs-sidebar { + display: block; + max-height: 100%; +} + +body.dark .docs-bar .menu-icon .navicon{ + background-color: #dee2e6; +} + +body.dark .docs-bar .menu-icon .navicon::before, body.dark .docs-bar .menu-icon .navicon::after { + background: #dee2e6; +} + +.float-right { + float:right; +} + +.jump-link a { + border: 1px solid #e9ecef; +} + +.dark .jump-link a { + color: #8ed6fb; + border: 1px solid #1b1f22; +} + +.dark .toc-wrapper { + background: #1b1f22; + border: 1px solid #1b1f22; +} + +.dark .toc-wrapper a { + color: #dee2e6; +} + +.social-logo a { + padding: 0.40em 0.25rem 0.5rem 0.125rem; + line-height:1; + height:24px; + color: #1d2d35; + margin-right: 0.5rem!important; +} + +body.dark .social-logo a { + color: #dee2e6; +} + +body.dark .social-logo a:hover, .dark .toc-wrapper a:hover { + color: #8ed6fb; + text-decoration:none; +} + +.list-unstyled a, .list-unstyled .subnav a { + padding: 0.125rem 0; +} + +.list-unstyled li { + margin: 0; +} \ No newline at end of file diff --git a/themes/doks/fonts/jost/jost-v4-latin-500.woff b/themes/doks/fonts/jost/jost-v4-latin-500.woff new file mode 100644 index 0000000..eab8d1b Binary files /dev/null and b/themes/doks/fonts/jost/jost-v4-latin-500.woff differ diff --git a/themes/doks/fonts/jost/jost-v4-latin-500.woff2 b/themes/doks/fonts/jost/jost-v4-latin-500.woff2 new file mode 100644 index 0000000..92349d1 Binary files /dev/null and b/themes/doks/fonts/jost/jost-v4-latin-500.woff2 differ diff --git a/themes/doks/fonts/jost/jost-v4-latin-500italic.woff b/themes/doks/fonts/jost/jost-v4-latin-500italic.woff new file mode 100644 index 0000000..7a8ed95 Binary files /dev/null and b/themes/doks/fonts/jost/jost-v4-latin-500italic.woff differ diff --git a/themes/doks/fonts/jost/jost-v4-latin-500italic.woff2 b/themes/doks/fonts/jost/jost-v4-latin-500italic.woff2 new file mode 100644 index 0000000..c6b9d56 Binary files /dev/null and b/themes/doks/fonts/jost/jost-v4-latin-500italic.woff2 differ diff --git a/themes/doks/fonts/jost/jost-v4-latin-700.woff b/themes/doks/fonts/jost/jost-v4-latin-700.woff new file mode 100644 index 0000000..57390f5 Binary files /dev/null and b/themes/doks/fonts/jost/jost-v4-latin-700.woff differ diff --git a/themes/doks/fonts/jost/jost-v4-latin-700.woff2 b/themes/doks/fonts/jost/jost-v4-latin-700.woff2 new file mode 100644 index 0000000..584073a Binary files /dev/null and b/themes/doks/fonts/jost/jost-v4-latin-700.woff2 differ diff --git a/themes/doks/fonts/jost/jost-v4-latin-700italic.woff b/themes/doks/fonts/jost/jost-v4-latin-700italic.woff new file mode 100644 index 0000000..e23eedf Binary files /dev/null and b/themes/doks/fonts/jost/jost-v4-latin-700italic.woff differ diff --git a/themes/doks/fonts/jost/jost-v4-latin-700italic.woff2 b/themes/doks/fonts/jost/jost-v4-latin-700italic.woff2 new file mode 100644 index 0000000..e56d892 Binary files /dev/null and b/themes/doks/fonts/jost/jost-v4-latin-700italic.woff2 differ diff --git a/themes/doks/fonts/jost/jost-v4-latin-italic.woff b/themes/doks/fonts/jost/jost-v4-latin-italic.woff new file mode 100644 index 0000000..5dcd111 Binary files /dev/null and b/themes/doks/fonts/jost/jost-v4-latin-italic.woff differ diff --git a/themes/doks/fonts/jost/jost-v4-latin-italic.woff2 b/themes/doks/fonts/jost/jost-v4-latin-italic.woff2 new file mode 100644 index 0000000..9346c1d Binary files /dev/null and b/themes/doks/fonts/jost/jost-v4-latin-italic.woff2 differ diff --git a/themes/doks/fonts/jost/jost-v4-latin-regular.woff b/themes/doks/fonts/jost/jost-v4-latin-regular.woff new file mode 100644 index 0000000..4f24758 Binary files /dev/null and b/themes/doks/fonts/jost/jost-v4-latin-regular.woff differ diff --git a/themes/doks/fonts/jost/jost-v4-latin-regular.woff2 b/themes/doks/fonts/jost/jost-v4-latin-regular.woff2 new file mode 100644 index 0000000..7f0bf75 Binary files /dev/null and b/themes/doks/fonts/jost/jost-v4-latin-regular.woff2 differ diff --git a/themes/doks/img/soundcloud.jpg b/themes/doks/img/soundcloud.jpg new file mode 100644 index 0000000..aa5135e Binary files /dev/null and b/themes/doks/img/soundcloud.jpg differ diff --git a/themes/doks/js/main.js b/themes/doks/js/main.js new file mode 100644 index 0000000..5ffedde --- /dev/null +++ b/themes/doks/js/main.js @@ -0,0 +1,11 @@ +(function () { + + document.getElementById("mode").addEventListener("click", () => { + document.body.classList.toggle("dark"); + localStorage.setItem("theme", document.body.classList.contains("dark") ? "dark" : "light"); + }); + if (localStorage.getItem("theme") === "dark") { + document.body.classList.add("dark"); + } + +})(); \ No newline at end of file diff --git a/themes/doks/js/toc.js b/themes/doks/js/toc.js new file mode 100644 index 0000000..d9dd498 --- /dev/null +++ b/themes/doks/js/toc.js @@ -0,0 +1,65 @@ +/*jslint + white: true, + browser: true, + vars: true +*/ + +/** + * Generates a table of contents for your document based on the headings + * present. Anchors are injected into the document and the + * entries in the table of contents are linked to them. The table of + * contents will be generated inside of the first element with the id `toc`. + * @param {HTMLDOMDocument} documentRef Optional A reference to the document + * object. Defaults to `document`. + * @author Matthew Christopher Kastor-Inare III + * @version 20130726 + * @example + * // call this after the page has loaded + * htmlTableOfContents(); + */ + + /** + * Modified by @danpros + * select only in #content + * using the heading title as the slug IDs + * insert the anchor inside the heading + * fix browser not scrolling to the hash + */ +function htmlTableOfContents (id) { + var documentRef = document; + var toc = documentRef.getElementById('toc'); + var headings = [].slice.call(documentRef.body.querySelectorAll('#content h1, #content h2, #content h3, #content h4, #content h5, #content h6')); + headings.forEach(function (heading, index) { + heading.setAttribute('id', heading.textContent.replace(/\s+/g, '-').toLowerCase() + id); + + var link = documentRef.createElement('a'); + link.setAttribute('href', '#' + heading.textContent.replace(/\s+/g, '-').toLowerCase() + id); + link.textContent = heading.textContent; + + var div = documentRef.createElement('div'); + div.setAttribute('class', heading.tagName.toLowerCase() + '-toc'); + + div.appendChild(link); + toc.appendChild(div); + }); + + if (window.location.hash) { + var hash = window.location.hash; + scrollToHash(hash); + } +} + +// fix browser not scrolling to the hash +function scrollToHash (hash) { + setTimeout(function() { + hashtag = hash; + location.hash = ''; + location.hash = hashtag; + }, 300); +} + +try { + module.exports = htmlTableOfContents; +} catch (e) { + // module.exports is not defined +} diff --git a/themes/doks/layout--static.html.php b/themes/doks/layout--static.html.php new file mode 100644 index 0000000..acea13f --- /dev/null +++ b/themes/doks/layout--static.html.php @@ -0,0 +1,90 @@ + + + + + + <?php echo $title;?> + + + + + + + + +onload="htmlTableOfContents('.page-slug;?>');" onload="htmlTableOfContents('.subpage-slug;?>');"> +
        + + + + +
        +
        +
        +
        + + +
        + +
        +
        + +
        +
        +
        + +
        +
        +
        +
        +
          +
        • +
        +
        +
        +
          +
        • Design by Doks
        • +
        +
        +
        +
        +
        + + + + + + \ No newline at end of file diff --git a/themes/doks/layout.html.php b/themes/doks/layout.html.php new file mode 100644 index 0000000..3c85209 --- /dev/null +++ b/themes/doks/layout.html.php @@ -0,0 +1,122 @@ + + + + + + <?php echo $title;?> + + + + + + + + + +
        + + + + + + +
        +
        +
        +
        +
        +

        title;?>

        + +
        +
        +
        body;?>
        + Get Started +
        +
        +
        +
        +
        + +
        + +
        +
        +
        + +
        +

        title;?>

        +

        description;?>

        +
        + +
        +
        +
        + + +
        +
        +
        +
        + +
        +
        +
        +
        + + +
        + +
        +
        +
        +
        +
          +
        • +
        +
        +
        +
          +
        • Design by Doks
        • +
        +
        +
        +
        +
        + + + + + \ No newline at end of file diff --git a/themes/doks/main.html.php b/themes/doks/main.html.php new file mode 100644 index 0000000..646f1c4 --- /dev/null +++ b/themes/doks/main.html.php @@ -0,0 +1,154 @@ + + + +
        +
        +

        title;?>

        +
        +
        +
        body;?>
        +
        +
        + + + +
        +
        +

        title;?>

        +
        +
        + + + +
        +
        +

        title;?>

        +
        +
        + + + + +
        +
        +

        Search: title;?> (count;?>)

        +
        +
        +
        + + + +
        +
        +

        title;?>

        +
        +
        + + + +
        +
        +

        Blog

        +
        +
        + + + +
        +
        +

        +
        +
        +
        +
        +
        + + + +body);?> +
        +
        +
        + + image)) {?> + <?php echo $post->title;?> + quote) && empty($post->video) && empty($post->audio)) {?> + <?php echo $post->title;?> + + + video)):?> + + + audio)):?> + + + + quote)):?> +
        +
        quote ?>
        +
        + + +
        + + link)) { ?> +

        + title;?> + + +

        + +

        title;?>

        + + +
        + body, $post->url); ?> + [...] +
        + +

        + + date);?> + + + authorName;?> + + + + + readTime;?> min + + ' . i18n('Edit') . ''; } ?> + +

        + +
        +
        +
        +
        + + + + + diff --git a/themes/doks/no-posts.html.php b/themes/doks/no-posts.html.php new file mode 100644 index 0000000..98b5c7e --- /dev/null +++ b/themes/doks/no-posts.html.php @@ -0,0 +1,9 @@ + +
        +
        +

        No posts found!

        +
        +
        +

        Create a blog post or set the frontpage display to static page to remove this message.

        +
        +
        \ No newline at end of file diff --git a/themes/doks/post.html.php b/themes/doks/post.html.php new file mode 100644 index 0000000..3e31f06 --- /dev/null +++ b/themes/doks/post.html.php @@ -0,0 +1,110 @@ + +
        +
        + + link)) { ?> +

        + title;?> + + +

        + +

        title;?>

        + + +

        + + date);?> + + authorName;?> + + + + readTime;?> min + + ' . i18n('Edit') . ''; } ?> + +

        + +
        + +
        + + image)):?> + <?php echo $post->title;?> + + video)):?> + + + audio)):?> + + + quote)):?> +
        quote ?>
        + + +
        + +
        + + body;?> + + +
        + + + +
        + + + title, $post->url) ?> + + + +
        + +
        + + +
        + +
        + + + + + \ No newline at end of file diff --git a/themes/doks/profile.html.php b/themes/doks/profile.html.php new file mode 100644 index 0000000..5c71cec --- /dev/null +++ b/themes/doks/profile.html.php @@ -0,0 +1,100 @@ + +
        +
        +

        name;?>

        +
        +
        +
        about;?>
        +
        +
        + + + + body);?> +
        +
        +
        + + image)) {?> + <?php echo $post->title;?> + quote) && empty($post->video) && empty($post->audio)) {?> + <?php echo $post->title;?> + + + video)):?> + + + audio)):?> + + + + quote)):?> +
        +
        quote ?>
        +
        + + +
        + + link)) { ?> +

        + title;?> + + +

        + +

        title;?>

        + + +
        + body, $post->url); ?> + [...] +
        + +

        + + date);?> + + + authorName;?> + + + + + readTime;?> min + + ' . i18n('Edit') . ''; } ?> + +

        + +
        +
        +
        +
        + + + + + + diff --git a/themes/doks/static.html.php b/themes/doks/static.html.php new file mode 100644 index 0000000..4f8d592 --- /dev/null +++ b/themes/doks/static.html.php @@ -0,0 +1,164 @@ + + + +
        + + + +
        + + +

        title;?>

        + +
        + + body;?> + + +
        + slug);?> + +
        +

        Sub

        + +
        +
        + title;?> → +
        description;?> +
        +
        + +
        + +
        + + +
        + + + +
        diff --git a/themes/logs/404-search.html.php b/themes/logs/404-search.html.php new file mode 100644 index 0000000..8a7946f --- /dev/null +++ b/themes/logs/404-search.html.php @@ -0,0 +1,13 @@ + + + + +
        +
        +

        Search results not found!

        +

        Please search again, or would you like to try our homepage instead?

        +
        + +
        +
        +
        diff --git a/themes/logs/404.html.php b/themes/logs/404.html.php new file mode 100644 index 0000000..d8058e9 --- /dev/null +++ b/themes/logs/404.html.php @@ -0,0 +1,11 @@ + + + + +
        +
        +

        This page doesn't exist!

        +

        Please search to find what you're looking for or visit our homepage instead.

        + +
        +
        \ No newline at end of file diff --git a/themes/logs/css/style.css b/themes/logs/css/style.css new file mode 100644 index 0000000..f615186 --- /dev/null +++ b/themes/logs/css/style.css @@ -0,0 +1,986 @@ +/*------------------------- + Simple reset +--------------------------*/ + +* { + margin: 0; + padding: 0; +} + +body { + font-size: 17px; + line-height: 1.6em; + font-family: Georgia, sans-serif; + background: #F7F7F7; + color: #444444; +} + +section, footer, header, aside, nav { + display: block; +} + +img { + border: 0 none; + height: auto; + max-width: 100%; + outline: 0 none; +} + +.hide { + display: none; +} + +/*------------------------- + Heading +--------------------------*/ + +h1, h2, h3, h4, h5, h6 { + font-family: 'Open Sans', sans-serif; + line-height: 1.3; + margin: 0.5em 0; + font-weight: 400; +} + +h1 { + font-size: 28px; +} + +h2 { + font-size: 24px; +} + +h3 { + font-size: 18px; +} + +h4 { + font-size: 16px; +} + +h5 { + font-size: 14px; +} + +h6 { + font-size: 12px; +} + +/*------------------------- + Layout +--------------------------*/ + +#cover { + padding: 0 0 20px 0; + float: left; + width: 100%; +} + +#header-wrapper { + float: left; + width: 100%; + position: relative; +} + +#header { + position: relative; + padding: 0 15px; + margin: 0 auto; +} + +#main-wrapper { + float: left; + width: 100%; + background: #ffffff; + position: relative; + border-top: 1px solid #DFDFDF; + border-bottom: 1px solid #DFDFDF; +} + +#main { + position: relative; + padding: 0; + margin: 0 auto; + background: #ffffff; + overflow: hidden; + padding: 30px 15px; +} + +.responsive { + width: 950px; +} + +/*------------------------- + Link +--------------------------*/ + +a { + color: #21759B; + text-decoration: none; +} + +a:hover { + text-decoration: none; + color: #D54E21; +} + +.tab { + width: 100%; + margin: 1.5em 0 0 0; + line-height: 1; + border-bottom: 1px solid #E4E7EE; +} + +.tab ul { + padding:0; + margin:0; +} + +.tab li { + display: inline-block; + margin:0; + padding:0; +} + +.tab a { + background: #E4E7EE; + border-radius: 6px 6px 0px 0; + color: #555555; + text-align: center; + padding: 8px 14px; + display: inline-block; + margin: 0 5px; + font-size: 12px; + font-weight: bold; + font-family: 'Open Sans', sans-serif; +} + +.tags a { + margin-right:3px; +} + +/*------------------------- + Text element +--------------------------*/ + +p { + margin: 1em 0; +} + +blockquote:before { + color: #BBBBBB; + content: "“"; + font-size: 3em; + line-height: 0.1em; + margin-right: 0.2em; + vertical-align: -0.4em; +} + +blockquote:after { + color: #BBBBBB; + content: "”"; + font-size: 3em; + line-height: 0.1em; + vertical-align: -0.45em; +} + +blockquote { + font-style: italic; + margin: 1em 0 1em 1em; +} + +blockquote p { + display: inline; +} + +pre { + margin: 1em 0; + overflow: auto; + background: #F1F1FF; + color: #333333; + display: block; + font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif; + font-size: 14px; + padding: 10px; + line-height: 1.3; +} + +code { + color: #333333; + font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif; + font-size: 15px; + padding: 3px 8px; + background: #F1F1FF; +} + +pre code { + color: #333333; + display: block; + font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif; + font-size: 14px; + padding: 0; + line-height: 1.6; +} + +.thumbnail { + float: left; + height: 80px; + width: 80px; + margin: 5px 15px 0 0; + overflow: hidden; + display: block; + background-repeat: no-repeat; + background-position: center; + background-size: cover; +} + +ul, ol { + padding-left: 30px; + margin: 1em 0; +} + +ul li, ol li { + margin: 0.25em 0; +} + +.category { + background-color: #f9f9f9; + border: 1px solid #ccc; + border-radius: 4px; + color: #333; + display: block; + font-size: 13px; + margin: 20px 0; + padding: 0 1em; +} + +.tags a:after { + content:", "; +} +.tags a:last-child:after { + content:""; +} + +/*------------------------- + Header +--------------------------*/ + +#branding { + text-align: left; + position: relative; + width: 100%; + float: left; + margin: 1em 0; + text-shadow: 0 1px 0 #ffffff; +} + +#branding a { + text-decoration: none; + color: #000000; +} + +#branding p { + margin: 0; + font-style: italic; + margin-top: 5px; +} + +#branding h1, #branding h2 { + font-size: 36px; + font-family: Georgia, sans-serif; + margin: 0; +} + +/*------------------------- + Menu +--------------------------*/ + +#menu-wrapper { + float: left; + width: 100%; + position: relative; + text-align: left; + font-family: 'Open Sans', sans-serif; + font-size: 15px; + text-shadow: 0 1px 0 #ffffff; + padding-bottom: 7px; +} + +#menu { + margin: 0 auto; + padding: 0 15px; +} + +#menu ul { + list-style: none; + margin: 0; + padding: 0; +} + +#menu ul li { + padding: 0 10px; + float: left; + margin: 0; +} + +#menu ul li.first { + padding-left: 0; +} + +#menu ul li.last { + padding-right: 0; +} + +#menu a { + text-decoration: none; + float: left; +} + +#menu a:hover { + text-decoration: underline; +} + +#menu ul li.active > a { + text-decoration: underline; +} + +#menu ul li ul.subnav { + display:none; +} + +/*------------------------- + Search +--------------------------*/ + +#search-form { + float: right; +} +.error-404 .post #search-form, +.error-404-search .post #search-form { + float: none; +} + +.search-input { + border: 1px solid #E5E5E5; + border-top-color: gainsboro; + color: #666; + display: inline-block; + line-height: normal; + height: 22px; + padding: 0 3px; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px; +} + +.search-input:hover { + border: 1px solid #b9b9b9; + border-top: 1px solid #a0a0a0; + box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1) +} + +.search-input:focus { + border: 1px solid rgb(77, 144, 254); + box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.3) inset; + outline: medium none; +} + +.search-button { + background-color: #5e94ff; + border: 1px solid #5e94ff; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px; + -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .2); + box-shadow: 0 1px 1px rgba(0, 0, 0, .2); + color: #fff; + display: inline-block; + font-family: "open sans", arial, sans-serif; + font-size: 13px; + font-weight: 600; + line-height: 1.54; + padding: 0; + margin: 0; + text-align: center; + text-shadow: 0 -1px 0 rgba(0, 0, 0, .2); + -moz-transition: all .218s ease-in; + -webkit-transition: all .218s ease-in; + transition: all .218s ease-in; + cursor: pointer; + height: 23px; + padding: 0 3px; +} + +/*------------------------- + Content +--------------------------*/ + +#content { + width: 700px; + float: left; + padding-right: 50px; +} + +.breadcrumb { + color: #999999; + font-size: 15px; + margin-bottom: 1em; + font-family: 'Open Sans', sans-serif; +} + +.breadcrumb a { + color: #777777; + border-bottom: 1px solid #DFDFDF; +} + +.breadcrumb a:hover { + border-bottom: 1px solid #D54E21; + color: #D54E21; +} + +.post { + margin: 0 0 24px 0; + overflow: hidden; + border-bottom: 1px solid #DFDFDF; +} + +.post a, .post-list a, .pager a, .postnav a { + border-bottom: 1px solid #DFDFDF; +} + +.post a:hover, .post-list a:hover, .pager a:hover, .postnav a:hover { + border-bottom: 1px solid #D54E21; +} + +.date { + color: #999999; + font-size: 13px; + font-family: 'Open Sans', sans-serif; + margin: 1em 0; +} + +.date a { + color: #777777; +} + +.date a:hover { + border-bottom: 1px solid #D54E21; + color: #D54E21; +} + +#main strong { + color: #454545; +} + +#main h1 a, #main h2 a { + border: none; +} + +.post.first .title-index { + margin-top: 0; +} + +.main { + margin-bottom: 1.5em; +} + +.in-post .post, .in-page .post, .in-subpage .post { + border: none; +} + +.title-post { + margin-top: 0; +} + +.border { + border-top: 1px solid #DFDFDF; + margin-bottom: 15px; + margin-top: 10px; + padding-bottom: 15px; + width: 100%; + float: left; +} + +.profile { + border-bottom: 1px solid #DFDFDF; +} + +.post-list { + font-size: 14px; + border-bottom: 1px solid #DFDFDF; + margin-bottom: 1em; + padding-bottom: 1em; +} + +/*------------------------- + Share box +--------------------------*/ + +.separator { + font-size: 20px; +} + +.share-box { + font-size: 14px; + float: left; + line-height: 1.5; +} + +.author-info { + width: 540px; + float: left; +} + +.share { + width: 140px; + margin-left: 1em; + float: right; +} + +.share a { + display: inline-block; + width: 18px; + height: 18px; + margin: 0; + padding: 0 5px; + vertical-align: middle; + -o-transition: all .3s; + -moz-transition: all .3s; + -webkit-transition: all .3s; + -ms-transition: all .3s; + text-indent: -9999em; + border: none; +} + +.share a.twitter { + background: url(../../../system/resources/images/share-twitter.png) left top no-repeat; +} + +.share a.facebook { + background: url(../../../system/resources/images/share-facebook.png) left top no-repeat; +} + +.share a:hover { + background-position: left -26px; + border: none; +} + +.related { + font-size: 15px; + line-height: 1.5; +} + +.pager, .postnav { + font-size: 15px; + position:relative; +} + +.pager { + text-align:center; + margin-bottom: 1em; +} + +.pager .newer { + position:absolute; + left: 0; +} + +.postnav .newer { + float: left; +} + +.pager .older { + position:absolute; + right:0; +} + +.postnav .older { + float: right; +} + +.border .fb-comments, .border #disqus_thread { + padding-top: 1.2em; +} + +#disqus_thread { + float: left; + font-family: Georgia, Times, Cambria, serif; + width: 100%; +} + +/*------------------------- + Sidebar +--------------------------*/ + +#sidebar { + float: left; + color: #5c5a54; + height: 100%; + width: 200px; + font-size: 15px; + line-height: 1.4; +} + +#sidebar h2, #sidebar h3, #sidebar h4 { + color: #000000; + border-bottom: 1px solid #DFDFDF; + margin: 0 0 1em 0; + padding-bottom: 5px; +} + +#sidebar ul { + list-style: none; + margin: 0; + padding: 0; +} + +#sidebar .archivegroup ul.month { + margin: 0.25em 0 0.25em 1.3em; +} + +#sidebar .archivegroup ul.month li { + margin: 0; +} + +.archivegroup li.expanded, .archivegroup li.collapsed { + margin: 0; +} + +.about, .social, .archive, .comments, .tagcloud, .recent, .popular, .category-list { + margin-bottom: 2em; +} + +#sidebar .recent ul, #sidebar .popular ul { + margin: 0.25em 0 0.25em 1.3em; +} + +#sidebar .recent li, #sidebar .popular li { + list-style-type: circle; +} + +/*------------------------- + Copyright +--------------------------*/ + +#copyright-wrapper { + margin: 20px 0 0 0; + float: left; + width: 100%; + position: relative; + font-size: 14px; + line-height: 1.5; +} + +#copyright { + text-align: center; + color: #909090; + text-shadow: 0 1px 0 #ffffff; + text-align: center; + margin: 0 auto; + padding: 0 15px; +} + +#copyright p { + margin: 0; +} + +/*---------------------------- + The 404 page +-----------------------------*/ + +.message { + padding: 50px 20px 20px 20px; +} + +.message h1 { + font-size: 36px; + margin-bottom: 18px; +} + +.message p { + font-size: 13px; +} + +.center { + text-align: center; +} + +.search-404 { + position: relative; + float: left; + width: 100%; + margin-bottom: 1.2em; +} + +.search-404 #search-form { + float: none; +} + +/*------------------------- + Table +--------------------------*/ + +table { + font-size: 12px; + border: none; + width: 100%; + color: #333333; + border: 1px solid #E3E3E3; + margin: 1em 0; + white-space: pre-wrap; + word-wrap: break-word; +} + +table h2.title { + margin: 5px 0; +} + +th, td { + padding: 5px 10px; + border: none; +} + +th.title { + margin: 5px 0; + font-family: 'Open Sans', sans-serif; + font-size: 16px; + font-weight: normal; +} + +td.title { + font-weight: normal; + background-color: #f6f6f6; + font-family: 'Open Sans', sans-serif; +} + +th { + background-color: #f6f6f6; + border-bottom: 1px solid #E3E3E3; + border-right: 1px solid #E3E3E3; + font-family: 'Open Sans', sans-serif; + font-size: 16px; +} + +td { + background-color: #fafafa; + border: 1px solid #E3E3E3; + border-top: none; + border-left: none; +} + +table.post-list td a { + margin: 0 5px; +} + +/*---------------------------- + Media queries +-----------------------------*/ + +@media all and (max-width: 1024px) { + .responsive { + width: 95%; + } + + #content { + width: 73%; + padding-right: 5%; + } + + .author-info { + width: 68%; + } + + .share { + width: 28%; + margin-left: 4%; + } + + #sidebar { + width: 22%; + } +} + +@media all and (max-width: 640px) { + + .responsive { + width: 94%; + } + + #content { + width: 100%; + padding-right: 0; + } + + .author-info, .related, .share-box { + width: 100%; + } + + .share { + width: 100%; + margin-left: 0; + margin-bottom: 1em; + } + + #sidebar { + width: 100%; + } + + .tagcloud ul li { + float: left; + list-style: none outside none; + margin-right: 10px; + } + + .pager .newer, .postnav .newer { + float: left; + margin-bottom: 1em; + } + + .pager .older, .postnav .older { + float: left; + margin-bottom: 1em; + } + + #branding, #menu-wrapper { + text-align: center; + } + + #menu-wrapper ul { + width: 100%; + text-align: center; + float: left; + } + + #menu-wrapper ul li { + float: none; + display: inline-block; + vertical-align: top; + } + + #menu a { + float: none; + } + + #search-form { + float: left; + width: 100%; + margin-bottom: 1em; + } + + pre { + white-space: pre-wrap; + word-wrap: break-word; + } + +} + +@media all and (max-width: 360px) { + .responsive { + width: 92%; + } +} + +@media all and (max-width: 320px) { + .responsive { + width: 90%; + } +} + +/*---------------------------- + Video +-----------------------------*/ + +.video-wrapper { + margin: 1em 0; +} + +@media all and (min-width: 420px) { + + .video-wrapper { + padding-top: 315px !important; + position: relative; + width: 100%; + max-width: 420px !important; + max-height: 315px !important; + } + + .video-wrapper iframe, .video-wrapper object, .video-wrapper embed { + height: 100%; + left: 0; + position: absolute; + top: 0; + max-width: 420px !important; + width: 100%; + max-height: 315px !important; + } + +} + +@media all and (max-width: 420px) { + + .video-wrapper { + position: relative; + padding-bottom: 56.25%; + padding-top: 30px; + height: 0; + overflow: hidden; + } + + .video-wrapper iframe, .video-wrapper object, .video-wrapper embed { + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; + } + +} + +@media all and (max-width: 560px) { + + .featured-video, .featured-audio { + position: relative; + padding-bottom: 56.25%; + padding-top: 30px; + height: 0; + overflow: hidden; + } + + .featured-video iframe, .featured-video object, .featured-video embed, .featured-audio iframe, .featured-audio object, .featured-audio embed { + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; + } + +} + +/*---------------------------- + Archive +-----------------------------*/ + +ul.archivegroup { + padding: 0; + margin: 0; +} + +.archivegroup .expanded ul { + display: block; +} + +.archivegroup .collapsed ul { + display: none; +} + +.archivegroup li.expanded, .archivegroup li.collapsed { + list-style: none; +} + +#more { + display:block; + height:1rem; + margin-top:-1rem; + box-shadow: none; + border: none; +} \ No newline at end of file diff --git a/themes/logs/layout.html.php b/themes/logs/layout.html.php new file mode 100644 index 0000000..f35fe22 --- /dev/null +++ b/themes/logs/layout.html.php @@ -0,0 +1,98 @@ + + + + + + <?php echo $title;?> + + + + + + + + +
        + + +
        + + +
        +
        + +
        + +
        +
        +
        + +
        + +
        +
        + +
        + + + \ No newline at end of file diff --git a/themes/logs/main.html.php b/themes/logs/main.html.php new file mode 100644 index 0000000..aae727c --- /dev/null +++ b/themes/logs/main.html.php @@ -0,0 +1,73 @@ + + + + + +
        +

        title;?>

        +
        + body; ?> +
        +
        + + + +
        +
        + link)) { ?> +

        title ?> →

        + +

        title ?>

        + +
        + - + category ?> + + - + + - + url ?>> + + Edit'; } ?> +
        + image)) { ?> + + + video)) { ?> + + + audio)) { ?> + + + quote)) { ?> + + +
        + body, $p->url) ?> + [...] +
        +
        +
        + + +
        + + + + + + + +
        + + + + diff --git a/themes/logs/no-posts.html.php b/themes/logs/no-posts.html.php new file mode 100644 index 0000000..aec4646 --- /dev/null +++ b/themes/logs/no-posts.html.php @@ -0,0 +1,2 @@ + +

        !

        \ No newline at end of file diff --git a/themes/logs/post.html.php b/themes/logs/post.html.php new file mode 100644 index 0000000..c22c918 --- /dev/null +++ b/themes/logs/post.html.php @@ -0,0 +1,82 @@ + + + + + +
        +
        + + link)) { ?> +

        title ?> →

        + +

        title ?>

        + +
        + + - + category ?> + - + Permalink +
        + image)) { ?> + + + video)) { ?> + + + audio)) { ?> + + + quote)) { ?> + + +
        + body; ?> +
        +
        : tag;?>
        +
        +
        + + +
        + +
        + + +
        + +
        +
        + + « + + + » + +
        + + title, $p->url) ?> + +
        \ No newline at end of file diff --git a/themes/logs/profile.html.php b/themes/logs/profile.html.php new file mode 100644 index 0000000..8ca1a60 --- /dev/null +++ b/themes/logs/profile.html.php @@ -0,0 +1,34 @@ + + + + +
        +
        +

        name ?>

        +
        about ?>
        +
        +
        +

        + +
          + +
        • + title ?> - + date) ?> - category; ?> +
        • + +
        + +
        + + + + + + + +
        + + \ No newline at end of file diff --git a/themes/logs/static.html.php b/themes/logs/static.html.php new file mode 100644 index 0000000..a4e4e48 --- /dev/null +++ b/themes/logs/static.html.php @@ -0,0 +1,23 @@ + + + + +
        +
        +

        title ?>

        +
        + body; ?> +
        +
        +
        +
        + + « + + + » + +
        +
        \ No newline at end of file diff --git a/themes/readable/404-search.html.php b/themes/readable/404-search.html.php new file mode 100644 index 0000000..8a7946f --- /dev/null +++ b/themes/readable/404-search.html.php @@ -0,0 +1,13 @@ + + + + +
        +
        +

        Search results not found!

        +

        Please search again, or would you like to try our homepage instead?

        +
        + +
        +
        +
        diff --git a/themes/readable/404.html.php b/themes/readable/404.html.php new file mode 100644 index 0000000..d8058e9 --- /dev/null +++ b/themes/readable/404.html.php @@ -0,0 +1,11 @@ + + + + +
        +
        +

        This page doesn't exist!

        +

        Please search to find what you're looking for or visit our homepage instead.

        + +
        +
        \ No newline at end of file diff --git a/themes/readable/css/style.css b/themes/readable/css/style.css new file mode 100644 index 0000000..9d672e8 --- /dev/null +++ b/themes/readable/css/style.css @@ -0,0 +1,1041 @@ +/*------------------------- + Simple reset +--------------------------*/ + +* { + margin: 0; + padding: 0; +} + +body { + font-family: Georgia, sans-serif, Arial; + font-size: 17px; + line-height: 1.6; + color: #343A3F; + padding: 0; + margin: 0; +} + +section, footer, header, aside, nav { + display: block; +} + +img { + border: 0 none; + height: auto; + max-width: 100%; + outline: 0 none; +} + +/*------------------------- + Heading +--------------------------*/ + +h1, h2, h3, h4, h5, h6 { + font-family: 'Open Sans', sans-serif; + line-height: 1.3; + margin: 0.5em 0; +} + +h1 { + font-size: 28px; +} + +h2 { + font-size: 24px; +} + +h3 { + font-size: 18px; +} + +h4 { + font-size: 16px; +} + +h5 { + font-size: 14px; +} + +h6 { + font-size: 12px; +} + +/*------------------------- + Layout +--------------------------*/ + +#outer-wrapper { + margin: 0; + padding: 0; + float: left; + width: 100%; +} + +#inner-wrapper { + padding: 0 10px; +} + +.container { + padding: 0 20px; +} + +#header-wrapper { + background: #546673; + position: relative; + padding: 1em 0; + float: left; + width: 100%; + color: #ffffff; + font-family: Georgia, sans-serif; + font-style: italic; +} + +#content-wrapper { + float: left; + width: 100%; + padding: 3em 0; +} + +#menu, #header, #content, #footer { + width: 800px; + margin: 0 auto; +} + +.admin #content { + width: 980px; + margin: 0 auto; +} + +#header { + text-align: center; +} + +.hide { + display: none; +} + +/*------------------------- + Link +--------------------------*/ + +a, a:visited { + outline: none; + color: #2E9FFF; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +.tab { + width: 100%; + margin: 1.5em 0 0 0; + line-height: 1; + border-bottom: 1px solid #E4E7EE; +} + +.tab ul { + padding:0; + margin:0; +} + +.tab li { + display: inline-block; + margin:0; + padding:0; +} + +.tab a { + background: #E4E7EE; + border-radius: 6px 6px 0px 0; + color: #555555; + text-align: center; + padding: 8px 14px; + display: inline-block; + margin: 0 5px; + font-size: 12px; + font-weight: bold; + font-family: 'Open Sans', sans-serif; +} + +/*------------------------- + Text element +--------------------------*/ + +blockquote:before { + color: #BBBBBB; + content: "''"; + font-size: 3em; + line-height: 0.1em; + margin-right: 0.2em; + vertical-align: -0.4em; +} + +blockquote:after { + color: #BBBBBB; + content: "''"; + font-size: 3em; + line-height: 0.1em; + vertical-align: -0.45em; +} + +blockquote { + font-style: italic; + margin: 1em 0 1em 1em; +} + +blockquote p { + display: inline; +} + +pre { + margin: 1em 0; + overflow: auto; + background: #F1F1FF; + color: #333333; + display: block; + font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif; + font-size: 14px; + padding: 10px; + line-height: 1.3; +} + +code { + color: #333333; + font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif; + font-size: 15px; + padding: 3px 8px; + background: #F1F1FF; +} + +pre code { + color: #333333; + display: block; + font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif; + font-size: 14px; + padding: 0; + line-height: 1.6; +} + +.thumbnail { + float: left; + height: 80px; + width: 80px; + margin: 5px 15px 0 0; + overflow: hidden; + display: block; + background-repeat: no-repeat; + background-position: center; + background-size: cover; +} + +ul, ol { + padding-left: 30px; + margin: 1em 0; +} + +ul li, ol li { + margin: 0.25em 0; +} + +input[type=text], input[type=password] { + padding: 4px 6px; + font-size: 14px; + background-color: #F6F7F9; + border: 1px solid #CFDAE5; +} + +input[type=text]:hover, input[type=password]:hover { + background-color: #F6F7F9; + border: 1px solid #CCCCCC; +} + +input[type=submit] { + padding: 4px 6px; + font-size: 14px; + cursor: pointer; +} + +input.text { + width: 75%; + padding: 5px; + font-size: 14px; + background-color: #F6F7F9; + border: 1px solid #CFDAE5; +} + +input.error, textarea.error { + border: 1px solid red; +} + +textarea { + font-size: 15px; + font-family: Georgia, sans-serif; + line-height: 1.4; + background-color: #F6F7F9; + border: 1px solid #CFDAE5; + padding: 2%; + width: 96%; + min-height: 5em; + overflow: auto; +} + +textarea:hover { + border: 1px solid #CCCCCC; +} + +.error-message { + color: red; + background: #f4f4f4; + padding: 10px 0; + margin-bottom: 2em; +} + +span.required { + color: red; +} + +span.help { + font-size: 12px; + font-style: italic; +} + +.category { + background-color: #f9f9f9; + border: 1px solid #ccc; + border-radius: 4px; + color: #333; + display: block; + font-size: 13px; + margin: 20px 0; + padding: 0 1em; +} + +.tags a:after { + content:", "; +} +.tags a:last-child:after { + content:""; +} + +/*------------------------- + Table +--------------------------*/ + +table { + font-size: 12px; + border: none; + width: 100%; + color: #333333; + border: 1px solid #E3E3E3; + margin: 1em 0; + white-space: pre-wrap; + word-wrap: break-word; +} + +table h2.title { + margin: 5px 0; +} + +th, td { + padding: 5px 10px; + border: none; +} + +th.title { + margin: 5px 0; + font-family: 'Open Sans', sans-serif; + font-size: 16px; + font-weight: normal; +} + +td.title { + font-weight: normal; + background-color: #f6f6f6; + font-family: 'Open Sans', sans-serif; +} + +th { + background-color: #f6f6f6; + border-bottom: 1px solid #E3E3E3; + border-right: 1px solid #E3E3E3; + font-family: 'Open Sans', sans-serif; + font-size: 16px; +} + +td { + background-color: #fafafa; + border: 1px solid #E3E3E3; + border-top: none; + border-left: none; +} + +table.post-list td a { + margin: 0 5px; +} + +/*------------------------- + Menu +--------------------------*/ + +#menu-wrapper { + font-family: 'Open Sans', sans-serif; + color: #7E909D; + padding: 10px 0; + float: left; + width: 100%; +} + +#menu { + font-weight: bold; + font-family: 'Open Sans', sans-serif; + color: #7E909D; + font-size: 14px; +} + +#menu ul { + margin: 0; + padding: 0; +} + +#menu a { + color: #7E909D; +} + +#menu ul li { + float: left; + margin: 0 20px 0 0; + list-style: none; + padding-top: 3px; +} + +#menu ul li.active > a { + text-decoration: underline; +} + +#menu ul li:last-child { + margin: 0; +} + +#menu ul li ul.subnav { + display:none; +} + +/*---------------------------- + Search form +-----------------------------*/ + +#search-form { + position: relative; + float: right; +} + +.error-404 .post #search-form, +.error-404-search .post #search-form { + float: none; +} + +.search-input { + margin: 0; + padding: 4px 15px; + font-size: 14px; + border: 1px solid #0076a3 !important; + background: #FFFFFF !important; + border-top-left-radius: 5px 5px; + border-bottom-left-radius: 5px 5px; + width: 120px; + color: #888888; +} + +.search-button { + margin: 0; + padding: 4px; + font-size: 14px; + outline: none; + cursor: pointer; + text-align: center; + text-decoration: none; + color: #ffffff; + border: solid 1px #546673; + border-right: 0px; + background: #0095cd; + background: -webkit-gradient(linear, left top, left bottom, from(#2E9FFF), to(#2E9CCC)); + background: -moz-linear-gradient(top, #2E9FFF, #2E9CCC); + border-top-right-radius: 5px 5px; + border-bottom-right-radius: 5px 5px; + width: 60px; +} + +.search-button:hover { + text-decoration: none; + background: #007ead; + background: -webkit-gradient(linear, left top, left bottom, from(#0095cc), to(#00678e)); + background: -moz-linear-gradient(top, #0095cc, #00678e); +} + +/* Fixes submit button height problem in Firefox */ +.search-button::-moz-focus-inner { + border: 0; +} + +/*------------------------- + Post +--------------------------*/ + +.post { + border-bottom: 1px solid #EBF2F6; + padding: 1em 0; + float: left; + width: 100%; +} + +.in-post .post { + padding-bottom: 0; +} + +p, ul { + margin: 1em 0; +} + +.breadcrumb { + font-family: 'Open Sans', sans-serif; + font-size: 14px; + font-weight: normal; +} + +.date { + font-family: 'Open Sans', sans-serif; + font-size: 14px; + color: #A7A7A7; + font-weight: normal; + margin: 1em 0; +} + +h1.blog-title, h2.blog-title { + font-style: normal; + font-size: 28px; +} + +h1.title-post a, h2.title-index a { + color: #4f4f4f; + text-decoration: none; +} + +h1.title-post a:hover, h2.title-index a:hover { + color: #2E9FFF; +} + +.in-post .post { + padding-top: 0; + border: none; +} + +.in-page .border { + padding: 0; + margin: 0; + border: 0; +} + +.in-page .post { + padding-top: 0; +} + +.in-front .first, .in-post .post, .in-tag .first, .in-archive .first, .in-search .first, .error-404 .post, .error-404-search .post { + padding-top: 0; +} + +.in-front .first h2.title-index { + margin-top: 0; +} + +.in-profile .bio { + font-size: 14px; + font-style: italic; + border-bottom: 1px solid #EBF2F6; + padding-bottom: 1em; + margin-bottom: 2em; +} + +.post-list { + font-size: 14px; +} + +/*------------------------- + Share box +--------------------------*/ + +.separator { + font-size: 20px; +} + +.share-box { + font-size: 14px; + float: left; +} + +.author-info { + width: 540px; + float: left; +} + +.author-info p { + font-style: italic; +} + +.share { + width: 140px; + margin-right: 1em; + float: right; +} + +.share a { + display: inline-block; + width: 18px; + height: 18px; + margin: 0; + padding: 0 5px; + vertical-align: middle; + -o-transition: all .3s; + -moz-transition: all .3s; + -webkit-transition: all .3s; + -ms-transition: all .3s; + text-indent: -9999em; +} + +.share a.twitter { + background: url(../img/share-twitter.png) left top no-repeat; +} + +.share a.facebook { + background: url(../img/share-facebook.png) left top no-repeat; +} + +.share a.googleplus { + background: url(../img/share-googleplus.png) left top no-repeat; +} + +.share a:hover { + background-position: left -26px; +} + +/*------------------------- + Comments +--------------------------*/ + +.comments { + position: relative; + display: block; + font-size: 16px; + float: left; + width: 100%; +} + +.border { + border-top: 1px solid #DFDFDF; + margin-bottom: 15px; + margin-top: 10px; + padding-bottom: 15px; + width: 100%; + float: left; +} + +.border .fb-comments, .border #disqus_thread { + padding-top: 1.2em; +} + +#disqus_thread { + font-family: Georgia, Times, Cambria, serif; + float: left; + width: 100%; +} + +/*------------------------- + Raleted posts +--------------------------*/ + +.related { + font-size: 14px; + font-family: 'Open Sans', sans-serif; + width: 100%; + float: left; + margin-bottom: 1em; +} + +.related ul { + margin: 0; +} + +/*------------------------- + Pagination + Postnav +--------------------------*/ + +.postnav { + width: 100%; + float: left; + padding-bottom: 1em; + font-family: 'Open Sans', sans-serif; + font-size: 12px; + font-weight: bold; +} + +.postnav a { + background: none repeat scroll 0 0 #E4E7EE; + border-radius: 3px; + color: #555555; + line-height: 1; + text-align: center; +} + +.postnav a:hover { + text-decoration: none; + color: #333333; +} + +.postnav .newer { + float: left; + margin-right: 1em; + margin-bottom: 0.1em; + padding: 10px 15px 10px 25px; +} + +.postnav .older { + float: right; + padding: 10px 25px 10px 15px; +} + +.postnav .pagination-arrow { + display: inline-block; + border-radius: 3px; + color: #555 !important; + text-decoration: none !important; + text-transform: none; + position: relative; +} + +.postnav .pagination-arrow.newer:before, +.postnav .pagination-arrow.older:before { + content: ''; + border: 5px solid #555; + border-color: transparent #555 transparent transparent; + width: 0; + height: 0; + position: absolute; + left: 5px; + top: 12px; +} + +.postnav .pagination-arrow.older:before { + left: auto; + right: 5px; + border-color: transparent transparent transparent #555; +} + +.pager { + width: 100%; + float: left; + padding: 30px 0 1em 0; + font-family: 'Open Sans', sans-serif; + font-size: 12px; + font-weight: bold; +} + +.pager a { + background: none repeat scroll 0 0 #E4E7EE; + border-radius: 3px; + color: #555555; + line-height: 1; + padding: 10px 20px; + text-align: center; +} + +.pager .newer { + float: left; +} + +.pager .older { + float: right; +} + +.pager a:hover { + text-decoration: none; + color: #333333; +} + +/*------------------------- + Footer +--------------------------*/ + +#footer-wrapper { + background: #546673; + position: relative; + padding: 20px 0; + float: left; + width: 100%; + color: #ABB6C5; + font-family: 'Open Sans', sans-serif; +} + +#footer { + font-size: 14px; + text-align: center; +} + +#footer a { + color: #CBD2DC; + font-weight: bold; +} + +#footer ul { + margin: 0.5em 0; +} + +.footer-column { + padding-bottom: 1.5em; + float: left; + width: 100%; +} + +.column { + float: left; + width: 25%; +} + +.recent ul { + padding-left: 20px; + width: 85%; +} + +.archive .toggle { + font-family: Georgia, Arial, sans-serif; + font-size: 16px; +} + +.social { + float: right; +} + +.social .inner { + padding-left: 30px; +} + +.tagcloud ul { + padding: 0; + margin: 0; +} + +.tagcloud ul li { + float: left; + list-style: none; + margin-right: 10px; +} + +.copyright { + font-size: 12px; + float: left; + width: 100%; + padding-top: 1em; +} + +.copyright p { + margin: 0.5em 0; + line-height: 1.2; +} + +/*---------------------------- + The 404 page +-----------------------------*/ + +.message { + padding: 50px 20px 20px 20px; +} + +.message h1 { + font-size: 36px; + margin-bottom: 18px; +} + +.message p { + font-size: 13px; +} + +.center { + text-align: center; +} + +.search-404 { + position: relative; + float: left; + width: 100%; + margin-bottom: 1.2em; +} + +.search-404 #search-form { + float: none; +} + +/*---------------------------- + Media queries +-----------------------------*/ + +@media all and (max-width: 700px) { + + #menu, #header, #content, #footer { + margin: 0 auto; + width: 100%; + } + + .admin #menu, .admin #header, .admin #content, .admin #footer { + margin: 0 auto; + width: 100%; + } + + #menu-wrapper { + text-align: center; + } + + #menu ul li { + float: none; + display: inline-block; + } + + #search-form { + float: none; + padding: 10px 0; + } + + .author-info { + width: 100%; + float: left; + } + + .share { + width: 100%; + margin-right: 0; + padding-bottom: 1em; + } + + .column { + float: left; + width: 100%; + } + + .postnav .newer { + float: left; + margin-bottom: 1em; + } + + .postnav .older { + float: left; + } + + .social .inner { + padding-left: 0px; + } + + pre { + white-space: pre-wrap; + word-wrap: break-word; + } + +} + +/*---------------------------- + Video +-----------------------------*/ + +.video-wrapper { + margin: 1em 0; +} + +@media all and (min-width: 420px) { + + .video-wrapper { + padding-top: 315px !important; + position: relative; + width: 100%; + max-width: 420px !important; + max-height: 315px !important; + } + + .video-wrapper iframe, .video-wrapper object, .video-wrapper embed { + height: 100%; + left: 0; + position: absolute; + top: 0; + max-width: 420px !important; + width: 100%; + max-height: 315px !important; + } + +} + +@media all and (max-width: 420px) { + + .video-wrapper { + position: relative; + padding-bottom: 56.25%; + padding-top: 30px; + height: 0; + overflow: hidden; + } + + .video-wrapper iframe, .video-wrapper object, .video-wrapper embed { + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; + } + +} + +@media all and (max-width: 560px) { + + .featured-video, .featured-audio { + position: relative; + padding-bottom: 56.25%; + padding-top: 30px; + height: 0; + overflow: hidden; + } + + .featured-video iframe, .featured-video object, .featured-video embed, .featured-audio iframe, .featured-audio object, .featured-audio embed { + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; + } + +} + +/*---------------------------- + Archive +-----------------------------*/ + +ul.archivegroup { + padding: 0; + margin: 0; +} + +.archivegroup .expanded ul { + display: block; +} + +.archivegroup .collapsed ul { + display: none; +} + +.archivegroup li.expanded, .archivegroup li.collapsed { + list-style: none; +} + +#more { + display:block; + height:1rem; + margin-top:-1rem; + box-shadow: none; + border: none; +} \ No newline at end of file diff --git a/themes/readable/img/facebook.png b/themes/readable/img/facebook.png new file mode 100644 index 0000000..f265dd4 Binary files /dev/null and b/themes/readable/img/facebook.png differ diff --git a/themes/readable/img/googleplus.png b/themes/readable/img/googleplus.png new file mode 100644 index 0000000..ef052a4 Binary files /dev/null and b/themes/readable/img/googleplus.png differ diff --git a/themes/readable/img/rss.png b/themes/readable/img/rss.png new file mode 100644 index 0000000..48c9ccc Binary files /dev/null and b/themes/readable/img/rss.png differ diff --git a/themes/readable/img/share-facebook.png b/themes/readable/img/share-facebook.png new file mode 100644 index 0000000..5541821 Binary files /dev/null and b/themes/readable/img/share-facebook.png differ diff --git a/themes/readable/img/share-googleplus.png b/themes/readable/img/share-googleplus.png new file mode 100644 index 0000000..fb077cd Binary files /dev/null and b/themes/readable/img/share-googleplus.png differ diff --git a/themes/readable/img/share-twitter.png b/themes/readable/img/share-twitter.png new file mode 100644 index 0000000..26f102b Binary files /dev/null and b/themes/readable/img/share-twitter.png differ diff --git a/themes/readable/img/tumblr.png b/themes/readable/img/tumblr.png new file mode 100644 index 0000000..2151398 Binary files /dev/null and b/themes/readable/img/tumblr.png differ diff --git a/themes/readable/img/twitter.png b/themes/readable/img/twitter.png new file mode 100644 index 0000000..7bbb939 Binary files /dev/null and b/themes/readable/img/twitter.png differ diff --git a/themes/readable/layout.html.php b/themes/readable/layout.html.php new file mode 100644 index 0000000..01e2794 --- /dev/null +++ b/themes/readable/layout.html.php @@ -0,0 +1,63 @@ + + + + + + <?php echo $title;?> + + + + + + + + +
        + + +
        + + +
        + +
        +
        + +
        +
        +
        +
        +
        + +
        +
        +
        + +
        + + + \ No newline at end of file diff --git a/themes/readable/main.html.php b/themes/readable/main.html.php new file mode 100644 index 0000000..25a61e4 --- /dev/null +++ b/themes/readable/main.html.php @@ -0,0 +1,72 @@ + + + + + +
        +

        title;?>

        +
        + body; ?> +
        +
        + + + +
        +
        + link)) { ?> +

        title ?> →

        + +

        title ?>

        + +
        + - + category ?> + + - + + - + url ?>> + + Edit'; } ?> +
        + image)) { ?> + + + video)) { ?> + + + audio)) { ?> + + + quote)) { ?> + + +
        + body, $p->url) ?> + [...] +
        +
        +
        + + +
        + + + + + + +
        + + + + \ No newline at end of file diff --git a/themes/readable/no-posts.html.php b/themes/readable/no-posts.html.php new file mode 100644 index 0000000..aec4646 --- /dev/null +++ b/themes/readable/no-posts.html.php @@ -0,0 +1,2 @@ + +

        !

        \ No newline at end of file diff --git a/themes/readable/post.html.php b/themes/readable/post.html.php new file mode 100644 index 0000000..e981cbe --- /dev/null +++ b/themes/readable/post.html.php @@ -0,0 +1,80 @@ + + + + + +
        +
        + + link)) { ?> +

        title ?> →

        + +

        title ?>

        + +
        + + - + category ?> + - + Permalink +
        + image)) { ?> + + + video)) { ?> + + + audio)) { ?> + + + quote)) { ?> + + +
        + body; ?> +
        +
        : tag;?>
        +
        +
        + + +
        + +
        + + +
        + +
        +
        + + + + + + +
        + + title, $p->url) ?> + +
        \ No newline at end of file diff --git a/themes/readable/profile.html.php b/themes/readable/profile.html.php new file mode 100644 index 0000000..7fac730 --- /dev/null +++ b/themes/readable/profile.html.php @@ -0,0 +1,33 @@ + + + + +
        +
        +

        name ?>

        +
        about ?>
        +
        +
        +

        + +
          + +
        • + title ?> + date) ?> - category; ?> +
        • + +
        + +
        + + + + + + +
        + + \ No newline at end of file diff --git a/themes/readable/static.html.php b/themes/readable/static.html.php new file mode 100644 index 0000000..1472ae6 --- /dev/null +++ b/themes/readable/static.html.php @@ -0,0 +1,21 @@ + + + + + +
        +
        +

        title ?>

        +
        + body; ?> +
        +
        +
        + + + + + + +
        +
        \ No newline at end of file diff --git a/themes/readme.txt b/themes/readme.txt new file mode 100644 index 0000000..de6f282 --- /dev/null +++ b/themes/readme.txt @@ -0,0 +1 @@ +Place your theme folder here. \ No newline at end of file diff --git a/themes/tailwind/404-search.html.php b/themes/tailwind/404-search.html.php new file mode 100644 index 0000000..abefaec --- /dev/null +++ b/themes/tailwind/404-search.html.php @@ -0,0 +1,19 @@ + +
        +
        +

        +
        +
        +
        +

        +
        + +
        + + +
        +
        +
        \ No newline at end of file diff --git a/themes/tailwind/404.html.php b/themes/tailwind/404.html.php new file mode 100644 index 0000000..d30c6c1 --- /dev/null +++ b/themes/tailwind/404.html.php @@ -0,0 +1,19 @@ + +
        +
        +

        +
        +
        +
        +

        +
        + +
        + + +
        +
        +
        \ No newline at end of file diff --git a/themes/tailwind/LICENSE.txt b/themes/tailwind/LICENSE.txt new file mode 100644 index 0000000..215f501 --- /dev/null +++ b/themes/tailwind/LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 Timothy Lin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/themes/tailwind/README.md b/themes/tailwind/README.md new file mode 100644 index 0000000..e4b869f --- /dev/null +++ b/themes/tailwind/README.md @@ -0,0 +1,12 @@ +# HTMLy Theme Tailwind + +Tailwind CSS blogging starter template ported to HTMLy. + +## Installations + + - Upload and extract the zip file into themes directory. + - Activate it from HTMLy panel. + +## License + +See the LICENSE.txt diff --git a/themes/tailwind/css/style.css b/themes/tailwind/css/style.css new file mode 100644 index 0000000..7103154 --- /dev/null +++ b/themes/tailwind/css/style.css @@ -0,0 +1,144 @@ +.pr-6 { + padding-right:1.5rem +} + +.anchor svg { + display:inline; +} + +.dark .toc-wrapper { + background-color: var(--tw-prose-pre-bg)!important; + border-color: rgb(55 65 81/var(--tw-divide-opacity))!important; +} + +.light .toc-wrapper { + border-color: rgb(229 231 235/var(--tw-divide-opacity))!important; +} + +.toc-wrapper a, .related-posts a { + text-decoration: none; +} + +.toc-link a { + display:none; +} + +.toc-link:hover a{ + display:inline-block; +} + +.tags a { + margin-right: .75rem; +} + +.category a { + margin-right: .1rem; +} + +.category { + line-height:3.2rem; +} + +.read-more { + text-decoration:inherit; +} + +.nav-top li { + display:inline-block; + margin-left: 1.5rem; + font-weight: 500; +} + +.nav-mobile li{ + outline-width: 0; + outline-style: solid; + letter-spacing: .1em; + font-weight: 700; + font-size: 1.5rem; + line-height: 2rem; + padding-right: 1rem; + padding-top: .5rem; + padding-bottom: .5rem; + margin-bottom: 1rem; +} + +.menu-mobile { + display:none; +} + +@media (max-width: 640px) { + .nav-top { + display:none; + } + .is-menu-open .menu-mobile { + display:block!important; + } +} + +.search-form { + display:none; +} + +.is-search-open .search-form { + display: flex; +} + +.tags a:hover { + color:rgb(190 24 93); +} + + +.dark .tags a:hover { + color:rgb(244 114 182); +} + +.thumbnail { + position:relative; + display:block; +} + +.nav li > ul { + display:none; +} + +.footnotes { + margin-top:0; + border:none; +} + +.footnotes ol { + margin-bottom:0; + padding-top: 1.5em; +} + +.footnotes > hr { + margin:0; +} + +.thumb-icon { + background: rgba(0,0,0,0.7); + color: #fff; + text-align: center; + display: block; + width: 32px; + height: 32px; + position: absolute; + bottom: 50%; + left: 50%; + margin-left: -16px; + margin-bottom: -16px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-transition: all 0.7s ease; + -webkit-transition: all 0.7s ease; + transition: all 0.7s ease; +} + +.thumb-icon svg { + margin: 1px 0 0 2px; +} + +.thumbnail:hover .thumb-icon { + background: #fff; + color: #333; +} \ No newline at end of file diff --git a/themes/tailwind/css/tailwind.css b/themes/tailwind/css/tailwind.css new file mode 100644 index 0000000..8d316c4 --- /dev/null +++ b/themes/tailwind/css/tailwind.css @@ -0,0 +1,2596 @@ +*, +:after, +:before { + --tw-border-spacing-x:0; + --tw-border-spacing-y:0; + --tw-translate-x:0; + --tw-translate-y:0; + --tw-rotate:0; + --tw-skew-x:0; + --tw-skew-y:0; + --tw-scale-x:1; + --tw-scale-y:1; + --tw-pan-x: ; + --tw-pan-y: ; + --tw-pinch-zoom: ; + --tw-scroll-snap-strictness:proximity; + --tw-gradient-from-position: ; + --tw-gradient-via-position: ; + --tw-gradient-to-position: ; + --tw-ordinal: ; + --tw-slashed-zero: ; + --tw-numeric-figure: ; + --tw-numeric-spacing: ; + --tw-numeric-fraction: ; + --tw-ring-inset: ; + --tw-ring-offset-width:0px; + --tw-ring-offset-color:#fff; + --tw-ring-color:rgba(59,130,246,.5); + --tw-ring-offset-shadow:0 0 #0000; + --tw-ring-shadow:0 0 #0000; + --tw-shadow:0 0 #0000; + --tw-shadow-colored:0 0 #0000; + --tw-blur: ; + --tw-brightness: ; + --tw-contrast: ; + --tw-grayscale: ; + --tw-hue-rotate: ; + --tw-invert: ; + --tw-saturate: ; + --tw-sepia: ; + --tw-drop-shadow: ; + --tw-backdrop-blur: ; + --tw-backdrop-brightness: ; + --tw-backdrop-contrast: ; + --tw-backdrop-grayscale: ; + --tw-backdrop-hue-rotate: ; + --tw-backdrop-invert: ; + --tw-backdrop-opacity: ; + --tw-backdrop-saturate: ; + --tw-backdrop-sepia: ; + --tw-contain-size: ; + --tw-contain-layout: ; + --tw-contain-paint: ; + --tw-contain-style: +} +::backdrop { + --tw-border-spacing-x:0; + --tw-border-spacing-y:0; + --tw-translate-x:0; + --tw-translate-y:0; + --tw-rotate:0; + --tw-skew-x:0; + --tw-skew-y:0; + --tw-scale-x:1; + --tw-scale-y:1; + --tw-pan-x: ; + --tw-pan-y: ; + --tw-pinch-zoom: ; + --tw-scroll-snap-strictness:proximity; + --tw-gradient-from-position: ; + --tw-gradient-via-position: ; + --tw-gradient-to-position: ; + --tw-ordinal: ; + --tw-slashed-zero: ; + --tw-numeric-figure: ; + --tw-numeric-spacing: ; + --tw-numeric-fraction: ; + --tw-ring-inset: ; + --tw-ring-offset-width:0px; + --tw-ring-offset-color:#fff; + --tw-ring-color:rgba(59,130,246,.5); + --tw-ring-offset-shadow:0 0 #0000; + --tw-ring-shadow:0 0 #0000; + --tw-shadow:0 0 #0000; + --tw-shadow-colored:0 0 #0000; + --tw-blur: ; + --tw-brightness: ; + --tw-contrast: ; + --tw-grayscale: ; + --tw-hue-rotate: ; + --tw-invert: ; + --tw-saturate: ; + --tw-sepia: ; + --tw-drop-shadow: ; + --tw-backdrop-blur: ; + --tw-backdrop-brightness: ; + --tw-backdrop-contrast: ; + --tw-backdrop-grayscale: ; + --tw-backdrop-hue-rotate: ; + --tw-backdrop-invert: ; + --tw-backdrop-opacity: ; + --tw-backdrop-saturate: ; + --tw-backdrop-sepia: ; + --tw-contain-size: ; + --tw-contain-layout: ; + --tw-contain-paint: ; + --tw-contain-style: +} +/* +! tailwindcss v3.4.14 | MIT License | https://tailwindcss.com +*/*, +:after, +:before { + box-sizing:border-box; + border:0 solid #e5e7eb +} +:after, +:before { + --tw-content:"" +} +:host, +html { + line-height:1.5; + -webkit-text-size-adjust:100%; + -moz-tab-size:4; + -o-tab-size:4; + tab-size:4; + font-family:var(--font-space-grotesk),ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; + font-feature-settings:normal; + font-variation-settings:normal; + -webkit-tap-highlight-color:transparent +} +body { + margin:0; + line-height:inherit +} +hr { + height:0; + color:inherit; + border-top-width:1px +} +abbr:where([title]) { + -webkit-text-decoration:underline dotted; + text-decoration:underline dotted +} +h1, +h2, +h3, +h4, +h5, +h6 { + font-size:inherit; + font-weight:inherit +} +a { + color:inherit; + text-decoration:inherit +} +b, +strong { + font-weight:bolder +} +code, +kbd, +pre, +samp { + font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace; + font-feature-settings:normal; + font-variation-settings:normal; + font-size:1em +} +small { + font-size:80% +} +sub, +sup { + font-size:75%; + line-height:0; + position:relative; + vertical-align:baseline +} +sub { + bottom:-.25em +} +sup { + top:-.5em +} +table { + text-indent:0; + border-color:inherit; + border-collapse:collapse +} +button, +input, +optgroup, +select, +textarea { + font-family:inherit; + font-feature-settings:inherit; + font-variation-settings:inherit; + font-size:100%; + font-weight:inherit; + line-height:inherit; + letter-spacing:inherit; + color:inherit; + margin:0; + padding:0 +} +button, +select { + text-transform:none +} +button, +input:where([type=button]), +input:where([type=reset]), +input:where([type=submit]) { + -webkit-appearance:button; + background-color:transparent; + background-image:none +} +:-moz-focusring { + outline:auto +} +:-moz-ui-invalid { + box-shadow:none +} +progress { + vertical-align:baseline +} +::-webkit-inner-spin-button, +::-webkit-outer-spin-button { + height:auto +} +[type=search] { + -webkit-appearance:textfield; + outline-offset:-2px +} +::-webkit-search-decoration { + -webkit-appearance:none +} +::-webkit-file-upload-button { + -webkit-appearance:button; + font:inherit +} +summary { + display:list-item +} +blockquote, +dd, +dl, +figure, +h1, +h2, +h3, +h4, +h5, +h6, +hr, +p, +pre { + margin:0 +} +fieldset { + margin:0 +} +fieldset, +legend { + padding:0 +} +menu, +ol, +ul { + list-style:none; + margin:0; + padding:0 +} +dialog { + padding:0 +} +textarea { + resize:vertical +} +input::-moz-placeholder, +textarea::-moz-placeholder { + color:#9ca3af +} +input::placeholder, +textarea::placeholder { + color:#9ca3af +} +[role=button], +button { + cursor:pointer +} +:disabled { + cursor:default +} +audio, +canvas, +embed, +iframe, +img, +object, +svg, +video { + display:block; + vertical-align:middle +} +img, +video { + max-width:100%; + height:auto +} +[hidden]:where(:not([hidden=until-found])) { + display:none +} +[multiple], +[type=date], +[type=datetime-local], +[type=email], +[type=month], +[type=number], +[type=password], +[type=search], +[type=tel], +[type=text], +[type=time], +[type=url], +[type=week], +input:where(:not([type])), +select, +textarea { + -webkit-appearance:none; + -moz-appearance:none; + appearance:none; + background-color:#fff; + border-color:#6b7280; + border-width:1px; + border-radius:0; + padding:.5rem .75rem; + font-size:1rem; + line-height:1.5rem; + --tw-shadow:0 0 #0000 +} +[multiple]:focus, +[type=date]:focus, +[type=datetime-local]:focus, +[type=email]:focus, +[type=month]:focus, +[type=number]:focus, +[type=password]:focus, +[type=search]:focus, +[type=tel]:focus, +[type=text]:focus, +[type=time]:focus, +[type=url]:focus, +[type=week]:focus, +input:where(:not([type])):focus, +select:focus, +textarea:focus { + outline:2px solid transparent; + outline-offset:2px; + --tw-ring-inset:var(--tw-empty,/*!*/ /*!*/); + --tw-ring-offset-width:0px; + --tw-ring-offset-color:#fff; + --tw-ring-color:#2563eb; + --tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); + border-color:#2563eb +} +input::-moz-placeholder, +textarea::-moz-placeholder { + color:#6b7280; + opacity:1 +} +input::placeholder, +textarea::placeholder { + color:#6b7280; + opacity:1 +} +::-webkit-datetime-edit-fields-wrapper { + padding:0 +} +::-webkit-date-and-time-value { + min-height:1.5em; + text-align:inherit +} +::-webkit-datetime-edit { + display:inline-flex +} +::-webkit-datetime-edit, +::-webkit-datetime-edit-day-field, +::-webkit-datetime-edit-hour-field, +::-webkit-datetime-edit-meridiem-field, +::-webkit-datetime-edit-millisecond-field, +::-webkit-datetime-edit-minute-field, +::-webkit-datetime-edit-month-field, +::-webkit-datetime-edit-second-field, +::-webkit-datetime-edit-year-field { + padding-top:0; + padding-bottom:0 +} +select { + background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e"); + background-position:right .5rem center; + background-repeat:no-repeat; + background-size:1.5em 1.5em; + padding-right:2.5rem; + -webkit-print-color-adjust:exact; + print-color-adjust:exact +} +[multiple], +[size]:where(select:not([size="1"])) { + background-image:none; + background-position:0 0; + background-repeat:unset; + background-size:initial; + padding-right:.75rem; + -webkit-print-color-adjust:unset; + print-color-adjust:unset +} +[type=checkbox], +[type=radio] { + -webkit-appearance:none; + -moz-appearance:none; + appearance:none; + padding:0; + -webkit-print-color-adjust:exact; + print-color-adjust:exact; + display:inline-block; + vertical-align:middle; + background-origin:border-box; + -webkit-user-select:none; + -moz-user-select:none; + user-select:none; + flex-shrink:0; + height:1rem; + width:1rem; + color:#2563eb; + background-color:#fff; + border-color:#6b7280; + border-width:1px; + --tw-shadow:0 0 #0000 +} +[type=checkbox] { + border-radius:0 +} +[type=radio] { + border-radius:100% +} +[type=checkbox]:focus, +[type=radio]:focus { + outline:2px solid transparent; + outline-offset:2px; + --tw-ring-inset:var(--tw-empty,/*!*/ /*!*/); + --tw-ring-offset-width:2px; + --tw-ring-offset-color:#fff; + --tw-ring-color:#2563eb; + --tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow) +} +[type=checkbox]:checked, +[type=radio]:checked { + border-color:transparent; + background-color:currentColor; + background-size:100% 100%; + background-position:50%; + background-repeat:no-repeat +} +[type=checkbox]:checked { + background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e") +} +@media (forced-colors:active) { + [type=checkbox]:checked { + -webkit-appearance:auto; + -moz-appearance:auto; + appearance:auto + } +} +[type=radio]:checked { + background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e") +} +@media (forced-colors:active) { + [type=radio]:checked { + -webkit-appearance:auto; + -moz-appearance:auto; + appearance:auto + } +} +[type=checkbox]:checked:focus, +[type=checkbox]:checked:hover, +[type=radio]:checked:focus, +[type=radio]:checked:hover { + border-color:transparent; + background-color:currentColor +} +[type=checkbox]:indeterminate { + background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e"); + border-color:transparent; + background-color:currentColor; + background-size:100% 100%; + background-position:50%; + background-repeat:no-repeat +} +@media (forced-colors:active) { + [type=checkbox]:indeterminate { + -webkit-appearance:auto; + -moz-appearance:auto; + appearance:auto + } +} +[type=checkbox]:indeterminate:focus, +[type=checkbox]:indeterminate:hover { + border-color:transparent; + background-color:currentColor +} +[type=file] { + background:unset; + border-color:inherit; + border-width:0; + border-radius:0; + padding:0; + font-size:unset; + line-height:inherit +} +[type=file]:focus { + outline:1px solid ButtonText; + outline:1px auto -webkit-focus-ring-color +} +.container { + width:100% +} +@media (min-width:640px) { + .container { + max-width:640px + } +} +@media (min-width:768px) { + .container { + max-width:768px + } +} +@media (min-width:1024px) { + .container { + max-width:1024px + } +} +@media (min-width:1280px) { + .container { + max-width:1280px + } +} +@media (min-width:1536px) { + .container { + max-width:1536px + } +} +.prose { + color:var(--tw-prose-body); + max-width:65ch +} +.prose :where(p):not(:where([class~=not-prose], +[class~=not-prose] *)) { + margin-top:1.25em; + margin-bottom:1.25em +} +.prose :where([class~=lead]):not(:where([class~=not-prose], +[class~=not-prose] *)) { + color:var(--tw-prose-lead); + font-size:1.25em; + line-height:1.6; + margin-top:1.2em; + margin-bottom:1.2em +} +.prose :where(a):not(:where([class~=not-prose], +[class~=not-prose] *)) { + color:#ec4899; + text-decoration:underline; + font-weight:500 +} +.prose :where(a):not(:where([class~=not-prose], +[class~=not-prose] *)):hover { + color:#db2777 +} +.prose :where(a):not(:where([class~=not-prose], +[class~=not-prose] *)) code { + color:#f472b6 +} +.prose :where(strong):not(:where([class~=not-prose], +[class~=not-prose] *)) { + color:var(--tw-prose-bold); + font-weight:600 +} +.prose :where(a strong):not(:where([class~=not-prose], +[class~=not-prose] *)) { + color:inherit +} +.prose :where(blockquote strong):not(:where([class~=not-prose], +[class~=not-prose] *)) { + color:inherit +} +.prose :where(thead th strong):not(:where([class~=not-prose], +[class~=not-prose] *)) { + color:inherit +} +.prose :where(ol):not(:where([class~=not-prose], +[class~=not-prose] *)) { + list-style-type:decimal; + margin-top:1.25em; + margin-bottom:1.25em; + padding-inline-start:1.625em +} +.prose :where(ol[type=A]):not(:where([class~=not-prose], +[class~=not-prose] *)) { + list-style-type:upper-alpha +} +.prose :where(ol[type=a]):not(:where([class~=not-prose], +[class~=not-prose] *)) { + list-style-type:lower-alpha +} +.prose :where(ol[type=A s]):not(:where([class~=not-prose], +[class~=not-prose] *)) { + list-style-type:upper-alpha +} +.prose :where(ol[type=a s]):not(:where([class~=not-prose], +[class~=not-prose] *)) { + list-style-type:lower-alpha +} +.prose :where(ol[type=I]):not(:where([class~=not-prose], +[class~=not-prose] *)) { + list-style-type:upper-roman +} +.prose :where(ol[type=i]):not(:where([class~=not-prose], +[class~=not-prose] *)) { + list-style-type:lower-roman +} +.prose :where(ol[type=I s]):not(:where([class~=not-prose], +[class~=not-prose] *)) { + list-style-type:upper-roman +} +.prose :where(ol[type=i s]):not(:where([class~=not-prose], +[class~=not-prose] *)) { + list-style-type:lower-roman +} +.prose :where(ol[type="1"]):not(:where([class~=not-prose], +[class~=not-prose] *)) { + list-style-type:decimal +} +.prose :where(ul):not(:where([class~=not-prose], +[class~=not-prose] *)) { + list-style-type:disc; + margin-top:1.25em; + margin-bottom:1.25em; + padding-inline-start:1.625em +} +.prose :where(ol>li):not(:where([class~=not-prose], +[class~=not-prose] *))::marker { + font-weight:400; + color:var(--tw-prose-counters) +} +.prose :where(ul>li):not(:where([class~=not-prose], +[class~=not-prose] *))::marker { + color:var(--tw-prose-bullets) +} +.prose :where(dt):not(:where([class~=not-prose], +[class~=not-prose] *)) { + color:var(--tw-prose-headings); + font-weight:600; + margin-top:1.25em +} +.prose :where(hr):not(:where([class~=not-prose], +[class~=not-prose] *)) { + border-color:var(--tw-prose-hr); + border-top-width:1px; + margin-top:3em; + margin-bottom:3em +} +.prose :where(blockquote):not(:where([class~=not-prose], +[class~=not-prose] *)) { + font-weight:500; + font-style:italic; + color:var(--tw-prose-quotes); + border-inline-start-width:.25rem; + border-inline-start-color:var(--tw-prose-quote-borders); + quotes:"\201C""\201D""\2018""\2019"; + margin-top:1.6em; + margin-bottom:1.6em; + padding-inline-start:1em +} +.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose], +[class~=not-prose] *)):before { + content:open-quote +} +.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose], +[class~=not-prose] *)):after { + content:close-quote +} +.prose :where(h1):not(:where([class~=not-prose], +[class~=not-prose] *)) { + color:var(--tw-prose-headings); + font-weight:800; + font-size:2.25em; + margin-top:0; + margin-bottom:.8888889em; + line-height:1.1111111 +} +.prose :where(h1 strong):not(:where([class~=not-prose], +[class~=not-prose] *)) { + font-weight:900; + color:inherit +} +.prose :where(h2):not(:where([class~=not-prose], +[class~=not-prose] *)) { + color:var(--tw-prose-headings); + font-weight:700; + font-size:1.5em; + margin-top:2em; + margin-bottom:1em; + line-height:1.3333333 +} +.prose :where(h2 strong):not(:where([class~=not-prose], +[class~=not-prose] *)) { + font-weight:800; + color:inherit +} +.prose :where(h3):not(:where([class~=not-prose], +[class~=not-prose] *)) { + color:var(--tw-prose-headings); + font-weight:600; + font-size:1.25em; + margin-top:1.6em; + margin-bottom:.6em; + line-height:1.6 +} +.prose :where(h3 strong):not(:where([class~=not-prose], +[class~=not-prose] *)) { + font-weight:700; + color:inherit +} +.prose :where(h4):not(:where([class~=not-prose], +[class~=not-prose] *)) { + color:var(--tw-prose-headings); + font-weight:600; + margin-top:1.5em; + margin-bottom:.5em; + line-height:1.5 +} +.prose :where(h4 strong):not(:where([class~=not-prose], +[class~=not-prose] *)) { + font-weight:700; + color:inherit +} +.prose :where(img):not(:where([class~=not-prose], +[class~=not-prose] *)) { + margin-top:2em; + margin-bottom:2em +} +.prose :where(picture):not(:where([class~=not-prose], +[class~=not-prose] *)) { + display:block; + margin-top:2em; + margin-bottom:2em +} +.prose :where(video):not(:where([class~=not-prose], +[class~=not-prose] *)) { + margin-top:2em; + margin-bottom:2em +} +.prose :where(kbd):not(:where([class~=not-prose], +[class~=not-prose] *)) { + font-weight:500; + font-family:inherit; + color:var(--tw-prose-kbd); + box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows)/10%),0 3px 0 rgb(var(--tw-prose-kbd-shadows)/10%); + font-size:.875em; + border-radius:.3125rem; + padding-top:.1875em; + padding-inline-end:.375em; + padding-bottom:.1875em; + padding-inline-start:.375em +} +.prose :where(code):not(:where([class~=not-prose], +[class~=not-prose] *)) { + color:#6366f1; + font-weight:600; + font-size:.875em +} +.prose :where(code):not(:where([class~=not-prose], +[class~=not-prose] *)):before { + content:"`" +} +.prose :where(code):not(:where([class~=not-prose], +[class~=not-prose] *)):after { + content:"`" +} +.prose :where(a code):not(:where([class~=not-prose], +[class~=not-prose] *)) { + color:inherit +} +.prose :where(h1 code):not(:where([class~=not-prose], +[class~=not-prose] *)) { + color:inherit +} +.prose :where(h2 code):not(:where([class~=not-prose], +[class~=not-prose] *)) { + color:inherit; + font-size:.875em +} +.prose :where(h3 code):not(:where([class~=not-prose], +[class~=not-prose] *)) { + color:inherit; + font-size:.9em +} +.prose :where(h4 code):not(:where([class~=not-prose], +[class~=not-prose] *)) { + color:inherit +} +.prose :where(blockquote code):not(:where([class~=not-prose], +[class~=not-prose] *)) { + color:inherit +} +.prose :where(thead th code):not(:where([class~=not-prose], +[class~=not-prose] *)) { + color:inherit +} +.prose :where(pre):not(:where([class~=not-prose], +[class~=not-prose] *)) { + color:var(--tw-prose-pre-code); + background-color:var(--tw-prose-pre-bg); + overflow-x:auto; + font-weight:400; + font-size:.875em; + line-height:1.7142857; + margin-top:1.7142857em; + margin-bottom:1.7142857em; + border-radius:.375rem; + padding-top:.8571429em; + padding-inline-end:1.1428571em; + padding-bottom:.8571429em; + padding-inline-start:1.1428571em +} +.prose :where(pre code):not(:where([class~=not-prose], +[class~=not-prose] *)) { + background-color:transparent; + border-width:0; + border-radius:0; + padding:0; + font-weight:inherit; + color:inherit; + font-size:inherit; + font-family:inherit; + line-height:inherit +} +.prose :where(pre code):not(:where([class~=not-prose], +[class~=not-prose] *)):before { + content:none +} +.prose :where(pre code):not(:where([class~=not-prose], +[class~=not-prose] *)):after { + content:none +} +.prose :where(table):not(:where([class~=not-prose], +[class~=not-prose] *)) { + width:100%; + table-layout:auto; + margin-top:2em; + margin-bottom:2em; + font-size:.875em; + line-height:1.7142857 +} +.prose :where(thead):not(:where([class~=not-prose], +[class~=not-prose] *)) { + border-bottom-width:1px; + border-bottom-color:var(--tw-prose-th-borders) +} +.prose :where(thead th):not(:where([class~=not-prose], +[class~=not-prose] *)) { + color:var(--tw-prose-headings); + font-weight:600; + vertical-align:bottom; + padding-inline-end:.5714286em; + padding-bottom:.5714286em; + padding-inline-start:.5714286em +} +.prose :where(tbody tr):not(:where([class~=not-prose], +[class~=not-prose] *)) { + border-bottom-width:1px; + border-bottom-color:var(--tw-prose-td-borders) +} +.prose :where(tbody tr:last-child):not(:where([class~=not-prose], +[class~=not-prose] *)) { + border-bottom-width:0 +} +.prose :where(tbody td):not(:where([class~=not-prose], +[class~=not-prose] *)) { + vertical-align:baseline +} +.prose :where(tfoot):not(:where([class~=not-prose], +[class~=not-prose] *)) { + border-top-width:1px; + border-top-color:var(--tw-prose-th-borders) +} +.prose :where(tfoot td):not(:where([class~=not-prose], +[class~=not-prose] *)) { + vertical-align:top +} +.prose :where(th, +td):not(:where([class~=not-prose], +[class~=not-prose] *)) { + text-align:start +} +.prose :where(figure>*):not(:where([class~=not-prose], +[class~=not-prose] *)) { + margin-top:0; + margin-bottom:0 +} +.prose :where(figcaption):not(:where([class~=not-prose], +[class~=not-prose] *)) { + color:var(--tw-prose-captions); + font-size:.875em; + line-height:1.4285714; + margin-top:.8571429em +} +.prose { + --tw-prose-body:#374151; + --tw-prose-headings:#111827; + --tw-prose-lead:#4b5563; + --tw-prose-links:#111827; + --tw-prose-bold:#111827; + --tw-prose-counters:#6b7280; + --tw-prose-bullets:#d1d5db; + --tw-prose-hr:#e5e7eb; + --tw-prose-quotes:#111827; + --tw-prose-quote-borders:#e5e7eb; + --tw-prose-captions:#6b7280; + --tw-prose-kbd:#111827; + --tw-prose-kbd-shadows:17 24 39; + --tw-prose-code:#111827; + --tw-prose-pre-code:#e5e7eb; + --tw-prose-pre-bg:#1f2937; + --tw-prose-th-borders:#d1d5db; + --tw-prose-td-borders:#e5e7eb; + --tw-prose-invert-body:#d1d5db; + --tw-prose-invert-headings:#fff; + --tw-prose-invert-lead:#9ca3af; + --tw-prose-invert-links:#fff; + --tw-prose-invert-bold:#fff; + --tw-prose-invert-counters:#9ca3af; + --tw-prose-invert-bullets:#4b5563; + --tw-prose-invert-hr:#374151; + --tw-prose-invert-quotes:#f3f4f6; + --tw-prose-invert-quote-borders:#374151; + --tw-prose-invert-captions:#9ca3af; + --tw-prose-invert-kbd:#fff; + --tw-prose-invert-kbd-shadows:255 255 255; + --tw-prose-invert-code:#fff; + --tw-prose-invert-pre-code:#d1d5db; + --tw-prose-invert-pre-bg:rgba(0,0,0,.5); + --tw-prose-invert-th-borders:#4b5563; + --tw-prose-invert-td-borders:#374151; + font-size:1rem; + line-height:1.75 +} +.prose :where(picture>img):not(:where([class~=not-prose], +[class~=not-prose] *)) { + margin-top:0; + margin-bottom:0 +} +.prose :where(li):not(:where([class~=not-prose], +[class~=not-prose] *)) { + margin-top:.5em; + margin-bottom:.5em +} +.prose :where(ol>li):not(:where([class~=not-prose], +[class~=not-prose] *)) { + padding-inline-start:.375em +} +.prose :where(ul>li):not(:where([class~=not-prose], +[class~=not-prose] *)) { + padding-inline-start:.375em +} +.prose :where(.prose>ul>li p):not(:where([class~=not-prose], +[class~=not-prose] *)) { + margin-top:.75em; + margin-bottom:.75em +} +.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose], +[class~=not-prose] *)) { + margin-top:1.25em +} +.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose], +[class~=not-prose] *)) { + margin-bottom:1.25em +} +.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose], +[class~=not-prose] *)) { + margin-top:1.25em +} +.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose], +[class~=not-prose] *)) { + margin-bottom:1.25em +} +.prose :where(ul ul, +ul ol, +ol ul, +ol ol):not(:where([class~=not-prose], +[class~=not-prose] *)) { + margin-top:.75em; + margin-bottom:.75em +} +.prose :where(dl):not(:where([class~=not-prose], +[class~=not-prose] *)) { + margin-top:1.25em; + margin-bottom:1.25em +} +.prose :where(dd):not(:where([class~=not-prose], +[class~=not-prose] *)) { + margin-top:.5em; + padding-inline-start:1.625em +} +.prose :where(hr+*):not(:where([class~=not-prose], +[class~=not-prose] *)) { + margin-top:0 +} +.prose :where(h2+*):not(:where([class~=not-prose], +[class~=not-prose] *)) { + margin-top:0 +} +.prose :where(h3+*):not(:where([class~=not-prose], +[class~=not-prose] *)) { + margin-top:0 +} +.prose :where(h4+*):not(:where([class~=not-prose], +[class~=not-prose] *)) { + margin-top:0 +} +.prose :where(thead th:first-child):not(:where([class~=not-prose], +[class~=not-prose] *)) { + padding-inline-start:0 +} +.prose :where(thead th:last-child):not(:where([class~=not-prose], +[class~=not-prose] *)) { + padding-inline-end:0 +} +.prose :where(tbody td, +tfoot td):not(:where([class~=not-prose], +[class~=not-prose] *)) { + padding-top:.5714286em; + padding-inline-end:.5714286em; + padding-bottom:.5714286em; + padding-inline-start:.5714286em +} +.prose :where(tbody td:first-child, +tfoot td:first-child):not(:where([class~=not-prose], +[class~=not-prose] *)) { + padding-inline-start:0 +} +.prose :where(tbody td:last-child, +tfoot td:last-child):not(:where([class~=not-prose], +[class~=not-prose] *)) { + padding-inline-end:0 +} +.prose :where(figure):not(:where([class~=not-prose], +[class~=not-prose] *)) { + margin-top:2em; + margin-bottom:2em +} +.prose :where(.prose>:first-child):not(:where([class~=not-prose], +[class~=not-prose] *)) { + margin-top:0 +} +.prose :where(.prose>:last-child):not(:where([class~=not-prose], +[class~=not-prose] *)) { + margin-bottom:0 +} +.prose :where(h1, +h2):not(:where([class~=not-prose], +[class~=not-prose] *)) { + font-weight:700; + letter-spacing:-.025em +} +.prose-invert { + --tw-prose-body:var(--tw-prose-invert-body); + --tw-prose-headings:var(--tw-prose-invert-headings); + --tw-prose-lead:var(--tw-prose-invert-lead); + --tw-prose-links:var(--tw-prose-invert-links); + --tw-prose-bold:var(--tw-prose-invert-bold); + --tw-prose-counters:var(--tw-prose-invert-counters); + --tw-prose-bullets:var(--tw-prose-invert-bullets); + --tw-prose-hr:var(--tw-prose-invert-hr); + --tw-prose-quotes:var(--tw-prose-invert-quotes); + --tw-prose-quote-borders:var(--tw-prose-invert-quote-borders); + --tw-prose-captions:var(--tw-prose-invert-captions); + --tw-prose-kbd:var(--tw-prose-invert-kbd); + --tw-prose-kbd-shadows:var(--tw-prose-invert-kbd-shadows); + --tw-prose-code:var(--tw-prose-invert-code); + --tw-prose-pre-code:var(--tw-prose-invert-pre-code); + --tw-prose-pre-bg:var(--tw-prose-invert-pre-bg); + --tw-prose-th-borders:var(--tw-prose-invert-th-borders); + --tw-prose-td-borders:var(--tw-prose-invert-td-borders) +} +.prose-invert :where(a):not(:where([class~=not-prose], +[class~=not-prose] *)) { + color:#ec4899 +} +.prose-invert :where(a):not(:where([class~=not-prose], +[class~=not-prose] *)):hover { + color:#f472b6 +} +.prose-invert :where(a):not(:where([class~=not-prose], +[class~=not-prose] *)) code { + color:#f472b6 +} +.prose-invert :where(h1, +h2, +h3, +h4, +h5, +h6):not(:where([class~=not-prose], +[class~=not-prose] *)) { + color:#f3f4f6 +} +.sr-only { + position:absolute; + width:1px; + height:1px; + padding:0; + margin:-1px; + overflow:hidden; + clip:rect(0,0,0,0); + white-space:nowrap; + border-width:0 +} +.\!collapse { + visibility:collapse!important +} +.collapse { + visibility:collapse +} +.static { + position:static +} +.fixed { + position:fixed +} +.absolute { + position:absolute +} +.relative { + position:relative +} +.sticky { + position:sticky +} +.inset-0 { + inset:0 +} +.bottom-8 { + bottom:2rem +} +.left-0 { + left:0 +} +.right-0 { + right:0 +} +.right-2 { + right:.5rem +} +.right-3 { + right:.75rem +} +.right-4 { + right:1rem +} +.right-8 { + right:2rem +} +.top-0 { + top:0 +} +.top-2 { + top:.5rem +} +.top-3 { + top:.75rem +} +.top-7 { + top:1.75rem +} +.z-50 { + z-index:50 +} +.z-60 { + z-index:60 +} +.z-70 { + z-index:70 +} +.z-80 { + z-index:80 +} +.float-left { + float:left +} +.-m-4 { + margin:-1rem +} +.-mx-2 { + margin-left:-.5rem; + margin-right:-.5rem +} +.-mx-4 { + margin-left:-1rem; + margin-right:-1rem +} +.-mx-6 { + margin-left:-1.5rem; + margin-right:-1.5rem +} +.mx-auto { + margin-left:auto; + margin-right:auto +} +.my-1 { + margin-top:.25rem; + margin-bottom:.25rem +} +.my-3 { + margin-top:.75rem; + margin-bottom:.75rem +} +.-ml-2 { + margin-left:-.5rem +} +.mb-2 { + margin-bottom:.5rem +} +.mb-3 { + margin-bottom:.75rem +} +.mb-4 { + margin-bottom:1rem +} +.mb-8 { + margin-bottom:2rem +} +.mb-auto { + margin-bottom:auto +} +.ml-6 { + margin-left:1.5rem +} +.ml-\[calc\(-50vw\+50\%\)\] { + margin-left:calc(-50vw + 50%) +} +.mr-2 { + margin-right:.5rem +} +.mr-3 { + margin-right:.75rem +} +.mr-4 { + margin-right:1rem +} +.mr-5 { + margin-right:1.25rem +} +.mr-\[calc\(-50vw\+50\%\)\] { + margin-right:calc(-50vw + 50%) +} +.mt-16 { + margin-top:4rem +} +.mt-2 { + margin-top:.5rem +} +.mt-6 { + margin-top:1.5rem +} +.mt-8 { + margin-top:2rem +} +.block { + display:block +} +.inline-block { + display:inline-block +} +.inline { + display:inline +} +.flex { + display:flex +} +.table { + display:table +} +.grid { + display:grid +} +.contents { + display:contents +} +.hidden { + display:none +} +.aspect-\[2\/1\] { + aspect-ratio:2/1 +} +.h-10 { + height:2.5rem +} +.h-16 { + height:4rem +} +.h-48 { + height:12rem +} +.h-5 { + height:1.25rem +} +.h-6 { + height:1.5rem +} +.h-7 { + height:1.75rem +} +.h-8 { + height:2rem +} +.h-full { + height:100% +} +.h-screen { + height:100vh +} +.max-h-screen { + max-height:100vh +} +.w-10 { + width:2.5rem +} +.w-16 { + width:4rem +} +.w-32 { + width:8rem +} +.w-4 { + width:1rem +} +.w-48 { + width:12rem +} +.w-5 { + width:1.25rem +} +.w-6 { + width:1.5rem +} +.w-72 { + width:18rem +} +.w-8 { + width:2rem +} +.w-full { + width:100% +} +.min-w-\[280px\] { + min-width:280px +} +.max-w-3xl { + max-width:48rem +} +.max-w-40 { + max-width:10rem +} +.max-w-\[280px\] { + max-width:280px +} +.max-w-\[544px\] { + max-width:544px +} +.max-w-lg { + max-width:32rem +} +.max-w-md { + max-width:28rem +} +.max-w-none { + max-width:none +} +.max-w-xl { + max-width:36rem +} +.basis-0 { + flex-basis:0px +} +.origin-top-right { + transform-origin:top right +} +.translate-x-0 { + --tw-translate-x:0px +} +.translate-x-0, +.translate-x-full { + transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) +} +.translate-x-full { + --tw-translate-x:100% +} +.scale-100 { + --tw-scale-x:1; + --tw-scale-y:1 +} +.scale-100, +.scale-95 { + transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) +} +.scale-95 { + --tw-scale-x:.95; + --tw-scale-y:.95 +} +.transform { + transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) +} +.cursor-auto { + cursor:auto +} +.cursor-default { + cursor:default +} +.cursor-pointer { + cursor:pointer +} +.grid-rows-\[auto_1fr\] { + grid-template-rows:auto 1fr +} +.flex-row { + flex-direction:row +} +.flex-col { + flex-direction:column +} +.flex-wrap { + flex-wrap:wrap +} +.items-start { + align-items:flex-start +} +.items-center { + align-items:center +} +.justify-start { + justify-content:flex-start +} +.justify-end { + justify-content:flex-end +} +.justify-center { + justify-content:center +} +.justify-between { + justify-content:space-between +} +.gap-3 { + gap:.75rem +} +.gap-4 { + gap:1rem +} +.gap-x-2 { + -moz-column-gap:.5rem; + column-gap:.5rem +} +.space-x-2>:not([hidden])~:not([hidden]) { + --tw-space-x-reverse:0; + margin-right:calc(.5rem * var(--tw-space-x-reverse)); + margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse))) +} +.space-x-3>:not([hidden])~:not([hidden]) { + --tw-space-x-reverse:0; + margin-right:calc(.75rem * var(--tw-space-x-reverse)); + margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse))) +} +.space-x-4>:not([hidden])~:not([hidden]) { + --tw-space-x-reverse:0; + margin-right:calc(1rem * var(--tw-space-x-reverse)); + margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse))) +} +.space-y-1>:not([hidden])~:not([hidden]) { + --tw-space-y-reverse:0; + margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom:calc(.25rem * var(--tw-space-y-reverse)) +} +.space-y-10>:not([hidden])~:not([hidden]) { + --tw-space-y-reverse:0; + margin-top:calc(2.5rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom:calc(2.5rem * var(--tw-space-y-reverse)) +} +.space-y-2>:not([hidden])~:not([hidden]) { + --tw-space-y-reverse:0; + margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom:calc(.5rem * var(--tw-space-y-reverse)) +} +.space-y-3>:not([hidden])~:not([hidden]) { + --tw-space-y-reverse:0; + margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom:calc(.75rem * var(--tw-space-y-reverse)) +} +.space-y-5>:not([hidden])~:not([hidden]) { + --tw-space-y-reverse:0; + margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom:calc(1.25rem * var(--tw-space-y-reverse)) +} +.space-y-6>:not([hidden])~:not([hidden]) { + --tw-space-y-reverse:0; + margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom:calc(1.5rem * var(--tw-space-y-reverse)) +} +.divide-y>:not([hidden])~:not([hidden]) { + --tw-divide-y-reverse:0; + border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse))); + border-bottom-width:calc(1px * var(--tw-divide-y-reverse)) +} +.divide-gray-100>:not([hidden])~:not([hidden]) { + --tw-divide-opacity:1; + border-color:rgb(243 244 246/var(--tw-divide-opacity)) +} +.divide-gray-200>:not([hidden])~:not([hidden]) { + --tw-divide-opacity:1; + border-color:rgb(229 231 235/var(--tw-divide-opacity)) +} +.self-center { + align-self:center +} +.overflow-auto { + overflow:auto +} +.overflow-hidden { + overflow:hidden +} +.overflow-x-auto { + overflow-x:auto +} +.overflow-y-auto { + overflow-y:auto +} +.scroll-smooth { + scroll-behavior:smooth +} +.whitespace-nowrap { + white-space:nowrap +} +.break-words { + overflow-wrap:break-word +} +.rounded { + border-radius:.25rem +} +.rounded-2xl { + border-radius:1rem +} +.rounded-full { + border-radius:9999px +} +.rounded-lg { + border-radius:.5rem +} +.rounded-md { + border-radius:.375rem +} +.border { + border-width:1px +} +.border-2 { + border-width:2px +} +.border-b { + border-bottom-width:1px +} +.border-l-4 { + border-left-width:4px +} +.border-t { + border-top-width:1px +} +.border-gray-100 { + --tw-border-opacity:1; + border-color:rgb(243 244 246/var(--tw-border-opacity)) +} +.border-gray-200 { + --tw-border-opacity:1; + border-color:rgb(229 231 235/var(--tw-border-opacity)) +} +.border-gray-300 { + --tw-border-opacity:1; + border-color:rgb(209 213 219/var(--tw-border-opacity)) +} +.border-gray-400 { + --tw-border-opacity:1; + border-color:rgb(156 163 175/var(--tw-border-opacity)) +} +.border-green-400 { + --tw-border-opacity:1; + border-color:rgb(74 222 128/var(--tw-border-opacity)) +} +.border-primary-500 { + --tw-border-opacity:1; + border-color:rgb(236 72 153/var(--tw-border-opacity)) +} +.border-transparent { + border-color:transparent +} +.border-opacity-0 { + --tw-border-opacity:0 +} +.border-opacity-60 { + --tw-border-opacity:0.6 +} +.bg-black\/25 { + background-color:rgba(0,0,0,.25) +} +.bg-blue-600 { + --tw-bg-opacity:1; + background-color:rgb(37 99 235/var(--tw-bg-opacity)) +} +.bg-gray-100 { + --tw-bg-opacity:1; + background-color:rgb(243 244 246/var(--tw-bg-opacity)) +} +.bg-gray-200 { + --tw-bg-opacity:1; + background-color:rgb(229 231 235/var(--tw-bg-opacity)) +} +.bg-gray-300\/50 { + background-color:rgba(209,213,219,.5) +} +.bg-gray-50 { + --tw-bg-opacity:1; + background-color:rgb(249 250 251/var(--tw-bg-opacity)) +} +.bg-gray-700 { + --tw-bg-opacity:1; + background-color:rgb(55 65 81/var(--tw-bg-opacity)) +} +.bg-green-500 { + --tw-bg-opacity:1; + background-color:rgb(34 197 94/var(--tw-bg-opacity)) +} +.bg-primary-500 { + --tw-bg-opacity:1; + background-color:rgb(236 72 153/var(--tw-bg-opacity)) +} +.bg-primary-600 { + --tw-bg-opacity:1; + background-color:rgb(219 39 119/var(--tw-bg-opacity)) +} +.bg-red-500 { + --tw-bg-opacity:1; + background-color:rgb(239 68 68/var(--tw-bg-opacity)) +} +.bg-transparent { + background-color:transparent +} +.bg-white { + --tw-bg-opacity:1; + background-color:rgb(255 255 255/var(--tw-bg-opacity)) +} +.fill-current { + fill:currentColor +} +.object-cover { + -o-object-fit:cover; + object-fit:cover +} +.object-center { + -o-object-position:center; + object-position:center +} +.p-1 { + padding:.25rem +} +.p-2 { + padding:.5rem +} +.p-4 { + padding:1rem +} +.p-6 { + padding:1.5rem +} +.px-1\.5 { + padding-left:.375rem; + padding-right:.375rem +} +.px-2 { + padding-left:.5rem; + padding-right:.5rem +} +.px-3 { + padding-left:.75rem; + padding-right:.75rem +} +.px-4 { + padding-left:1rem; + padding-right:1rem +} +.px-6 { + padding-left:1.5rem; + padding-right:1.5rem +} +.py-10 { + padding-top:2.5rem; + padding-bottom:2.5rem +} +.py-12 { + padding-top:3rem; + padding-bottom:3rem +} +.py-2 { + padding-top:.5rem; + padding-bottom:.5rem +} +.py-4 { + padding-top:1rem; + padding-bottom:1rem +} +.py-5 { + padding-top:1.25rem; + padding-bottom:1.25rem +} +.py-8 { + padding-top:2rem; + padding-bottom:2rem +} +.pb-1 { + padding-bottom:.25rem +} +.pb-10 { + padding-bottom:2.5rem +} +.pb-2 { + padding-bottom:.5rem +} +.pb-6 { + padding-bottom:1.5rem +} +.pb-8 { + padding-bottom:2rem +} +.pl-12 { + padding-left:3rem +} +.pl-4 { + padding-left:1rem +} +.pl-\[calc\(100vw-100\%\)\] { + padding-left:calc(100vw - 100%) +} +.pr-4 { + padding-right:1rem +} + +.pt-10 { + padding-top:2.5rem +} +.pt-2 { + padding-top:.5rem +} +.pt-3 { + padding-top:.75rem +} +.pt-4 { + padding-top:1rem +} +.pt-5 { + padding-top:1.25rem +} +.pt-6 { + padding-top:1.5rem +} +.pt-8 { + padding-top:2rem +} +.text-left { + text-align:left +} +.text-center { + text-align:center +} +.text-right { + text-align:right +} +.align-middle { + vertical-align:middle +} +.font-sans { + font-family:var(--font-space-grotesk),ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji" +} +.text-2xl { + font-size:1.5rem; + line-height:2rem +} +.text-3xl { + font-size:1.875rem; + line-height:2.25rem +} +.text-6xl { + font-size:3.75rem; + line-height:1 +} +.text-base { + font-size:1rem; + line-height:1.5rem +} +.text-lg { + font-size:1.125rem; + line-height:1.75rem +} +.text-sm { + font-size:.875rem; + line-height:1.25rem +} +.text-xl { + font-size:1.25rem; + line-height:1.75rem +} +.text-xs { + font-size:.75rem; + line-height:1rem +} +.font-bold { + font-weight:700 +} +.font-extrabold { + font-weight:800 +} +.font-medium { + font-weight:500 +} +.font-semibold { + font-weight:600 +} +.uppercase { + text-transform:uppercase +} +.italic { + font-style:italic +} +.leading-4 { + line-height:1rem +} +.leading-5 { + line-height:1.25rem +} +.leading-6 { + line-height:1.5rem +} +.leading-7 { + line-height:1.75rem +} +.leading-8 { + line-height:2rem +} +.leading-9 { + line-height:2.25rem +} +.leading-normal { + line-height:1.5 +} +.tracking-tight { + letter-spacing:-.025em +} +.tracking-wide { + letter-spacing:.025em +} +.tracking-widest { + letter-spacing:.1em +} +.text-black { + --tw-text-opacity:1; + color:rgb(0 0 0/var(--tw-text-opacity)) +} +.text-gray-100 { + --tw-text-opacity:1; + color:rgb(243 244 246/var(--tw-text-opacity)) +} +.text-gray-200 { + --tw-text-opacity:1; + color:rgb(229 231 235/var(--tw-text-opacity)) +} +.text-gray-300 { + --tw-text-opacity:1; + color:rgb(209 213 219/var(--tw-text-opacity)) +} +.text-gray-400 { + --tw-text-opacity:1; + color:rgb(156 163 175/var(--tw-text-opacity)) +} +.text-gray-500 { + --tw-text-opacity:1; + color:rgb(107 114 128/var(--tw-text-opacity)) +} +.text-gray-600 { + --tw-text-opacity:1; + color:rgb(75 85 99/var(--tw-text-opacity)) +} +.text-gray-700 { + --tw-text-opacity:1; + color:rgb(55 65 81/var(--tw-text-opacity)) +} +.text-gray-800 { + --tw-text-opacity:1; + color:rgb(31 41 55/var(--tw-text-opacity)) +} +.text-gray-900 { + --tw-text-opacity:1; + color:rgb(17 24 39/var(--tw-text-opacity)) +} +.text-green-400 { + --tw-text-opacity:1; + color:rgb(74 222 128/var(--tw-text-opacity)) +} +.text-primary-500 { + --tw-text-opacity:1; + color:rgb(236 72 153/var(--tw-text-opacity)) +} +.text-primary-600 { + --tw-text-opacity:1; + color:rgb(219 39 119/var(--tw-text-opacity)) +} +.text-red-500 { + --tw-text-opacity:1; + color:rgb(239 68 68/var(--tw-text-opacity)) +} +.text-white { + --tw-text-opacity:1; + color:rgb(255 255 255/var(--tw-text-opacity)) +} +.antialiased { + -webkit-font-smoothing:antialiased; + -moz-osx-font-smoothing:grayscale +} +.placeholder-gray-400::-moz-placeholder { + --tw-placeholder-opacity:1; + color:rgb(156 163 175/var(--tw-placeholder-opacity)) +} +.placeholder-gray-400::placeholder { + --tw-placeholder-opacity:1; + color:rgb(156 163 175/var(--tw-placeholder-opacity)) +} +.opacity-0 { + opacity:0 +} +.opacity-100 { + opacity:1 +} +.opacity-95 { + opacity:.95 +} +.shadow { + --tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1); + --tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color) +} +.shadow, +.shadow-lg { + box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow) +} +.shadow-lg { + --tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1); + --tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color) +} +.shadow-md { + --tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1); + --tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color) +} +.shadow-md, +.shadow-sm { + box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow) +} +.shadow-sm { + --tw-shadow:0 1px 2px 0 rgba(0,0,0,.05); + --tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color) +} +.outline { + outline-style:solid +} +.outline-0 { + outline-width:0 +} +.ring-1 { + --tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000) +} +.ring-black { + --tw-ring-opacity:1; + --tw-ring-color:rgb(0 0 0/var(--tw-ring-opacity)) +} +.ring-opacity-5 { + --tw-ring-opacity:0.05 +} +.filter { + filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow) +} +.backdrop-blur { + --tw-backdrop-blur:blur(8px) +} +.backdrop-blur, +.backdrop-filter { + -webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); + backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia) +} +.transition { + transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter; + transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter; + transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter; + transition-timing-function:cubic-bezier(.4,0,.2,1); + transition-duration:.15s +} +.transition-all { + transition-property:all; + transition-timing-function:cubic-bezier(.4,0,.2,1); + transition-duration:.15s +} +.transition-colors { + transition-property:color,background-color,border-color,text-decoration-color,fill,stroke; + transition-timing-function:cubic-bezier(.4,0,.2,1); + transition-duration:.15s +} +.duration-100 { + transition-duration:.1s +} +.duration-150 { + transition-duration:.15s +} +.duration-200 { + transition-duration:.2s +} +.duration-300 { + transition-duration:.3s +} +.duration-75 { + transition-duration:75ms +} +.ease-in { + transition-timing-function:cubic-bezier(.4,0,1,1) +} +.ease-in-out { + transition-timing-function:cubic-bezier(.4,0,.2,1) +} +.ease-out { + transition-timing-function:cubic-bezier(0,0,.2,1) +} +.task-list-item:before { + display:none +} +.task-list-item { + list-style-type:none +} +.footnotes { + margin-top:3rem; + border-top-width:1px; + --tw-border-opacity:1; + border-color:rgb(229 231 235/var(--tw-border-opacity)); + padding-top:2rem +} +.footnotes:is(.dark *) { + --tw-border-opacity:1; + border-color:rgb(55 65 81/var(--tw-border-opacity)) +} +.data-footnote-backref { + text-decoration-line:none +} +.csl-entry { + margin-top:1.25rem; + margin-bottom:1.25rem +} +.no-scrollbar::-webkit-scrollbar { + display:none +} +.no-scrollbar { + -ms-overflow-style:none; + scrollbar-width:none +} +input:-webkit-autofill, +input:-webkit-autofill:focus { + -webkit-transition:background-color 600000s 0s,color 600000s 0s; + transition:background-color 600000s 0s,color 600000s 0s +} +.katex-display { + overflow:auto hidden +} +.content-header-link { + opacity:0; + margin-left:-24px; + padding-right:4px +} +.content-header-link:hover, +.content-header:hover .content-header-link { + opacity:1 +} +.linkicon { + display:inline-block; + vertical-align:middle +} +.dark\:prose-invert:is(.dark *) { + --tw-prose-body:var(--tw-prose-invert-body); + --tw-prose-headings:var(--tw-prose-invert-headings); + --tw-prose-lead:var(--tw-prose-invert-lead); + --tw-prose-links:var(--tw-prose-invert-links); + --tw-prose-bold:var(--tw-prose-invert-bold); + --tw-prose-counters:var(--tw-prose-invert-counters); + --tw-prose-bullets:var(--tw-prose-invert-bullets); + --tw-prose-hr:var(--tw-prose-invert-hr); + --tw-prose-quotes:var(--tw-prose-invert-quotes); + --tw-prose-quote-borders:var(--tw-prose-invert-quote-borders); + --tw-prose-captions:var(--tw-prose-invert-captions); + --tw-prose-kbd:var(--tw-prose-invert-kbd); + --tw-prose-kbd-shadows:var(--tw-prose-invert-kbd-shadows); + --tw-prose-code:var(--tw-prose-invert-code); + --tw-prose-pre-code:var(--tw-prose-invert-pre-code); + --tw-prose-pre-bg:var(--tw-prose-invert-pre-bg); + --tw-prose-th-borders:var(--tw-prose-invert-th-borders); + --tw-prose-td-borders:var(--tw-prose-invert-td-borders) +} +.dark\:prose-invert:is(.dark *) :where(a):not(:where([class~=not-prose], +[class~=not-prose] *)) { + color:#ec4899 +} +.dark\:prose-invert:is(.dark *) :where(a):not(:where([class~=not-prose], +[class~=not-prose] *)):hover { + color:#f472b6 +} +.dark\:prose-invert:is(.dark *) :where(a):not(:where([class~=not-prose], +[class~=not-prose] *)) code { + color:#f472b6 +} +.dark\:prose-invert:is(.dark *) :where(h1, +h2, +h3, +h4, +h5, +h6):not(:where([class~=not-prose], +[class~=not-prose] *)) { + color:#f3f4f6 +} +.hover\:bg-blue-700:hover { + --tw-bg-opacity:1; + background-color:rgb(29 78 216/var(--tw-bg-opacity)) +} +.hover\:bg-gray-300:hover { + --tw-bg-opacity:1; + background-color:rgb(209 213 219/var(--tw-bg-opacity)) +} +.hover\:bg-primary-700:hover { + --tw-bg-opacity:1; + background-color:rgb(190 24 93/var(--tw-bg-opacity)) +} +.hover\:text-gray-600:hover { + --tw-text-opacity:1; + color:rgb(75 85 99/var(--tw-text-opacity)) +} +.hover\:text-primary-500:hover { + --tw-text-opacity:1; + color:rgb(236 72 153/var(--tw-text-opacity)) +} +.hover\:text-primary-600:hover { + --tw-text-opacity:1; + color:rgb(219 39 119/var(--tw-text-opacity)) +} +.focus\:border-green-400:focus { + --tw-border-opacity:1; + border-color:rgb(74 222 128/var(--tw-border-opacity)) +} +.focus\:border-primary-500:focus { + --tw-border-opacity:1; + border-color:rgb(236 72 153/var(--tw-border-opacity)) +} +.focus\:border-transparent:focus { + border-color:transparent +} +.focus\:outline-none:focus { + outline:2px solid transparent; + outline-offset:2px +} +.focus\:ring-2:focus { + --tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000) +} +.focus\:ring-primary-500:focus { + --tw-ring-opacity:1; + --tw-ring-color:rgb(236 72 153/var(--tw-ring-opacity)) +} +.focus\:ring-primary-600:focus { + --tw-ring-opacity:1; + --tw-ring-color:rgb(219 39 119/var(--tw-ring-opacity)) +} +.focus\:ring-offset-2:focus { + --tw-ring-offset-width:2px +} +.disabled\:opacity-50:disabled { + opacity:.5 +} +.dark\:divide-gray-700:is(.dark *)>:not([hidden])~:not([hidden]) { + --tw-divide-opacity:1; + border-color:rgb(55 65 81/var(--tw-divide-opacity)) +} +.dark\:border-gray-700:is(.dark *) { + --tw-border-opacity:1; + border-color:rgb(55 65 81/var(--tw-border-opacity)) +} +.dark\:border-gray-800:is(.dark *) { + --tw-border-opacity:1; + border-color:rgb(31 41 55/var(--tw-border-opacity)) +} +.dark\:border-gray-900:is(.dark *) { + --tw-border-opacity:1; + border-color:rgb(17 24 39/var(--tw-border-opacity)) +} +.dark\:bg-black:is(.dark *) { + --tw-bg-opacity:1; + background-color:rgb(0 0 0/var(--tw-bg-opacity)) +} +.dark\:bg-black\/50:is(.dark *) { + background-color:rgba(0,0,0,.5) +} +.dark\:bg-gray-700:is(.dark *) { + --tw-bg-opacity:1; + background-color:rgb(55 65 81/var(--tw-bg-opacity)) +} +.dark\:bg-gray-800:is(.dark *) { + --tw-bg-opacity:1; + background-color:rgb(31 41 55/var(--tw-bg-opacity)) +} +.dark\:bg-gray-900:is(.dark *) { + --tw-bg-opacity:1; + background-color:rgb(17 24 39/var(--tw-bg-opacity)) +} +.dark\:bg-gray-900\/70:is(.dark *) { + background-color:rgba(17,24,39,.7) +} +.dark\:bg-gray-950:is(.dark *) { + --tw-bg-opacity:1; + background-color:rgb(3 7 18/var(--tw-bg-opacity)) +} +.dark\:text-gray-100:is(.dark *) { + --tw-text-opacity:1; + color:rgb(243 244 246/var(--tw-text-opacity)) +} +.dark\:text-gray-200:is(.dark *) { + --tw-text-opacity:1; + color:rgb(229 231 235/var(--tw-text-opacity)) +} +.dark\:text-gray-300:is(.dark *) { + --tw-text-opacity:1; + color:rgb(209 213 219/var(--tw-text-opacity)) +} +.dark\:text-gray-400:is(.dark *) { + --tw-text-opacity:1; + color:rgb(156 163 175/var(--tw-text-opacity)) +} +.dark\:text-gray-600:is(.dark *) { + --tw-text-opacity:1; + color:rgb(75 85 99/var(--tw-text-opacity)) +} +.dark\:text-red-400:is(.dark *) { + --tw-text-opacity:1; + color:rgb(248 113 113/var(--tw-text-opacity)) +} +.dark\:text-white:is(.dark *) { + --tw-text-opacity:1; + color:rgb(255 255 255/var(--tw-text-opacity)) +} +.dark\:placeholder-gray-500:is(.dark *)::-moz-placeholder { + --tw-placeholder-opacity:1; + color:rgb(107 114 128/var(--tw-placeholder-opacity)) +} +.dark\:placeholder-gray-500:is(.dark *)::placeholder { + --tw-placeholder-opacity:1; + color:rgb(107 114 128/var(--tw-placeholder-opacity)) +} +.dark\:opacity-\[0\.98\]:is(.dark *) { + opacity:.98 +} +.dark\:shadow-gray-800\/40:is(.dark *) { + --tw-shadow-color:rgba(31,41,55,.4); + --tw-shadow:var(--tw-shadow-colored) +} +.dark\:ring-offset-black:is(.dark *) { + --tw-ring-offset-color:#000 +} +.dark\:hover\:bg-blue-500:hover:is(.dark *) { + --tw-bg-opacity:1; + background-color:rgb(59 130 246/var(--tw-bg-opacity)) +} +.dark\:hover\:bg-gray-600:hover:is(.dark *) { + --tw-bg-opacity:1; + background-color:rgb(75 85 99/var(--tw-bg-opacity)) +} +.dark\:hover\:bg-primary-400:hover:is(.dark *) { + --tw-bg-opacity:1; + background-color:rgb(244 114 182/var(--tw-bg-opacity)) +} +.dark\:hover\:text-primary-400:hover:is(.dark *) { + --tw-text-opacity:1; + color:rgb(244 114 182/var(--tw-text-opacity)) +} +.dark\:hover\:text-primary-500:hover:is(.dark *) { + --tw-text-opacity:1; + color:rgb(236 72 153/var(--tw-text-opacity)) +} +@media (min-width:640px) { + .sm\:ml-3 { + margin-left:.75rem + } + .sm\:mt-0 { + margin-top:0 + } + .sm\:block { + display:block + } + .sm\:flex { + display:flex + } + .sm\:hidden { + display:none + } + .sm\:w-96 { + width:24rem + } + .sm\:flex-row { + flex-direction:row + } + .sm\:justify-between { + justify-content:space-between + } + .sm\:space-x-12>:not([hidden])~:not([hidden]) { + --tw-space-x-reverse:0; + margin-right:calc(3rem * var(--tw-space-x-reverse)); + margin-left:calc(3rem * calc(1 - var(--tw-space-x-reverse))) + } + .sm\:space-x-24>:not([hidden])~:not([hidden]) { + --tw-space-x-reverse:0; + margin-right:calc(6rem * var(--tw-space-x-reverse)); + margin-left:calc(6rem * calc(1 - var(--tw-space-x-reverse))) + } + .sm\:space-x-6>:not([hidden])~:not([hidden]) { + --tw-space-x-reverse:0; + margin-right:calc(1.5rem * var(--tw-space-x-reverse)); + margin-left:calc(1.5rem * calc(1 - var(--tw-space-x-reverse))) + } + .sm\:px-14 { + padding-left:3.5rem; + padding-right:3.5rem + } + .sm\:px-6 { + padding-left:1.5rem; + padding-right:1.5rem + } + .sm\:py-0 { + padding-top:0; + padding-bottom:0 + } + .sm\:py-8 { + padding-top:2rem; + padding-bottom:2rem + } + .sm\:text-4xl { + font-size:2.25rem; + line-height:2.5rem + } + .sm\:text-base { + font-size:1rem; + line-height:1.5rem + } + .sm\:leading-10 { + line-height:2.5rem + } +} +@media (min-width:768px) { + .md\:-mx-8 { + margin-left:-2rem; + margin-right:-2rem + } + .md\:mt-24 { + margin-top:6rem + } + .md\:flex { + display:flex + } + .md\:hidden { + display:none + } + .md\:h-36 { + height:9rem + } + .md\:w-1\/2 { + width:50% + } + .md\:max-w-72 { + max-width:18rem + } + .md\:flex-row { + flex-direction:row + } + .md\:items-center { + align-items:center + } + .md\:justify-center { + justify-content:center + } + .md\:space-x-6>:not([hidden])~:not([hidden]) { + --tw-space-x-reverse:0; + margin-right:calc(1.5rem * var(--tw-space-x-reverse)); + margin-left:calc(1.5rem * calc(1 - var(--tw-space-x-reverse))) + } + .md\:space-y-5>:not([hidden])~:not([hidden]) { + --tw-space-y-reverse:0; + margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom:calc(1.25rem * var(--tw-space-y-reverse)) + } + .md\:divide-y-0>:not([hidden])~:not([hidden]) { + --tw-divide-y-reverse:0; + border-top-width:calc(0px * calc(1 - var(--tw-divide-y-reverse))); + border-bottom-width:calc(0px * var(--tw-divide-y-reverse)) + } + .md\:border-r-2 { + border-right-width:2px + } + .md\:px-6 { + padding-left:1.5rem; + padding-right:1.5rem + } + .md\:text-2xl { + font-size:1.5rem; + line-height:2rem + } + .md\:text-5xl { + font-size:3rem; + line-height:1 + } + .md\:text-6xl { + font-size:3.75rem; + line-height:1 + } + .md\:text-8xl { + font-size:6rem; + line-height:1 + } + .md\:leading-14 { + line-height:3.5rem + } +} +@media (min-width:1024px) { + .lg\:h-48 { + height:12rem + } + .lg\:max-w-96 { + max-width:24rem + } +} +@media (min-width:1280px) { + .xl\:col-span-2 { + grid-column:span 2/span 2 + } + .xl\:col-span-3 { + grid-column:span 3/span 3 + } + .xl\:col-start-1 { + grid-column-start:1 + } + .xl\:row-span-2 { + grid-row:span 2/span 2 + } + .xl\:row-start-2 { + grid-row-start:2 + } + .xl\:-mx-2 { + margin-left:-.5rem; + margin-right:-.5rem + } + .xl\:my-1 { + margin-top:.25rem; + margin-bottom:.25rem + } + .xl\:block { + display:block + } + .xl\:grid { + display:grid + } + .xl\:w-1\/2 { + width:50% + } + .xl\:max-w-5xl { + max-width:64rem + } + .xl\:grid-cols-3 { + grid-template-columns:repeat(3,minmax(0,1fr)) + } + .xl\:grid-cols-4 { + grid-template-columns:repeat(4,minmax(0,1fr)) + } + .xl\:items-baseline { + align-items:baseline + } + .xl\:gap-x-6 { + -moz-column-gap:1.5rem; + column-gap:1.5rem + } + .xl\:gap-x-8 { + -moz-column-gap:2rem; + column-gap:2rem + } + .xl\:space-x-0>:not([hidden])~:not([hidden]) { + --tw-space-x-reverse:0; + margin-right:calc(0px * var(--tw-space-x-reverse)); + margin-left:calc(0px * calc(1 - var(--tw-space-x-reverse))) + } + .xl\:space-y-0>:not([hidden])~:not([hidden]) { + --tw-space-y-reverse:0; + margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse))); + margin-bottom:calc(0px * var(--tw-space-y-reverse)) + } + .xl\:space-y-8>:not([hidden])~:not([hidden]) { + --tw-space-y-reverse:0; + margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom:calc(2rem * var(--tw-space-y-reverse)) + } + .xl\:divide-y>:not([hidden])~:not([hidden]) { + --tw-divide-y-reverse:0; + border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse))); + border-bottom-width:calc(1px * var(--tw-divide-y-reverse)) + } + .xl\:divide-y-0>:not([hidden])~:not([hidden]) { + --tw-divide-y-reverse:0; + border-top-width:calc(0px * calc(1 - var(--tw-divide-y-reverse))); + border-bottom-width:calc(0px * var(--tw-divide-y-reverse)) + } + .xl\:divide-gray-200>:not([hidden])~:not([hidden]) { + --tw-divide-opacity:1; + border-color:rgb(229 231 235/var(--tw-divide-opacity)) + } + .xl\:border-b { + border-bottom-width:1px + } + .xl\:border-gray-200 { + --tw-border-opacity:1; + border-color:rgb(229 231 235/var(--tw-border-opacity)) + } + .xl\:px-0 { + padding-left:0; + padding-right:0 + } + .xl\:px-2 { + padding-left:.5rem; + padding-right:.5rem + } + .xl\:py-8 { + padding-top:2rem; + padding-bottom:2rem + } + .xl\:pb-0 { + padding-bottom:0 + } + .xl\:pb-6 { + padding-bottom:1.5rem + } + .xl\:pt-11 { + padding-top:2.75rem + } + .xl\:pt-8 { + padding-top:2rem + } + .xl\:dark\:divide-gray-700:is(.dark *)>:not([hidden])~:not([hidden]) { + --tw-divide-opacity:1; + border-color:rgb(55 65 81/var(--tw-divide-opacity)) + } + .xl\:dark\:border-gray-700:is(.dark *) { + --tw-border-opacity:1; + border-color:rgb(55 65 81/var(--tw-border-opacity)) + } +} +@media (min-width:1536px) { + .\32xl\:-mx-24 { + margin-left:-6rem; + margin-right:-6rem + } +} diff --git a/themes/tailwind/css/typography.css b/themes/tailwind/css/typography.css new file mode 100644 index 0000000..9805fd1 --- /dev/null +++ b/themes/tailwind/css/typography.css @@ -0,0 +1,866 @@ +@font-face { + font-family:Space Grotesk; + font-style:normal; + font-weight:300 700; + font-display:swap; + src:url(../fonts/62328fecf9e80426-s.woff2) format("woff2"); + unicode-range:u+0102-0103, + u+0110-0111, + u+0128-0129, + u+0168-0169, + u+01a0-01a1, + u+01af-01b0, + u+0300-0301, + u+0303-0304, + u+0308-0309, + u+0323, + u+0329, + u+1ea0-1ef9, + u+20ab +} +@font-face { + font-family:Space Grotesk; + font-style:normal; + font-weight:300 700; + font-display:swap; + src:url(../fonts/c7eb187887c48af6-s.woff2) format("woff2"); + unicode-range:u+0100-02ba, + u+02bd-02c5, + u+02c7-02cc, + u+02ce-02d7, + u+02dd-02ff, + u+0304, + u+0308, + u+0329, + u+1d00-1dbf, + u+1e00-1e9f, + u+1ef2-1eff, + u+2020, + u+20a0-20ab, + u+20ad-20c0, + u+2113, + u+2c60-2c7f, + u+a720-a7ff +} +@font-face { + font-family:Space Grotesk; + font-style:normal; + font-weight:300 700; + font-display:swap; + src:url(../fonts/2d141e1a38819612-s.p.woff2) format("woff2"); + unicode-range:u+00??, + u+0131, + u+0152-0153, + u+02bb-02bc, + u+02c6, + u+02da, + u+02dc, + u+0304, + u+0308, + u+0329, + u+2000-206f, + u+20ac, + u+2122, + u+2191, + u+2193, + u+2212, + u+2215, + u+feff, + u+fffd +} +@font-face { + font-family:Space Grotesk Fallback; + src:local("Arial"); + ascent-override:89.71%; + descent-override:26.62%; + line-gap-override:0.00%; + size-adjust:109.69% +} +.__className_space { + font-family:Space Grotesk,Space Grotesk Fallback; + font-style:normal +} +.__variable_space { + --font-space-grotesk:"Space Grotesk","Space Grotesk Fallback" +} +:root { + --docsearch-primary-color:#5468ff; + --docsearch-text-color:#1c1e21; + --docsearch-spacing:12px; + --docsearch-icon-stroke-width:1.4; + --docsearch-highlight-color:var(--docsearch-primary-color); + --docsearch-muted-color:#969faf; + --docsearch-container-background:rgba(101,108,133,.8); + --docsearch-logo-color:#5468ff; + --docsearch-modal-width:560px; + --docsearch-modal-height:600px; + --docsearch-modal-background:#f5f6f7; + --docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,.5),0 3px 8px 0 #555a64; + --docsearch-searchbox-height:56px; + --docsearch-searchbox-background:#ebedf0; + --docsearch-searchbox-focus-background:#fff; + --docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color); + --docsearch-hit-height:56px; + --docsearch-hit-color:#444950; + --docsearch-hit-active-color:#fff; + --docsearch-hit-background:#fff; + --docsearch-hit-shadow:0 1px 3px 0 #d4d9e1; + --docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8); + --docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,.4); + --docsearch-footer-height:44px; + --docsearch-footer-background:#fff; + --docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,.12) +} +html[data-theme=dark] { + --docsearch-text-color:#f5f6f7; + --docsearch-container-background:rgba(9,10,17,.8); + --docsearch-modal-background:#15172a; + --docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309; + --docsearch-searchbox-background:#090a11; + --docsearch-searchbox-focus-background:#000; + --docsearch-hit-color:#bec3c9; + --docsearch-hit-shadow:none; + --docsearch-hit-background:#090a11; + --docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b); + --docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,.3); + --docsearch-footer-background:#1e2136; + --docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,.5),0 -4px 8px 0 rgba(0,0,0,.2); + --docsearch-logo-color:#fff; + --docsearch-muted-color:#7f8497 +} +.DocSearch-Button { + align-items:center; + background:var(--docsearch-searchbox-background); + border:0; + border-radius:40px; + color:var(--docsearch-muted-color); + cursor:pointer; + display:flex; + font-weight:500; + height:36px; + justify-content:space-between; + margin:0 0 0 16px; + padding:0 8px; + -webkit-user-select:none; + -moz-user-select:none; + user-select:none +} +.DocSearch-Button:active, +.DocSearch-Button:focus, +.DocSearch-Button:hover { + background:var(--docsearch-searchbox-focus-background); + box-shadow:var(--docsearch-searchbox-shadow); + color:var(--docsearch-text-color); + outline:none +} +.DocSearch-Button-Container { + align-items:center; + display:flex +} +.DocSearch-Search-Icon { + stroke-width:1.6 +} +.DocSearch-Button .DocSearch-Search-Icon { + color:var(--docsearch-text-color) +} +.DocSearch-Button-Placeholder { + font-size:1rem; + padding:0 12px 0 6px +} +.DocSearch-Button-Keys { + display:flex; + min-width:calc(40px + .8em) +} +.DocSearch-Button-Key { + align-items:center; + background:var(--docsearch-key-gradient); + border-radius:3px; + box-shadow:var(--docsearch-key-shadow); + color:var(--docsearch-muted-color); + display:flex; + height:18px; + justify-content:center; + margin-right:.4em; + position:relative; + padding:0 0 2px; + border:0; + top:-1px; + width:20px +} +@media (max-width:768px) { + .DocSearch-Button-Keys, + .DocSearch-Button-Placeholder { + display:none + } +} +.DocSearch--active { + overflow:hidden!important +} +.DocSearch-Container, +.DocSearch-Container * { + box-sizing:border-box +} +.DocSearch-Container { + background-color:var(--docsearch-container-background); + height:100vh; + left:0; + position:fixed; + top:0; + width:100vw; + z-index:200 +} +.DocSearch-Container a { + text-decoration:none +} +.DocSearch-Link { + -webkit-appearance:none; + -moz-appearance:none; + appearance:none; + background:none; + border:0; + color:var(--docsearch-highlight-color); + cursor:pointer; + font:inherit; + margin:0; + padding:0 +} +.DocSearch-Modal { + background:var(--docsearch-modal-background); + border-radius:6px; + box-shadow:var(--docsearch-modal-shadow); + flex-direction:column; + margin:60px auto auto; + max-width:var(--docsearch-modal-width); + position:relative +} +.DocSearch-SearchBar { + display:flex; + padding:var(--docsearch-spacing) var(--docsearch-spacing) 0 +} +.DocSearch-Form { + align-items:center; + background:var(--docsearch-searchbox-focus-background); + border-radius:4px; + box-shadow:var(--docsearch-searchbox-shadow); + display:flex; + height:var(--docsearch-searchbox-height); + margin:0; + padding:0 var(--docsearch-spacing); + position:relative; + width:100% +} +.DocSearch-Input { + -webkit-appearance:none; + -moz-appearance:none; + appearance:none; + background:transparent; + border:0; + color:var(--docsearch-text-color); + flex:1; + font:inherit; + font-size:1.2em; + height:100%; + outline:none; + padding:0 0 0 8px; + width:80% +} +.DocSearch-Input::-moz-placeholder { + color:var(--docsearch-muted-color); + opacity:1 +} +.DocSearch-Input::placeholder { + color:var(--docsearch-muted-color); + opacity:1 +} +.DocSearch-Input::-webkit-search-cancel-button, +.DocSearch-Input::-webkit-search-decoration, +.DocSearch-Input::-webkit-search-results-button, +.DocSearch-Input::-webkit-search-results-decoration { + display:none +} +.DocSearch-LoadingIndicator, +.DocSearch-MagnifierLabel, +.DocSearch-Reset { + margin:0; + padding:0 +} +.DocSearch-MagnifierLabel, +.DocSearch-Reset { + align-items:center; + color:var(--docsearch-highlight-color); + display:flex; + justify-content:center +} +.DocSearch-Container--Stalled .DocSearch-MagnifierLabel, +.DocSearch-LoadingIndicator { + display:none +} +.DocSearch-Container--Stalled .DocSearch-LoadingIndicator { + align-items:center; + color:var(--docsearch-highlight-color); + display:flex; + justify-content:center +} +@media screen and (prefers-reduced-motion:reduce) { + .DocSearch-Reset { + animation:none; + -webkit-appearance:none; + -moz-appearance:none; + appearance:none; + background:none; + border:0; + border-radius:50%; + color:var(--docsearch-icon-color); + cursor:pointer; + right:0; + stroke-width:var(--docsearch-icon-stroke-width) + } +} +.DocSearch-Reset { + animation:fade-in .1s ease-in forwards; + -webkit-appearance:none; + -moz-appearance:none; + appearance:none; + background:none; + border:0; + border-radius:50%; + color:var(--docsearch-icon-color); + cursor:pointer; + padding:2px; + right:0; + stroke-width:var(--docsearch-icon-stroke-width) +} +.DocSearch-Reset[hidden] { + display:none +} +.DocSearch-Reset:hover { + color:var(--docsearch-highlight-color) +} +.DocSearch-LoadingIndicator svg, +.DocSearch-MagnifierLabel svg { + height:24px; + width:24px +} +.DocSearch-Cancel { + display:none +} +.DocSearch-Dropdown { + max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height)); + min-height:var(--docsearch-spacing); + overflow-y:auto; + overflow-y:overlay; + padding:0 var(--docsearch-spacing); + scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background); + scrollbar-width:thin +} +.DocSearch-Dropdown::-webkit-scrollbar { + width:12px +} +.DocSearch-Dropdown::-webkit-scrollbar-track { + background:transparent +} +.DocSearch-Dropdown::-webkit-scrollbar-thumb { + background-color:var(--docsearch-muted-color); + border:3px solid var(--docsearch-modal-background); + border-radius:20px +} +.DocSearch-Dropdown ul { + list-style:none; + margin:0; + padding:0 +} +.DocSearch-Label { + font-size:.75em; + line-height:1.6em +} +.DocSearch-Help, +.DocSearch-Label { + color:var(--docsearch-muted-color) +} +.DocSearch-Help { + font-size:.9em; + margin:0; + -webkit-user-select:none; + -moz-user-select:none; + user-select:none +} +.DocSearch-Title { + font-size:1.2em +} +.DocSearch-Logo a { + display:flex +} +.DocSearch-Logo svg { + color:var(--docsearch-logo-color); + margin-left:8px +} +.DocSearch-Hits:last-of-type { + margin-bottom:24px +} +.DocSearch-Hits mark { + background:none; + color:var(--docsearch-highlight-color) +} +.DocSearch-HitsFooter { + color:var(--docsearch-muted-color); + display:flex; + font-size:.85em; + justify-content:center; + margin-bottom:var(--docsearch-spacing); + padding:var(--docsearch-spacing) +} +.DocSearch-HitsFooter a { + border-bottom:1px solid; + color:inherit +} +.DocSearch-Hit { + border-radius:4px; + display:flex; + padding-bottom:4px; + position:relative +} +@media screen and (prefers-reduced-motion:reduce) { + .DocSearch-Hit--deleting { + transition:none + } +} +.DocSearch-Hit--deleting { + opacity:0; + transition:all .25s linear +} +@media screen and (prefers-reduced-motion:reduce) { + .DocSearch-Hit--favoriting { + transition:none + } +} +.DocSearch-Hit--favoriting { + transform:scale(0); + transform-origin:top center; + transition:all .25s linear; + transition-delay:.25s +} +.DocSearch-Hit a { + background:var(--docsearch-hit-background); + border-radius:4px; + box-shadow:var(--docsearch-hit-shadow); + display:block; + padding-left:var(--docsearch-spacing); + width:100% +} +.DocSearch-Hit-source { + background:var(--docsearch-modal-background); + color:var(--docsearch-highlight-color); + font-size:.85em; + font-weight:600; + line-height:32px; + margin:0 -4px; + padding:8px 4px 0; + position:sticky; + top:0; + z-index:10 +} +.DocSearch-Hit-Tree { + color:var(--docsearch-muted-color); + height:var(--docsearch-hit-height); + opacity:.5; + stroke-width:var(--docsearch-icon-stroke-width); + width:24px +} +.DocSearch-Hit[aria-selected=true] a { + background-color:var(--docsearch-highlight-color) +} +.DocSearch-Hit[aria-selected=true] mark { + text-decoration:underline +} +.DocSearch-Hit-Container { + align-items:center; + color:var(--docsearch-hit-color); + display:flex; + flex-direction:row; + height:var(--docsearch-hit-height); + padding:0 var(--docsearch-spacing) 0 0 +} +.DocSearch-Hit-icon { + height:20px; + width:20px +} +.DocSearch-Hit-action, +.DocSearch-Hit-icon { + color:var(--docsearch-muted-color); + stroke-width:var(--docsearch-icon-stroke-width) +} +.DocSearch-Hit-action { + align-items:center; + display:flex; + height:22px; + width:22px +} +.DocSearch-Hit-action svg { + display:block; + height:18px; + width:18px +} +.DocSearch-Hit-action+.DocSearch-Hit-action { + margin-left:6px +} +.DocSearch-Hit-action-button { + -webkit-appearance:none; + -moz-appearance:none; + appearance:none; + background:none; + border:0; + border-radius:50%; + color:inherit; + cursor:pointer; + padding:2px +} +svg.DocSearch-Hit-Select-Icon { + display:none +} +.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon { + display:block +} +.DocSearch-Hit-action-button:focus, +.DocSearch-Hit-action-button:hover { + background:rgba(0,0,0,.2); + transition:background-color .1s ease-in +} +@media screen and (prefers-reduced-motion:reduce) { + .DocSearch-Hit-action-button:focus, + .DocSearch-Hit-action-button:hover { + transition:none + } +} +.DocSearch-Hit-action-button:focus path, +.DocSearch-Hit-action-button:hover path { + fill:#fff +} +.DocSearch-Hit-content-wrapper { + display:flex; + flex:1 1 auto; + flex-direction:column; + font-weight:500; + justify-content:center; + line-height:1.2em; + margin:0 8px; + overflow-x:hidden; + position:relative; + text-overflow:ellipsis; + white-space:nowrap; + width:80% +} +.DocSearch-Hit-title { + font-size:.9em +} +.DocSearch-Hit-path { + color:var(--docsearch-muted-color); + font-size:.75em +} +.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree, +.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action, +.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon, +.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path, +.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text, +.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title, +.DocSearch-Hit[aria-selected=true] mark { + color:var(--docsearch-hit-active-color)!important +} +@media screen and (prefers-reduced-motion:reduce) { + .DocSearch-Hit-action-button:focus, + .DocSearch-Hit-action-button:hover { + background:rgba(0,0,0,.2); + transition:none + } +} +.DocSearch-ErrorScreen, +.DocSearch-NoResults, +.DocSearch-StartScreen { + font-size:.9em; + margin:0 auto; + padding:36px 0; + text-align:center; + width:80% +} +.DocSearch-Screen-Icon { + color:var(--docsearch-muted-color); + padding-bottom:12px +} +.DocSearch-NoResults-Prefill-List { + display:inline-block; + padding-bottom:24px; + text-align:left +} +.DocSearch-NoResults-Prefill-List ul { + display:inline-block; + padding:8px 0 0 +} +.DocSearch-NoResults-Prefill-List li { + list-style-position:inside; + list-style-type:"» " +} +.DocSearch-Prefill { + -webkit-appearance:none; + -moz-appearance:none; + appearance:none; + background:none; + border:0; + border-radius:1em; + color:var(--docsearch-highlight-color); + cursor:pointer; + display:inline-block; + font-size:1em; + font-weight:700; + padding:0 +} +.DocSearch-Prefill:focus, +.DocSearch-Prefill:hover { + outline:none; + text-decoration:underline +} +.DocSearch-Footer { + align-items:center; + background:var(--docsearch-footer-background); + border-radius:0 0 8px 8px; + box-shadow:var(--docsearch-footer-shadow); + display:flex; + flex-direction:row-reverse; + flex-shrink:0; + height:var(--docsearch-footer-height); + justify-content:space-between; + padding:0 var(--docsearch-spacing); + position:relative; + -webkit-user-select:none; + -moz-user-select:none; + user-select:none; + width:100%; + z-index:300 +} +.DocSearch-Commands { + color:var(--docsearch-muted-color); + display:flex; + list-style:none; + margin:0; + padding:0 +} +.DocSearch-Commands li { + align-items:center; + display:flex +} +.DocSearch-Commands li:not(:last-of-type) { + margin-right:.8em +} +.DocSearch-Commands-Key { + align-items:center; + background:var(--docsearch-key-gradient); + border-radius:2px; + box-shadow:var(--docsearch-key-shadow); + display:flex; + height:18px; + justify-content:center; + margin-right:.4em; + padding:0 0 1px; + color:var(--docsearch-muted-color); + border:0; + width:20px +} +@media (max-width:768px) { + :root { + --docsearch-spacing:10px; + --docsearch-footer-height:40px + } + .DocSearch-Dropdown { + height:100% + } + .DocSearch-Container { + height:100vh; + height:-webkit-fill-available; + height:calc(var(--docsearch-vh, 1vh) * 100); + position:absolute + } + .DocSearch-Footer { + border-radius:0; + bottom:0; + position:absolute + } + .DocSearch-Hit-content-wrapper { + display:flex; + position:relative; + width:80% + } + .DocSearch-Modal { + border-radius:0; + box-shadow:none; + height:100vh; + height:-webkit-fill-available; + height:calc(var(--docsearch-vh, 1vh) * 100); + margin:0; + max-width:100%; + width:100% + } + .DocSearch-Dropdown { + max-height:calc(var(--docsearch-vh, 1vh) * 100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height)) + } + .DocSearch-Cancel { + -webkit-appearance:none; + -moz-appearance:none; + appearance:none; + background:none; + border:0; + color:var(--docsearch-highlight-color); + cursor:pointer; + display:inline-block; + flex:none; + font:inherit; + font-size:1em; + font-weight:500; + margin-left:var(--docsearch-spacing); + outline:none; + overflow:hidden; + padding:0; + -webkit-user-select:none; + -moz-user-select:none; + user-select:none; + white-space:nowrap + } + .DocSearch-Commands, + .DocSearch-Hit-Tree { + display:none + } +} +@keyframes fade-in { + 0% { + opacity:0 + } + to { + opacity:1 + } +} +.light .DocSearch { + --docsearch-primary-color:#db2777; + --docsearch-highlight-color:#db2777; + --docsearch-searchbox-shadow:inset 0 0 0 2px #db2777; + --docsearch-muted-color:#6b7280; + --docsearch-container-background:rgba(156,163,175,.8); + --docsearch-modal-background:#e5e7eb; + --docsearch-searchbox-background:#f3f4f6; + --docsearch-searchbox-focus-background:#f3f4f6; + --docsearch-hit-color:#374151; + --docsearch-hit-shadow:none; + --docsearch-hit-active-color:#1f2937; + --docsearch-hit-background:#f3f4f6; + --docsearch-footer-background:#f3f4f6 +} +.dark .DocSearch { + --docsearch-primary-color:#db2777; + --docsearch-highlight-color:#db2777; + --docsearch-searchbox-shadow:inset 0 0 0 2px #db2777; + --docsearch-text-color:#d1d5db; + --docsearch-muted-color:#9ca3af; + --docsearch-container-background:rgba(17,24,39,.8); + --docsearch-modal-background:#111827; + --docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309; + --docsearch-searchbox-background:#1f2937; + --docsearch-searchbox-focus-background:#1f2937; + --docsearch-hit-color:#e5e7eb; + --docsearch-hit-shadow:none; + --docsearch-hit-active-color:#f3f4f6; + --docsearch-hit-background:#1f2937; + --docsearch-footer-background:#111827; + --docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,.5),0 -4px 8px 0 rgba(0,0,0,.2); + --docsearch-key-gradient:linear-gradient(-26.5deg,#1f2937,#111827); + --docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,.3); + --docsearch-logo-color:#d1d5db +} +.dark .DocSearch-Input, +.dark .DocSearch-Input:focus, +.light .DocSearch-Input, +.light .DocSearch-Input:focus { + box-shadow:0 0 #0000; + background:transparent +} +@media (prefers-color-scheme:dark) { + .markdown-alert { + --color-border-default:#30363d; + --color-accent-fg:#58a6ff; + --color-accent-emphasis:#1f6feb; + --color-danger-fg:#f85149; + --color-danger-emphasis:#da3633; + --color-attention-fg:#d29922; + --color-attention-emphasis:#9e6a03; + --color-done-fg:#a371f7; + --color-done-emphasis:#8957e5; + --color-success-fg:#3fb950; + --color-success-emphasis:#238636 + } +} +@media (prefers-color-scheme:light) { + .markdown-alert { + --color-border-default:#d0d7de; + --color-accent-fg:#0969da; + --color-accent-emphasis:#0969da; + --color-danger-fg:#d1242f; + --color-danger-emphasis:#cf222e; + --color-attention-fg:#9a6700; + --color-attention-emphasis:#9a6700; + --color-done-fg:#8250df; + --color-done-emphasis:#8250df; + --color-success-fg:#1a7f37; + --color-success-emphasis:#1f883d + } +} +.markdown-alert { + border-left:.25em solid var(--borderColor-default,var(--color-border-default)); + color:inherit; + margin-bottom:16px; + padding:.5rem 1em +} +.markdown-alert>:last-child { + margin-bottom:0!important +} +.markdown-alert .markdown-alert-title { + align-items:center; + display:flex; + font-size:14px; + font-weight:500; + line-height:1 +} +.markdown-alert .markdown-alert-title svg.octicon { + margin-right:8px!important; + margin-right:var(--base-size-8,8px)!important; + fill:currentColor +} +.markdown-alert.markdown-alert-note { + border-left-color:var(--borderColor-accent-emphasis,var(--color-accent-emphasis)) +} +.markdown-alert.markdown-alert-note .markdown-alert-title { + color:var(--color-accent-fg); + color:var(--fgColor-accent,var(--color-accent-fg)) +} +.markdown-alert.markdown-alert-tip { + border-left-color:var(--borderColor-success-emphasis,var(--color-success-emphasis)) +} +.markdown-alert.markdown-alert-tip .markdown-alert-title { + color:var(--color-success-fg); + color:var(--fgColor-success,var(--color-success-fg)) +} +.markdown-alert.markdown-alert-important { + border-left-color:var(--borderColor-done-emphasis,var(--color-done-emphasis)) +} +.markdown-alert.markdown-alert-important .markdown-alert-title { + color:var(--color-done-fg); + color:var(--fgColor-done,var(--color-done-fg)) +} +.markdown-alert.markdown-alert-warning { + border-left-color:var(--borderColor-attention-emphasis,var(--color-attention-emphasis)) +} +.markdown-alert.markdown-alert-warning .markdown-alert-title { + color:var(--color-attention-fg); + color:var(--fgColor-attention,var(--color-attention-fg)) +} +.markdown-alert.markdown-alert-caution { + border-left-color:var(--borderColor-danger-emphasis,var(--color-danger-emphasis)) +} +.markdown-alert.markdown-alert-caution .markdown-alert-title { + color:var(--color-danger-fg); + color:var(--fgColor-danger,var(--color-danger-fg)) +} diff --git a/themes/tailwind/fonts/2d141e1a38819612-s.p.woff2 b/themes/tailwind/fonts/2d141e1a38819612-s.p.woff2 new file mode 100644 index 0000000..a02e69f Binary files /dev/null and b/themes/tailwind/fonts/2d141e1a38819612-s.p.woff2 differ diff --git a/themes/tailwind/fonts/62328fecf9e80426-s.woff2 b/themes/tailwind/fonts/62328fecf9e80426-s.woff2 new file mode 100644 index 0000000..6193080 Binary files /dev/null and b/themes/tailwind/fonts/62328fecf9e80426-s.woff2 differ diff --git a/themes/tailwind/fonts/LICENSE.txt b/themes/tailwind/fonts/LICENSE.txt new file mode 100644 index 0000000..f831dbc --- /dev/null +++ b/themes/tailwind/fonts/LICENSE.txt @@ -0,0 +1,93 @@ +Copyright 2020 The Space Grotesk Project Authors (https://github.com/floriankarsten/space-grotesk) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/themes/tailwind/fonts/c7eb187887c48af6-s.woff2 b/themes/tailwind/fonts/c7eb187887c48af6-s.woff2 new file mode 100644 index 0000000..1ff756f Binary files /dev/null and b/themes/tailwind/fonts/c7eb187887c48af6-s.woff2 differ diff --git a/themes/tailwind/img/soundcloud.jpg b/themes/tailwind/img/soundcloud.jpg new file mode 100644 index 0000000..aa5135e Binary files /dev/null and b/themes/tailwind/img/soundcloud.jpg differ diff --git a/themes/tailwind/js/functions.js b/themes/tailwind/js/functions.js new file mode 100644 index 0000000..ee78cee --- /dev/null +++ b/themes/tailwind/js/functions.js @@ -0,0 +1,26 @@ +(function () { + var e = document.querySelector(".menu-open"); + e && + e.addEventListener("click", function () { + document.body.classList.contains("is-menu-open") ? document.body.classList.remove("is-menu-open") : document.body.classList.add("is-menu-open"); + }); + + var c = document.querySelector(".menu-close"); + c && + c.addEventListener("click", function () { + document.body.classList.contains("is-menu-open") ? document.body.classList.remove("is-menu-open") : document.body.classList.add("is-menu-open"); + }); + + var s = document.querySelector(".search-open"); + s && + s.addEventListener("click", function () { + document.body.classList.contains("is-search-open") ? document.body.classList.remove("is-search-open") : document.body.classList.add("is-search-open"); + }); + + var sc = document.querySelector(".search-close"); + sc && + sc.addEventListener("click", function () { + document.body.classList.contains("is-search-open") ? document.body.classList.remove("is-search-open") : document.body.classList.add("is-search-open"); + }); + +})(); \ No newline at end of file diff --git a/themes/tailwind/layout.html.php b/themes/tailwind/layout.html.php new file mode 100644 index 0000000..828aaff --- /dev/null +++ b/themes/tailwind/layout.html.php @@ -0,0 +1,164 @@ + + + + + + <?php echo $title;?> + + + + + + + + + + + +
        +
        +
        + +
        + + +
        +
        +
        + +
        +
        +
        + + +
        +
        +
        + +
        + +
        + + + +
        +
        +
        +
        + +
        +
        +
        +
        +
        Design by Timlrx
        +
        +
        +
        +
        +
        +
        +
        +
        +
        + + + + + +
        +
        +
        +
        +
        + + + + + + + diff --git a/themes/tailwind/logo.png b/themes/tailwind/logo.png new file mode 100644 index 0000000..00603ab Binary files /dev/null and b/themes/tailwind/logo.png differ diff --git a/themes/tailwind/main.html.php b/themes/tailwind/main.html.php new file mode 100644 index 0000000..fbc52d7 --- /dev/null +++ b/themes/tailwind/main.html.php @@ -0,0 +1,140 @@ + + +
        +

        title;?> + + + +

        +
        + body;?> +
        + +
        + + $v):?> + + + + +
        + +
        + + + +
          + + body);?> +
        • +
          +
          +
          +
          +
          + +
          + + +
          +
          + image)) {?> + <?php echo $p->title;?> + video)) {?> + <?php echo $p->title;?> + + + + + audio)) {?> + + <?php echo $p->title;?> + + + + + + <?php echo $p->title;?> + +
          + + +
          +
          +
          +
          + link)) {?> +

          + title;?> + + + + + +

          + +

          + title;?> +

          + +
          + tag;?> +
          +
          +
          + + image)) {?> + <?php echo $p->title;?> + video)) {?> +
          + +
          + audio)) {?> + + quote)) {?> +
          + quote;?> +
          + + + + quote) && $teaserType === 'trimmed'):?> +
          + quote;?> +
          + + + body, $p->url);?> +
          +
          + +
          + +
          + +
          +
          +
          +
        • + +
        + + +
        + +
        + \ No newline at end of file diff --git a/themes/tailwind/no-posts.html.php b/themes/tailwind/no-posts.html.php new file mode 100644 index 0000000..08e6e9d --- /dev/null +++ b/themes/tailwind/no-posts.html.php @@ -0,0 +1,6 @@ + +
        +
        +

        No post found!

        +
        +
        \ No newline at end of file diff --git a/themes/tailwind/post.html.php b/themes/tailwind/post.html.php new file mode 100644 index 0000000..be4220b --- /dev/null +++ b/themes/tailwind/post.html.php @@ -0,0 +1,121 @@ + +
        +
        +
        +
        +
        +
        +
        +
        +
        category;?> + +
        +
        +
        +
        + link)) {?> +

        + title;?> + + + + + +

        + +

        title;?>

        + +
        +
        +
        +
        +
        +
        +
        +
          +
        • + +
          +
          +
          authorName;?>
          +
          +
          +
          +
        • +
        +
        +
        +
        +
        + + image)) {?> + <?php echo $p->title;?> + video)) {?> +
        + +
        + audio)) {?> + + quote)) {?> +
        + quote;?> +
        + + + body;?> +
        + + +
        + +
        + + + title, $p->url) ?> +
        + +
        + +
        +
        +
        +
        +

        +
        + tag;?> +
        +
        +
        + +
        +

        +
        +
        + + +
        +

        +
        +
        + +
        +
        +

        Tag Cloud

        +
        + +
        +
        +
        + + + + + +
        +
        +
        +
        +
        diff --git a/themes/tailwind/profile.html.php b/themes/tailwind/profile.html.php new file mode 100644 index 0000000..fdc2d4a --- /dev/null +++ b/themes/tailwind/profile.html.php @@ -0,0 +1,128 @@ + +
        +

        title;?> + + + +

        +
        + body;?> +
        +
        + + +
          + + body);?> +
        • +
          +
          +
          +
          +
          + +
          + + +
          +
          + image)) {?> + <?php echo $p->title;?> + video)) {?> + <?php echo $p->title;?> + + + + + audio)) {?> + + <?php echo $p->title;?> + + + + + + <?php echo $p->title;?> + +
          + + +
          +
          +
          +
          + link)) {?> +

          + title;?> + + + + + +

          + +

          + title;?> +

          + +
          + tag;?> +
          +
          +
          + + image)) {?> + <?php echo $p->title;?> + video)) {?> +
          + +
          + audio)) {?> + + + quote)) {?> +
          + quote;?> +
          + + + + quote) && $teaserType === 'trimmed'):?> +
          + quote;?> +
          + + + body, $p->url);?> +
          +
          + +
          + +
          + +
          +
          +
          +
        • + +
        + +
        + +
        + \ No newline at end of file diff --git a/themes/tailwind/static--front.html.php b/themes/tailwind/static--front.html.php new file mode 100644 index 0000000..c24521e --- /dev/null +++ b/themes/tailwind/static--front.html.php @@ -0,0 +1,111 @@ + +
        +

        title;?>

        + +
        + body;?> +
        +
        +

        +
        +
        + + +
          + + body);?> +
        • +
          +
          +
          +
          +
          + +
          + + +
          +
          + image)) {?> + <?php echo $p->title;?> + video)) {?> + <?php echo $p->title;?> + + + + + audio)) {?> + + <?php echo $p->title;?> + + + + + + <?php echo $p->title;?> + +
          + + +
          +
          +
          +
          + link)) {?> +

          + title;?> + + + + + +

          + +

          + title;?> +

          + +
          + tag;?> +
          +
          +
          + + image)) {?> + <?php echo $p->title;?> + video)) {?> +
          + +
          + audio)) {?> + + quote)) {?> +
          + quote;?> +
          + + + + quote) && $teaserType === 'trimmed'):?> +
          + quote;?> +
          + + + body, $p->url);?> +
          +
          + +
          + +
          + +
          +
          +
          +
        • + +
        + + + \ No newline at end of file diff --git a/themes/tailwind/static.html.php b/themes/tailwind/static.html.php new file mode 100644 index 0000000..d790c9f --- /dev/null +++ b/themes/tailwind/static.html.php @@ -0,0 +1,12 @@ + +
        +
        +

        title;?>

        + +
        +
        +
        + body;?> +
        +
        +
        \ No newline at end of file diff --git a/themes/twentyfifteen/404-search.html.php b/themes/twentyfifteen/404-search.html.php new file mode 100644 index 0000000..5fb5651 --- /dev/null +++ b/themes/twentyfifteen/404-search.html.php @@ -0,0 +1,12 @@ + +
        +
        +

        Search results not found!

        +
        +
        +

        Please search again, or would you like to try our homepage instead?

        +
        + +
        +
        +
        diff --git a/themes/twentyfifteen/404.html.php b/themes/twentyfifteen/404.html.php new file mode 100644 index 0000000..4864160 --- /dev/null +++ b/themes/twentyfifteen/404.html.php @@ -0,0 +1,10 @@ + +
        +
        +

        This page doesn't exist!

        +
        +
        +

        Please search to find what you're looking for or visit our homepage instead.

        + +
        +
        \ No newline at end of file diff --git a/themes/twentyfifteen/LICENSE.txt b/themes/twentyfifteen/LICENSE.txt new file mode 100644 index 0000000..845d4f2 --- /dev/null +++ b/themes/twentyfifteen/LICENSE.txt @@ -0,0 +1,22 @@ +Twenty Fifteen WordPress Theme, Copyright 2014-2015 WordPress.org & Automattic.com +Twenty Fifteen is distributed under the terms of the GNU GPL + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +Twenty Fifteen Theme bundles the following third-party resources: + +HTML5 Shiv v3.7.0, Copyright 2014 Alexander Farkas +Licenses: MIT/GPL2 +Source: https://github.com/aFarkas/html5shiv + +Genericons icon font, Copyright 2013-2015 Automattic.com +License: GNU GPL, Version 2 (or later) +Source: http://www.genericons.com \ No newline at end of file diff --git a/themes/twentyfifteen/README.md b/themes/twentyfifteen/README.md new file mode 100644 index 0000000..fac491d --- /dev/null +++ b/themes/twentyfifteen/README.md @@ -0,0 +1,10 @@ +# HTMLy Theme Twenty Fifteen +WordPress Twenty Fifteen ported to HTMLy. + +## Installations + - Upload and extract the zip file into themes directory. + - Activate it from HTMLy panel. + +## License + +See the LICENSE.txt diff --git a/themes/twentyfifteen/css/font.css b/themes/twentyfifteen/css/font.css new file mode 100644 index 0000000..5e39851 --- /dev/null +++ b/themes/twentyfifteen/css/font.css @@ -0,0 +1,60 @@ +@font-face { + font-family: 'Inconsolata'; + font-style: normal; + font-weight: 400; + src: local('Inconsolata'), url(https://fonts.gstatic.com/s/inconsolata/v12/BjAYBlHtW3CJxDcjzrnZCKg5eI2G47JWe0-AuFtD150.woff2) format('woff2'); +} +@font-face { + font-family: 'Inconsolata'; + font-style: normal; + font-weight: 700; + src: local('Inconsolata Bold'), local('Inconsolata-Bold'), url(https://fonts.gstatic.com/s/inconsolata/v12/AIed271kqQlcIRSOnQH0yasA81DAeuqoeYxDcSOJPMY.woff2) format('woff2'); +} +@font-face { + font-family: 'Noto Sans'; + font-style: normal; + font-weight: 400; + src: local('Noto Sans'), local('NotoSans'), url(https://fonts.gstatic.com/s/notosans/v6/erE3KsIWUumgD1j_Ca-V-1tXRa8TVwTICgirnJhmVJw.woff2) format('woff2'); +} +@font-face { + font-family: 'Noto Sans'; + font-style: normal; + font-weight: 700; + src: local('Noto Sans Bold'), local('NotoSans-Bold'), url(https://fonts.gstatic.com/s/notosans/v6/PIbvSEyHEdL91QLOQRnZ1xUOjZSKWg4xBWp_C_qQx0o.woff2) format('woff2'); +} +@font-face { + font-family: 'Noto Sans'; + font-style: italic; + font-weight: 400; + src: local('Noto Sans Italic'), local('NotoSans-Italic'), url(https://fonts.gstatic.com/s/notosans/v6/ByLA_FLEa-16SpQuTcQn4Kg5eI2G47JWe0-AuFtD150.woff2) format('woff2'); +} +@font-face { + font-family: 'Noto Sans'; + font-style: italic; + font-weight: 700; + src: local('Noto Sans Bold Italic'), local('NotoSans-BoldItalic'), url(https://fonts.gstatic.com/s/notosans/v6/9Z3uUWMRR7crzm1TjRicDqsA81DAeuqoeYxDcSOJPMY.woff2) format('woff2'); +} +@font-face { + font-family: 'Noto Serif'; + font-style: normal; + font-weight: 400; + src: local('Noto Serif'), local('NotoSerif'), url(https://fonts.gstatic.com/s/notoserif/v4/fVu1p3782bqS2z-CaJvp9vk_vArhqVIZ0nv9q090hN8.woff2) format('woff2'); +} +@font-face { + font-family: 'Noto Serif'; + font-style: normal; + font-weight: 700; + src: local('Noto Serif Bold'), local('NotoSerif-Bold'), url(https://fonts.gstatic.com/s/notoserif/v4/lJAvZoKA5NttpPc9yc6lPa9pE_tb3z3xWksRrNuit-E.woff2) format('woff2'); +} +@font-face { + font-family: 'Noto Serif'; + font-style: italic; + font-weight: 400; + src: local('Noto Serif Italic'), local('NotoSerif-Italic'), url(https://fonts.gstatic.com/s/notoserif/v4/HQXBIwLHsOJCNEQeX9kNzxUOjZSKWg4xBWp_C_qQx0o.woff2) format('woff2'); +} +@font-face { + font-family: 'Noto Serif'; + font-style: italic; + font-weight: 700; + src: local('Noto Serif Bold Italic'), local('NotoSerif-BoldItalic'), url(https://fonts.gstatic.com/s/notoserif/v4/Wreg0Be4tcFGM2t6VWytvF53N8cLMk3D27YV4RftBu4.woff2) format('woff2'); +} diff --git a/themes/twentyfifteen/css/ie.css b/themes/twentyfifteen/css/ie.css new file mode 100644 index 0000000..53de092 --- /dev/null +++ b/themes/twentyfifteen/css/ie.css @@ -0,0 +1,948 @@ +/* +Theme Name: Twenty Fifteen +Description: Global Styles for older IE versions (previous to IE9). +*/ + +body, +button, +input, +select, +textarea { + font-size: 19px; + line-height: 1.6842; +} + +button, +input { + line-height: normal; +} + +p, +address, +pre, +hr, +ul, +ol, +dl, +dd, +table { + margin-bottom: 1.6842em; +} + +ul, +ol { + margin-left: 0; +} + +li > ul, +li > ol, +blockquote > ul, +blockquote > ol { + margin-left: 1.3333em; +} + +blockquote { + border-color: inherit; + border-style: solid; + border-width: 0 0 0 4px; + font-size: 22px; + line-height: 1.8182; + margin-bottom: 1.8182em; + margin-left: -1.0909em; + padding-left: 0.9091em; +} + +blockquote > blockquote { + margin-left: 0; +} + +blockquote p { + margin-bottom: 1.8182em; +} + +blockquote cite, +blockquote small { + font-size: 19px; + line-height: 1.6842; +} + +pre { + line-height: 1.2632; +} + +.entry-content img, +.entry-summary img, +.page-content img, +.comment-content img, +.widget img { + max-width: 660px; +} + +img.size-full, +img.size-large, +img.header-image, +img.wp-post-image, +img[class*="align"], +img[class*="wp-image-"], +img[class*="attachment-"] { + height: auto; + width: auto; /* Prevent stretching of full-size and large-size images with height and width attributes in IE8 */ +} + +button, +input[type="button"], +input[type="reset"], +input[type="submit"], +.post-password-form input[type="submit"], +.widecolumn #submit, +.widecolumn .mu_register input[type="submit"] { + font-size: 16px; + padding: 0.8125em 1.625em; +} + +input[type="text"], +input[type="email"], +input[type="url"], +input[type="password"], +input[type="search"], +textarea { + padding: 0.5278em; +} + +.main-navigation { + font-size: 16px; + line-height: 1.5; + margin: 9.0909%; +} + +.main-navigation ul ul { + border-bottom: 0; + border-top: 0; + margin-left: 1em; +} + +.main-navigation a { + padding: 0.75em 0; +} + +.main-navigation .menu-item-has-children > a { + padding-right: 48px; +} + +.main-navigation .menu-item-description { + font-size: 13px; + line-height: 1.8462; + margin-top: 0; +} + +.social-navigation { + margin: 9.0909%; + max-width: 660px; + padding-top: 0; +} + +.social-navigation ul { + margin-bottom: -1.2632em; +} + +.social-navigation a { + width: 2.5263em; + height: 2.5263em; +} + +.secondary-toggle { + margin-top: -32px; + right: 7.6897%; + width: 64px; + height: 64px; +} + +.secondary-toggle:before { + line-height: 64px; +} + +.post-password-form label, +.post-navigation .meta-nav, +.comment-navigation, +.image-navigation, +.author-heading, +.author-bio, +.entry-footer, +.page-links a, +.page-links span, +.comment-metadata, +.pingback .edit-link, +.comment-list .reply, +.comment-notes, +.comment-awaiting-moderation, +.logged-in-as, +.comment-form label, +.form-allowed-tags, +.site-info, +.wp-caption-text, +.gallery-caption, +.entry-caption, +.widecolumn label, +.widecolumn .mu_register label { + font-size: 16px; +} + +.post-navigation .post-title { + font-size: 24px; + line-height: 1.1667; +} + +.pagination .nav-links { + min-height: 3.3684em; +} + +.pagination .page-numbers { + line-height: 3.3684em; + padding: 0 0.8421em; +} + +.pagination .prev, +.pagination .next { + padding: 0; + width: 64px; + height: 64px; +} + +.pagination .prev:before, +.pagination .next:before { + line-height: 64px; + width: 64px; + height: 64px; +} + +.image-navigation a { + display: block; + margin-bottom: 2em; +} + +.image-navigation .nav-previous, +.comment-navigation .nav-previous { + float: left; + width: 50%; +} +.image-navigation .nav-next, +.comment-navigation .nav-next { + float: right; + text-align: right; + width: 50%; +} + +.image-navigation .nav-previous a:before, +.image-navigation .nav-next a:after, +.comment-navigation .nav-previous a:before, +.comment-navigation .nav-next a:after { + font-size: 24px; + top: -1px; +} + +blockquote.alignleft, +.wp-caption.alignleft, +img.alignleft { + margin: 0.4211em 1.6842em 1.6842em 0; +} + +blockquote.alignright, +.wp-caption.alignright, +img.alignright { + margin: 0.4211em 0 1.6842em 1.6842em; +} + +blockquote.aligncenter, +.wp-caption.aligncenter, +img.aligncenter { + margin-top: 0.4211em; + margin-bottom: 1.6842em; +} + +.site-header { + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + padding: 0; +} + +.secondary { + background-color: #fff; + margin: 0 auto; + max-width: 807px; + padding: 0; +} + +.site-main { + padding: 7.6923% 0; +} + +.site-content { + margin: 0 auto; + max-width: 954px; +} + +.site-branding { + background-color: inherit; + margin: 0 auto; + max-width: 954px; + padding: 0; +} + +.site-title { + font-size: 32px; + line-height: 1.25; + margin: 7.6897% 7.6897% 0; +} + +.site-description { + background-color: inherit; + display: block; + filter: alpha(opacity=70); + font-size: 16px; + margin: 0.5em 7.6897% 7.6897%; +} + +.sidebar { + position: static !important; +} + +.widget-area { + clear: both; + margin: 9.0909% 9.0909% 0; + max-width: 660px; +} + +.widget { + font-size: 16px; + margin: 0 0 11.1111%; +} + +.widget p, +.widget address, +.widget hr, +.widget ul, +.widget ol, +.widget dl, +.widget dd, +.widget table, +.widget pre { + margin-bottom: 1.5em; +} + +.widget li > ul, +.widget li > ol { + margin-bottom: 0; +} + +.widget blockquote { + font-size: 19px; + line-height: 1.6842; + margin-bottom: 1.6842em; + margin-left: -1.2632em; + padding-left: 1.0526em; +} + +.widget blockquote > blockquote { + margin-left: 0; +} + +.widget blockquote p { + margin-bottom: 1.6842em; +} + +.widget blockquote cite, +.widget blockquote small { + font-size: 16px; + line-height: 1.5; +} + +.widget pre { + line-height: 1.5; + padding: 0.75em; +} + +.widget button, +.widget input, +.widget select, +.widget textarea { + line-height: 1.5; +} + +.widget button, +.widget input { + line-height: normal; +} + +.widget button, +.widget input[type="button"], +.widget input[type="reset"], +.widget input[type="submit"] { + font-size: 16px; + padding: 0.8125em 1.625em; +} + +.widget input[type="text"], +.widget input[type="email"], +.widget input[type="url"], +.widget input[type="password"], +.widget input[type="search"], +.widget textarea { + padding: 0.75em; +} + +.widget-title { + margin: 0 0 1.5em; +} + +.widget_calendar td, +.widget_calendar th { + line-height: 2.9375; +} + +.widget_calendar caption { + margin: 0 0 1.5em; +} + +.widget_archive li, +.widget_categories li, +.widget_links li, +.widget_meta li, +.widget_nav_menu li, +.widget_pages li, +.widget_recent_comments li, +.widget_recent_entries li { + padding: 0.7188em 0; +} + +.widget_categories .children, +.widget_nav_menu .sub-menu, +.widget_pages .children { + margin: 0.7188em 0 0 1em; + padding-top: 0.7188em; +} + +.widget_rss li { + margin-bottom: 1.5em; +} + +.widget_rss .rss-date, +.widget_rss cite { + font-size: 13px; + line-height: 1.8462; +} + +.widget .wp-caption-text, +.widget .gallery-caption { + line-height: 1.5; + padding: 0.5em 0; +} + +.hentry, +.page-header, +.page-content { + margin: 0 7.6923%; +} + +.hentry + .hentry, +.page-header + .hentry, +.page-header + .page-content { + margin-top: 7.6923%; +} + +.post-thumbnail { + margin-bottom: 2.9474em; +} + +.entry-header { + padding: 0 9.0909%; +} + +.entry-title, +.widecolumn h2 { + font-size: 39px; + line-height: 1.2308; + margin-bottom: 1.2308em; +} + +.entry-content, +.entry-summary { + padding: 0 9.0909% 9.0909%; +} + +.entry-content h1, +.entry-summary h1, +.page-content h1, +.comment-content h1 { + font-size: 39px; + line-height: 1.2308; + margin-top: 1.641em; + margin-bottom: 0.8205em; +} + +.entry-content h2, +.entry-summary h2, +.page-content h2, +.comment-content h2 { + font-size: 32px; + line-height: 1.25; + margin-top: 2em; + margin-bottom: 1em; +} + +.entry-content h3, +.entry-summary h3, +.page-content h3, +.comment-content h3 { + font-size: 27px; + line-height: 1.1852; + margin-top: 2.3704em; + margin-bottom: 1.1852em; +} + +.entry-content h4, +.entry-summary h4, +.page-content h4, +.comment-content h4 { + font-size: 22px; + line-height: 1.4545; + margin-top: 2.9091em; + margin-bottom: 1.4545em; +} + +.entry-content h5, +.entry-content h6, +.entry-summary h5, +.entry-summary h6, +.page-content h5, +.page-content h6, +.comment-content h5, +.comment-content h6 { + font-size: 19px; + line-height: 1.2632; + margin-top: 3.3684em; + margin-bottom: 1.6842em; +} + +.entry-content .more-link:after { + font-size: 24px; + top: 3px; +} + +.author-info { + margin: 0 9.0909%; + padding: 9.0909% 0; +} + +.author-info .avatar { + margin: 0 1.6842em 1.6842em 0; + width: 56px; + height: 56px; +} + +.author-link:after { + font-size: 24px; + top: 0; +} + +.entry-footer { + padding: 4.5454% 9.0909%; +} + +.posted-on:before, +.byline:before, +.cat-links:before, +.tags-links:before, +.comments-link:before, +.entry-format:before, +.edit-link:before, +.full-size-link:before { + top: 4px; +} + +.updated { + display: none; +} + +.updated.published { + display: inline; +} + +.page-header { + border-color: inherit; + border-style: solid; + border-width: 0 0 0 7px; + padding: 3.8461% 7.6923%; +} + +.page-title, +.taxonomy-description { + margin-left: -7px; +} + +.taxonomy-description { + padding-top: 0.4211em; +} + +.page-title, +.comments-title, +.comment-reply-title, +.post-navigation .post-title { + font-size: 27px; + line-height: 1.1852; +} + +.page-content { + padding: 7.6923%; +} + +.page-links { + margin-bottom: 1.4736em; +} + +.page-links a, +.page-links > span { + margin: 0 0.25em 0.25em 0; +} + +.format-aside .entry-title, +.format-image .entry-title, +.format-video .entry-title, +.format-quote .entry-title, +.format-gallery .entry-title, +.format-status .entry-title, +.format-link .entry-title, +.format-audio .entry-title, +.format-chat .entry-title { + font-size: 22px; + line-height: 1.4545; + margin-bottom: 32px; +} + +.format-link .entry-title a:after { + top: 0.125em; +} + +.comments-title { + margin-bottom: 1.4545em; +} + +.comment-list article, +.comment-list .pingback, +.comment-list .trackback { + padding: 1.6842em 0; +} + +.comment-list + .comment-respond, +.comment-navigation + .comment-respond { + padding-top: 1.6842em; +} + +.comment-list .children > li { + padding-left: 1.4737em; +} + +.comment-meta { + position: relative; +} + +.comment-author { + margin-bottom: 0; + padding-left: 4.6315em; +} + +.comment-author .avatar { + margin: 0; + position: absolute; + top: 3px; + left: 0; + width: 56px; + height: 56px; +} + +.comment-metadata { + line-height: 2; + padding-left: 5.5em; +} + +.comment-metadata .edit-link:before, +.pingback .edit-link:before { + top: 8px; +} + +.bypostauthor > article .fn:after { + top: 8px; + left: 6px; +} + +.comment-content ul, +.comment-content ol { + margin: 0 0 1.6842em 0; +} + +.comment-content li > ul, +.comment-content li > ol, +.comment-content blockquote > ul, +.comment-content blockquote > ol { + margin-left: 1.3333em; +} + +.comment-list .reply a { + padding: 0.4375em 0.875em; +} + +.comment-form, +.no-comments { + padding-top: 1.6842em; +} + +.comment-reply-title small a:before { + top: -1px; +} + +.comment-list .reply { + margin-top: 0; +} + +.site-footer { + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + margin: 0 auto; + max-width: 806px; + padding: 0; +} + +.site-info { + margin: 4.5454% 9.0909%; +} + +.post-navigation { + border-top: 0; + margin: 7.6923% 7.6923% 0; +} + +.post-navigation a { + padding: 4.5454% 9.0909%; +} + +.pagination { + border-top: 0; + margin: 7.6923% 7.6923% 0; + padding: 0; +} + +.pagination .page-numbers { + display: inline-block; +} + +.pagination .meta-nav { + display: none; +} + +.image-navigation { + padding: 0 9.0909%; +} + +.comments-area { + border-top: 0; + margin: 7.6923% 7.6923% 0; +} + +embed, +iframe, +object, +video { + margin-bottom: 1.6842em; +} + +.wp-audio-shortcode, +.wp-video, +.wp-playlist.wp-audio-playlist { + font-size: 19px; + margin-bottom: 1.6842em; +} + +.wp-caption, +.gallery { + margin-bottom: 1.6842em; +} + +.wp-caption-text, +.gallery-caption { + padding: 0.5em 0; +} + +.widecolumn { + margin: 7.6923%; +} + +.widecolumn .mu_alert { + margin-bottom: 1.6842em; +} + +.widecolumn p { + margin: 1.6842em 0; +} + +.widecolumn p + h2 { + margin-top: 1.641em; +} + +.widecolumn #key, +.widecolumn .mu_register #blog_title, +.widecolumn .mu_register #user_email, +.widecolumn .mu_register #blogname, +.widecolumn .mu_register #user_name { + font-size: 19px; +} + +.widecolumn .mu_register #blog_title, +.widecolumn .mu_register #user_email, +.widecolumn .mu_register #user_name { + margin: 0 0 0.421em; +} + + +/** + * RTL + */ + +.rtl ul, +.rtl ol { + margin-right: 0; + margin-left: auto; +} + +.rtl li > ul, +.rtl li > ol, +.rtl blockquote > ul, +.rtl blockquote > ol { + margin-right: 1.3333em; + margin-left: auto; +} + +.rtl blockquote { + border-width: 0 4px 0 0; + margin-right: -1.0909em; + margin-left: auto; + padding-right: 0.9091em; + padding-left: 0; +} + +.rtl blockquote > blockquote { + margin-right: 0; + margin-left: auto; +} + +.rtl .main-navigation ul ul { + margin-right: 1em; + margin-left: auto; +} + +.rtl .main-navigation .menu-item-has-children > a { + padding-right: 0; + padding-left: 48px; +} + +.rtl .secondary-toggle { + right: auto; + left: 7.6897%; +} + +.rtl .image-navigation .nav-previous, +.rtl .comment-navigation .nav-previous { + float: right; +} + +.rtl .image-navigation .nav-next, +.rtl .comment-navigation .nav-next { + float: left; + text-align: left; +} + +.rtl blockquote.alignright, +.rtl .wp-caption.alignright +.rtl img.alignright { + margin: 0.4211em 0 1.6842em 1.6842em; +} + +.rtl blockquote.alignleft, +.rtl .wp-caption.alignleft, +.rtl img.alignleft { + margin: 0.4211em 1.6842em 1.6842em 0; +} + +.rtl .widget blockquote { + margin-right: -1.2632em; + margin-left: auto; + padding-right: 1.0526em; + padding-left: 0; +} + +.rtl .widget blockquote > blockquote { + margin-right: 0; + margin-left: auto; +} + +.rtl .widget_categories .children, +.rtl .widget_nav_menu .sub-menu, +.rtl .widget_pages .children { + margin: 0.7188em 1em 0 0; +} + +.rtl .page-links a, +.rtl .page-links > span { + margin: 0 0 0.25em 0.25em; +} + +.rtl .author-info .avatar { + margin: 0 0 1.6842em 1.6842em; +} + +.rtl .page-header { + border-width: 0 7px 0 0; +} + +.rtl .page-title, +.rtl .taxonomy-description { + margin-right: -7px; + margin-left: auto; +} + +.rtl .comment-list .children > li { + padding-right: 1.4737em; + padding-left: 0; +} + +.rtl .comment-author { + padding-right: 4.6315em; + padding-left: 0; +} + +.rtl .comment-author .avatar { + right: 0; + left: auto; +} + +.rtl .comment-content ul, +.rtl .comment-content ol { + margin-right: 0; + margin-left: auto; +} + +.rtl .comment-content li > ul, +.rtl .comment-content li > ol, +.rtl .comment-content blockquote > ul, +.rtl .comment-content blockquote > ol { + margin-right: 1.3333em; + margin-left: auto; +} + +.rtl .comment-metadata { + padding-right: 5.5em; + padding-left: 0; +} + +.rtl .bypostauthor > article .fn:after { + right: 6px; + left: auto; +} diff --git a/themes/twentyfifteen/css/ie7.css b/themes/twentyfifteen/css/ie7.css new file mode 100644 index 0000000..6f8cd43 --- /dev/null +++ b/themes/twentyfifteen/css/ie7.css @@ -0,0 +1,89 @@ +/* +Theme Name: Twenty Fifteen +Description: IE7 specific style. +*/ + +.screen-reader-text { + clip: rect(1px 1px 1px 1px); +} + +.secondary-toggle { + color: #333; + font-size: 16px; + line-height: 60px; + width: auto; +} + +.pagination .prev, +.pagination .next { + font-size: 16px; + font-weight: 700; + line-height: 64px; + padding: 0 19px; + width: auto; +} + +.image-navigation, +.comment-navigation { + width: 662px; +} + +.post-navigation { + text-align: left; +} + +.site-main { + text-align: center; +} + +.hentry { + margin-bottom: 7.6923%; + text-align: left; + width: 808px; +} + +.page-header { + margin-bottom: 7.6923%; + text-align: left; +} + +.comments-area { + text-align: left; +} + +.comment-list, +.comment-navigation { + margin-bottom: 1.6471em; +} + +.gallery-columns-2 .gallery-item { + max-width: 48%; +} + +.gallery-columns-3 .gallery-item { + max-width: 31%; +} + +.gallery-columns-4 .gallery-item { + max-width: 22%; +} + +.gallery-columns-5 .gallery-item { + max-width: 17%; +} + +.gallery-columns-6 .gallery-item { + max-width: 13.5%; +} + +.gallery-columns-7 .gallery-item { + max-width: 11%; +} + +.gallery-columns-8 .gallery-item { + max-width: 9.5%; +} + +.gallery-columns-9 .gallery-item { + max-width: 8%; +} diff --git a/themes/twentyfifteen/css/style.css b/themes/twentyfifteen/css/style.css new file mode 100644 index 0000000..c40ee97 --- /dev/null +++ b/themes/twentyfifteen/css/style.css @@ -0,0 +1,6165 @@ +/* +Theme Name: Twenty Fifteen +Theme URI: https://wordpress.org/themes/twentyfifteen/ +Author: the WordPress team +Author URI: https://wordpress.org/ +Description: Our 2015 default theme is clean, blog-focused, and designed for clarity. Twenty Fifteen's simple, straightforward typography is readable on a wide variety of screen sizes, and suitable for multiple languages. We designed it using a mobile-first approach, meaning your content takes center-stage, regardless of whether your visitors arrive by smartphone, tablet, laptop, or desktop computer. +Version: 1.4 +License: GNU General Public License v2 or later +License URI: http://www.gnu.org/licenses/gpl-2.0.html +Tags: black, blue, gray, pink, purple, white, yellow, dark, light, two-columns, left-sidebar, fixed-layout, responsive-layout, accessibility-ready, custom-background, custom-colors, custom-header, custom-menu, editor-style, featured-images, microformats, post-formats, rtl-language-support, sticky-post, threaded-comments, translation-ready +Text Domain: twentyfifteen + +This theme, like WordPress, is licensed under the GPL. +Use it to make something cool, have fun, and share what you've learned with others. +*/ + + +/** + * Table of Contents + * + * 1.0 - Reset + * 2.0 - Genericons + * 3.0 - Typography + * 4.0 - Elements + * 5.0 - Forms + * 6.0 - Navigations + * 6.1 - Links + * 6.2 - Menus + * 7.0 - Accessibility + * 8.0 - Alignments + * 9.0 - Clearings + * 10.0 - Header + * 11.0 - Widgets + * 12.0 - Content + * 12.1 - Posts and pages + * 12.2 - Post Formats + * 12.3 - Comments + * 13.0 - Footer + * 14.0 - Media + * 14.1 - Captions + * 14.2 - Galleries + * 15.0 - Multisite + * 16.0 - Media Queries + * 16.1 - Mobile Large + * 16.2 - Tablet Small + * 16.3 - Tablet Large + * 16.4 - Desktop Small + * 16.5 - Desktop Medium + * 16.6 - Desktop Large + * 16.7 - Desktop X-Large + * 17.0 - Print + */ + + +/** + * 1.0 - Reset + * + * Resetting and rebuilding styles have been helped along thanks to the fine + * work of Eric Meyer, Nicolas Gallagher, Jonathan Neal, and Blueprint. + */ + +html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td { + border: 0; + font-family: inherit; + font-size: 100%; + font-style: inherit; + font-weight: inherit; + margin: 0; + outline: 0; + padding: 0; + vertical-align: baseline; +} + +html { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + font-size: 62.5%; + overflow-y: scroll; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +*, +*:before, +*:after { + -webkit-box-sizing: inherit; + -moz-box-sizing: inherit; + box-sizing: inherit; +} + +body { + background: #f1f1f1; +} + +article, +aside, +details, +figcaption, +figure, +footer, +header, +main, +nav, +section { + display: block; +} + +ol, +ul { + list-style: none; +} + +table { + border-collapse: separate; + border-spacing: 0; +} + +caption, +th, +td { + font-weight: normal; + text-align: left; +} + +blockquote:before, +blockquote:after, +q:before, +q:after { + content: ""; +} + +blockquote, +q { + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; + quotes: none; +} + +a:focus { + outline: 2px solid #c1c1c1; + outline: 2px solid rgba(51, 51, 51, 0.3); +} + +a:hover, +a:active { + outline: 0; +} + +a img { + border: 0; +} + + +/** + * 2.0 - Genericons + */ + +.social-navigation a:before, +.secondary-toggle:before, +.dropdown-toggle-button:after, +.bypostauthor > article .fn:after, +.comment-reply-title small a:before, +.comment-navigation .nav-next a:after, +.comment-navigation .nav-previous a:before, +.posted-on:before, +.byline:before, +.cat-links:before, +.tags-links:before, +.comments-link:before, +.entry-format:before, +.edit-link:before, +.full-size-link:before, +.pagination .prev:before, +.pagination .next:before, +.image-navigation a:before, +.image-navigation a:after, +.format-link .entry-title a:after, +.entry-content .more-link:after, +.entry-summary .more-link:after, +.author-link:after { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: inline-block; + font-family: "Genericons"; + font-size: 16px; + font-style: normal; + font-weight: normal; + font-variant: normal; + line-height: 1; + speak: none; + text-align: center; + text-decoration: inherit; + text-transform: none; + vertical-align: top; +} + + +/** + * 3.0 Typography + */ + +body, +button, +input, +select, +textarea { + color: #333; + font-family: "Noto Serif", serif; + font-size: 15px; + font-size: 1.5rem; + line-height: 1.6; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + clear: both; + font-weight: 700; +} + +p { + margin-bottom: 1.6em; +} + +b, +strong { + font-weight: 700; +} + +dfn, +cite, +em, +i { + font-style: italic; +} + +blockquote { + border-left: 4px solid #707070; + border-left: 4px solid rgba(51, 51, 51, 0.7); + color: #707070; + color: rgba(51, 51, 51, 0.7); + font-size: 18px; + font-size: 1.8rem; + font-style: italic; + line-height: 1.6667; + margin-bottom: 1.6667em; + padding-left: 0.7778em; +} + +blockquote p { + margin-bottom: 1.6667em; +} + +blockquote > p:last-child { + margin-bottom: 0; +} + +blockquote cite, +blockquote small { + color: #333; + font-size: 15px; + font-size: 1.5rem; + font-family: "Noto Sans", sans-serif; + line-height: 1.6; +} + +blockquote em, +blockquote i, +blockquote cite { + font-style: normal; +} + +blockquote strong, +blockquote b { + font-weight: 400; +} + +address { + font-style: italic; + margin: 0 0 1.6em; +} + +code, +kbd, +tt, +var, +samp, +pre { + font-family: Inconsolata, monospace; + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +pre { + background-color: transparent; + background-color: rgba(0, 0, 0, 0.01); + border: 1px solid #eaeaea; + border: 1px solid rgba(51, 51, 51, 0.1); + line-height: 1.2; + margin-bottom: 1.6em; + max-width: 100%; + overflow: auto; + padding: 0.8em; + white-space: pre; + white-space: pre-wrap; + word-wrap: break-word; +} + +abbr[title] { + border-bottom: 1px dotted #eaeaea; + border-bottom: 1px dotted rgba(51, 51, 51, 0.1); + cursor: help; +} + +mark, +ins { + background-color: #fff9c0; + text-decoration: none; +} + +sup, +sub { + font-size: 75%; + height: 0; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + bottom: 1ex; +} + +sub { + top: .5ex; +} + +small { + font-size: 75%; +} + +big { + font-size: 125%; +} + + +/** + * 4.0 Elements + */ + +hr { + background-color: #eaeaea; + background-color: rgba(51, 51, 51, 0.1); + border: 0; + height: 1px; + margin-bottom: 1.6em; +} + +ul, +ol { + margin: 0 0 1.6em 1.3333em; +} + +ul { + list-style: disc; +} + +ol { + list-style: decimal; +} + +li > ul, +li > ol { + margin-bottom: 0; +} + +dl { + margin-bottom: 1.6em; +} + +dt { + font-weight: bold; +} + +dd { + margin-bottom: 1.6em; +} + +table, +th, +td { + border: 1px solid #eaeaea; + border: 1px solid rgba(51, 51, 51, 0.1); +} + +table { + border-collapse: separate; + border-spacing: 0; + border-width: 1px 0 0 1px; + margin: 0 0 1.6em; + table-layout: fixed; /* Prevents HTML tables from becoming too wide */ + width: 100%; +} + +caption, +th, +td { + font-weight: normal; + text-align: left; +} + +th { + border-width: 0 1px 1px 0; + font-weight: 700; +} + +td { + border-width: 0 1px 1px 0; +} + +th, td { + padding: 0.4em; +} + +img { + -ms-interpolation-mode: bicubic; + border: 0; + height: auto; + max-width: 100%; + vertical-align: middle; +} + +figure { + margin: 0; +} + +del { + opacity: 0.8; +} + +/* Placeholder text color -- selectors need to be separate to work. */ + +::-webkit-input-placeholder { + color: rgba(51, 51, 51, 0.7); + font-family: "Noto Sans", sans-serif; +} + +:-moz-placeholder { + color: rgba(51, 51, 51, 0.7); + font-family: "Noto Sans", sans-serif; +} + +::-moz-placeholder { + color: rgba(51, 51, 51, 0.7); + font-family: "Noto Sans", sans-serif; + opacity: 1; /* Since FF19 lowers the opacity of the placeholder by default */ +} + +:-ms-input-placeholder { + color: rgba(51, 51, 51, 0.7); + font-family: "Noto Sans", sans-serif; +} + + +/** + * 5.0 Forms + */ + +button, +input, +select, +textarea { + background-color: #f7f7f7; + border-radius: 0; + font-size: 16px; + font-size: 1.6rem; + line-height: 1.5; + margin: 0; + max-width: 100%; + vertical-align: baseline; +} + +button, +input { + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; + line-height: normal; +} + +input, +textarea { + background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, 0)); /* Removing the inner shadow on iOS inputs */ + border: 1px solid #eaeaea; + border: 1px solid rgba(51, 51, 51, 0.1); + color: #707070; + color: rgba(51, 51, 51, 0.7); +} + +input:focus, +textarea:focus { + background-color: #fff; + border: 1px solid #c1c1c1; + border: 1px solid rgba(51, 51, 51, 0.3); + color: #333; +} + +input:focus, +select:focus { + outline: 2px solid #c1c1c1; + outline: 2px solid rgba(51, 51, 51, 0.3); +} + +button[disabled], +input[disabled], +select[disabled], +textarea[disabled] { + cursor: default; + opacity: .5; +} + +button, +input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + background-color: #333; + border: 0; + color: #fff; + cursor: pointer; + font-family: "Noto Sans", sans-serif; + font-size: 12px; + font-size: 1.2rem; + font-weight: 700; + padding: 0.7917em 1.5em; + text-transform: uppercase; +} + +button:hover, +input[type="button"]:hover, +input[type="reset"]:hover, +input[type="submit"]:hover, +button:focus, +input[type="button"]:focus, +input[type="reset"]:focus, +input[type="submit"]:focus { + background-color: #707070; + background-color: rgba(51, 51, 51, 0.7); + outline: 0; +} + +input[type="search"] { + -webkit-appearance: textfield; +} + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +input[type="text"], +input[type="email"], +input[type="url"], +input[type="password"], +input[type="search"], +textarea { + padding: 0.375em; + width: 100%; +} + +textarea { + overflow: auto; + vertical-align: top; +} + +input[type="text"]:focus, +input[type="email"]:focus, +input[type="url"]:focus, +input[type="password"]:focus, +input[type="search"]:focus, +textarea:focus { + outline: 0; +} + +.post-password-form { + position: relative; +} + +.post-password-form label { + color: #707070; + color: rgba(51, 51, 51, 0.7); + display: block; + font-family: "Noto Sans", sans-serif; + font-size: 12px; + font-size: 1.2rem; + font-weight: 700; + letter-spacing: 0.04em; + line-height: 1.5; + text-transform: uppercase; +} + +.post-password-form input[type="submit"] { + padding: 0.7917em; + position: absolute; + right: 0; + bottom: 0; +} + +input[type="checkbox"], +input[type="radio"] { + padding: 0; +} + +.search-form input[type="submit"], +.widget .search-form input[type="submit"] { + padding: 0; +} + + +/** + * 6.0 Navigations + */ + + +/** + * 6.1 Links + */ + +a { + color: #333; + text-decoration: none; +} + +a:hover, +a:focus { + color: #707070; + color: rgba(51, 51, 51, 0.7); +} + + +/** + * 6.2 Menus + */ + +.main-navigation a { + display: block; + padding: 0.8em 0; + position: relative; + text-decoration: none; +} + +.main-navigation ul { + list-style: none; + margin: 0; +} + +.main-navigation ul ul { + display: none; + margin-left: 0.8em; +} + +.main-navigation ul .toggled-on { + display: block; +} + +.main-navigation li { + border-top: 1px solid #eaeaea; + border-top: 1px solid rgba(51, 51, 51, 0.1); + position: relative; +} + +.main-navigation .current-menu-item > a, +.main-navigation .current-menu-ancestor > a { + font-weight: 700; +} + +.main-navigation .nav-menu > ul > li:first-child, +.main-navigation .nav-menu > li:first-child { + border-top: 0; +} + +.main-navigation .menu-item-has-children > a { + padding-right: 48px; +} + +.main-navigation .menu-item-description { + color: #707070; + color: rgba(51, 51, 51, 0.7); + font-family: "Noto Sans", sans-serif; + font-size: 12px; + font-size: 1.2rem; + font-weight: 400; + line-height: 1.5; + margin-top: 0.5em; +} + +.no-js .main-navigation ul ul { + display: block; +} + +.dropdown-toggle-button { + background-color: transparent; + border: 0; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + content: ""; + height: 42px; + padding: 0; + position: absolute; + text-transform: lowercase; /* Stop screen readers to read the text as capital letters */ + top: 3px; + right: 0; + width: 42px; +} + +.dropdown-toggle-button:after { + color: #333; + content: "\f431"; + font-size: 24px; + line-height: 42px; + position: relative; + top: 0; + left: 1px; + width: 42px; +} + +.dropdown-toggle-button:hover, +.dropdown-toggle-button:focus { + background-color: #eaeaea; + background-color: rgba(51, 51, 51, 0.1); +} + +.dropdown-toggle-button:focus { + outline: 1px solid #c1c1c1; + outline: 1px solid rgba(51, 51, 51, 0.3); +} + +.dropdown-toggle-button.toggle-on:after { + content: "\f432"; +} + +.social-navigation { + margin: 9.0909% 0; +} + +.social-navigation ul { + list-style: none; + margin: 0 0 -1.6em 0; +} + +.social-navigation li { + float: left; +} + +.social-navigation a { + display: block; + height: 3.2em; + position: relative; + width: 3.2em; +} + +.social-navigation a:before { + content: "\f415"; + font-size: 24px; + position: absolute; + top: 0; + left: 0; +} + +.social-navigation a[href*="codepen.io"]:before { + content: "\f216"; +} + +.social-navigation a[href*="digg.com"]:before { + content: "\f221"; +} + +.social-navigation a[href*="dribbble.com"]:before { + content: "\f201"; +} + +.social-navigation a[href*="dropbox.com"]:before { + content: "\f225"; +} + +.social-navigation a[href*="facebook.com"]:before { + content: "\f203"; +} + +.social-navigation a[href*="flickr.com"]:before { + content: "\f211"; +} + +.social-navigation a[href*="foursquare.com"]:before { + content: "\f226"; +} + +.social-navigation a[href*="plus.google.com"]:before { + content: "\f206"; +} + +.social-navigation a[href*="github.com"]:before { + content: "\f200"; +} + +.social-navigation a[href*="instagram.com"]:before { + content: "\f215"; +} + +.social-navigation a[href*="linkedin.com"]:before { + content: "\f208"; +} + +.social-navigation a[href*="pinterest.com"]:before { + content: "\f210"; +} + +.social-navigation a[href*="getpocket.com"]:before { + content: "\f224"; +} + +.social-navigation a[href*="polldaddy.com"]:before { + content: "\f217"; +} + +.social-navigation a[href*="reddit.com"]:before { + content: "\f222"; +} + +.social-navigation a[href*="stumbleupon.com"]:before { + content: "\f223"; +} + +.social-navigation a[href*="tumblr.com"]:before { + content: "\f214"; +} + +.social-navigation a[href*="twitter.com"]:before { + content: "\f202"; +} + +.social-navigation a[href*="vimeo.com"]:before { + content: "\f212"; +} + +.social-navigation a[href*="wordpress.com"]:before, +.social-navigation a[href*="wordpress.org"]:before { + content: "\f205"; +} + +.social-navigation a[href*="youtube.com"]:before { + content: "\f213"; +} + +.social-navigation a[href*="mailto:"]:before { + content: "\f410"; +} + +.social-navigation a[href*="spotify.com"]:before { + content: "\f515"; +} + +.social-navigation a[href*="twitch.tv"]:before { + content: "\f516"; +} + +.social-navigation a[href*="/feed"]:before { + content: "\f413"; +} + +.social-navigation a[href*="path.com"]:before { + content: "\f219"; +} + +.social-navigation a[href*="skype.com"]:before { + content: "\f220"; +} + +.social-navigation a[href*="tiktok.com"]:before { + content:"\f108"; +} + +.social-navigation a[href*="linkedin.com"]:before { + content:"\f207"; +} + +.social-navigation a.social-logo-mastodon:before { + content:"\f10a"; +} + +.secondary-toggle { + background-color: transparent; + border: 1px solid #eaeaea; + border: 1px solid rgba(51, 51, 51, 0.1); + height: 42px; + overflow: hidden; + padding: 0; + position: absolute; + top: 50%; + right: 0; + text-align: center; + -webkit-transform: translateY(-50%); + -ms-transform: translateY(-50%); + transform: translateY(-50%); + width: 42px; +} + +.secondary-toggle:before { + color: #333; + content: "\f419"; + line-height: 40px; + width: 40px; +} + +.secondary-toggle:hover, +.secondary-toggle:focus { + background-color: transparent; + border: 1px solid #c1c1c1; + border: 1px solid rgba(51, 51, 51, 0.3); + outline: 0; +} + +.secondary-toggle.toggled-on:before { + content: "\f405"; + font-size: 32px; + position: relative; + top: 1px; + left: -1px; +} + +.post-navigation { + background-color: #fff; + border-top: 1px solid #eaeaea; + border-top: 1px solid rgba(51, 51, 51, 0.1); + font-weight: 700; +} + +.post-navigation a { + display: block; + padding: 3.8461% 7.6923%; +} + +.post-navigation span { + display: block; +} + +.post-navigation .meta-nav { + color: #707070; + color: rgba(51, 51, 51, 0.7); + font-family: "Noto Sans", sans-serif; + font-size: 12px; + font-size: 1.2rem; + letter-spacing: 0.04em; + line-height: 1.5; + position: relative; + text-transform: uppercase; + z-index: 2; +} + +.post-navigation .post-title { + font-family: "Noto Serif", serif; + font-size: 18px; + font-size: 1.8rem; + line-height: 1.3333; + position: relative; + z-index: 2; +} + +.post-navigation .nav-next, +.post-navigation .nav-previous { + background-position: center; + background-size: cover; + position: relative; +} + +.post-navigation a:before { + content: ""; + display: block; + height: 100%; + position: absolute; + top: 0; + left: 0; + width: 100%; + z-index: 1; +} + +.post-navigation a:hover:before, +.post-navigation a:focus:before { + opacity: 0.5; +} + +.post-navigation .meta-nav { + opacity: 0.8; +} + +.post-navigation div + div { + border-top: 1px solid #eaeaea; + border-top: 1px solid rgba(51, 51, 51, 0.1); +} + +.pagination { + background-color: #fff; + border-top: 1px solid rgba(51, 51, 51, 0.1); + font-family: "Noto Sans", sans-serif; +} + +.pagination .nav-links { + min-height: 3.2em; + position: relative; + text-align: center; +} + +/* reset screen-reader-text */ +.pagination .current .screen-reader-text { + position: static !important; +} + +.pagination .page-numbers { + display: none; + line-height: 3.2em; + padding: 0 0.6667em; +} + +.pagination .page-numbers.current { + text-transform: uppercase; +} + +.pagination .current { + display: inline-block; + font-weight: 700; +} + +.pagination .prev, +.pagination .next { + -webkit-tap-highlight-color: rgba(255, 255, 255, 0.3); + background-color: #333; + color: #fff; + display: inline-block; + height: 48px; + overflow: hidden; + padding: 0; + position: absolute; + width: 48px; +} + +.pagination .prev:before, +.pagination .next:before { + font-size: 32px; + height: 48px; + line-height: 48px; + position: relative; + width: 48px; +} + +.pagination .prev:hover, +.pagination .prev:focus, +.pagination .next:hover, +.pagination .next:focus { + background-color: #707070; + background-color: rgba(51, 51, 51, 0.7); +} + +.pagination .prev { + left: 0; +} + +.pagination .prev:before { + content: "\f430"; + left: -1px; +} + +.pagination .next { + right: 0; +} + +.pagination .next:before { + content: "\f429"; + right: -1px; +} + +.image-navigation, +.comment-navigation { + color: #707070; + color: rgba(51, 51, 51, 0.7); + font-size: 12px; + font-size: 1.2rem; + font-family: "Noto Sans", sans-serif; + font-weight: 700; + line-height: 1.5; + text-transform: uppercase; +} + +.image-navigation a, +.comment-navigation a { + color: #707070; + color: rgba(51, 51, 51, 0.7); +} + +.image-navigation a:hover, +.image-navigation a:focus, +.comment-navigation a:hover, +.comment-navigation a:focus { + color: #333; +} + +.image-navigation .nav-previous:not(:empty), +.image-navigation .nav-next:not(:empty), +.comment-navigation .nav-previous:not(:empty), +.comment-navigation .nav-next:not(:empty) { + display: inline-block; +} + +.image-navigation .nav-previous:not(:empty) + .nav-next:not(:empty):before, +.comment-navigation .nav-previous:not(:empty) + .nav-next:not(:empty):before { + content: "\2215"; + font-weight: 400; + margin: 0 0.7em; +} + +.image-navigation .nav-previous a:before, +.comment-navigation .nav-previous a:before { + content: "\f430"; + margin-right: 0.2em; + position: relative; +} + +.image-navigation .nav-next a:after, +.comment-navigation .nav-next a:after { + content: "\f429"; + margin-left: 0.2em; + position: relative; +} + +.comment-navigation { + border-top: 1px solid #eaeaea; + border-top: 1px solid rgba(51, 51, 51, 0.1); + border-bottom: 1px solid #eaeaea; + border-bottom: 1px solid rgba(51, 51, 51, 0.1); + padding: 2em 0; +} + +.comments-title + .comment-navigation { + border-bottom: 0; +} + +.image-navigation { + padding: 0 7.6923%; +} + +.image-navigation .nav-previous:not(:empty), +.image-navigation .nav-next:not(:empty) { + margin-bottom: 2em; +} + + +/** + * 7.0 Accessibility + */ + +/* Text meant only for screen readers */ +.says, +.screen-reader-text { + clip: rect(1px, 1px, 1px, 1px); + height: 1px; + overflow: hidden; + position: absolute !important; + width: 1px; +} + +/* must have higher specificity than alternative color schemes inline styles */ +.site .skip-link { + background-color: #f1f1f1; + box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.2); + color: #21759b; + display: block; + font: bold 14px/normal "Noto Sans", sans-serif; + left: -9999em; + outline: none; + padding: 15px 23px 14px; + text-decoration: none; + text-transform: none; + top: -9999em; +} + +.logged-in .site .skip-link { + box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6); + font: bold 14px/normal "Open Sans", sans-serif; +} + +.site .skip-link:focus { + clip: auto; + height: auto; + left: 6px; + top: 7px; + width: auto; + z-index: 100000; +} + + +/** + * 8.0 Alignments + */ + +.alignleft { + display: inline; + float: left; +} + +.alignright { + display: inline; + float: right; +} + +.aligncenter { + display: block; + margin-right: auto; + margin-left: auto; +} + +blockquote.alignleft, +.wp-caption.alignleft, +img.alignleft { + margin: 0.4em 1.6em 1.6em 0; +} + +blockquote.alignright, +.wp-caption.alignright, +img.alignright { + margin: 0.4em 0 1.6em 1.6em; +} + +blockquote.aligncenter, +.wp-caption.aligncenter, +img.aligncenter { + clear: both; + margin-top: 0.4em; + margin-bottom: 1.6em; +} + +.wp-caption.alignleft, +.wp-caption.alignright, +.wp-caption.aligncenter { + margin-bottom: 1.2em; +} + + +/** + * 9.0 Clearings + */ + +.clear:before, +.clear:after, +.site:before, +.site:after, +.entry-content:before, +.entry-content:after, +.comment-content:before, +.comment-content:after, +.site-content:before, +.site-content:after, +.nav-links:before, +.nav-links:after, +.comment-navigation:before, +.comment-navigation:after, +.social-navigation ul:before, +.social-navigation ul:after, +.textwidget:before, +.textwidget:after { + content: ""; + display: table; +} + +.clear:after, +.site:after, +.entry-content:after, +.comment-content:after, +.site-content:after, +.nav-links:after, +.comment-navigation:after, +.social-navigation ul:after, +.textwidget:after { + clear: both; +} + + +/** + * 10.0 Header + */ + +.site-header { + background-color: #fff; + border-bottom: 1px solid rgba(51, 51, 51, 0.1); + padding: 7.6923%; +} + +.site-branding { + min-height: 2em; + padding-right: 60px; + position: relative; +} + +.site-title { + font-family: "Noto Sans", sans-serif; + font-size: 22px; + font-size: 2.2rem; + font-weight: 700; + line-height: 1.3636; + margin-bottom: 0; +} + +.site-description { + display: none; + font-family: "Noto Sans", sans-serif; + font-size: 12px; + font-size: 1.2rem; + font-weight: 400; + line-height: 1.5; + margin: 0.5em 0 0; + opacity: 0.7; +} + + +/** + * 11.0 Widgets + */ + +.widget { + color: #707070; + color: rgba(51, 51, 51, 0.7); + -webkit-hyphens: auto; + -moz-hyphens: auto; + -ms-hyphens: auto; + hyphens: auto; + margin: 0 auto 9.09090%; + width: 100%; + word-wrap: break-word; +} + +.widget pre { + line-height: 1.2; +} + +.widget button, +.widget input, +.widget select, +.widget textarea { + font-size: 16px; + font-size: 1.6rem; + line-height: 1.5; +} + +.widget button, +.widget input { + line-height: normal; +} + +.widget button, +.widget input[type="button"], +.widget input[type="reset"], +.widget input[type="submit"] { + font-size: 12px; + font-size: 1.2rem; + padding: 0.7917em 1.5833em; +} + +.widget input[type="text"], +.widget input[type="email"], +.widget input[type="url"], +.widget input[type="password"], +.widget input[type="search"], +.widget textarea { + padding: 0.375em; +} + +.widget-title { + color: #333; + font-family: "Noto Sans", sans-serif; + margin: 0 0 1.6em; + letter-spacing: 0.04em; + text-transform: uppercase; +} + +.widget > :last-child { + margin-bottom: 0; +} + +.widget_calendar table { + margin: 0; +} + +.widget_calendar td, +.widget_calendar th { + line-height: 2.3333; + text-align: center; + padding: 0; +} + +.widget_calendar caption { + font-family: "Noto Serif", serif; + font-weight: 700; + margin: 0 0 1.6em; + letter-spacing: 0.04em; + text-transform: uppercase; +} + +.widget_calendar tbody a { + -webkit-tap-highlight-color: rgba(255, 255, 255, 0.3); + background-color: #333; + color: #fff; + display: block; + font-weight: 700; +} + +.widget_calendar tbody a:hover, +.widget_calendar tbody a:focus { + background-color: #707070; + background-color: rgba(51, 51, 51, 0.7); + color: #fff; +} + +.widget_archive a, +.widget_categories a, +.widget_links a, +.widget_meta a, +.widget_nav_menu a, +.widget_pages a, +.widget_recent_comments a, +.widget_recent_entries a { + border: 0; +} + +.widget_archive ul, +.widget_categories ul, +.widget_links ul, +.widget_meta ul, +.widget_nav_menu ul, +.widget_pages ul, +.widget_recent_comments ul, +.widget_recent_entries ul { + list-style: none; + margin: 0; +} + +.widget_archive li, +.widget_categories li, +.widget_links li, +.widget_meta li, +.widget_nav_menu li, +.widget_pages li, +.widget_recent_comments li, +.widget_recent_entries li { + border-top: 1px solid #eaeaea; + border-top: 1px solid rgba(51, 51, 51, 0.1); + padding: 0.7667em 0; +} + +.widget_archive li:first-child, +.widget_categories li:first-child, +.widget_links li:first-child, +.widget_meta li:first-child, +.widget_nav_menu li:first-child, +.widget_pages li:first-child, +.widget_recent_comments li:first-child, +.widget_recent_entries li:first-child { + border-top: 0; + padding-top: 0; +} + +.widget_archive li:last-child, +.widget_categories li:last-child, +.widget_links li:last-child, +.widget_meta li:last-child, +.widget_nav_menu li:last-child, +.widget_pages li:last-child, +.widget_recent_comments li:last-child, +.widget_recent_entries li:last-child { + padding-bottom: 0; +} + +.widget_categories .children, +.widget_nav_menu .sub-menu, +.widget_pages .children { + border-top: 1px solid #eaeaea; + border-top: 1px solid rgba(51, 51, 51, 0.1); + margin: 0.7667em 0 0 0.8em; + padding-top: 0.7667em; +} + +.widget_recent_entries .post-date { + display: block; +} + +.widget_rss ul { + list-style: none; + margin: 0; +} + +.widget_rss li { + margin-bottom: 1.6em; +} + +.widget_rss ul:last-child, +.widget_rss li:last-child { + margin-bottom: 0; +} + +.widget_rss .rsswidget { + border: 0; + font-weight: 700; +} + +.widget_rss .rsswidget img { + margin-top: -4px; +} + +.widget_rss .rss-date, +.widget_rss cite { + font-family: "Noto Sans", sans-serif; + font-size: 12px; + font-size: 1.2rem; + font-style: normal; + display: block; + line-height: 2; + opacity: 0.8; +} + +.textwidget > :last-child { + margin-bottom: 0; +} + +.textwidget a { + border-bottom: 1px solid #333; +} + +.textwidget a:hover, +.textwidget a:focus { + border-bottom: 0; +} + + +/** + * 12.0 Content + */ + +.secondary { + background-color: #fff; + display: none; + padding: 0 7.6923%; +} + +.secondary.toggled-on { + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + display: block; +} + +.widget-area { + margin: 9.09090% auto 0; +} + +.site-footer { + background-color: #fff; + border-top: 1px solid rgba(51, 51, 51, 0.1); + padding: 3.84615% 7.6923%; +} + + +/** + * 12.1 Posts and pages + */ + +.hentry { + background-color: #fff; + padding-top: 7.6923%; + position: relative; +} + +.hentry.has-post-thumbnail { + padding-top: 0; +} + +.hentry.sticky:not(.has-post-thumbnail) { + padding-top: -webkit-calc(7.6923% + 24px); + padding-top: calc(7.6923% + 24px); +} + +.hentry + .hentry { + border-top: 1px solid rgba(51, 51, 51, 0.1); +} + +.post-thumbnail { + border: 0; + display: block; + margin-bottom: 2.4em; +} +.post-thumbnail img { + display: block; + margin: 0 auto; +} + +a.post-thumbnail:hover, +a.post-thumbnail:focus { + opacity: 0.85; +} + +.entry-header { + padding: 0 7.6923%; +} + +.entry-title { + font-size: 26px; + font-size: 2.6rem; + line-height: 1.1538; + margin-bottom: 0.9231em; +} + +.entry-content, +.entry-summary { + padding: 0 7.6923% 7.6923%; +} + +.entry-content > :last-child, +.entry-summary > :last-child { + margin-bottom: 0; +} + +.entry-content, +.entry-summary, +.page-content, +.comment-content { + -webkit-hyphens: auto; + -moz-hyphens: auto; + -ms-hyphens: auto; + hyphens: auto; + word-wrap: break-word; +} + +.entry-content h1, +.entry-summary h1, +.page-content h1, +.comment-content h1 { + font-size: 26px; + font-size: 2.6rem; + line-height: 1.1538; + margin-top: 1.8462em; + margin-bottom: 0.9231em; +} + +.entry-content h2, +.entry-summary h2, +.page-content h2, +.comment-content h2 { + font-size: 22px; + font-size: 2.2rem; + line-height: 1.3636; + margin-top: 2.1818em; + margin-bottom: 1.0909em; +} + +.entry-content h3, +.entry-summary h3, +.page-content h3, +.comment-content h3 { + font-size: 18px; + font-size: 1.8rem; + line-height: 1.3333; + margin-top: 2.6667em; + margin-bottom: 1.3333em; +} + +.entry-content h4, +.entry-content h5, +.entry-content h6, +.entry-summary h4, +.entry-summary h5, +.entry-summary h6, +.page-content h4, +.page-content h5, +.page-content h6, +.comment-content h4, +.comment-content h5, +.comment-content h6 { + font-size: 15px; + font-size: 1.5rem; + line-height: 1.2; + margin-top: 3.2em; + margin-bottom: 1.6em; +} + +.entry-content h5, +.entry-content h6, +.entry-summary h5, +.entry-summary h6, +.page-content h5, +.page-content h6, +.comment-content h5, +.comment-content h6 { + letter-spacing: 0.1em; + text-transform: uppercase; +} + +.entry-content > h1:first-child, +.entry-content > h2:first-child, +.entry-content > h3:first-child, +.entry-content > h4:first-child, +.entry-content > h5:first-child, +.entry-content > h6:first-child, +.entry-summary > h1:first-child, +.entry-summary > h2:first-child, +.entry-summary > h3:first-child, +.entry-summary > h4:first-child, +.entry-summary > h5:first-child, +.entry-summary > h6:first-child, +.page-content > h1:first-child, +.page-content > h2:first-child, +.page-content > h3:first-child, +.page-content > h4:first-child, +.page-content > h5:first-child, +.page-content > h6:first-child, +.comment-content > h1:first-child, +.comment-content > h2:first-child, +.comment-content > h3:first-child, +.comment-content > h4:first-child, +.comment-content > h5:first-child, +.comment-content > h6:first-child { + margin-top: 0; +} + +.entry-content a, +.entry-summary a, +.page-content a, +.comment-content a, +.pingback .comment-body > a { + border-bottom: 1px solid #333; +} + +.entry-content a:hover, +.entry-content a:focus, +.entry-summary a:hover, +.entry-summary a:focus, +.page-content a:hover, +.page-content a:focus, +.comment-content a:hover, +.comment-content a:focus, +.pingback .comment-body > a:hover, +.pingback .comment-body > a:focus { + border-bottom: 0; +} + +.entry-content a img, +.entry-summary a img, +.page-content a img, +.comment-content a img { + display: block; +} + +.entry-content .more-link, +.entry-summary .more-link:after { + white-space: nowrap; +} + +.entry-content .more-link:after, +.entry-summary .more-link:after { + content: "\f429"; + font-size: 16px; + position: relative; + top: 5px; +} + +.author-info { + border-top: 1px solid #eaeaea; + border-top: 1px solid rgba(51, 51, 51, 0.1); + margin: 0 7.6923%; + padding: 7.6923% 0; +} + +.author-info .avatar { + float: left; + height: 36px; + margin: 0 1.6em 1.6em 0; + width: 36px; +} + +.author-heading { + color: #707070; + color: rgba(51, 51, 51, 0.7); + font-family: "Noto Sans", sans-serif; + font-size: 12px; + font-size: 1.2rem; + letter-spacing: 0.04em; + margin-bottom: 1.5em; + text-transform: uppercase; +} + +.author-title { + clear: none; +} + +.author-bio { + font-size: 12px; + font-size: 1.2rem; + line-height: 1.5; + overflow: hidden; + padding-bottom: 1px; +} + +.author-description { + -webkit-hyphens: auto; + -moz-hyphens: auto; + -ms-hyphens: auto; + hyphens: auto; + word-wrap: break-word; +} + +.author-description a { + border-bottom: 1px solid #333; +} + +.author-description a:hover, +.author-description a:focus { + border-bottom: 0; +} + +.author-description > :last-child { + margin-bottom: 0; +} + +.author-link { + white-space: nowrap; +} + +.author-link:after { + content: "\f429"; + position: relative; + top: 1px; +} + +.entry-footer { + background-color: #f7f7f7; + color: #707070; + color: rgba(51, 51, 51, 0.7); + font-family: "Noto Sans", sans-serif; + font-size: 12px; + font-size: 1.2rem; + line-height: 1.5; + padding: 3.8461% 7.6923%; +} + +.entry-footer a { + border-bottom: 1px solid transparent; + color: #707070; + color: rgba(51, 51, 51, 0.7); +} + +.entry-footer a:hover { + border-bottom: 1px solid #333; +} + +.entry-footer a:hover, +.entry-footer a:focus { + color: #333; +} + +.sticky-post { + background-color: #333; + color: #fff; + font-weight: 700; + letter-spacing: 0.04em; + padding: 0.25em 0.5em; + position: absolute; + top: 0; + text-transform: uppercase; +} + +.updated:not(.published) { + display: none; +} + +.sticky .posted-on { + display: none; +} + +.posted-on:before, +.byline:before, +.cat-links:before, +.tags-links:before, +.comments-link:before, +.entry-format:before, +.edit-link:before, +.full-size-link:before { + margin-right: 2px; + position: relative; +} + +.posted-on, +.byline, +.cat-links, +.tags-links, +.comments-link, +.entry-format, +.full-size-link { + margin-right: 1em; +} + +.format-aside .entry-format:before { + content: "\f101"; +} + +.format-image .entry-format:before { + content: "\f473"; +} + +.format-gallery .entry-format:before { + content: "\f103"; +} + +.format-video .entry-format:before { + content: "\f104"; +} + +.format-status .entry-format:before { + content: "\f105"; +} + +.format-quote .entry-format:before { + content: "\f106"; +} + +.format-link .entry-format:before { + content: "\f107"; +} + +.format-chat .entry-format:before { + content: "\f108"; +} + +.format-audio .entry-format:before { + content: "\f109"; +} + +.posted-on:before { + content: "\f307"; +} + +.byline:before { + content: "\f304"; +} + +.cat-links:before { + content: "\f301"; +} + +.tags-links:before { + content: "\f302"; +} + +.comments-link:before { + content: "\f300"; +} + +.full-size-link:before { + content: "\f402"; +} + +.edit-link:before { + content: "\f411"; +} + +.comments-link, +.edit-link { + white-space: nowrap; +} + +.page-header { + background-color: #fff; + border-bottom: 1px solid rgba(51, 51, 51, 0.1); + padding: 7.6923%; +} + +.page-title { + font-family: "Noto Serif", serif; + font-size: 18px; + font-size: 1.8rem; + line-height: 1.3333; +} + +.taxonomy-description { + color: #707070; + color: rgba(51, 51, 51, 0.7); + padding-top: 0.4em; +} + +.taxonomy-description a { + border-bottom: 1px solid #333; +} + +.taxonomy-description a:hover, +.taxonomy-description a:focus { + border-bottom: 0; +} + +.taxonomy-description > :last-child { + margin-bottom: 0; +} + +.page-content { + background-color: #fff; + padding: 7.6923%; +} + +.page-content > :last-child { + margin-bottom: 0; +} + +.page-links { + clear: both; + font-family: "Noto Sans", sans-serif; + margin-bottom: 1.3333em; +} + +.page-links a, +.page-links > span { + border: 1px solid #eaeaea; + border: 1px solid rgba(51, 51, 51, 0.1); + display: inline-block; + font-size: 12px; + font-size: 1.2rem; + height: 2em; + line-height: 2; + margin: 0 0.3333em 0.3333em 0; + text-align: center; + width: 2em; +} + +.page-links a { + -webkit-tap-highlight-color: rgba(255, 255, 255, 0.3); + background-color: #333; + border-color: #333; + color: #fff; +} + +.page-links a:hover, +.page-links a:focus { + background-color: #707070; + background-color: rgba(51, 51, 51, 0.7); + border-color: transparent; + color: #fff; +} + +.page-links > .page-links-title { + border: 0; + color: #707070; + color: rgba(51, 51, 51, 0.7); + height: auto; + margin: 0; + padding-right: 0.5em; + width: auto; +} + +.entry-attachment { + margin-bottom: 1.6em; +} + +.type-attachment .entry-title { + -webkit-hyphens: auto; + -moz-hyphens: auto; + -ms-hyphens: auto; + hyphens: auto; + word-wrap: break-word; +} + +.entry-caption { + color: #707070; + color: rgba(51, 51, 51, 0.7); + font-family: "Noto Sans", sans-serif; + font-size: 12px; + font-size: 1.2rem; + -webkit-hyphens: auto; + -moz-hyphens: auto; + -ms-hyphens: auto; + hyphens: auto; + line-height: 1.5; + padding-top: 0.5em; + word-wrap: break-word; +} + +.entry-caption > :last-child { + margin-bottom: 0; +} + +.entry-content figcaption, +.entry-summary figcaption { + font-style: italic; + text-align: center; + padding-bottom: .5em; +} + +/** + * 12.2 Post Formats + */ + +.format-aside .entry-title, +.format-image .entry-title, +.format-video .entry-title, +.format-quote .entry-title, +.format-gallery .entry-title, +.format-status .entry-title, +.format-link .entry-title, +.format-audio .entry-title, +.format-chat .entry-title { + font-size: 18px; + font-size: 1.8rem; + line-height: 1.3333; + margin-bottom: 1.3333em; +} + +.format-link .entry-title a:after { + content: "\f442"; + font-size: 24px; + height: 24px; + position: relative; + top: 0; + width: 24px; +} + +.blog .format-status .entry-title, +.archive .format-status .entry-title { + display: none; +} + + +/** + * 12.3 Comments + */ + +.comments-area { + background-color: #fff; + border-top: 1px solid #eaeaea; + border-top: 1px solid rgba(51, 51, 51, 0.1); + padding: 7.6923%; +} + +.comments-area > :last-child { + margin-bottom: 0; +} + +.comment-list + .comment-respond { + border-top: 1px solid #eaeaea; + border-top: 1px solid rgba(51, 51, 51, 0.1); +} + +.comment-list + .comment-respond, +.comment-navigation + .comment-respond { + padding-top: 1.6em; +} + +.comments-title, +.comment-reply-title { + font-family: "Noto Serif", serif; + font-size: 18px; + font-size: 1.8rem; + line-height: 1.3333; +} + +.comments-title { + margin-bottom: 1.3333em; +} + +.comment-list { + list-style: none; + margin: 0; +} + +.comment-list article, +.comment-list .pingback, +.comment-list .trackback { + border-top: 1px solid #eaeaea; + border-top: 1px solid rgba(51, 51, 51, 0.1); + padding: 1.6em 0; +} + +.comment-list .children { + list-style: none; + margin: 0; +} + +.comment-list .children > li { + padding-left: 0.8em; +} + +.comment-author { + color: #707070; + color: rgba(51, 51, 51, 0.7); + margin-bottom: 0.4em; +} + +.comment-author a:hover { + border-bottom: 1px solid #707070; + border-bottom: 1px solid rgba(51, 51, 51, 0.7); +} + +.comment-author .avatar { + float: left; + height: 24px; + margin-right: 0.8em; + width: 24px; +} + +.bypostauthor > article .fn:after { + content: "\f304"; + position: relative; + top: 5px; + left: 3px; +} + +.comment-metadata, +.pingback .edit-link { + color: #707070; + color: rgba(51, 51, 51, 0.7); + font-family: "Noto Sans", sans-serif; + font-size: 12px; + font-size: 1.2rem; + line-height: 1.5; +} + +.comment-metadata a, +.pingback .edit-link a { + color: #707070; + color: rgba(51, 51, 51, 0.7); +} + +.comment-metadata a:hover, +.pingback .edit-link a:hover { + border-bottom: 1px solid #333; +} + +.comment-metadata a:hover, +.comment-metadata a:focus, +.pingback .edit-link a:hover, +.pingback .edit-link a:focus { + color: #333; +} + +.comment-metadata { + margin-bottom: 1.6em; +} + +.comment-metadata .edit-link { + margin-left: 1em; +} + +.pingback .edit-link { + margin-left: 1em; +} + +.pingback .edit-link:before { + top: 5px; +} + +.comment-content ul, +.comment-content ol { + margin: 0 0 1.6em 1.3333em; +} + +.comment-content li > ul, +.comment-content li > ol { + margin-bottom: 0; +} + +.comment-content > :last-child { + margin-bottom: 0; +} + +.comment-list .reply { + font-size: 12px; + font-size: 1.2rem; +} + +.comment-list .reply a { + border: 1px solid #eaeaea; + border: 1px solid rgba(51, 51, 51, 0.1); + color: #707070; + color: rgba(51, 51, 51, 0.7); + display: inline-block; + font-family: "Noto Sans", sans-serif; + font-weight: 700; + line-height: 1; + margin-top: 2em; + padding: 0.4167em 0.8333em; + text-transform: uppercase; +} + +.comment-list .reply a:hover, +.comment-list .reply a:focus { + border-color: #333; + color: #333; + outline: 0; +} + +.comment-form { + padding-top: 1.6em; +} + +.comment-form label { + color: #707070; + color: rgba(51, 51, 51, 0.7); + font-family: "Noto Sans", sans-serif; + font-size: 12px; + font-size: 1.2rem; + font-weight: 700; + display: block; + letter-spacing: 0.04em; + line-height: 1.5; + text-transform: uppercase; +} + +.comment-form input[type="text"], +.comment-form input[type="email"], +.comment-form input[type="url"], +.comment-form input[type="submit"] { + width: 100%; +} + +.comment-notes, +.comment-awaiting-moderation, +.logged-in-as, +.form-allowed-tags { + color: #707070; + color: rgba(51, 51, 51, 0.7); + font-family: "Noto Sans", sans-serif; + font-size: 12px; + font-size: 1.2rem; + line-height: 1.5; + margin-bottom: 2em; +} + +.logged-in-as a:hover { + border-bottom: 1px solid #333; +} + +.no-comments { + border-top: 1px solid #eaeaea; + border-top: 1px solid rgba(51, 51, 51, 0.1); + color: #707070; + color: rgba(51, 51, 51, 0.7); + font-family: "Noto Sans", sans-serif; + font-weight: 700; + padding-top: 1.6em; +} + +.comment-navigation + .no-comments { + border-top: 0; +} + +.form-allowed-tags code { + font-family: Inconsolata, monospace; +} + +.form-submit { + margin-bottom: 0; +} + +.required { + color: #c0392b; +} + +.comment-reply-title small { + font-size: 100%; +} + +.comment-reply-title small a { + border: 0; + float: right; + height: 32px; + overflow: hidden; + width: 26px; +} + +.comment-reply-title small a:before { + content: "\f405"; + font-size: 32px; + position: relative; + top: -3px; +} + + +/** + * 13.0 Footer + */ + +.site-info { + color: #707070; + color: rgba(51, 51, 51, 0.7); + font-size: 12px; + font-size: 1.2rem; + line-height: 1.5; +} + +.site-info a { + border-bottom: 1px solid transparent; + color: #707070; + color: rgba(51, 51, 51, 0.7); +} + +.site-info a:hover { + border-bottom: 1px solid #333; +} + +.site-info a:hover, +.site-info a:focus { + color: #333; +} + + +/** + * 14.0 Media + */ + +.site .avatar { + border-radius: 50%; +} + +.page-content img.wp-smiley, +.entry-content img.wp-smiley, +.comment-content img.wp-smiley { + border: none; + margin-top: 0; + margin-bottom: 0; + padding: 0; +} + +audio, +canvas { + display: inline-block; +} + +embed, +iframe, +object, +video { + margin-bottom: 1.6em; + max-width: 100%; + vertical-align: middle; +} + +p > embed, +p > iframe, +p > object, +p > video { + margin-bottom: 0; +} + +.wp-audio-shortcode, +.wp-video, +.wp-playlist.wp-audio-playlist { + font-size: 15px; + font-size: 1.5rem; + margin-top: 0; + margin-bottom: 1.6em; +} + +.wp-playlist.wp-playlist { + padding-bottom: 0; +} + +.wp-playlist .wp-playlist-tracks { + margin-top: 0; +} + +.wp-playlist-item .wp-playlist-caption { + border-bottom: 0; + padding: 10px 0; +} + +.wp-playlist-item .wp-playlist-item-length { + top: 10px; +} + + +/** + * 14.1 Captions + */ + +.wp-caption { + margin-bottom: 1.6em; + max-width: 100%; +} + +.wp-caption img[class*="wp-image-"] { + display: block; + margin: 0; +} + +.wp-caption-text { + color: #707070; + color: rgba(51, 51, 51, 0.7); + font-family: "Noto Sans", sans-serif; + font-size: 12px; + font-size: 1.2rem; + line-height: 1.5; + padding: 0.5em 0; +} + + +/** + * 14.2 Galleries + */ + +.gallery { + margin-bottom: 1.6em; +} + +.gallery-item { + display: inline-block; + padding: 1.79104477%; + text-align: center; + vertical-align: top; + width: 100%; +} + +.gallery-columns-2 .gallery-item { + max-width: 50%; +} + +.gallery-columns-3 .gallery-item { + max-width: 33.33%; +} + +.gallery-columns-4 .gallery-item { + max-width: 25%; +} + +.gallery-columns-5 .gallery-item { + max-width: 20%; +} + +.gallery-columns-6 .gallery-item { + max-width: 16.66%; +} + +.gallery-columns-7 .gallery-item { + max-width: 14.28%; +} + +.gallery-columns-8 .gallery-item { + max-width: 12.5%; +} + +.gallery-columns-9 .gallery-item { + max-width: 11.11%; +} + +.gallery-icon img { + margin: 0 auto; +} + +.gallery-caption { + color: #707070; + color: rgba(51, 51, 51, 0.7); + display: block; + font-family: "Noto Sans", sans-serif; + font-size: 12px; + font-size: 1.2rem; + line-height: 1.5; + padding: 0.5em 0; +} + +.gallery-columns-6 .gallery-caption, +.gallery-columns-7 .gallery-caption, +.gallery-columns-8 .gallery-caption, +.gallery-columns-9 .gallery-caption { + display: none; +} + + +/** + * 15.0 Multisite + */ + +.widecolumn { + background-color: #fff; + padding: 7.6923%; +} + +.widecolumn .mu_register { + width: auto; +} + +.widecolumn .mu_alert { + margin-bottom: 1.6em; +} + +.widecolumn form, +.widecolumn .mu_register form { + margin-top: 0; +} + +.widecolumn h2 { + font-size: 26px; + font-size: 2.6rem; + line-height: 1.1538; + margin-bottom: 0.9231em; +} + +.widecolumn p { + margin: 1.6em 0; +} + +.widecolumn p + h2 { + margin-top: 1.8462em; +} + +.widecolumn label, +.widecolumn .mu_register label { + color: #707070; + color: rgba(51, 51, 51, 0.7); + font-family: "Noto Sans", sans-serif; + font-size: 12px; + font-size: 1.2rem; + font-weight: 700; + letter-spacing: 0.04em; + line-height: 1.5; + text-transform: uppercase; +} + +.widecolumn .mu_register label { + margin: 2em 0 0; +} + +.widecolumn #key, +.widecolumn .mu_register #blog_title, +.widecolumn .mu_register #user_email, +.widecolumn .mu_register #blogname, +.widecolumn .mu_register #user_name { + font-size: 16px; + font-size: 1.6rem; + width: 100%; +} + +.widecolumn .mu_register #blogname { + margin: 0; +} + +.widecolumn .mu_register #blog_title, +.widecolumn .mu_register #user_email, +.widecolumn .mu_register #user_name { + margin: 0 0 0.375em; +} + +.widecolumn #submit, +.widecolumn .mu_register input[type="submit"] { + font-size: 12px; + font-size: 1.2rem; + margin: 0; + width: 100%; +} + +.widecolumn .mu_register .prefix_address, +.widecolumn .mu_register .suffix_address { + font-size: inherit; +} + +.widecolumn .mu_register > :last-child, +.widecolumn form > :last-child { + margin-bottom: 0; +} + + +/** + * 16.0 Media Queries + */ + +/* + * Does the same thing as , + * but in the future W3C standard way. -ms- prefix is required for IE10+ to + * render responsive styling in Windows 8 "snapped" views; IE10+ does not honor + * the meta tag. See https://core.trac.wordpress.org/ticket/25888. + */ +@-ms-viewport { + width: device-width; +} + +@viewport { + width: device-width; +} + +/** + * 16.1 Mobile Large 620px + */ + +@media screen and (min-width: 38.75em) { + ul, + ol { + margin-left: 0; + } + + li > ul, + li > ol, + blockquote > ul, + blockquote > ol { + margin-left: 1.3333em; + } + + blockquote { + margin-left: -1em; + } + + blockquote > blockquote { + margin-left: 0; + } + + .site-branding { + min-height: 3.2em; + } + + .site-title { + font-size: 22px; + font-size: 2.2rem; + line-height: 1.0909; + } + + .site-description { + display: block; + } + + .secondary { + box-shadow: 0 0 1px rgba(0, 0, 0, 0.15); + margin: 7.6923% 7.6923% 0; + padding: 7.6923% 7.6923% 0; + } + + .main-navigation { + margin-bottom: 11.1111%; + } + + .main-navigation ul { + border-top: 1px solid rgba(51, 51, 51, 0.1); + border-bottom: 1px solid rgba(51, 51, 51, 0.1); + } + + .main-navigation ul ul { + border-top: 0; + border-bottom: 0; + } + + .social-navigation { + margin-bottom: 11.1111%; + } + + .social-navigation { + margin-top: 0; + } + + .widget-area { + margin-top: 0; + } + + .widget { + margin-bottom: 11.1111%; + } + + .site-main { + padding: 7.6923% 0; + } + + .hentry.sticky:not(.has-post-thumbnail) { + padding-top: inherit; + } + + .hentry, + .page-header, + .page-content { + box-shadow: 0 0 1px rgba(0, 0, 0, 0.15); + margin: 0 7.6923%; + } + + .hentry + .hentry, + .page-header + .hentry, + .page-header + .page-content { + margin-top: 7.6923%; + } + + .hentry + .hentry { + border-top: 0; + } + + .post-thumbnail { + margin-bottom: 2.4em; + } + + .entry-header { + padding: 0 9.0909%; + } + + .entry-content, + .entry-summary { + padding: 0 9.0909% 9.0909%; + } + + .entry-footer { + padding: 4.5454% 9.0909%; + } + + .page-header { + border-bottom: 0; + border-left: 7px solid #333; + padding: 3.8461% 7.6923%; + } + + .page-title, + .taxonomy-description { + margin-left: -7px; + } + + .page-content { + padding: 9.0909%; + } + + .site-footer { + border-top: 0; + box-shadow: 0 0 1px rgba(0, 0, 0, 0.15); + margin: 0 7.6923%; + padding: 3.84615% 7.6923%; + } + + .post-navigation { + border-top: 0; + box-shadow: 0 0 1px rgba(0, 0, 0, 0.15); + margin: 7.6923% 7.6923% 0; + } + + .post-navigation a { + padding: 4.5454% 9.0909%; + } + + .pagination { + border-top: 0; + box-shadow: 0 0 1px rgba(0, 0, 0, 0.15); + margin: 7.6923% 7.6923% 0; + padding: 0; + } + + /* restore screen-reader-text */ + .pagination .current .screen-reader-text { + position: absolute !important; + } + + .pagination .page-numbers { + display: inline-block; + } + + .image-navigation { + padding: 0 9.0909%; + } + + .comments-area { + border-top: 0; + box-shadow: 0 0 1px rgba(0, 0, 0, 0.15); + margin: 7.6923% 7.6923% 0; + } + + .comment-content ul, + .comment-content ol { + margin-left: 0; + } + + .comment-content li > ul, + .comment-content li > ol, + .comment-content blockquote > ul, + .comment-content blockquote > ol { + margin-left: 1.3333em; + } + + .widecolumn { + box-shadow: 0 0 1px rgba(0, 0, 0, 0.15); + margin: 7.6923%; + } +} + + +/** + * 16.2 Tablet Small 740px + */ + +@media screen and (min-width: 46.25em) { + body, + button, + input, + select, + textarea { + font-size: 17px; + font-size: 1.7rem; + line-height: 1.6471; + } + + button, + input { + line-height: normal; + } + + p, + address, + pre, + hr, + ul, + ol, + dl, + dd, + table { + margin-bottom: 1.6471em; + } + + blockquote { + font-size: 20px; + font-size: 2rem; + line-height: 1.75; + margin-bottom: 1.75em; + margin-left: -1.05em; + padding-left: 0.85em; + } + + blockquote p { + margin-bottom: 1.75em; + } + + blockquote cite, + blockquote small { + font-size: 17px; + font-size: 1.7rem; + line-height: 1.6471; + } + + pre { + line-height: 1.2353; + } + + button, + input[type="button"], + input[type="reset"], + input[type="submit"], + .post-password-form input[type="submit"], + .widecolumn #submit, + .widecolumn .mu_register input[type="submit"] { + font-size: 14px; + font-size: 1.4rem; + padding: 0.8214em 1.6429em; + } + + input[type="text"], + input[type="email"], + input[type="url"], + input[type="password"], + input[type="search"], + textarea { + padding: 0.5em; + } + + .main-navigation { + font-size: 14px; + font-size: 1.4rem; + line-height: 1.5; + } + + .main-navigation a { + padding: 1em 0; + } + + .main-navigation ul ul { + margin-left: 1em; + } + + .main-navigation .menu-item-description { + font-size: 14px; + font-size: 1.4rem; + line-height: 1.5; + } + + .social-navigation ul { + margin-bottom: -1.4706em; + } + + .social-navigation a { + height: 2.8824em; + width: 2.8824em; + } + + .secondary-toggle { + height: 56px; + width: 56px; + } + + .secondary-toggle:before { + line-height: 54px; + width: 54px; + } + + .post-password-form label, + .post-navigation .meta-nav, + .image-navigation, + .comment-navigation, + .author-heading, + .author-bio, + .entry-footer, + .page-links a, + .page-links span, + .comment-metadata, + .pingback .edit-link, + .comment-list .reply, + .comment-notes, + .comment-awaiting-moderation, + .logged-in-as, + .comment-form label, + .form-allowed-tags, + .site-info, + .wp-caption-text, + .gallery-caption, + .entry-caption, + .widecolumn label, + .widecolumn .mu_register label { + font-size: 14px; + font-size: 1.4rem; + } + + .pagination .nav-links { + min-height: 3.2941em; + } + + .pagination .page-numbers { + line-height: 3.2941em; + padding: 0 0.8235em; + } + + .pagination .prev, + .pagination .next { + height: 56px; + padding: 0; + width: 56px; + } + + .pagination .prev:before, + .pagination .next:before { + height: 56px; + line-height: 56px; + width: 56px; + } + + .image-navigation .nav-previous a:before, + .image-navigation .nav-next a:after, + .comment-navigation .nav-previous a:before, + .comment-navigation .nav-next a:after { + top: 2px; + } + + blockquote.alignleft, + .wp-caption.alignleft, + img.alignleft { + margin: 0.4118em 1.6471em 1.6471em 0; + } + + blockquote.alignright, + .wp-caption.alignright, + img.alignright { + margin: 0.4118em 0 1.6471em 1.6471em; + } + + blockquote.aligncenter, + .wp-caption.aligncenter, + img.aligncenter { + margin-top: 0.4118em; + margin-bottom: 1.6471em; + } + + .wp-caption.alignleft, + .wp-caption.alignright, + .wp-caption.aligncenter { + margin-bottom: 1.2353em; + } + + .site-branding { + min-height: 3.7059em; + padding-right: 66px; + } + + .site-title { + font-size: 29px; + font-size: 2.9rem; + line-height: 1.2069; + } + + .site-description { + font-size: 14px; + font-size: 1.4rem; + } + + .widget { + font-size: 14px; + font-size: 1.4rem; + line-height: 1.5; + } + + .widget p, + .widget address, + .widget hr, + .widget ul, + .widget ol, + .widget dl, + .widget dd, + .widget table, + .widget pre { + margin-bottom: 1.5em; + } + + .widget li > ul, + .widget li > ol { + margin-bottom: 0; + } + + .widget blockquote { + font-size: 17px; + font-size: 1.7rem; + line-height: 1.6471; + margin-bottom: 1.6471em; + margin-left: -1.2353em; + padding-left: 1em; + } + + .widget blockquote p { + margin-bottom: 1.6471em; + } + + .widget blockquote cite, + .widget blockquote small { + font-size: 14px; + font-size: 1.4rem; + line-height: 1.5; + } + + .widget blockquote > blockquote { + margin-left: 0; + } + + .widget pre { + line-height: 1.5; + padding: 0.75em; + } + + .widget button, + .widget input, + .widget select, + .widget textarea { + line-height: 1.75; + } + + .widget button, + .widget input { + line-height: normal; + } + + .widget button, + .widget input[type="button"], + .widget input[type="reset"], + .widget input[type="submit"] { + font-size: 14px; + font-size: 1.4rem; + padding: 0.8214em 1.6429em; + } + + .widget input[type="text"], + .widget input[type="email"], + .widget input[type="url"], + .widget input[type="password"], + .widget input[type="search"], + .widget textarea { + padding: 0.5625em; + } + + .widget blockquote.alignleft, + .widget .wp-caption.alignleft, + .widget img.alignleft { + margin: 0.5em 1.5em 1.5em 0; + } + + .widget blockquote.alignright, + .widget .wp-caption.alignright, + .widget img.alignright { + margin: 0.5em 0 1.5em 1.5em; + } + + .widget blockquote.aligncenter, + .widget .wp-caption.aligncenter, + .widget img.aligncenter { + margin-top: 0.5em; + margin-bottom: 1.5em; + } + + .widget .wp-caption.alignleft, + .widget .wp-caption.alignright, + .widget .wp-caption.aligncenter { + margin-bottom: 1em; + } + + .widget-title { + margin: 0 0 1.5em; + } + + .widget_calendar td, + .widget_calendar th { + line-height: 2.9286; + } + + .widget_calendar caption { + margin: 0 0 1.5em; + } + + .widget_archive li, + .widget_categories li, + .widget_links li, + .widget_meta li, + .widget_nav_menu li, + .widget_pages li, + .widget_recent_comments li, + .widget_recent_entries li { + padding: 0.9643em 0; + } + + .widget_categories .children, + .widget_nav_menu .sub-menu, + .widget_pages .children { + margin: 0.9643em 0 0 1em; + padding-top: 0.9643em; + } + + .widget_rss li { + margin-bottom: 1.5em; + } + + .widget_rss .rss-date, + .widget_rss cite { + line-height: 1.75; + } + + .post-thumbnail { + margin-bottom: 3em; + } + + .entry-title, + .widecolumn h2 { + font-size: 35px; + font-size: 3.5rem; + line-height: 1.2; + margin-bottom: 1.2em; + } + + .entry-content h1, + .entry-summary h1, + .page-content h1, + .comment-content h1 { + font-size: 35px; + font-size: 3.5rem; + line-height: 1.2; + margin-top: 1.6em; + margin-bottom: 0.8em; + } + + .entry-content h2, + .entry-summary h2, + .page-content h2, + .comment-content h2 { + font-size: 29px; + font-size: 2.9rem; + line-height: 1.2069; + margin-top: 1.931em; + margin-bottom: 0.9655em; + } + + .entry-content h3, + .entry-summary h3, + .page-content h3, + .comment-content h3 { + font-size: 24px; + font-size: 2.4rem; + line-height: 1.1667; + margin-top: 2.3333em; + margin-bottom: 1.1667em; + } + + .entry-content h4, + .entry-summary h4, + .page-content h4, + .comment-content h4 { + font-size: 20px; + font-size: 2rem; + line-height: 1.4; + margin-top: 2.8em; + margin-bottom: 1.4em; + } + + .entry-content h5, + .entry-content h6, + .entry-summary h5, + .entry-summary h6, + .page-content h5, + .page-content h6, + .comment-content h5, + .comment-content h6 { + font-size: 17px; + font-size: 1.7rem; + line-height: 1.2353; + margin-top: 3.2941em; + margin-bottom: 1.6471em; + } + + .entry-content .more-link:after, + .entry-summary .more-link:after { + font-size: 24px; + top: 2px; + } + + .author-info { + margin: 0 9.0909%; + padding: 9.0909% 0; + } + + .author-info .avatar { + height: 42px; + margin: 0 1.6471em 1.6471em 0; + width: 42px; + } + + .author-link:after { + top: 3px; + } + + .posted-on:before, + .byline:before, + .cat-links:before, + .tags-links:before, + .comments-link:before, + .entry-format:before, + .edit-link:before, + .full-size-link:before { + top: 3px; + } + + .taxonomy-description { + padding-top: 0.4118em; + } + + .page-title, + .comments-title, + .comment-reply-title, + .post-navigation .post-title { + font-size: 24px; + font-size: 2.4rem; + line-height: 1.1667; + } + + .page-links { + margin-bottom: 1.4117em; + } + + .page-links a, + .page-links > span { + margin: 0 0.2857em 0.2857em 0; + } + + .entry-attachment { + margin-bottom: 1.6471em; + } + + .format-aside .entry-title, + .format-image .entry-title, + .format-video .entry-title, + .format-quote .entry-title, + .format-gallery .entry-title, + .format-status .entry-title, + .format-link .entry-title, + .format-audio .entry-title, + .format-chat .entry-title { + font-size: 20px; + font-size: 2rem; + line-height: 1.4; + margin-bottom: 1.4em; + } + + .format-link .entry-title a:after { + top: 0.0833em; + } + + .comments-title { + margin-bottom: 1.4em; + } + + .comment-list article, + .comment-list .pingback, + .comment-list .trackback { + padding: 1.6471em 0; + } + + .comment-list + .comment-respond, + .comment-navigation + .comment-respond { + padding-top: 1.6471em; + } + + .comment-list .children > li { + padding-left: 1.2353em; + } + + .comment-meta { + position: relative; + } + + .comment-author { + margin-bottom: 0; + } + + .comment-author .avatar { + height: 42px; + margin-right: 1.64705em; + position: relative; + top: 5px; + width: 42px; + } + + .comment-metadata .edit-link:before { + top: 2px; + } + + .pingback .edit-link:before { + top: 6px; + } + + .bypostauthor > article .fn:after { + top: 7px; + left: 6px; + } + + .comment-content ul, + .comment-content ol { + margin-bottom: 1.6471em; + } + + .comment-list .reply a { + padding: 0.4286em 0.8571em; + } + + .comment-form, + .no-comments { + padding-top: 1.6471em; + } + + .comment-reply-title small a:before { + top: -1px; + } + + embed, + iframe, + object, + video { + margin-bottom: 1.6471em; + } + + .wp-audio-shortcode, + .wp-video, + .wp-playlist.wp-audio-playlist { + font-size: 17px; + font-size: 1.7rem; + margin-bottom: 1.6471em; + } + + .wp-caption, + .gallery { + margin-bottom: 1.6471em; + } + + .widecolumn .mu_alert { + margin-bottom: 1.6471em; + } + + .widecolumn p { + margin: 1.6471em 0; + } + + .widecolumn p + h2 { + margin-top: 1.6em; + } + + .widecolumn #key, + .widecolumn .mu_register #blog_title, + .widecolumn .mu_register #user_email, + .widecolumn .mu_register #blogname, + .widecolumn .mu_register #user_name { + font-size: 17px; + font-size: 1.7rem; + line-height: normal; + } + + .widecolumn .mu_register #blog_title, + .widecolumn .mu_register #user_email, + .widecolumn .mu_register #user_name { + margin: 0 0 0.4117em; + } +} + + +/** + * 16.3 Tablet Large 880px + */ + +@media screen and (min-width: 55em) { + body, + button, + input, + select, + textarea { + font-size: 19px; + font-size: 1.9rem; + line-height: 1.6842; + } + + button, + input { + line-height: normal; + } + + p, + address, + pre, + hr, + ul, + ol, + dl, + dd, + table { + margin-bottom: 1.6842em; + } + + blockquote { + font-size: 22px; + font-size: 2.2rem; + line-height: 1.8182; + margin-bottom: 1.8182em; + margin-left: -1.0909em; + padding-left: 0.9091em; + } + + blockquote p { + margin-bottom: 1.8182em; + } + + blockquote cite, + blockquote small { + font-size: 19px; + font-size: 1.9rem; + line-height: 1.6842; + } + + pre { + line-height: 1.2632; + } + + button, + input[type="button"], + input[type="reset"], + input[type="submit"], + .post-password-form input[type="submit"], + .widecolumn #submit, + .widecolumn .mu_register input[type="submit"] { + font-size: 16px; + font-size: 1.6rem; + padding: 0.8125em 1.625em; + } + + input[type="text"], + input[type="email"], + input[type="url"], + input[type="password"], + input[type="search"], + textarea { + padding: 0.5278em; + } + + .main-navigation { + font-size: 16px; + font-size: 1.6rem; + line-height: 1.5; + } + + .main-navigation a { + padding: 0.75em 0; + } + + .main-navigation .menu-item-description { + font-size: 16px; + font-size: 1.6rem; + line-height: 1.5; + } + + .social-navigation ul { + margin-bottom: -1.2632em; + } + + .social-navigation a { + height: 2.5263em; + width: 2.5263em; + } + + .secondary-toggle { + height: 64px; + width: 64px; + } + + .secondary-toggle:before { + line-height: 62px; + width: 62px; + } + + .post-password-form label, + .post-navigation .meta-nav, + .comment-navigation, + .image-navigation, + .author-heading, + .author-bio, + .entry-footer, + .page-links a, + .page-links span, + .comment-metadata, + .pingback .edit-link, + .comment-list .reply, + .comment-notes, + .comment-awaiting-moderation, + .logged-in-as, + .comment-form label, + .form-allowed-tags, + .site-info, + .wp-caption-text, + .gallery-caption, + .entry-caption, + .widecolumn label, + .widecolumn .mu_register label { + font-size: 16px; + font-size: 1.6rem; + } + + .pagination .nav-links { + min-height: 3.3684em; + } + + .pagination .page-numbers { + line-height: 3.3684em; + padding: 0 0.8421em; + } + + .pagination .prev, + .pagination .next { + height: 64px; + padding: 0; + width: 64px; + } + + .pagination .prev:before, + .pagination .next:before { + height: 64px; + line-height: 64px; + width: 64px; + } + + .image-navigation .nav-previous a:before, + .image-navigation .nav-next a:after, + .comment-navigation .nav-previous a:before, + .comment-navigation .nav-next a:after { + font-size: 24px; + top: -1px; + } + + blockquote.alignleft, + .wp-caption.alignleft, + img.alignleft { + margin: 0.4211em 1.6842em 1.6842em 0; + } + + blockquote.alignright, + .wp-caption.alignright, + img.alignright { + margin: 0.4211em 0 1.6842em 1.6842em; + } + + blockquote.aligncenter, + .wp-caption.aligncenter, + img.aligncenter { + margin-top: 0.4211em; + margin-bottom: 1.6842em; + } + + .wp-caption.alignleft, + .wp-caption.alignright, + .wp-caption.aligncenter { + margin-bottom: 1.2632em; + } + + .site-branding { + min-height: 3.7895em; + padding-right: 74px; + } + + .site-title { + font-size: 32px; + font-size: 3.2rem; + line-height: 1.25; + } + + .site-description { + font-size: 16px; + font-size: 1.6rem; + } + + .widget { + font-size: 16px; + font-size: 1.6rem; + } + + .widget blockquote { + font-size: 19px; + font-size: 1.9rem; + line-height: 1.6842; + margin-bottom: 1.6842em; + margin-left: -1.2632em; + padding-left: 1.0526em; + } + + .widget blockquote p { + margin-bottom: 1.6842em; + } + + .widget blockquote cite, + .widget blockquote small { + font-size: 16px; + font-size: 1.6rem; + } + + .widget button, + .widget input, + .widget select, + .widget textarea { + line-height: 1.5; + } + + .widget button, + .widget input { + line-height: normal; + } + + .widget button, + .widget input[type="button"], + .widget input[type="reset"], + .widget input[type="submit"] { + font-size: 16px; + font-size: 1.6rem; + padding: 0.8125em 1.625em; + } + + .widget input[type="text"], + .widget input[type="email"], + .widget input[type="url"], + .widget input[type="password"], + .widget input[type="search"], + .widget textarea { + padding: 0.75em; + } + + .widget .wp-caption-text, + .widget .gallery-caption { + line-height: 1.5; + } + + .widget_calendar td, + .widget_calendar th { + line-height: 2.9375; + } + + .widget_archive li, + .widget_categories li, + .widget_links li, + .widget_meta li, + .widget_nav_menu li, + .widget_pages li, + .widget_recent_comments li, + .widget_recent_entries li { + padding: 0.7188em 0; + } + + .widget_categories .children, + .widget_nav_menu .sub-menu, + .widget_pages .children { + margin: 0.7188em 0 0 1em; + padding-top: 0.7188em; + } + + .widget_rss .rss-date, + .widget_rss cite { + font-size: 13px; + font-size: 1.3rem; + line-height: 1.8462; + } + + .post-thumbnail { + margin-bottom: 2.9474em; + } + + .entry-title, + .widecolumn h2 { + font-size: 39px; + font-size: 3.9rem; + line-height: 1.2308; + margin-bottom: 1.2308em; + } + + .entry-content h1, + .entry-summary h1, + .page-content h1, + .comment-content h1 { + font-size: 39px; + font-size: 3.9rem; + line-height: 1.2308; + margin-top: 1.641em; + margin-bottom: 0.8205em; + } + + .entry-content h2, + .entry-summary h2, + .page-content h2, + .comment-content h2 { + font-size: 32px; + font-size: 3.2rem; + line-height: 1.25; + margin-top: 2em; + margin-bottom: 1em; + } + + .entry-content h3, + .entry-summary h3, + .page-content h3, + .comment-content h3 { + font-size: 27px; + font-size: 2.7rem; + line-height: 1.1852; + margin-top: 2.3704em; + margin-bottom: 1.1852em; + } + + .entry-content h4, + .entry-summary h4, + .page-content h4, + .comment-content h4 { + font-size: 22px; + font-size: 2.2rem; + line-height: 1.4545; + margin-top: 2.9091em; + margin-bottom: 1.4545em; + } + + .entry-content h5, + .entry-content h6, + .entry-summary h5, + .entry-summary h6, + .page-content h5, + .page-content h6, + .comment-content h5, + .comment-content h6 { + font-size: 19px; + font-size: 1.9rem; + line-height: 1.2632; + margin-top: 3.3684em; + margin-bottom: 1.6842em; + } + + .entry-content .more-link:after, + .entry-summary .more-link:after { + top: 3px; + } + + .author-info .avatar { + height: 56px; + margin: 0 1.6842em 1.6842em 0; + width: 56px; + } + + .author-link:after { + font-size: 24px; + top: 0; + } + + .posted-on:before, + .byline:before, + .cat-links:before, + .tags-links:before, + .comments-link:before, + .entry-format:before, + .edit-link:before, + .full-size-link:before { + top: 4px; + } + + .taxonomy-description { + padding-top: 0.4211em; + } + + .page-title, + .comments-title, + .comment-reply-title, + .post-navigation .post-title { + font-size: 27px; + font-size: 2.7rem; + line-height: 1.1852; + } + + .page-links { + margin-bottom: 1.4736em; + } + + .page-links a, + .page-links > span { + margin: 0 0.25em 0.25em 0; + } + + .entry-attachment { + margin-bottom: 1.6842em + } + + .format-aside .entry-title, + .format-image .entry-title, + .format-video .entry-title, + .format-quote .entry-title, + .format-gallery .entry-title, + .format-status .entry-title, + .format-link .entry-title, + .format-audio .entry-title, + .format-chat .entry-title { + font-size: 22px; + font-size: 2.2rem; + line-height: 1.4545; + margin-bottom: 1.4545em; + } + + .format-link .entry-title a:after { + top: 0.125em; + } + + .comments-title { + margin-bottom: 1.4545em; + } + + .comment-list article, + .comment-list .pingback, + .comment-list .trackback { + padding: 1.6842em 0; + } + + .comment-list + .comment-respond, + .comment-navigation + .comment-respond { + padding-top: 1.6842em; + } + + .comment-list .children > li { + padding-left: 1.4737em; + } + + .comment-author .avatar { + height: 56px; + margin-right: 1.6842em; + top: 3px; + width: 56px; + } + + .comment-metadata { + line-height: 2; + } + + .comment-metadata .edit-link:before { + top: 8px; + } + + .pingback .edit-link:before { + top: 8px; + } + + .bypostauthor > article .fn:after { + top: 8px; + } + + .comment-content ul, + .comment-content ol { + margin-bottom: 1.6842em; + } + + .comment-list .reply a { + padding: 0.4375em 0.875em; + } + + .comment-form, + .no-comments { + padding-top: 1.6842em; + } + + embed, + iframe, + object, + video { + margin-bottom: 1.6842em; + } + + .wp-audio-shortcode, + .wp-video, + .wp-playlist.wp-audio-playlist { + font-size: 19px; + font-size: 1.9rem; + margin-bottom: 1.6842em; + } + + .wp-caption, + .gallery { + margin-bottom: 1.6842em; + } + + .widecolumn .mu_alert { + margin-bottom: 1.6842em; + } + + .widecolumn p { + margin: 1.6842em 0; + } + + .widecolumn p + h2 { + margin-top: 1.641em; + } + + .widecolumn #key, + .widecolumn .mu_register #blog_title, + .widecolumn .mu_register #user_email, + .widecolumn .mu_register #blogname, + .widecolumn .mu_register #user_name { + font-size: 19px; + font-size: 1.9rem; + } + + .widecolumn .mu_register #blog_title, + .widecolumn .mu_register #user_email, + .widecolumn .mu_register #user_name { + margin: 0 0 0.421em; + } +} + + +/** + * 16.4 Desktop Small 955px + */ + +@media screen and (min-width: 59.6875em) { + body:before { + background-color: #fff; + box-shadow: 0 0 1px rgba(0, 0, 0, 0.15); + content: ""; + display: block; + height: 100%; + min-height: 100%; + position: fixed; + top: 0; + left: 0; + width: 29.4118%; + z-index: 0; /* Fixes flashing bug with scrolling on Safari */ + } + + .site { + margin: 0 auto; + max-width: 1403px; + } + + .sidebar { + float: left; + margin-right: -100%; + max-width: 413px; + position: relative; + width: 29.4118%; + } + + .secondary { + background-color: transparent; + box-shadow: none; + display: block; + margin: 0; + padding: 0; + } + + .site-main { + padding: 8.3333% 0; + } + + .site-content { + display: block; + float: left; + margin-left: 29.4118%; + width: 70.5882%; + } + + body { + font-size: 15px; + font-size: 1.5rem; + line-height: 1.6; + } + + p, + address, + pre, + hr, + ul, + ol, + dl, + dd, + table { + margin-bottom: 1.6em; + } + + blockquote { + font-size: 18px; + font-size: 1.8rem; + line-height: 1.6667; + margin-bottom: 1.6667em; + margin-left: -1.3333em; + padding-left: 1.1111em; + } + + blockquote cite, + blockquote small { + font-size: 15px; + font-size: 1.5rem; + line-height: 1.6; + } + + pre { + line-height: 1.2; + } + + button, + input, + select, + textarea { + font-size: 16px; + font-size: 1.6rem; + line-height: 1.5; + } + + button, + input { + line-height: normal; + } + + button, + input[type="button"], + input[type="reset"], + input[type="submit"], + .post-password-form input[type="submit"], + .widecolumn #submit, + .widecolumn .mu_register input[type="submit"] { + font-size: 12px; + font-size: 1.2rem; + padding: 0.7917em 1.5833em; + } + + input[type="text"], + input[type="email"], + input[type="url"], + input[type="password"], + input[type="search"], + textarea { + padding: 0.375em; + } + + .main-navigation { + font-size: 12px; + font-size: 1.2rem; + margin: 0 20% 20%; + } + + .main-navigation a { + padding: 0.5em 0; + } + + .main-navigation .menu-item-has-children > a { + padding-right: 30px; + } + + .main-navigation .menu-item-description { + font-size: 12px; + font-size: 1.2rem; + line-height: 1.5; + } + + .dropdown-toggle-button { + height: 24px; + width: 24px; + } + + .dropdown-toggle-button:after { + font-size: 16px; + line-height: 24px; + width: 24px; + } + + .social-navigation { + margin: 0 20% 20%; + } + + .social-navigation ul { + margin-bottom: -1.6em; + } + + .social-navigation li { + width: 25%; + } + + .social-navigation a { + height: 3.2em; + } + + .secondary-toggle { + display: none; + } + + .post-password-form label, + .post-navigation .meta-nav, + .comment-navigation, + .image-navigation, + .author-heading, + .author-bio, + .entry-footer, + .page-links a, + .page-links span, + .comment-metadata, + .pingback .edit-link, + .comment-list .reply, + .comment-notes, + .comment-awaiting-moderation, + .logged-in-as, + .comment-form label, + .form-allowed-tags, + .site-info, + .wp-caption-text, + .gallery-caption, + .entry-caption, + .widecolumn label, + .widecolumn .mu_register label { + font-size: 12px; + font-size: 1.2rem; + } + + .post-navigation { + margin: 8.3333% 8.3333% 0; + } + + .post-navigation a { + padding: 5% 10%; + } + + .pagination { + margin: 8.333% 8.333% 0; + } + + .pagination .nav-links { + min-height: 3.2em; + } + + .pagination .page-numbers { + line-height: 3.2em; + padding: 0 0.8em; + } + + .pagination .prev, + .pagination .next { + height: 48px; + padding: 0; + width: 48px; + } + + .pagination .prev:before, + .pagination .next:before { + height: 48px; + line-height: 48px; + width: 48px; + } + + .image-navigation .nav-previous a:before, + .image-navigation .nav-next a:after, + .comment-navigation .nav-previous a:before, + .comment-navigation .nav-next a:after { + font-size: 16px; + top: 0; + } + + .image-navigation { + padding: 0 10%; + } + + blockquote.alignleft, + .wp-caption.alignleft, + img.alignleft { + margin: 0.4em 1.6em 1.6em 0; + } + + blockquote.alignright, + .wp-caption.alignright, + img.alignright { + margin: 0.4em 0 1.6em 1.6em; + } + + blockquote.aligncenter, + .wp-caption.aligncenter, + img.aligncenter { + clear: both; + margin-top: 0.4em; + margin-bottom: 1.6em; + } + + .wp-caption.alignleft, + .wp-caption.alignright, + .wp-caption.aligncenter { + margin-bottom: 1.2em; + } + + .site-header { + background-color: transparent; + border-bottom: 0; + margin: 20% 0; + padding: 0 20%; + } + + .site-branding { + min-height: 0; + padding: 0; + } + + .site-title { + font-size: 22px; + font-size: 2.2rem; + line-height: 1.3636; + } + + .site-description { + font-size: 12px; + font-size: 1.2rem; + } + + .widget { + font-size: 12px; + font-size: 1.2rem; + margin: 0 0 20%; + padding: 0 20%; + } + + .widget blockquote { + font-size: 12px; + font-size: 1.2rem; + line-height: 1.5; + margin-bottom: 1.5em; + margin-left: -1.5em; + padding-left: 1.1667em; + } + + .widget blockquote p { + margin-bottom: 1.5em; + } + + .widget blockquote cite, + .widget blockquote small { + font-size: 12px; + font-size: 1.2rem; + } + + .widget pre { + padding: 0.5em; + } + + .widget button, + .widget input, + .widget select, + .widget textarea { + font-size: 12px; + font-size: 1.2rem; + } + + .widget button, + .widget input[type="button"], + .widget input[type="reset"], + .widget input[type="submit"] { + font-size: 12px; + font-size: 1.2rem; + padding: 0.5417em 1.0833em; + } + + .widget input[type="text"], + .widget input[type="email"], + .widget input[type="url"], + .widget input[type="password"], + .widget input[type="search"], + .widget textarea { + padding: 0.4583em; + } + + .widget .wp-caption-text, + .widget .gallery-caption { + font-size: 12px; + font-size: 1.2rem; + } + + .widget_calendar td, + .widget_calendar th { + line-height: 1.9167; + } + + .widget_archive li, + .widget_categories li, + .widget_links li, + .widget_meta li, + .widget_nav_menu li, + .widget_pages li, + .widget_recent_comments li, + .widget_recent_entries li { + padding: 0.4583em 0; + } + + .widget_categories .children, + .widget_nav_menu .sub-menu, + .widget_pages .children { + margin: 0.4583em 0 0 1em; + padding-top: 0.4583em; + } + + .widget_rss .rss-date, + .widget_rss cite { + font-size: 12px; + font-size: 1.2rem; + line-height: 1.5; + } + + .hentry, + .page-header, + .page-content { + margin: 0 8.3333%; + } + + .hentry { + padding-top: 8.3333%; + } + + .hentry + .hentry, + .page-header + .hentry, + .page-header + .page-content { + margin-top: 8.3333%; + } + + .post-thumbnail { + margin-bottom: 2.4em; + } + + .entry-header { + padding: 0 10%; + } + + .entry-title, + .widecolumn h2 { + font-size: 31px; + font-size: 3.1rem; + line-height: 1.1613; + margin-bottom: 1.1613em; + } + + .entry-content, + .entry-summary { + padding: 0 10% 10%; + } + + .entry-content h1, + .entry-summary h1, + .page-content h1, + .comment-content h1 { + font-size: 31px; + font-size: 3.1rem; + line-height: 1.1613; + margin-top: 1.5484em; + margin-bottom: 0.7742em; + } + + .entry-content h2, + .entry-summary h2, + .page-content h2, + .comment-content h2 { + font-size: 26px; + font-size: 2.6rem; + line-height: 1.3846; + margin-top: 1.8462em; + margin-bottom: 0.9231em; + } + + .entry-content h3, + .entry-summary h3, + .page-content h3, + .comment-content h3 { + font-size: 22px; + font-size: 2.2rem; + line-height: 1.3636; + margin-top: 2.1818em; + margin-bottom: 1.0909em; + } + + .entry-content h4, + .entry-summary h4, + .page-content h4, + .comment-content h4 { + font-size: 18px; + font-size: 1.8rem; + line-height: 1.3333; + margin-top: 2.6667em; + margin-bottom: 1.3333em; + } + + .entry-content h5, + .entry-content h6, + .entry-summary h5, + .entry-summary h6, + .page-content h5, + .page-content h6, + .comment-content h5, + .comment-content h6 { + font-size: 15px; + font-size: 1.5rem; + line-height: 1.2; + margin-top: 3.2em; + margin-bottom: 1.6em; + } + + .entry-content .more-link:after, + .entry-summary .more-link:after { + font-size: 16px; + top: 5px; + } + + .author-info { + margin: 0 10%; + padding: 10% 0; + } + + .author-info .avatar { + height: 36px; + margin: 0 1.5em 1.5em 0; + width: 36px; + } + + .author-link:after { + font-size: 16px; + top: 1px; + } + + .entry-footer { + padding: 5% 10%; + } + + .posted-on:before, + .byline:before, + .cat-links:before, + .tags-links:before, + .comments-link:before, + .entry-format:before, + .edit-link:before, + .full-size-link:before { + top: 0; + } + + .page-header { + padding: 4.1666% 8.3333%; + } + + .page-content { + padding: 8.3333%; + } + + .taxonomy-description { + padding-top: 0.4em; + } + + .page-title, + .comments-title, + .comment-reply-title, + .post-navigation .post-title { + font-size: 18px; + font-size: 1.8rem; + line-height: 1.3333; + } + + .page-links { + margin-bottom: 1.3333em; + } + + .page-links a, + .page-links > span { + margin: 0 0.3333em 0.3333em 0; + } + + .entry-attachment { + margin-bottom: 1.6em; + } + + .format-aside .entry-title, + .format-image .entry-title, + .format-video .entry-title, + .format-quote .entry-title, + .format-gallery .entry-title, + .format-status .entry-title, + .format-link .entry-title, + .format-audio .entry-title, + .format-chat .entry-title { + font-size: 18px; + font-size: 1.8rem; + line-height: 1.3333; + margin-bottom: 1.3333em; + } + + .format-link .entry-title a:after { + top: 0; + } + + .comments-area { + margin: 8.3333% 8.3333% 0; + padding: 8.3333%; + } + + .comments-title { + margin-bottom: 1.3333em; + } + + .comment-list article, + .comment-list .pingback, + .comment-list .trackback { + padding: 1.6em 0; + } + + .comment-list + .comment-respond, + .comment-navigation + .comment-respond { + padding-top: 1.6em; + } + + .comment-list .children > li { + padding-left: 0.8em; + } + + .comment-author { + margin-bottom: 0.4em; + } + + .comment-author .avatar { + height: 24px; + margin-right: 0.8em; + top: 0; + width: 24px; + } + + .comment-metadata .edit-link:before { + top: 3px; + } + + .pingback .edit-link:before { + top: 5px; + } + + .bypostauthor > article .fn:after { + top: 5px; + left: 3px; + } + + .comment-content ul, + .comment-content ol { + margin-bottom: 2em; + } + + .comment-list .reply a { + padding: 0.4167em 0.8333em; + } + + .comment-form, + .no-comments { + padding-top: 1.6em; + } + + .comment-reply-title small a:before { + top: -3px; + } + + .site-footer { + float: left; + margin: 0 0 0 35.2941%; + padding: 0; + width: 58.8235%; + } + + .site-info { + padding: 5% 10%; + } + + embed, + iframe, + object, + video { + margin-bottom: 1.6em; + } + + .wp-audio-shortcode, + .wp-video, + .wp-playlist.wp-audio-playlist { + font-size: 15px; + font-size: 1.5rem; + margin-bottom: 1.6em; + } + + .wp-caption, + .gallery { + margin-bottom: 1.6em; + } + + .widecolumn { + margin: 8.3333%; + padding: 8.3333%; + } + + .widecolumn .mu_alert { + margin-bottom: 1.6em; + } + + .widecolumn p { + margin: 1.6em 0; + } + + .widecolumn p + h2 { + margin-top: 1.5484em; + } + + .widecolumn #key, + .widecolumn .mu_register #blog_title, + .widecolumn .mu_register #user_email, + .widecolumn .mu_register #blogname, + .widecolumn .mu_register #user_name { + font-size: 16px; + font-size: 1.6rem; + } + + .widecolumn .mu_register #blog_title, + .widecolumn .mu_register #user_email, + .widecolumn .mu_register #user_name { + margin: 0 0 0.375em; + } +} + + +/** + * 16.5 Desktop Medium 1100px + */ + +@media screen and (min-width: 68.75em) { + body, + button, + input, + select, + textarea { + font-size: 17px; + font-size: 1.7rem; + line-height: 1.6471; + } + + button, + input { + line-height: normal; + } + + p, + address, + pre, + hr, + ul, + ol, + dl, + dd, + table { + margin-bottom: 1.6471em; + } + + blockquote { + font-size: 20px; + font-size: 2rem; + line-height: 1.75; + margin-bottom: 1.75em; + margin-left: -1.05em; + padding-left: 0.85em; + } + + blockquote p { + margin-bottom: 1.75em; + } + + blockquote cite, + blockquote small { + font-size: 17px; + font-size: 1.7rem; + line-height: 1.6471; + } + + pre { + line-height: 1.2353; + } + + button, + input[type="button"], + input[type="reset"], + input[type="submit"], + .post-password-form input[type="submit"], + .widecolumn #submit, + .widecolumn .mu_register input[type="submit"] { + font-size: 14px; + font-size: 1.4rem; + padding: 0.8214em 1.5714em; + } + + input[type="text"], + input[type="email"], + input[type="url"], + input[type="password"], + input[type="search"], + textarea { + padding: 0.5em; + } + + .main-navigation { + font-size: 14px; + font-size: 1.4rem; + } + + .main-navigation a { + padding: 0.4643em 0; + } + + .main-navigation .menu-item-has-children > a { + padding-right: 34px; + } + + .main-navigation .menu-item-description { + line-height: 1.4583; + margin-top: 0.25em; + } + + .dropdown-toggle-button { + height: 28px; + width: 28px; + } + + .dropdown-toggle-button:after { + line-height: 28px; + width: 28px; + } + + .social-navigation ul { + margin-bottom: -1.4706em; + } + + .social-navigation li { + width: 20%; + } + + .social-navigation a { + height: 2.8824em; + } + + .post-password-form label, + .post-navigation .meta-nav, + .comment-navigation, + .image-navigation, + .author-heading, + .author-bio, + .entry-footer, + .page-links a, + .page-links span, + .comment-metadata, + .pingback .edit-link, + .comment-list .reply, + .comment-notes, + .comment-awaiting-moderation, + .logged-in-as, + .comment-form label, + .form-allowed-tags, + .site-info, + .wp-caption-text, + .gallery-caption, + .entry-caption, + .widecolumn label, + .widecolumn .mu_register label { + font-size: 14px; + font-size: 1.4rem; + } + + .pagination .nav-links { + min-height: 3.2941em; + } + + .pagination .page-numbers { + line-height: 3.2941em; + padding: 0 0.8235em; + } + + .pagination .prev, + .pagination .next { + height: 56px; + padding: 0; + width: 56px; + } + + .pagination .prev:before, + .pagination .next:before { + height: 56px; + line-height: 56px; + width: 56px; + } + + .image-navigation .nav-previous a:before, + .image-navigation .nav-next a:after, + .comment-navigation .nav-previous a:before, + .comment-navigation .nav-next a:after { + top: 2px; + } + + blockquote.alignleft, + .wp-caption.alignleft, + img.alignleft { + margin: 0.4118em 1.6471em 1.6471em 0; + } + + blockquote.alignright, + .wp-caption.alignright, + img.alignright { + margin: 0.4118em 0 1.6471em 1.6471em; + } + + blockquote.aligncenter, + .wp-caption.aligncenter, + img.aligncenter { + margin-top: 0.4118em; + margin-bottom: 1.6471em; + } + + .wp-caption.alignleft, + .wp-caption.alignright, + .wp-caption.aligncenter { + margin-bottom: 1.2353em; + } + + .site-title { + font-size: 24px; + font-size: 2.4rem; + line-height: 1.1667; + } + + .site-description { + font-size: 14px; + font-size: 1.4rem; + } + + .widget { + font-size: 14px; + font-size: 1.4rem; + } + + .widget blockquote { + font-size: 14px; + font-size: 1.4rem; + padding-left: 1.2143em; + } + + .widget button, + .widget input, + .widget select, + .widget textarea { + font-size: 14px; + font-size: 1.4rem; + } + + .widget button, + .widget input[type="button"], + .widget input[type="reset"], + .widget input[type="submit"] { + font-size: 12px; + font-size: 1.2rem; + padding: 0.75em 1.5em; + } + + .widget input[type="text"], + .widget input[type="email"], + .widget input[type="url"], + .widget input[type="password"], + .widget input[type="search"], + .widget textarea { + padding: 0.5em; + } + + .widget .wp-caption-text, + .widget .gallery-caption { + line-height: 1.4583; + padding: 0.5833em 0; + } + + .widget_calendar caption { + margin: 0 0 1.9286em; + } + + .widget_calendar td, + .widget_calendar th { + line-height: 1.9286; + } + + .widget_archive li, + .widget_categories li, + .widget_links li, + .widget_meta li, + .widget_nav_menu li, + .widget_pages li, + .widget_recent_comments li, + .widget_recent_entries li { + padding: 0.4643em 0; + } + + .widget_categories .children, + .widget_nav_menu .sub-menu, + .widget_pages .children { + margin: 0.4643em 0 0 1em; + padding-top: 0.4643em; + } + + .widget_rss .rss-date, + .widget_rss cite { + line-height: 1.75; + } + + .post-thumbnail { + margin-bottom: 2.4706em; + } + + .entry-title, + .widecolumn h2 { + font-size: 35px; + font-size: 3.5rem; + line-height: 1.2; + margin-bottom: 1.2em; + } + + .entry-content h1, + .entry-summary h1, + .page-content h1, + .comment-content h1 { + font-size: 35px; + font-size: 3.5rem; + line-height: 1.2; + margin-top: 1.6em; + margin-bottom: 0.8em; + } + + .entry-content h2, + .entry-summary h2, + .page-content h2, + .comment-content h2 { + font-size: 29px; + font-size: 2.9rem; + line-height: 1.2069; + margin-top: 1.931em; + margin-bottom: 0.9655em; + } + + .entry-content h3, + .entry-summary h3, + .page-content h3, + .comment-content h3 { + font-size: 24px; + font-size: 2.4rem; + line-height: 1.1667; + margin-top: 2.3333em; + margin-bottom: 1.1667em; + } + + .entry-content h4, + .entry-summary h4, + .page-content h4, + .comment-content h4 { + font-size: 20px; + font-size: 2rem; + line-height: 1.4; + margin-top: 2.8em; + margin-bottom: 1.4em; + } + + .entry-content h5, + .entry-content h6, + .entry-summary h5, + .entry-summary h6, + .page-content h5, + .page-content h6, + .comment-content h5, + .comment-content h6 { + font-size: 17px; + font-size: 1.7rem; + line-height: 1.2353; + margin-top: 3.2941em; + margin-bottom: 1.6471em; + } + + .entry-content .more-link:after, + .entry-summary .more-link:after { + font-size: 24px; + top: 2px; + } + + .author-info .avatar { + height: 42px; + margin: 0 1.6471em 1.6471em 0; + width: 42px; + } + + .author-link:after { + top: 3px; + } + + .posted-on:before, + .byline:before, + .cat-links:before, + .tags-links:before, + .comments-link:before, + .entry-format:before, + .edit-link:before, + .full-size-link:before { + top: 3px; + } + + .taxonomy-description { + padding-top: 0.4118em; + } + + .page-title, + .comments-title, + .comment-reply-title, + .post-navigation .post-title { + font-size: 24px; + font-size: 2.4rem; + line-height: 1.1667; + } + + .page-links { + margin-bottom: 1.4117em; + } + + .page-links a, + .page-links > span { + margin: 0 0.2857em 0.2857em 0; + } + + .entry-attachment { + margin-bottom: 1.6471em; + } + + .format-aside .entry-title, + .format-image .entry-title, + .format-video .entry-title, + .format-quote .entry-title, + .format-gallery .entry-title, + .format-status .entry-title, + .format-link .entry-title, + .format-audio .entry-title, + .format-chat .entry-title { + font-size: 20px; + font-size: 2rem; + line-height: 1.4; + margin-bottom: 1.4em; + } + + .format-link .entry-title a:after { + top: 0.0833em; + } + + .comments-title { + margin-bottom: 1.4em; + } + + .comment-list article, + .comment-list .pingback, + .comment-list .trackback { + padding: 1.6471em 0; + } + + .comment-list + .comment-respond, + .comment-navigation + .comment-respond { + padding-top: 1.6471em; + } + + .comment-list .children > li { + padding-left: 1.1667em; + } + + .comment-author { + margin-bottom: 0; + } + + .comment-author .avatar { + height: 42px; + margin-right: 1.64705em; + top: 5px; + width: 42px; + } + + .bypostauthor > article .fn:after { + top: 7px; + left: 6px; + } + + .comment-metadata .edit-link:before { + top: 6px; + } + + .pingback .edit-link:before { + top: 6px; + } + + .comment-content ul, + .comment-content ol { + margin-bottom: 1.6471em; + } + + .comment-list .reply a { + padding: 0.4286em 0.8571em; + } + + .comment-form, + .no-comments { + padding-top: 1.6471em; + } + + .comment-reply-title small a:before { + top: -1px; + } + + embed, + iframe, + object, + video { + margin-bottom: 1.6471em; + } + + .wp-audio-shortcode, + .wp-video, + .wp-playlist.wp-audio-playlist { + font-size: 17px; + font-size: 1.7rem; + margin-bottom: 1.6471em; + } + + .wp-caption, + .gallery { + margin-bottom: 1.6471em; + } + + .widecolumn .mu_alert { + margin-bottom: 1.6471em; + } + + .widecolumn p { + margin: 1.6471em 0; + } + + .widecolumn p + h2 { + margin-top: 1.6em; + } + + .widecolumn #key, + .widecolumn .mu_register #blog_title, + .widecolumn .mu_register #user_email, + .widecolumn .mu_register #blogname, + .widecolumn .mu_register #user_name { + font-size: 17px; + font-size: 1.7rem; + } + + .widecolumn .mu_register #blog_title, + .widecolumn .mu_register #user_email, + .widecolumn .mu_register #user_name { + margin: 0 0 0.4117em; + } +} + + +/** + * 16.6 Desktop Large 1240px + */ + +@media screen and (min-width: 77.5em) { + body, + button, + input, + select, + textarea { + font-size: 19px; + font-size: 1.9rem; + line-height: 1.6842; + } + + button, + input { + line-height: normal; + } + + p, + address, + pre, + hr, + ul, + ol, + dl, + dd, + table { + margin-bottom: 1.6842em; + } + + blockquote { + font-size: 22px; + font-size: 2.2rem; + line-height: 1.8182; + margin-bottom: 1.8182em; + margin-left: -1.0909em; + padding-left: 0.9091em; + } + + blockquote p { + margin-bottom: 1.8182em; + } + + blockquote cite, + blockquote small { + font-size: 19px; + font-size: 1.9rem; + line-height: 1.6842; + } + + pre { + line-height: 1.2632; + } + + button, + input[type="button"], + input[type="reset"], + input[type="submit"], + .post-password-form input[type="submit"], + .widecolumn #submit, + .widecolumn .mu_register input[type="submit"] { + font-size: 16px; + font-size: 1.6rem; + padding: 0.8125em 1.625em; + } + + input[type="text"], + input[type="email"], + input[type="url"], + input[type="password"], + input[type="search"], + textarea { + padding: 0.5278em; + } + + .main-navigation { + font-size: 16px; + font-size: 1.6rem; + } + + .main-navigation a { + padding: 0.5em 0; + } + + .main-navigation .menu-item-has-children > a { + padding-right: 38px; + } + + .main-navigation .menu-item-description { + font-size: 13px; + font-size: 1.3rem; + line-height: 1.5385; + margin-top: 0.3077em; + } + + .dropdown-toggle-button { + height: 32px; + top: 4px; + width: 32px; + } + + .dropdown-toggle-button:after { + line-height: 32px; + width: 32px; + } + + .social-navigation ul { + margin-bottom: -1.2632em; + } + + .social-navigation a { + height: 2.5263em; + } + + .post-password-form label, + .post-navigation .meta-nav, + .comment-navigation, + .image-navigation, + .author-heading, + .author-bio, + .entry-footer, + .page-links a, + .page-links span, + .comment-metadata, + .pingback .edit-link, + .comment-list .reply, + .comment-notes, + .comment-awaiting-moderation, + .logged-in-as, + .comment-form label, + .form-allowed-tags, + .site-info, + .wp-caption-text, + .gallery-caption, + .entry-caption, + .widecolumn label, + .widecolumn .mu_register label { + font-size: 16px; + font-size: 1.6rem; + } + + .pagination .nav-links { + min-height: 3.3684em; + } + + .pagination .page-numbers { + line-height: 3.3684em; + padding: 0 0.8421em; + } + + .pagination .prev, + .pagination .next { + height: 64px; + padding: 0; + width: 64px; + } + + .pagination .prev:before, + .pagination .next:before { + height: 64px; + line-height: 64px; + width: 64px; + } + + .image-navigation .nav-previous a:before, + .image-navigation .nav-next a:after, + .comment-navigation .nav-previous a:before, + .comment-navigation .nav-next a:after { + font-size: 24px; + top: -1px; + } + + blockquote.alignleft, + .wp-caption.alignleft, + img.alignleft { + margin: 0.4211em 1.6842em 1.6842em 0; + } + + blockquote.alignright, + .wp-caption.alignright, + img.alignright { + margin: 0.4211em 0 1.6842em 1.6842em; + } + + blockquote.aligncenter, + .wp-caption.aligncenter, + img.aligncenter { + margin-top: 0.4211em; + margin-bottom: 1.6842em; + } + + .wp-caption.alignleft, + .wp-caption.alignright, + .wp-caption.aligncenter { + margin-bottom: 1.2632em; + } + + .site-title { + font-size: 27px; + font-size: 2.7rem; + line-height: 1.1852; + } + + .site-description { + font-size: 16px; + font-size: 1.6rem; + } + + .widget { + font-size: 16px; + font-size: 1.6rem; + } + + .widget blockquote { + font-size: 16px; + font-size: 1.6rem; + padding-left: 1.25em; + } + + .widget blockquote cite, + .widget blockquote small { + font-size: 13px; + font-size: 1.3rem; + line-height: 1.8462; + } + + .widget button, + .widget input, + .widget select, + .widget textarea { + font-size: 16px; + font-size: 1.6rem; + } + + .widget button, + .widget input[type="button"], + .widget input[type="reset"], + .widget input[type="submit"] { + font-size: 13px; + font-size: 1.3rem; + padding: 0.8462em 1.6923em; + } + + .widget input[type="text"], + .widget input[type="email"], + .widget input[type="url"], + .widget input[type="password"], + .widget input[type="search"], + .widget textarea { + padding: 0.5em; + } + + .widget .wp-caption-text, + .widget .gallery-caption { + font-size: 13px; + font-size: 1.3rem; + line-height: 1.5385; + padding: 0.6154em 0; + } + + .widget_calendar td, + .widget_calendar th { + line-height: 1.9375; + } + + .widget_calendar caption { + margin: 0 0 1.5em; + } + + .widget_archive li, + .widget_categories li, + .widget_links li, + .widget_meta li, + .widget_nav_menu li, + .widget_pages li, + .widget_recent_comments li, + .widget_recent_entries li { + padding: 0.4688em 0; + } + + .widget_categories .children, + .widget_nav_menu .sub-menu, + .widget_pages .children { + margin: 0.4688em 0 0 1em; + padding-top: 0.4688em; + } + + .widget_rss .rss-date, + .widget_rss cite { + font-size: 13px; + font-size: 1.3rem; + line-height: 1.8462; + } + + .post-thumbnail { + margin-bottom: 2.9474em; + } + + .entry-title, + .widecolumn h2 { + font-size: 39px; + font-size: 3.9rem; + line-height: 1.2308; + margin-bottom: 1.2308em; + } + + .entry-content h1, + .entry-summary h1, + .page-content h1, + .comment-content h1 { + font-size: 39px; + font-size: 3.9rem; + line-height: 1.2308; + margin-top: 1.641em; + margin-bottom: 0.8205em; + } + + .entry-content h2, + .entry-summary h2, + .page-content h2, + .comment-content h2 { + font-size: 32px; + font-size: 3.2rem; + line-height: 1.25; + margin-top: 2em; + margin-bottom: 1em; + } + + .entry-content h3, + .entry-summary h3, + .page-content h3, + .comment-content h3 { + font-size: 27px; + font-size: 2.7rem; + line-height: 1.1852; + margin-top: 2.3704em; + margin-bottom: 1.1852em; + } + + .entry-content h4, + .entry-summary h4, + .page-content h4, + .comment-content h4 { + font-size: 22px; + font-size: 2.2rem; + line-height: 1.4545; + margin-top: 2.9091em; + margin-bottom: 1.4545em; + } + + .entry-content h5, + .entry-content h6, + .entry-summary h5, + .entry-summary h6, + .page-content h5, + .page-content h6, + .comment-content h5, + .comment-content h6 { + font-size: 19px; + font-size: 1.9rem; + line-height: 1.2632; + margin-top: 3.3684em; + margin-bottom: 1.6842em; + } + + .entry-content .more-link:after, + .entry-summary .more-link:after { + top: 3px; + } + + .author-info .avatar { + height: 56px; + margin: 0 1.6842em 1.6842em 0; + width: 56px; + } + + .author-link:after { + font-size: 24px; + top: 0; + } + + .posted-on:before, + .byline:before, + .cat-links:before, + .tags-links:before, + .comments-link:before, + .entry-format:before, + .edit-link:before, + .full-size-link:before { + top: 4px; + } + + .taxonomy-description { + padding-top: 0.4211em; + } + + .page-title, + .comments-title, + .comment-reply-title, + .post-navigation .post-title { + font-size: 27px; + font-size: 2.7rem; + line-height: 1.1852; + } + + .page-links { + margin-bottom: 1.4736em; + } + + .page-links a, + .page-links > span { + margin: 0 0.25em 0.25em 0; + } + + .entry-attachment { + margin-bottom: 1.6842em; + } + + .format-aside .entry-title, + .format-image .entry-title, + .format-video .entry-title, + .format-quote .entry-title, + .format-gallery .entry-title, + .format-status .entry-title, + .format-link .entry-title, + .format-audio .entry-title, + .format-chat .entry-title { + font-size: 22px; + font-size: 2.2rem; + line-height: 1.4545; + margin-bottom: 1.4545em; + } + + .format-link .entry-title a:after { + top: 3px; + } + + .comments-title { + margin-bottom: 1.4545em; + } + + .comment-list article, + .comment-list .pingback, + .comment-list .trackback { + padding: 1.6842em 0; + } + + .comment-list + .comment-respond, + .comment-navigation + .comment-respond { + padding-top: 1.6842em; + } + + .comment-list .children > li { + padding-left: 1.4737em; + } + + .comment-author .avatar { + height: 56px; + margin-right: 1.6842em; + top: 3px; + width: 56px; + } + + .bypostauthor > article .fn:after { + top: 8px; + } + + .comment-metadata .edit-link:before { + top: 8px; + } + + .pingback .edit-link:before { + top: 8px; + } + + .comment-content ul, + .comment-content ol { + margin-bottom: 1.6842em; + } + + .comment-list .reply a { + padding: 0.4375em 0.875em; + } + + .comment-form, + .no-comments { + padding-top: 1.6842em; + } + + embed, + iframe, + object, + video { + margin-bottom: 1.6842em; + } + + .wp-audio-shortcode, + .wp-video, + .wp-playlist.wp-audio-playlist { + font-size: 19px; + font-size: 1.9rem; + margin-bottom: 1.6842em; + } + + .wp-caption, + .gallery { + margin-bottom: 1.6842em; + } + + .widecolumn .mu_alert { + margin-bottom: 1.6842em; + } + + .widecolumn p { + margin: 1.6842em 0; + } + + .widecolumn p + h2 { + margin-top: 1.641em; + } + + .widecolumn #key, + .widecolumn .mu_register #blog_title, + .widecolumn .mu_register #user_email, + .widecolumn .mu_register #blogname, + .widecolumn .mu_register #user_name { + font-size: 19px; + font-size: 1.9rem; + } + + .widecolumn .mu_register #blog_title, + .widecolumn .mu_register #user_email, + .widecolumn .mu_register #user_name { + margin: 0 0 0.421em; + } +} + + +/** + * 16.7 Desktop X-Large 1403px + */ + +@media screen and (min-width: 87.6875em) { + body:before { + width: -webkit-calc(50% - 289px); + width: calc(50% - 289px); + } +} + + +/** + * 17.0 Print + */ + +@media print { + body { + background: none !important; /* Brute force since user agents all print differently. */ + font-size: 11.25pt; + } + + .secondary-toggle, + .navigation, + .page-links, + .edit-link, + #reply-title, + .comment-form, + .comment-edit-link, + .comment-list .reply a, + button, + input, + textarea, + select, + .widecolumn form, + .widecolumn .mu_register form { + display: none; + } + + .site-header, + .site-footer, + .hentry, + .entry-footer, + .page-header, + .page-content, + .comments-area, + .widecolumn { + background: none !important; /* Make sure color schemes dont't affect to print */ + } + + body, + blockquote, + blockquote cite, + blockquote small, + label, + a, + .site-title a, + .site-description, + .post-title, + .author-heading, + .entry-footer, + .entry-footer a, + .taxonomy-description, + .entry-caption, + .comment-author, + .comment-metadata, + .comment-metadata a, + .comment-notes, + .comment-awaiting-moderation, + .no-comments, + .site-info, + .site-info a, + .wp-caption-text, + .gallery-caption { + color: #000 !important; /* Make sure color schemes don't affect to print */ + } + + pre, + abbr[title], + table, + th, + td, + .site-header, + .site-footer, + .hentry + .hentry, + .author-info, + .page-header, + .comments-area, + .comment-list + .comment-respond, + .comment-list article, + .comment-list .pingback, + .comment-list .trackback, + .no-comments { + border-color: #eaeaea !important; /* Make sure color schemes don't affect to print */ + } + + .site { + margin: 0 7.6923%; + } + + .sidebar { + position: relative !important; /* Make sure sticky sidebar doesn't affect to print */ + } + + .site-branding { + padding: 0; + } + + .site-header { + padding: 7.6923% 0; + } + + .site-description { + display: block; + } + + .hentry + .hentry { + margin-top: 7.6923%; + } + + .hentry.has-post-thumbnail { + padding-top: 7.6923%; + } + + .sticky-post { + background: #000 !important; + color: #fff !important; + } + + .entry-header, + .entry-footer { + padding: 0; + } + + .entry-content, + .entry-summary { + padding: 0 0 7.6923%; + } + + .post-thumbnail img { + margin: 0; + } + + .author-info { + margin: 0; + } + + .page-content { + padding: 7.6923% 0 0; + } + + .page-header { + padding: 3.84615% 0; + } + + .comments-area { + border: 0; + padding: 7.6923% 0 0; + } + + .site-footer { + margin-top: 7.6923%; + padding: 3.84615% 0; + } + + .widecolumn { + margin: 7.6923% 0 0; + padding: 0; + } +} + +/*---------------------------- + Archive +-----------------------------*/ + +ul.archivegroup { + margin-bottom: 15px; +} + +.archivegroup .expanded ul { + display: block; +} + +.archivegroup .collapsed ul { + display: none; +} + +ul.month { + list-style: outside none none; + margin: 0.5em 0 0 1.3em; + padding: 0; +} + +/*---------------------------- + Tab +-----------------------------*/ + +.tab { + width: 100%; + line-height: 1; + border-bottom: 1px solid #F1F1F1; + margin-bottom:1.2308em; +} + +.tab ul { + padding:0; + margin:0; +} + +.tab li { + display: inline-block; + margin:0; + padding:0; +} + +.tab a { + background: #F1F1F1; + border-radius: 6px 6px 0px 0; + color: #555555; + text-align: center; + padding: 8px 14px; + display: inline-block; + margin: 0 5px; +} + +/*---------------------------- + Custom +-----------------------------*/ + +.tags-links a:after { + content:", "; +} + +.tags-links a:last-child:after { + content:""; +} + +.site-info p { + margin: 0; + display:inline; + margin-right: 5px; +} + +.site-info p:last-child { + margin:0; +} + +.author-description p { + font-size: 1.6rem; +} + +.post-blockquote { + padding: 0 10%; +} + +.post-link { + font-size: 2.2rem; + line-height: 1.8182; + margin-bottom: 1.8182em; +} + +.post-link a:after { + font-family: "Genericons"; + content: "\f442"; + position: relative; + top: 3px; + font-weight: normal; +} + +.nav li.active a { + font-weight: 700; +} + +.nav .dropdown-menu li a { + font-weight: 400; +} + +.nav li.active .dropdown-toggle, .nav .dropdown-menu li.active a { + font-weight: 700; +} + +.nav .expanded { + display:block; +} + +@media screen and (max-width: 38.75em) { + .main-navigation { + margin: 0 auto 9.0909%; + } +} + +.feed-link { + display:inline; + margin:0 0 0 10px; + float:right; +} + +.feed-link a { + height:100%; +} + +#more { + display:block; + box-shadow: none; + border: none; +} + +.social-logo a { + height:35px; + width:35px; +} \ No newline at end of file diff --git a/themes/twentyfifteen/css/style_v2.css b/themes/twentyfifteen/css/style_v2.css new file mode 100644 index 0000000..bc22ebd --- /dev/null +++ b/themes/twentyfifteen/css/style_v2.css @@ -0,0 +1,6172 @@ +/* +Theme Name: Twenty Fifteen +Theme URI: https://wordpress.org/themes/twentyfifteen/ +Author: the WordPress team +Author URI: https://wordpress.org/ +Description: Our 2015 default theme is clean, blog-focused, and designed for clarity. Twenty Fifteen's simple, straightforward typography is readable on a wide variety of screen sizes, and suitable for multiple languages. We designed it using a mobile-first approach, meaning your content takes center-stage, regardless of whether your visitors arrive by smartphone, tablet, laptop, or desktop computer. +Version: 1.4 +License: GNU General Public License v2 or later +License URI: http://www.gnu.org/licenses/gpl-2.0.html +Tags: black, blue, gray, pink, purple, white, yellow, dark, light, two-columns, left-sidebar, fixed-layout, responsive-layout, accessibility-ready, custom-background, custom-colors, custom-header, custom-menu, editor-style, featured-images, microformats, post-formats, rtl-language-support, sticky-post, threaded-comments, translation-ready +Text Domain: twentyfifteen + +This theme, like WordPress, is licensed under the GPL. +Use it to make something cool, have fun, and share what you've learned with others. +*/ + + +/** + * Table of Contents + * + * 1.0 - Reset + * 2.0 - Genericons + * 3.0 - Typography + * 4.0 - Elements + * 5.0 - Forms + * 6.0 - Navigations + * 6.1 - Links + * 6.2 - Menus + * 7.0 - Accessibility + * 8.0 - Alignments + * 9.0 - Clearings + * 10.0 - Header + * 11.0 - Widgets + * 12.0 - Content + * 12.1 - Posts and pages + * 12.2 - Post Formats + * 12.3 - Comments + * 13.0 - Footer + * 14.0 - Media + * 14.1 - Captions + * 14.2 - Galleries + * 15.0 - Multisite + * 16.0 - Media Queries + * 16.1 - Mobile Large + * 16.2 - Tablet Small + * 16.3 - Tablet Large + * 16.4 - Desktop Small + * 16.5 - Desktop Medium + * 16.6 - Desktop Large + * 16.7 - Desktop X-Large + * 17.0 - Print + */ + + +/** + * 1.0 - Reset + * + * Resetting and rebuilding styles have been helped along thanks to the fine + * work of Eric Meyer, Nicolas Gallagher, Jonathan Neal, and Blueprint. + */ + +html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td { + border: 0; + font-family: inherit; + font-size: 100%; + font-style: inherit; + font-weight: inherit; + margin: 0; + outline: 0; + padding: 0; + vertical-align: baseline; +} + +html { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + font-size: 62.5%; + overflow-y: scroll; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +*, +*:before, +*:after { + -webkit-box-sizing: inherit; + -moz-box-sizing: inherit; + box-sizing: inherit; +} + +body { + background: #f1f1f1; +} + +article, +aside, +details, +figcaption, +figure, +footer, +header, +main, +nav, +section { + display: block; +} + +ol, +ul { + list-style: none; +} + +table { + border-collapse: separate; + border-spacing: 0; +} + +caption, +th, +td { + font-weight: normal; + text-align: left; +} + +blockquote:before, +blockquote:after, +q:before, +q:after { + content: ""; +} + +blockquote, +q { + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; + quotes: none; +} + +a:focus { + outline: 2px solid #c1c1c1; + outline: 2px solid rgba(51, 51, 51, 0.3); +} + +a:hover, +a:active { + outline: 0; +} + +a img { + border: 0; +} + + +/** + * 2.0 - Genericons + */ + +.social-navigation a:before, +.secondary-toggle:before, +.dropdown-toggle-button:after, +.bypostauthor > article .fn:after, +.comment-reply-title small a:before, +.comment-navigation .nav-next a:after, +.comment-navigation .nav-previous a:before, +.posted-on:before, +.byline:before, +.cat-links:before, +.tags-links:before, +.comments-link:before, +.entry-format:before, +.edit-link:before, +.full-size-link:before, +.pagination .prev:before, +.pagination .next:before, +.image-navigation a:before, +.image-navigation a:after, +.format-link .entry-title a:after, +.entry-content .more-link:after, +.entry-summary .more-link:after, +.comments-area .more-link:after, +.author-link:after { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: inline-block; + font-family: "Genericons"; + font-size: 16px; + font-style: normal; + font-weight: normal; + font-variant: normal; + line-height: 1; + speak: none; + text-align: center; + text-decoration: inherit; + text-transform: none; + vertical-align: top; +} + + +/** + * 3.0 Typography + */ + +body, +button, +input, +select, +textarea { + color: #333; + font-family: "Noto Serif", serif; + font-size: 15px; + font-size: 1.5rem; + line-height: 1.6; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + clear: both; + font-weight: 700; +} + +p { + margin-bottom: 1.6em; +} + +b, +strong { + font-weight: 700; +} + +dfn, +cite, +em, +i { + font-style: italic; +} + +blockquote { + border-left: 4px solid #707070; + border-left: 4px solid rgba(51, 51, 51, 0.7); + color: #707070; + color: rgba(51, 51, 51, 0.7); + font-size: 18px; + font-size: 1.8rem; + font-style: italic; + line-height: 1.6667; + margin-bottom: 1.6667em; + padding-left: 0.7778em; +} + +blockquote p { + margin-bottom: 1.6667em; +} + +blockquote > p:last-child { + margin-bottom: 0; +} + +blockquote cite, +blockquote small { + color: #333; + font-size: 15px; + font-size: 1.5rem; + font-family: "Noto Sans", sans-serif; + line-height: 1.6; +} + +blockquote em, +blockquote i, +blockquote cite { + font-style: normal; +} + +blockquote strong, +blockquote b { + font-weight: 400; +} + +address { + font-style: italic; + margin: 0 0 1.6em; +} + +code, +kbd, +tt, +var, +samp, +pre { + font-family: Inconsolata, monospace; + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +pre { + background-color: transparent; + background-color: rgba(0, 0, 0, 0.01); + border: 1px solid #eaeaea; + border: 1px solid rgba(51, 51, 51, 0.1); + line-height: 1.2; + margin-bottom: 1.6em; + max-width: 100%; + overflow: auto; + padding: 0.8em; + white-space: pre; + white-space: pre-wrap; + word-wrap: break-word; +} + +abbr[title] { + border-bottom: 1px dotted #eaeaea; + border-bottom: 1px dotted rgba(51, 51, 51, 0.1); + cursor: help; +} + +mark, +ins { + background-color: #fff9c0; + text-decoration: none; +} + +sup, +sub { + font-size: 75%; + height: 0; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + bottom: 1ex; +} + +sub { + top: .5ex; +} + +small { + font-size: 75%; +} + +big { + font-size: 125%; +} + + +/** + * 4.0 Elements + */ + +hr { + background-color: #eaeaea; + background-color: rgba(51, 51, 51, 0.1); + border: 0; + height: 1px; + margin-bottom: 1.6em; +} + +ul, +ol { + margin: 0 0 1.6em 1.3333em; +} + +ul { + list-style: disc; +} + +ol { + list-style: decimal; +} + +li > ul, +li > ol { + margin-bottom: 0; +} + +dl { + margin-bottom: 1.6em; +} + +dt { + font-weight: bold; +} + +dd { + margin-bottom: 1.6em; +} + +table, +th, +td { + border: 1px solid #eaeaea; + border: 1px solid rgba(51, 51, 51, 0.1); +} + +table { + border-collapse: separate; + border-spacing: 0; + border-width: 1px 0 0 1px; + margin: 0 0 1.6em; + table-layout: fixed; /* Prevents HTML tables from becoming too wide */ + width: 100%; +} + +caption, +th, +td { + font-weight: normal; + text-align: left; +} + +th { + border-width: 0 1px 1px 0; + font-weight: 700; +} + +td { + border-width: 0 1px 1px 0; +} + +th, td { + padding: 0.4em; +} + +img { + -ms-interpolation-mode: bicubic; + border: 0; + height: auto; + max-width: 100%; + vertical-align: middle; +} + +figure { + margin: 0; +} + +del { + opacity: 0.8; +} + +/* Placeholder text color -- selectors need to be separate to work. */ + +::-webkit-input-placeholder { + color: rgba(51, 51, 51, 0.7); + font-family: "Noto Sans", sans-serif; +} + +:-moz-placeholder { + color: rgba(51, 51, 51, 0.7); + font-family: "Noto Sans", sans-serif; +} + +::-moz-placeholder { + color: rgba(51, 51, 51, 0.7); + font-family: "Noto Sans", sans-serif; + opacity: 1; /* Since FF19 lowers the opacity of the placeholder by default */ +} + +:-ms-input-placeholder { + color: rgba(51, 51, 51, 0.7); + font-family: "Noto Sans", sans-serif; +} + + +/** + * 5.0 Forms + */ + +button, +input, +select, +textarea { + background-color: #f7f7f7; + border-radius: 0; + font-size: 16px; + font-size: 1.6rem; + line-height: 1.5; + margin: 0; + max-width: 100%; + vertical-align: baseline; +} + +button, +input { + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; + line-height: normal; +} + +input, +textarea { + background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, 0)); /* Removing the inner shadow on iOS inputs */ + border: 1px solid #eaeaea; + border: 1px solid rgba(51, 51, 51, 0.1); + color: #707070; + color: rgba(51, 51, 51, 0.7); +} + +input:focus, +textarea:focus { + background-color: #fff; + border: 1px solid #c1c1c1; + border: 1px solid rgba(51, 51, 51, 0.3); + color: #333; +} + +input:focus, +select:focus { + outline: 2px solid #c1c1c1; + outline: 2px solid rgba(51, 51, 51, 0.3); +} + +button[disabled], +input[disabled], +select[disabled], +textarea[disabled] { + cursor: default; + opacity: .5; +} + +button, +input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + background-color: #333; + border: 0; + color: #fff; + cursor: pointer; + font-family: "Noto Sans", sans-serif; + font-size: 12px; + font-size: 1.2rem; + font-weight: 700; + padding: 0.7917em 1.5em; + text-transform: uppercase; +} + +button:hover, +input[type="button"]:hover, +input[type="reset"]:hover, +input[type="submit"]:hover, +button:focus, +input[type="button"]:focus, +input[type="reset"]:focus, +input[type="submit"]:focus { + background-color: #707070; + background-color: rgba(51, 51, 51, 0.7); + outline: 0; +} + +input[type="search"] { + -webkit-appearance: textfield; +} + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +input[type="text"], +input[type="email"], +input[type="url"], +input[type="password"], +input[type="search"], +textarea { + padding: 0.375em; + width: 100%; +} + +textarea { + overflow: auto; + vertical-align: top; +} + +input[type="text"]:focus, +input[type="email"]:focus, +input[type="url"]:focus, +input[type="password"]:focus, +input[type="search"]:focus, +textarea:focus { + outline: 0; +} + +.post-password-form { + position: relative; +} + +.post-password-form label { + color: #707070; + color: rgba(51, 51, 51, 0.7); + display: block; + font-family: "Noto Sans", sans-serif; + font-size: 12px; + font-size: 1.2rem; + font-weight: 700; + letter-spacing: 0.04em; + line-height: 1.5; + text-transform: uppercase; +} + +.post-password-form input[type="submit"] { + padding: 0.7917em; + position: absolute; + right: 0; + bottom: 0; +} + +input[type="checkbox"], +input[type="radio"] { + padding: 0; +} + +.search-form input[type="submit"], +.widget .search-form input[type="submit"] { + padding: 0; +} + + +/** + * 6.0 Navigations + */ + + +/** + * 6.1 Links + */ + +a { + color: #333; + text-decoration: none; +} + +a:hover, +a:focus { + color: #707070; + color: rgba(51, 51, 51, 0.7); +} + + +/** + * 6.2 Menus + */ + +.main-navigation a { + display: block; + padding: 0.8em 0; + position: relative; + text-decoration: none; +} + +.main-navigation ul { + list-style: none; + margin: 0; +} + +.main-navigation ul ul { + display: none; + margin-left: 0.8em; +} + +.main-navigation ul .toggled-on { + display: block; +} + +.main-navigation li { + border-top: 1px solid #eaeaea; + border-top: 1px solid rgba(51, 51, 51, 0.1); + position: relative; +} + +.main-navigation .current-menu-item > a, +.main-navigation .current-menu-ancestor > a { + font-weight: 700; +} + +.main-navigation .nav-menu > ul > li:first-child, +.main-navigation .nav-menu > li:first-child { + border-top: 0; +} + +.main-navigation .menu-item-has-children > a { + padding-right: 48px; +} + +.main-navigation .menu-item-description { + color: #707070; + color: rgba(51, 51, 51, 0.7); + font-family: "Noto Sans", sans-serif; + font-size: 12px; + font-size: 1.2rem; + font-weight: 400; + line-height: 1.5; + margin-top: 0.5em; +} + +.no-js .main-navigation ul ul { + display: block; +} + +.dropdown-toggle-button { + background-color: transparent; + border: 0; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + content: ""; + height: 42px; + padding: 0; + position: absolute; + text-transform: lowercase; /* Stop screen readers to read the text as capital letters */ + top: 3px; + right: 0; + width: 42px; +} + +.dropdown-toggle-button:after { + color: #333; + content: "\f431"; + font-size: 24px; + line-height: 42px; + position: relative; + top: 0; + left: 1px; + width: 42px; +} + +.dropdown-toggle-button:hover, +.dropdown-toggle-button:focus { + background-color: #eaeaea; + background-color: rgba(51, 51, 51, 0.1); +} + +.dropdown-toggle-button:focus { + outline: 1px solid #c1c1c1; + outline: 1px solid rgba(51, 51, 51, 0.3); +} + +.dropdown-toggle-button.toggle-on:after { + content: "\f432"; +} + +.social-navigation { + margin: 9.0909% 0; +} + +.social-navigation ul { + list-style: none; + margin: 0 0 -1.6em 0; +} + +.social-navigation li { + float: left; +} + +.social-navigation a { + display: block; + height: 3.2em; + position: relative; + width: 3.2em; +} + +.social-navigation a:before { + content: "\f415"; + font-size: 24px; + position: absolute; + top: 0; + left: 0; +} + +.social-navigation a[href*="codepen.io"]:before { + content: "\f216"; +} + +.social-navigation a[href*="digg.com"]:before { + content: "\f221"; +} + +.social-navigation a[href*="dribbble.com"]:before { + content: "\f201"; +} + +.social-navigation a[href*="dropbox.com"]:before { + content: "\f225"; +} + +.social-navigation a[href*="facebook.com"]:before { + content: "\f203"; +} + +.social-navigation a[href*="flickr.com"]:before { + content: "\f211"; +} + +.social-navigation a[href*="foursquare.com"]:before { + content: "\f226"; +} + +.social-navigation a[href*="plus.google.com"]:before { + content: "\f206"; +} + +.social-navigation a[href*="github.com"]:before { + content: "\f200"; +} + +.social-navigation a[href*="instagram.com"]:before { + content: "\f215"; +} + +.social-navigation a[href*="linkedin.com"]:before { + content: "\f208"; +} + +.social-navigation a[href*="pinterest.com"]:before { + content: "\f210"; +} + +.social-navigation a[href*="getpocket.com"]:before { + content: "\f224"; +} + +.social-navigation a[href*="polldaddy.com"]:before { + content: "\f217"; +} + +.social-navigation a[href*="reddit.com"]:before { + content: "\f222"; +} + +.social-navigation a[href*="stumbleupon.com"]:before { + content: "\f223"; +} + +.social-navigation a[href*="tumblr.com"]:before { + content: "\f214"; +} + +.social-navigation a[href*="twitter.com"]:before { + content: "\f202"; +} + +.social-navigation a[href*="vimeo.com"]:before { + content: "\f212"; +} + +.social-navigation a[href*="wordpress.com"]:before, +.social-navigation a[href*="wordpress.org"]:before { + content: "\f205"; +} + +.social-navigation a[href*="youtube.com"]:before { + content: "\f213"; +} + +.social-navigation a[href*="mailto:"]:before { + content: "\f410"; +} + +.social-navigation a[href*="spotify.com"]:before { + content: "\f515"; +} + +.social-navigation a[href*="twitch.tv"]:before { + content: "\f516"; +} + +.social-navigation a[href*="/feed"]:before { + content: "\f413"; +} + +.social-navigation a[href*="path.com"]:before { + content: "\f219"; +} + +.social-navigation a[href*="skype.com"]:before { + content: "\f220"; +} + +.social-navigation a[href*="tiktok.com"]:before { + content:"\f108"; +} + +.social-navigation a[href*="linkedin.com"]:before { + content:"\f207"; +} + +.social-navigation a.social-logo-mastodon:before { + content:"\f10a"; +} + +.secondary-toggle { + background-color: transparent; + border: 1px solid #eaeaea; + border: 1px solid rgba(51, 51, 51, 0.1); + height: 42px; + overflow: hidden; + padding: 0; + position: absolute; + top: 50%; + right: 0; + text-align: center; + -webkit-transform: translateY(-50%); + -ms-transform: translateY(-50%); + transform: translateY(-50%); + width: 42px; +} + +.secondary-toggle:before { + color: #333; + content: "\f419"; + line-height: 40px; + width: 40px; +} + +.secondary-toggle:hover, +.secondary-toggle:focus { + background-color: transparent; + border: 1px solid #c1c1c1; + border: 1px solid rgba(51, 51, 51, 0.3); + outline: 0; +} + +.secondary-toggle.toggled-on:before { + content: "\f405"; + font-size: 32px; + position: relative; + top: 1px; + left: -1px; +} + +.post-navigation { + background-color: #fff; + border-top: 1px solid #eaeaea; + border-top: 1px solid rgba(51, 51, 51, 0.1); + font-weight: 700; +} + +.post-navigation a { + display: block; + padding: 3.8461% 7.6923%; +} + +.post-navigation span { + display: block; +} + +.post-navigation .meta-nav { + color: #707070; + color: rgba(51, 51, 51, 0.7); + font-family: "Noto Sans", sans-serif; + font-size: 12px; + font-size: 1.2rem; + letter-spacing: 0.04em; + line-height: 1.5; + position: relative; + text-transform: uppercase; + z-index: 2; +} + +.post-navigation .post-title { + font-family: "Noto Serif", serif; + font-size: 18px; + font-size: 1.8rem; + line-height: 1.3333; + position: relative; + z-index: 2; +} + +.post-navigation .nav-next, +.post-navigation .nav-previous { + background-position: center; + background-size: cover; + position: relative; +} + +.post-navigation a:before { + content: ""; + display: block; + height: 100%; + position: absolute; + top: 0; + left: 0; + width: 100%; + z-index: 1; +} + +.post-navigation a:hover:before, +.post-navigation a:focus:before { + opacity: 0.5; +} + +.post-navigation .meta-nav { + opacity: 0.8; +} + +.post-navigation div + div { + border-top: 1px solid #eaeaea; + border-top: 1px solid rgba(51, 51, 51, 0.1); +} + +.pagination { + background-color: #fff; + border-top: 1px solid rgba(51, 51, 51, 0.1); + font-family: "Noto Sans", sans-serif; +} + +.pagination .nav-links { + min-height: 3.2em; + position: relative; + text-align: center; +} + +/* reset screen-reader-text */ +.pagination .current .screen-reader-text { + position: static !important; +} + +.pagination .page-numbers { + line-height: 3.2em; + padding: 0 0.6667em; +} + +.pagination .page-numbers.current { + text-transform: uppercase; +} + +.pagination .current { + display: inline-block; + font-weight: 700; +} + +.pagination .prev, +.pagination .next { + -webkit-tap-highlight-color: rgba(255, 255, 255, 0.3); + background-color: #333; + color: #fff; + display: inline-block; + height: 48px; + overflow: hidden; + padding: 0; + position: absolute; + width: 48px; +} + +.pagination .prev:before, +.pagination .next:before { + font-size: 32px; + height: 48px; + line-height: 48px; + position: relative; + width: 48px; +} + +.pagination .prev:hover, +.pagination .prev:focus, +.pagination .next:hover, +.pagination .next:focus { + background-color: #707070; + background-color: rgba(51, 51, 51, 0.7); +} + +.pagination .prev { + left: 0; +} + +.pagination .prev:before { + content: "\f430"; + left: -1px; +} + +.pagination .next { + right: 0; +} + +.pagination .next:before { + content: "\f429"; + right: -1px; +} + +.image-navigation, +.comment-navigation { + color: #707070; + color: rgba(51, 51, 51, 0.7); + font-size: 12px; + font-size: 1.2rem; + font-family: "Noto Sans", sans-serif; + font-weight: 700; + line-height: 1.5; + text-transform: uppercase; +} + +.image-navigation a, +.comment-navigation a { + color: #707070; + color: rgba(51, 51, 51, 0.7); +} + +.image-navigation a:hover, +.image-navigation a:focus, +.comment-navigation a:hover, +.comment-navigation a:focus { + color: #333; +} + +.image-navigation .nav-previous:not(:empty), +.image-navigation .nav-next:not(:empty), +.comment-navigation .nav-previous:not(:empty), +.comment-navigation .nav-next:not(:empty) { + display: inline-block; +} + +.image-navigation .nav-previous:not(:empty) + .nav-next:not(:empty):before, +.comment-navigation .nav-previous:not(:empty) + .nav-next:not(:empty):before { + content: "\2215"; + font-weight: 400; + margin: 0 0.7em; +} + +.image-navigation .nav-previous a:before, +.comment-navigation .nav-previous a:before { + content: "\f430"; + margin-right: 0.2em; + position: relative; +} + +.image-navigation .nav-next a:after, +.comment-navigation .nav-next a:after { + content: "\f429"; + margin-left: 0.2em; + position: relative; +} + +.comment-navigation { + border-top: 1px solid #eaeaea; + border-top: 1px solid rgba(51, 51, 51, 0.1); + border-bottom: 1px solid #eaeaea; + border-bottom: 1px solid rgba(51, 51, 51, 0.1); + padding: 2em 0; +} + +.comments-title + .comment-navigation { + border-bottom: 0; +} + +.image-navigation { + padding: 0 7.6923%; +} + +.image-navigation .nav-previous:not(:empty), +.image-navigation .nav-next:not(:empty) { + margin-bottom: 2em; +} + + +/** + * 7.0 Accessibility + */ + +/* Text meant only for screen readers */ +.says, +.screen-reader-text { + clip: rect(1px, 1px, 1px, 1px); + height: 1px; + overflow: hidden; + position: absolute !important; + width: 1px; +} + +/* must have higher specificity than alternative color schemes inline styles */ +.site .skip-link { + background-color: #f1f1f1; + box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.2); + color: #21759b; + display: block; + font: bold 14px/normal "Noto Sans", sans-serif; + left: -9999em; + outline: none; + padding: 15px 23px 14px; + text-decoration: none; + text-transform: none; + top: -9999em; +} + +.logged-in .site .skip-link { + box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6); + font: bold 14px/normal "Open Sans", sans-serif; +} + +.site .skip-link:focus { + clip: auto; + height: auto; + left: 6px; + top: 7px; + width: auto; + z-index: 100000; +} + + +/** + * 8.0 Alignments + */ + +.alignleft { + display: inline; + float: left; +} + +.alignright { + display: inline; + float: right; +} + +.aligncenter { + display: block; + margin-right: auto; + margin-left: auto; +} + +blockquote.alignleft, +.wp-caption.alignleft, +img.alignleft { + margin: 0.4em 1.6em 1.6em 0; +} + +blockquote.alignright, +.wp-caption.alignright, +img.alignright { + margin: 0.4em 0 1.6em 1.6em; +} + +blockquote.aligncenter, +.wp-caption.aligncenter, +img.aligncenter { + clear: both; + margin-top: 0.4em; + margin-bottom: 1.6em; +} + +.wp-caption.alignleft, +.wp-caption.alignright, +.wp-caption.aligncenter { + margin-bottom: 1.2em; +} + + +/** + * 9.0 Clearings + */ + +.clear:before, +.clear:after, +.site:before, +.site:after, +.entry-content:before, +.entry-content:after, +.comment-content:before, +.comment-content:after, +.site-content:before, +.site-content:after, +.nav-links:before, +.nav-links:after, +.comment-navigation:before, +.comment-navigation:after, +.social-navigation ul:before, +.social-navigation ul:after, +.textwidget:before, +.textwidget:after { + content: ""; + display: table; +} + +.clear:after, +.site:after, +.entry-content:after, +.comment-content:after, +.site-content:after, +.nav-links:after, +.comment-navigation:after, +.social-navigation ul:after, +.textwidget:after { + clear: both; +} + + +/** + * 10.0 Header + */ + +.site-header { + background-color: #fff; + border-bottom: 1px solid rgba(51, 51, 51, 0.1); + padding: 7.6923%; +} + +.site-branding { + min-height: 2em; + padding-right: 60px; + position: relative; +} + +.site-title { + font-family: "Noto Sans", sans-serif; + font-size: 22px; + font-size: 2.2rem; + font-weight: 700; + line-height: 1.3636; + margin-bottom: 0; +} + +.site-description { + display: none; + font-family: "Noto Sans", sans-serif; + font-size: 12px; + font-size: 1.2rem; + font-weight: 400; + line-height: 1.5; + margin: 0.5em 0 0; + opacity: 0.7; +} + + +/** + * 11.0 Widgets + */ + +.widget { + color: #707070; + color: rgba(51, 51, 51, 0.7); + -webkit-hyphens: auto; + -moz-hyphens: auto; + -ms-hyphens: auto; + hyphens: auto; + margin: 0 auto 9.09090%; + width: 100%; + word-wrap: break-word; +} + +.widget pre { + line-height: 1.2; +} + +.widget button, +.widget input, +.widget select, +.widget textarea { + font-size: 16px; + font-size: 1.6rem; + line-height: 1.5; +} + +.widget button, +.widget input { + line-height: normal; +} + +.widget button, +.widget input[type="button"], +.widget input[type="reset"], +.widget input[type="submit"] { + font-size: 12px; + font-size: 1.2rem; + padding: 0.7917em 1.5833em; +} + +.widget input[type="text"], +.widget input[type="email"], +.widget input[type="url"], +.widget input[type="password"], +.widget input[type="search"], +.widget textarea { + padding: 0.375em; +} + +.widget-title { + color: #333; + font-family: "Noto Sans", sans-serif; + margin: 0 0 1.6em; + letter-spacing: 0.04em; + text-transform: uppercase; +} + +.widget > :last-child { + margin-bottom: 0; +} + +.widget_calendar table { + margin: 0; +} + +.widget_calendar td, +.widget_calendar th { + line-height: 2.3333; + text-align: center; + padding: 0; +} + +.widget_calendar caption { + font-family: "Noto Serif", serif; + font-weight: 700; + margin: 0 0 1.6em; + letter-spacing: 0.04em; + text-transform: uppercase; +} + +.widget_calendar tbody a { + -webkit-tap-highlight-color: rgba(255, 255, 255, 0.3); + background-color: #333; + color: #fff; + display: block; + font-weight: 700; +} + +.widget_calendar tbody a:hover, +.widget_calendar tbody a:focus { + background-color: #707070; + background-color: rgba(51, 51, 51, 0.7); + color: #fff; +} + +.widget_archive a, +.widget_categories a, +.widget_links a, +.widget_meta a, +.widget_nav_menu a, +.widget_pages a, +.widget_recent_comments a, +.widget_recent_entries a { + border: 0; +} + +.widget_archive ul, +.widget_categories ul, +.widget_links ul, +.widget_meta ul, +.widget_nav_menu ul, +.widget_pages ul, +.widget_recent_comments ul, +.widget_recent_entries ul { + list-style: none; + margin: 0; +} + +.widget_archive li, +.widget_categories li, +.widget_links li, +.widget_meta li, +.widget_nav_menu li, +.widget_pages li, +.widget_recent_comments li, +.widget_recent_entries li { + border-top: 1px solid #eaeaea; + border-top: 1px solid rgba(51, 51, 51, 0.1); + padding: 0.7667em 0; +} + +.widget_archive li:first-child, +.widget_categories li:first-child, +.widget_links li:first-child, +.widget_meta li:first-child, +.widget_nav_menu li:first-child, +.widget_pages li:first-child, +.widget_recent_comments li:first-child, +.widget_recent_entries li:first-child { + border-top: 0; + padding-top: 0; +} + +.widget_archive li:last-child, +.widget_categories li:last-child, +.widget_links li:last-child, +.widget_meta li:last-child, +.widget_nav_menu li:last-child, +.widget_pages li:last-child, +.widget_recent_comments li:last-child, +.widget_recent_entries li:last-child { + padding-bottom: 0; +} + +.widget_categories .children, +.widget_nav_menu .sub-menu, +.widget_pages .children { + border-top: 1px solid #eaeaea; + border-top: 1px solid rgba(51, 51, 51, 0.1); + margin: 0.7667em 0 0 0.8em; + padding-top: 0.7667em; +} + +.widget_recent_entries .post-date { + display: block; +} + +.widget_rss ul { + list-style: none; + margin: 0; +} + +.widget_rss li { + margin-bottom: 1.6em; +} + +.widget_rss ul:last-child, +.widget_rss li:last-child { + margin-bottom: 0; +} + +.widget_rss .rsswidget { + border: 0; + font-weight: 700; +} + +.widget_rss .rsswidget img { + margin-top: -4px; +} + +.widget_rss .rss-date, +.widget_rss cite { + font-family: "Noto Sans", sans-serif; + font-size: 12px; + font-size: 1.2rem; + font-style: normal; + display: block; + line-height: 2; + opacity: 0.8; +} + +.textwidget > :last-child { + margin-bottom: 0; +} + +.textwidget a { + border-bottom: 1px solid #333; +} + +.textwidget a:hover, +.textwidget a:focus { + border-bottom: 0; +} + + +/** + * 12.0 Content + */ + +.secondary { + background-color: #fff; + display: none; + padding: 0 7.6923%; +} + +.secondary.toggled-on { + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + display: block; +} + +.widget-area { + margin: 9.09090% auto 0; +} + +.site-footer { + background-color: #fff; + border-top: 1px solid rgba(51, 51, 51, 0.1); + padding: 3.84615% 7.6923%; +} + + +/** + * 12.1 Posts and pages + */ + +.hentry { + background-color: #fff; + padding-top: 7.6923%; + position: relative; +} + +.hentry.has-post-thumbnail { + padding-top: 0; +} + +.hentry.sticky:not(.has-post-thumbnail) { + padding-top: -webkit-calc(7.6923% + 24px); + padding-top: calc(7.6923% + 24px); +} + +.hentry + .hentry { + border-top: 1px solid rgba(51, 51, 51, 0.1); +} + +.post-thumbnail { + border: 0; + display: block; + margin-bottom: 2.4em; +} +.post-thumbnail img { + display: block; + margin: 0 auto; +} + +a.post-thumbnail:hover, +a.post-thumbnail:focus { + opacity: 0.85; +} + +.entry-header { + padding: 0 7.6923%; +} + +.entry-title { + font-size: 26px; + font-size: 2.6rem; + line-height: 1.1538; + margin-bottom: 0.9231em; +} + +.entry-content, +.entry-summary { + padding: 0 7.6923% 7.6923%; +} + +.entry-content > :last-child, +.entry-summary > :last-child { + margin-bottom: 0; +} + +.entry-content, +.entry-summary, +.page-content, +.comment-content { + -webkit-hyphens: auto; + -moz-hyphens: auto; + -ms-hyphens: auto; + hyphens: auto; + word-wrap: break-word; +} + +.entry-content h1, +.entry-summary h1, +.page-content h1, +.comment-content h1 { + font-size: 26px; + font-size: 2.6rem; + line-height: 1.1538; + margin-top: 1.8462em; + margin-bottom: 0.9231em; +} + +.entry-content h2, +.entry-summary h2, +.page-content h2, +.comment-content h2 { + font-size: 22px; + font-size: 2.2rem; + line-height: 1.3636; + margin-top: 2.1818em; + margin-bottom: 1.0909em; +} + +.entry-content h3, +.entry-summary h3, +.page-content h3, +.comment-content h3 { + font-size: 18px; + font-size: 1.8rem; + line-height: 1.3333; + margin-top: 2.6667em; + margin-bottom: 1.3333em; +} + +.entry-content h4, +.entry-content h5, +.entry-content h6, +.entry-summary h4, +.entry-summary h5, +.entry-summary h6, +.page-content h4, +.page-content h5, +.page-content h6, +.comment-content h4, +.comment-content h5, +.comment-content h6 { + font-size: 15px; + font-size: 1.5rem; + line-height: 1.2; + margin-top: 3.2em; + margin-bottom: 1.6em; +} + +.entry-content h5, +.entry-content h6, +.entry-summary h5, +.entry-summary h6, +.page-content h5, +.page-content h6, +.comment-content h5, +.comment-content h6 { + letter-spacing: 0.1em; + text-transform: uppercase; +} + +.entry-content > h1:first-child, +.entry-content > h2:first-child, +.entry-content > h3:first-child, +.entry-content > h4:first-child, +.entry-content > h5:first-child, +.entry-content > h6:first-child, +.entry-summary > h1:first-child, +.entry-summary > h2:first-child, +.entry-summary > h3:first-child, +.entry-summary > h4:first-child, +.entry-summary > h5:first-child, +.entry-summary > h6:first-child, +.page-content > h1:first-child, +.page-content > h2:first-child, +.page-content > h3:first-child, +.page-content > h4:first-child, +.page-content > h5:first-child, +.page-content > h6:first-child, +.comment-content > h1:first-child, +.comment-content > h2:first-child, +.comment-content > h3:first-child, +.comment-content > h4:first-child, +.comment-content > h5:first-child, +.comment-content > h6:first-child { + margin-top: 0; +} + +.entry-content a, +.entry-summary a, +.page-content a, +.comment-content a, +.pingback .comment-body > a { + border-bottom: 1px solid #333; +} + +.entry-content a:hover, +.entry-content a:focus, +.entry-summary a:hover, +.entry-summary a:focus, +.page-content a:hover, +.page-content a:focus, +.comment-content a:hover, +.comment-content a:focus, +.pingback .comment-body > a:hover, +.pingback .comment-body > a:focus { + border-bottom: 0; +} + +.entry-content a img, +.entry-summary a img, +.page-content a img, +.comment-content a img { + display: block; +} + +.comments-area .more-link:after, +.entry-content .more-link, +.entry-summary .more-link:after { + white-space: nowrap; +} + +.author-info { + border-top: 1px solid #eaeaea; + border-top: 1px solid rgba(51, 51, 51, 0.1); + margin: 0 7.6923%; + padding: 7.6923% 0; +} + +.author-info .avatar { + float: left; + height: 36px; + margin: 0 1.6em 1.6em 0; + width: 36px; +} + +.author-heading { + color: #707070; + color: rgba(51, 51, 51, 0.7); + font-family: "Noto Sans", sans-serif; + font-size: 12px; + font-size: 1.2rem; + letter-spacing: 0.04em; + margin-bottom: 1.5em; + text-transform: uppercase; +} + +.author-title { + clear: none; +} + +.author-bio { + font-size: 12px; + font-size: 1.2rem; + line-height: 1.5; + overflow: hidden; + padding-bottom: 1px; +} + +.author-description { + -webkit-hyphens: auto; + -moz-hyphens: auto; + -ms-hyphens: auto; + hyphens: auto; + word-wrap: break-word; +} + +.author-description a { + border-bottom: 1px solid #333; +} + +.author-description a:hover, +.author-description a:focus { + border-bottom: 0; +} + +.author-description > :last-child { + margin-bottom: 0; +} + +.author-link { + white-space: nowrap; +} + +.author-link:after { + content: "\f429"; + position: relative; + top: 1px; +} + +.entry-footer { + background-color: #f7f7f7; + color: #707070; + color: rgba(51, 51, 51, 0.7); + font-family: "Noto Sans", sans-serif; + font-size: 12px; + font-size: 1.2rem; + line-height: 1.5; + padding: 3.8461% 7.6923%; +} + +.entry-footer a { + border-bottom: 1px solid transparent; + color: #707070; + color: rgba(51, 51, 51, 0.7); +} + +.entry-footer a:hover { + border-bottom: 1px solid #333; +} + +.entry-footer a:hover, +.entry-footer a:focus { + color: #333; +} + +.sticky-post { + background-color: #333; + color: #fff; + font-weight: 700; + letter-spacing: 0.04em; + padding: 0.25em 0.5em; + position: absolute; + top: 0; + text-transform: uppercase; +} + +.updated:not(.published) { + display: none; +} + +.sticky .posted-on { + display: none; +} + +.posted-on:before, +.byline:before, +.cat-links:before, +.tags-links:before, +.comments-link:before, +.entry-format:before, +.edit-link:before, +.full-size-link:before { + margin-right: 2px; + position: relative; +} + +.posted-on, +.byline, +.cat-links, +.tags-links, +.comments-link, +.entry-format, +.full-size-link { + margin-right: 1em; +} + +.format-aside .entry-format:before { + content: "\f101"; +} + +.format-image .entry-format:before { + content: "\f473"; +} + +.format-gallery .entry-format:before { + content: "\f103"; +} + +.format-video .entry-format:before { + content: "\f104"; +} + +.format-status .entry-format:before { + content: "\f105"; +} + +.format-quote .entry-format:before { + content: "\f106"; +} + +.format-link .entry-format:before { + content: "\f107"; +} + +.format-chat .entry-format:before { + content: "\f108"; +} + +.format-audio .entry-format:before { + content: "\f109"; +} + +.posted-on:before { + content: "\f307"; +} + +.byline:before { + content: "\f304"; +} + +.cat-links:before { + content: "\f301"; +} + +.tags-links:before { + content: "\f302"; +} + +.comments-link:before { + content: "\f300"; +} + +.full-size-link:before { + content: "\f402"; +} + +.edit-link:before { + content: "\f411"; +} + +.comments-link, +.edit-link { + white-space: nowrap; +} + +.page-header { + background-color: #fff; + border-bottom: 1px solid rgba(51, 51, 51, 0.1); + padding: 7.6923%; +} + +.page-title { + font-family: "Noto Serif", serif; + font-size: 18px; + font-size: 1.8rem; + line-height: 1.3333; +} + +.taxonomy-description { + color: #707070; + color: rgba(51, 51, 51, 0.7); + padding-top: 0.4em; +} + +.taxonomy-description a { + border-bottom: 1px solid #333; +} + +.taxonomy-description a:hover, +.taxonomy-description a:focus { + border-bottom: 0; +} + +.taxonomy-description > :last-child { + margin-bottom: 0; +} + +.page-content { + background-color: #fff; + padding: 7.6923%; +} + +.page-content > :last-child { + margin-bottom: 0; +} + +.page-links { + clear: both; + font-family: "Noto Sans", sans-serif; + margin-bottom: 1.3333em; +} + +.page-links a, +.page-links > span { + border: 1px solid #eaeaea; + border: 1px solid rgba(51, 51, 51, 0.1); + display: inline-block; + font-size: 12px; + font-size: 1.2rem; + height: 2em; + line-height: 2; + margin: 0 0.3333em 0.3333em 0; + text-align: center; + width: 2em; +} + +.page-links a { + -webkit-tap-highlight-color: rgba(255, 255, 255, 0.3); + background-color: #333; + border-color: #333; + color: #fff; +} + +.page-links a:hover, +.page-links a:focus { + background-color: #707070; + background-color: rgba(51, 51, 51, 0.7); + border-color: transparent; + color: #fff; +} + +.page-links > .page-links-title { + border: 0; + color: #707070; + color: rgba(51, 51, 51, 0.7); + height: auto; + margin: 0; + padding-right: 0.5em; + width: auto; +} + +.entry-attachment { + margin-bottom: 1.6em; +} + +.type-attachment .entry-title { + -webkit-hyphens: auto; + -moz-hyphens: auto; + -ms-hyphens: auto; + hyphens: auto; + word-wrap: break-word; +} + +.entry-caption { + color: #707070; + color: rgba(51, 51, 51, 0.7); + font-family: "Noto Sans", sans-serif; + font-size: 12px; + font-size: 1.2rem; + -webkit-hyphens: auto; + -moz-hyphens: auto; + -ms-hyphens: auto; + hyphens: auto; + line-height: 1.5; + padding-top: 0.5em; + word-wrap: break-word; +} + +.entry-caption > :last-child { + margin-bottom: 0; +} + +.entry-content figcaption, +.entry-summary figcaption { + font-style: italic; + text-align: center; + padding-bottom: .5em; +} + +/** + * 12.2 Post Formats + */ + +.format-aside .entry-title, +.format-image .entry-title, +.format-video .entry-title, +.format-quote .entry-title, +.format-gallery .entry-title, +.format-status .entry-title, +.format-link .entry-title, +.format-audio .entry-title, +.format-chat .entry-title { + font-size: 18px; + font-size: 1.8rem; + line-height: 1.3333; + margin-bottom: 1.3333em; +} + +.format-link .entry-title a:after { + content: "\f442"; + font-size: 24px; + height: 24px; + position: relative; + top: 0; + width: 24px; +} + +.blog .format-status .entry-title, +.archive .format-status .entry-title { + display: none; +} + + +/** + * 12.3 Comments + */ + +.comments-area { + background-color: #fff; + border-top: 1px solid #eaeaea; + border-top: 1px solid rgba(51, 51, 51, 0.1); + padding: 7.6923%; +} + +.comments-area > :last-child { + margin-bottom: 0; +} + +.comment-list + .comment-respond { + border-top: 1px solid #eaeaea; + border-top: 1px solid rgba(51, 51, 51, 0.1); +} + +.comment-list + .comment-respond, +.comment-navigation + .comment-respond { + padding-top: 1.6em; +} + +.comments-title, +.comment-reply-title { + font-family: "Noto Serif", serif; + font-size: 18px; + font-size: 1.8rem; + line-height: 1.3333; +} + +.comments-title { + margin-bottom: 1.3333em; +} + +.comment-list { + list-style: none; + margin: 0; +} + +.comment-list article, +.comment-list .pingback, +.comment-list .trackback { + border-top: 1px solid #eaeaea; + border-top: 1px solid rgba(51, 51, 51, 0.1); + padding: 1.6em 0; +} + +.comment-list .children { + list-style: none; + margin: 0; +} + +.comment-list .children > li { + padding-left: 0.8em; +} + +.comment-author { + color: #707070; + color: rgba(51, 51, 51, 0.7); + margin-bottom: 0.4em; +} + +.comment-author a:hover { + border-bottom: 1px solid #707070; + border-bottom: 1px solid rgba(51, 51, 51, 0.7); +} + +.comment-author .avatar { + float: left; + height: 24px; + margin-right: 0.8em; + width: 24px; +} + +.bypostauthor > article .fn:after { + content: "\f304"; + position: relative; + top: 5px; + left: 3px; +} + +.comment-metadata, +.pingback .edit-link { + color: #707070; + color: rgba(51, 51, 51, 0.7); + font-family: "Noto Sans", sans-serif; + font-size: 12px; + font-size: 1.2rem; + line-height: 1.5; +} + +.comment-metadata a, +.pingback .edit-link a { + color: #707070; + color: rgba(51, 51, 51, 0.7); +} + +.comment-metadata a:hover, +.pingback .edit-link a:hover { + border-bottom: 1px solid #333; +} + +.comment-metadata a:hover, +.comment-metadata a:focus, +.pingback .edit-link a:hover, +.pingback .edit-link a:focus { + color: #333; +} + +.comment-metadata { + margin-bottom: 1.6em; +} + +.comment-metadata .edit-link { + margin-left: 1em; +} + +.pingback .edit-link { + margin-left: 1em; +} + +.pingback .edit-link:before { + top: 5px; +} + +.comment-content ul, +.comment-content ol { + margin: 0 0 1.6em 1.3333em; +} + +.comment-content li > ul, +.comment-content li > ol { + margin-bottom: 0; +} + +.comment-content > :last-child { + margin-bottom: 0; +} + +.comment-list .reply { + font-size: 12px; + font-size: 1.2rem; +} + +.comment-list .reply a { + border: 1px solid #eaeaea; + border: 1px solid rgba(51, 51, 51, 0.1); + color: #707070; + color: rgba(51, 51, 51, 0.7); + display: inline-block; + font-family: "Noto Sans", sans-serif; + font-weight: 700; + line-height: 1; + margin-top: 2em; + padding: 0.4167em 0.8333em; + text-transform: uppercase; +} + +.comment-list .reply a:hover, +.comment-list .reply a:focus { + border-color: #333; + color: #333; + outline: 0; +} + +.comment-form { + padding-top: 1.6em; +} + +.comment-form label { + color: #707070; + color: rgba(51, 51, 51, 0.7); + font-family: "Noto Sans", sans-serif; + font-size: 12px; + font-size: 1.2rem; + font-weight: 700; + display: block; + letter-spacing: 0.04em; + line-height: 1.5; + text-transform: uppercase; +} + +.comment-form input[type="text"], +.comment-form input[type="email"], +.comment-form input[type="url"], +.comment-form input[type="submit"] { + width: 100%; +} + +.comment-notes, +.comment-awaiting-moderation, +.logged-in-as, +.form-allowed-tags { + color: #707070; + color: rgba(51, 51, 51, 0.7); + font-family: "Noto Sans", sans-serif; + font-size: 12px; + font-size: 1.2rem; + line-height: 1.5; + margin-bottom: 2em; +} + +.logged-in-as a:hover { + border-bottom: 1px solid #333; +} + +.no-comments { + border-top: 1px solid #eaeaea; + border-top: 1px solid rgba(51, 51, 51, 0.1); + color: #707070; + color: rgba(51, 51, 51, 0.7); + font-family: "Noto Sans", sans-serif; + font-weight: 700; + padding-top: 1.6em; +} + +.comment-navigation + .no-comments { + border-top: 0; +} + +.form-allowed-tags code { + font-family: Inconsolata, monospace; +} + +.form-submit { + margin-bottom: 0; +} + +.required { + color: #c0392b; +} + +.comment-reply-title small { + font-size: 100%; +} + +.comment-reply-title small a { + border: 0; + float: right; + height: 32px; + overflow: hidden; + width: 26px; +} + +.comment-reply-title small a:before { + content: "\f405"; + font-size: 32px; + position: relative; + top: -3px; +} + + +/** + * 13.0 Footer + */ + +.site-info { + color: #707070; + color: rgba(51, 51, 51, 0.7); + font-size: 12px; + font-size: 1.2rem; + line-height: 1.5; +} + +.site-info a { + border-bottom: 1px solid transparent; + color: #707070; + color: rgba(51, 51, 51, 0.7); +} + +.site-info a:hover { + border-bottom: 1px solid #333; +} + +.site-info a:hover, +.site-info a:focus { + color: #333; +} + + +/** + * 14.0 Media + */ + +.site .avatar { + border-radius: 50%; +} + +.page-content img.wp-smiley, +.entry-content img.wp-smiley, +.comment-content img.wp-smiley { + border: none; + margin-top: 0; + margin-bottom: 0; + padding: 0; +} + +audio, +canvas { + display: inline-block; +} + +embed, +iframe, +object, +video { + margin-bottom: 1.6em; + max-width: 100%; + vertical-align: middle; +} + +p > embed, +p > iframe, +p > object, +p > video { + margin-bottom: 0; +} + +.wp-audio-shortcode, +.wp-video, +.wp-playlist.wp-audio-playlist { + font-size: 15px; + font-size: 1.5rem; + margin-top: 0; + margin-bottom: 1.6em; +} + +.wp-playlist.wp-playlist { + padding-bottom: 0; +} + +.wp-playlist .wp-playlist-tracks { + margin-top: 0; +} + +.wp-playlist-item .wp-playlist-caption { + border-bottom: 0; + padding: 10px 0; +} + +.wp-playlist-item .wp-playlist-item-length { + top: 10px; +} + + +/** + * 14.1 Captions + */ + +.wp-caption { + margin-bottom: 1.6em; + max-width: 100%; +} + +.wp-caption img[class*="wp-image-"] { + display: block; + margin: 0; +} + +.wp-caption-text { + color: #707070; + color: rgba(51, 51, 51, 0.7); + font-family: "Noto Sans", sans-serif; + font-size: 12px; + font-size: 1.2rem; + line-height: 1.5; + padding: 0.5em 0; +} + + +/** + * 14.2 Galleries + */ + +.gallery { + margin-bottom: 1.6em; +} + +.gallery-item { + display: inline-block; + padding: 1.79104477%; + text-align: center; + vertical-align: top; + width: 100%; +} + +.gallery-columns-2 .gallery-item { + max-width: 50%; +} + +.gallery-columns-3 .gallery-item { + max-width: 33.33%; +} + +.gallery-columns-4 .gallery-item { + max-width: 25%; +} + +.gallery-columns-5 .gallery-item { + max-width: 20%; +} + +.gallery-columns-6 .gallery-item { + max-width: 16.66%; +} + +.gallery-columns-7 .gallery-item { + max-width: 14.28%; +} + +.gallery-columns-8 .gallery-item { + max-width: 12.5%; +} + +.gallery-columns-9 .gallery-item { + max-width: 11.11%; +} + +.gallery-icon img { + margin: 0 auto; +} + +.gallery-caption { + color: #707070; + color: rgba(51, 51, 51, 0.7); + display: block; + font-family: "Noto Sans", sans-serif; + font-size: 12px; + font-size: 1.2rem; + line-height: 1.5; + padding: 0.5em 0; +} + +.gallery-columns-6 .gallery-caption, +.gallery-columns-7 .gallery-caption, +.gallery-columns-8 .gallery-caption, +.gallery-columns-9 .gallery-caption { + display: none; +} + + +/** + * 15.0 Multisite + */ + +.widecolumn { + background-color: #fff; + padding: 7.6923%; +} + +.widecolumn .mu_register { + width: auto; +} + +.widecolumn .mu_alert { + margin-bottom: 1.6em; +} + +.widecolumn form, +.widecolumn .mu_register form { + margin-top: 0; +} + +.widecolumn h2 { + font-size: 26px; + font-size: 2.6rem; + line-height: 1.1538; + margin-bottom: 0.9231em; +} + +.widecolumn p { + margin: 1.6em 0; +} + +.widecolumn p + h2 { + margin-top: 1.8462em; +} + +.widecolumn label, +.widecolumn .mu_register label { + color: #707070; + color: rgba(51, 51, 51, 0.7); + font-family: "Noto Sans", sans-serif; + font-size: 12px; + font-size: 1.2rem; + font-weight: 700; + letter-spacing: 0.04em; + line-height: 1.5; + text-transform: uppercase; +} + +.widecolumn .mu_register label { + margin: 2em 0 0; +} + +.widecolumn #key, +.widecolumn .mu_register #blog_title, +.widecolumn .mu_register #user_email, +.widecolumn .mu_register #blogname, +.widecolumn .mu_register #user_name { + font-size: 16px; + font-size: 1.6rem; + width: 100%; +} + +.widecolumn .mu_register #blogname { + margin: 0; +} + +.widecolumn .mu_register #blog_title, +.widecolumn .mu_register #user_email, +.widecolumn .mu_register #user_name { + margin: 0 0 0.375em; +} + +.widecolumn #submit, +.widecolumn .mu_register input[type="submit"] { + font-size: 12px; + font-size: 1.2rem; + margin: 0; + width: 100%; +} + +.widecolumn .mu_register .prefix_address, +.widecolumn .mu_register .suffix_address { + font-size: inherit; +} + +.widecolumn .mu_register > :last-child, +.widecolumn form > :last-child { + margin-bottom: 0; +} + + +/** + * 16.0 Media Queries + */ + +/* + * Does the same thing as , + * but in the future W3C standard way. -ms- prefix is required for IE10+ to + * render responsive styling in Windows 8 "snapped" views; IE10+ does not honor + * the meta tag. See https://core.trac.wordpress.org/ticket/25888. + */ +@-ms-viewport { + width: device-width; +} + +@viewport { + width: device-width; +} + +/** + * 16.1 Mobile Large 620px + */ + +@media screen and (min-width: 38.75em) { + ul, + ol { + margin-left: 0; + } + + li > ul, + li > ol, + blockquote > ul, + blockquote > ol { + margin-left: 1.3333em; + } + + blockquote { + margin-left: -1em; + } + + blockquote > blockquote { + margin-left: 0; + } + + .site-branding { + min-height: 3.2em; + } + + .site-title { + font-size: 22px; + font-size: 2.2rem; + line-height: 1.0909; + } + + .site-description { + display: block; + } + + .secondary { + box-shadow: 0 0 1px rgba(0, 0, 0, 0.15); + margin: 7.6923% 7.6923% 0; + padding: 7.6923% 7.6923% 0; + } + + .main-navigation { + margin-bottom: 11.1111%; + } + + .main-navigation ul { + border-top: 1px solid rgba(51, 51, 51, 0.1); + border-bottom: 1px solid rgba(51, 51, 51, 0.1); + } + + .main-navigation ul ul { + border-top: 0; + border-bottom: 0; + } + + .social-navigation { + margin-bottom: 11.1111%; + } + + .social-navigation { + margin-top: 0; + } + + .widget-area { + margin-top: 0; + } + + .widget { + margin-bottom: 11.1111%; + } + + .site-main { + padding: 7.6923% 0; + } + + .hentry.sticky:not(.has-post-thumbnail) { + padding-top: inherit; + } + + .hentry, + .page-header, + .page-content { + box-shadow: 0 0 1px rgba(0, 0, 0, 0.15); + margin: 0 7.6923%; + } + + .hentry + .hentry, + .page-header + .hentry, + .page-header + .page-content { + margin-top: 7.6923%; + } + + .hentry + .hentry { + border-top: 0; + } + + .post-thumbnail { + margin-bottom: 2.4em; + } + + .entry-header { + padding: 0 9.0909%; + } + + .entry-content, + .entry-summary { + padding: 0 9.0909% 9.0909%; + } + + .entry-footer { + padding: 4.5454% 9.0909%; + } + + .page-header { + border-bottom: 0; + border-left: 7px solid #333; + padding: 3.8461% 7.6923%; + } + + .page-title, + .taxonomy-description { + margin-left: -7px; + } + + .page-content { + padding: 9.0909%; + } + + .site-footer { + border-top: 0; + box-shadow: 0 0 1px rgba(0, 0, 0, 0.15); + margin: 0 7.6923%; + padding: 3.84615% 7.6923%; + } + + .post-navigation { + border-top: 0; + box-shadow: 0 0 1px rgba(0, 0, 0, 0.15); + margin: 7.6923% 7.6923% 0; + } + + .post-navigation a { + padding: 4.5454% 9.0909%; + } + + .pagination { + border-top: 0; + box-shadow: 0 0 1px rgba(0, 0, 0, 0.15); + margin: 7.6923% 7.6923% 0; + padding: 0; + } + + /* restore screen-reader-text */ + .pagination .current .screen-reader-text { + position: absolute !important; + } + + .pagination .page-numbers { + display: inline-block; + } + + .image-navigation { + padding: 0 9.0909%; + } + + .comments-area { + border-top: 0; + box-shadow: 0 0 1px rgba(0, 0, 0, 0.15); + margin: 7.6923% 7.6923% 0; + } + + .comment-content ul, + .comment-content ol { + margin-left: 0; + } + + .comment-content li > ul, + .comment-content li > ol, + .comment-content blockquote > ul, + .comment-content blockquote > ol { + margin-left: 1.3333em; + } + + .widecolumn { + box-shadow: 0 0 1px rgba(0, 0, 0, 0.15); + margin: 7.6923%; + } +} + + +/** + * 16.2 Tablet Small 740px + */ + +@media screen and (min-width: 46.25em) { + body, + button, + input, + select, + textarea { + font-size: 17px; + font-size: 1.7rem; + line-height: 1.6471; + } + + button, + input { + line-height: normal; + } + + p, + address, + pre, + hr, + ul, + ol, + dl, + dd, + table { + margin-bottom: 1.6471em; + } + + blockquote { + font-size: 20px; + font-size: 2rem; + line-height: 1.75; + margin-bottom: 1.75em; + margin-left: -1.05em; + padding-left: 0.85em; + } + + blockquote p { + margin-bottom: 1.75em; + } + + blockquote cite, + blockquote small { + font-size: 17px; + font-size: 1.7rem; + line-height: 1.6471; + } + + pre { + line-height: 1.2353; + } + + button, + input[type="button"], + input[type="reset"], + input[type="submit"], + .post-password-form input[type="submit"], + .widecolumn #submit, + .widecolumn .mu_register input[type="submit"] { + font-size: 14px; + font-size: 1.4rem; + padding: 0.8214em 1.6429em; + } + + input[type="text"], + input[type="email"], + input[type="url"], + input[type="password"], + input[type="search"], + textarea { + padding: 0.5em; + } + + .main-navigation { + font-size: 14px; + font-size: 1.4rem; + line-height: 1.5; + } + + .main-navigation a { + padding: 1em 0; + } + + .main-navigation ul ul { + margin-left: 1em; + } + + .main-navigation .menu-item-description { + font-size: 14px; + font-size: 1.4rem; + line-height: 1.5; + } + + .social-navigation ul { + margin-bottom: -1.4706em; + } + + .social-navigation a { + height: 2.8824em; + width: 2.8824em; + } + + .secondary-toggle { + height: 56px; + width: 56px; + } + + .secondary-toggle:before { + line-height: 54px; + width: 54px; + } + + .post-password-form label, + .post-navigation .meta-nav, + .image-navigation, + .comment-navigation, + .author-heading, + .author-bio, + .entry-footer, + .page-links a, + .page-links span, + .comment-metadata, + .pingback .edit-link, + .comment-list .reply, + .comment-notes, + .comment-awaiting-moderation, + .logged-in-as, + .comment-form label, + .form-allowed-tags, + .site-info, + .wp-caption-text, + .gallery-caption, + .entry-caption, + .widecolumn label, + .widecolumn .mu_register label { + font-size: 14px; + font-size: 1.4rem; + } + + .pagination .nav-links { + min-height: 3.2941em; + } + + .pagination .page-numbers { + line-height: 3.2941em; + padding: 0 0.8235em; + } + + .pagination .prev, + .pagination .next { + height: 56px; + padding: 0; + width: 56px; + } + + .pagination .prev:before, + .pagination .next:before { + height: 56px; + line-height: 56px; + width: 56px; + } + + .image-navigation .nav-previous a:before, + .image-navigation .nav-next a:after, + .comment-navigation .nav-previous a:before, + .comment-navigation .nav-next a:after { + top: 2px; + } + + blockquote.alignleft, + .wp-caption.alignleft, + img.alignleft { + margin: 0.4118em 1.6471em 1.6471em 0; + } + + blockquote.alignright, + .wp-caption.alignright, + img.alignright { + margin: 0.4118em 0 1.6471em 1.6471em; + } + + blockquote.aligncenter, + .wp-caption.aligncenter, + img.aligncenter { + margin-top: 0.4118em; + margin-bottom: 1.6471em; + } + + .wp-caption.alignleft, + .wp-caption.alignright, + .wp-caption.aligncenter { + margin-bottom: 1.2353em; + } + + .site-branding { + min-height: 3.7059em; + padding-right: 66px; + } + + .site-title { + font-size: 29px; + font-size: 2.9rem; + line-height: 1.2069; + } + + .site-description { + font-size: 14px; + font-size: 1.4rem; + } + + .widget { + font-size: 14px; + font-size: 1.4rem; + line-height: 1.5; + } + + .widget p, + .widget address, + .widget hr, + .widget ul, + .widget ol, + .widget dl, + .widget dd, + .widget table, + .widget pre { + margin-bottom: 1.5em; + } + + .widget li > ul, + .widget li > ol { + margin-bottom: 0; + } + + .widget blockquote { + font-size: 17px; + font-size: 1.7rem; + line-height: 1.6471; + margin-bottom: 1.6471em; + margin-left: -1.2353em; + padding-left: 1em; + } + + .widget blockquote p { + margin-bottom: 1.6471em; + } + + .widget blockquote cite, + .widget blockquote small { + font-size: 14px; + font-size: 1.4rem; + line-height: 1.5; + } + + .widget blockquote > blockquote { + margin-left: 0; + } + + .widget pre { + line-height: 1.5; + padding: 0.75em; + } + + .widget button, + .widget input, + .widget select, + .widget textarea { + line-height: 1.75; + } + + .widget button, + .widget input { + line-height: normal; + } + + .widget button, + .widget input[type="button"], + .widget input[type="reset"], + .widget input[type="submit"] { + font-size: 14px; + font-size: 1.4rem; + padding: 0.8214em 1.6429em; + } + + .widget input[type="text"], + .widget input[type="email"], + .widget input[type="url"], + .widget input[type="password"], + .widget input[type="search"], + .widget textarea { + padding: 0.5625em; + } + + .widget blockquote.alignleft, + .widget .wp-caption.alignleft, + .widget img.alignleft { + margin: 0.5em 1.5em 1.5em 0; + } + + .widget blockquote.alignright, + .widget .wp-caption.alignright, + .widget img.alignright { + margin: 0.5em 0 1.5em 1.5em; + } + + .widget blockquote.aligncenter, + .widget .wp-caption.aligncenter, + .widget img.aligncenter { + margin-top: 0.5em; + margin-bottom: 1.5em; + } + + .widget .wp-caption.alignleft, + .widget .wp-caption.alignright, + .widget .wp-caption.aligncenter { + margin-bottom: 1em; + } + + .widget-title { + margin: 0 0 1.5em; + } + + .widget_calendar td, + .widget_calendar th { + line-height: 2.9286; + } + + .widget_calendar caption { + margin: 0 0 1.5em; + } + + .widget_archive li, + .widget_categories li, + .widget_links li, + .widget_meta li, + .widget_nav_menu li, + .widget_pages li, + .widget_recent_comments li, + .widget_recent_entries li { + padding: 0.9643em 0; + } + + .widget_categories .children, + .widget_nav_menu .sub-menu, + .widget_pages .children { + margin: 0.9643em 0 0 1em; + padding-top: 0.9643em; + } + + .widget_rss li { + margin-bottom: 1.5em; + } + + .widget_rss .rss-date, + .widget_rss cite { + line-height: 1.75; + } + + .post-thumbnail { + margin-bottom: 3em; + } + + .entry-title, + .widecolumn h2 { + font-size: 35px; + font-size: 3.5rem; + line-height: 1.2; + margin-bottom: 1.2em; + } + + .entry-content h1, + .entry-summary h1, + .page-content h1, + .comment-content h1 { + font-size: 35px; + font-size: 3.5rem; + line-height: 1.2; + margin-top: 1.6em; + margin-bottom: 0.8em; + } + + .entry-content h2, + .entry-summary h2, + .page-content h2, + .comment-content h2 { + font-size: 29px; + font-size: 2.9rem; + line-height: 1.2069; + margin-top: 1.931em; + margin-bottom: 0.9655em; + } + + .entry-content h3, + .entry-summary h3, + .page-content h3, + .comment-content h3 { + font-size: 24px; + font-size: 2.4rem; + line-height: 1.1667; + margin-top: 2.3333em; + margin-bottom: 1.1667em; + } + + .entry-content h4, + .entry-summary h4, + .page-content h4, + .comment-content h4 { + font-size: 20px; + font-size: 2rem; + line-height: 1.4; + margin-top: 2.8em; + margin-bottom: 1.4em; + } + + .entry-content h5, + .entry-content h6, + .entry-summary h5, + .entry-summary h6, + .page-content h5, + .page-content h6, + .comment-content h5, + .comment-content h6 { + font-size: 17px; + font-size: 1.7rem; + line-height: 1.2353; + margin-top: 3.2941em; + margin-bottom: 1.6471em; + } + + .comments-area .more-link:after, + .entry-content .more-link:after, + .entry-summary .more-link:after { + font-size: 24px; + top: 2px; + } + + .author-info { + margin: 0 9.0909%; + padding: 9.0909% 0; + } + + .author-info .avatar { + height: 42px; + margin: 0 1.6471em 1.6471em 0; + width: 42px; + } + + .author-link:after { + top: 3px; + } + + .posted-on:before, + .byline:before, + .cat-links:before, + .tags-links:before, + .comments-link:before, + .entry-format:before, + .edit-link:before, + .full-size-link:before { + top: 3px; + } + + .taxonomy-description { + padding-top: 0.4118em; + } + + .page-title, + .comments-title, + .comment-reply-title, + .post-navigation .post-title { + font-size: 24px; + font-size: 2.4rem; + line-height: 1.1667; + } + + .page-links { + margin-bottom: 1.4117em; + } + + .page-links a, + .page-links > span { + margin: 0 0.2857em 0.2857em 0; + } + + .entry-attachment { + margin-bottom: 1.6471em; + } + + .format-aside .entry-title, + .format-image .entry-title, + .format-video .entry-title, + .format-quote .entry-title, + .format-gallery .entry-title, + .format-status .entry-title, + .format-link .entry-title, + .format-audio .entry-title, + .format-chat .entry-title { + font-size: 20px; + font-size: 2rem; + line-height: 1.4; + margin-bottom: 1.4em; + } + + .format-link .entry-title a:after { + top: 0.0833em; + } + + .comments-title { + margin-bottom: 1.4em; + } + + .comment-list article, + .comment-list .pingback, + .comment-list .trackback { + padding: 1.6471em 0; + } + + .comment-list + .comment-respond, + .comment-navigation + .comment-respond { + padding-top: 1.6471em; + } + + .comment-list .children > li { + padding-left: 1.2353em; + } + + .comment-meta { + position: relative; + } + + .comment-author { + margin-bottom: 0; + } + + .comment-author .avatar { + height: 42px; + margin-right: 1.64705em; + position: relative; + top: 5px; + width: 42px; + } + + .comment-metadata .edit-link:before { + top: 2px; + } + + .pingback .edit-link:before { + top: 6px; + } + + .bypostauthor > article .fn:after { + top: 7px; + left: 6px; + } + + .comment-content ul, + .comment-content ol { + margin-bottom: 1.6471em; + } + + .comment-list .reply a { + padding: 0.4286em 0.8571em; + } + + .comment-form, + .no-comments { + padding-top: 1.6471em; + } + + .comment-reply-title small a:before { + top: -1px; + } + + embed, + iframe, + object, + video { + margin-bottom: 1.6471em; + } + + .wp-audio-shortcode, + .wp-video, + .wp-playlist.wp-audio-playlist { + font-size: 17px; + font-size: 1.7rem; + margin-bottom: 1.6471em; + } + + .wp-caption, + .gallery { + margin-bottom: 1.6471em; + } + + .widecolumn .mu_alert { + margin-bottom: 1.6471em; + } + + .widecolumn p { + margin: 1.6471em 0; + } + + .widecolumn p + h2 { + margin-top: 1.6em; + } + + .widecolumn #key, + .widecolumn .mu_register #blog_title, + .widecolumn .mu_register #user_email, + .widecolumn .mu_register #blogname, + .widecolumn .mu_register #user_name { + font-size: 17px; + font-size: 1.7rem; + line-height: normal; + } + + .widecolumn .mu_register #blog_title, + .widecolumn .mu_register #user_email, + .widecolumn .mu_register #user_name { + margin: 0 0 0.4117em; + } +} + + +/** + * 16.3 Tablet Large 880px + */ + +@media screen and (min-width: 55em) { + body, + button, + input, + select, + textarea { + font-size: 19px; + font-size: 1.9rem; + line-height: 1.6842; + } + + button, + input { + line-height: normal; + } + + p, + address, + pre, + hr, + ul, + ol, + dl, + dd, + table { + margin-bottom: 1.6842em; + } + + blockquote { + font-size: 22px; + font-size: 2.2rem; + line-height: 1.8182; + margin-bottom: 1.8182em; + margin-left: -1.0909em; + padding-left: 0.9091em; + } + + blockquote p { + margin-bottom: 1.8182em; + } + + blockquote cite, + blockquote small { + font-size: 19px; + font-size: 1.9rem; + line-height: 1.6842; + } + + pre { + line-height: 1.2632; + } + + button, + input[type="button"], + input[type="reset"], + input[type="submit"], + .post-password-form input[type="submit"], + .widecolumn #submit, + .widecolumn .mu_register input[type="submit"] { + font-size: 16px; + font-size: 1.6rem; + padding: 0.8125em 1.625em; + } + + input[type="text"], + input[type="email"], + input[type="url"], + input[type="password"], + input[type="search"], + textarea { + padding: 0.5278em; + } + + .main-navigation { + font-size: 16px; + font-size: 1.6rem; + line-height: 1.5; + } + + .main-navigation a { + padding: 0.75em 0; + } + + .main-navigation .menu-item-description { + font-size: 16px; + font-size: 1.6rem; + line-height: 1.5; + } + + .social-navigation ul { + margin-bottom: -1.2632em; + } + + .social-navigation a { + height: 2.5263em; + width: 2.5263em; + } + + .secondary-toggle { + height: 64px; + width: 64px; + } + + .secondary-toggle:before { + line-height: 62px; + width: 62px; + } + + .post-password-form label, + .post-navigation .meta-nav, + .comment-navigation, + .image-navigation, + .author-heading, + .author-bio, + .entry-footer, + .page-links a, + .page-links span, + .comment-metadata, + .pingback .edit-link, + .comment-list .reply, + .comment-notes, + .comment-awaiting-moderation, + .logged-in-as, + .comment-form label, + .form-allowed-tags, + .site-info, + .wp-caption-text, + .gallery-caption, + .entry-caption, + .widecolumn label, + .widecolumn .mu_register label { + font-size: 16px; + font-size: 1.6rem; + } + + .pagination .nav-links { + min-height: 3.3684em; + } + + .pagination .page-numbers { + line-height: 3.3684em; + padding: 0 0.8421em; + } + + .pagination .prev, + .pagination .next { + height: 64px; + padding: 0; + width: 64px; + } + + .pagination .prev:before, + .pagination .next:before { + height: 64px; + line-height: 64px; + width: 64px; + } + + .image-navigation .nav-previous a:before, + .image-navigation .nav-next a:after, + .comment-navigation .nav-previous a:before, + .comment-navigation .nav-next a:after { + font-size: 24px; + top: -1px; + } + + blockquote.alignleft, + .wp-caption.alignleft, + img.alignleft { + margin: 0.4211em 1.6842em 1.6842em 0; + } + + blockquote.alignright, + .wp-caption.alignright, + img.alignright { + margin: 0.4211em 0 1.6842em 1.6842em; + } + + blockquote.aligncenter, + .wp-caption.aligncenter, + img.aligncenter { + margin-top: 0.4211em; + margin-bottom: 1.6842em; + } + + .wp-caption.alignleft, + .wp-caption.alignright, + .wp-caption.aligncenter { + margin-bottom: 1.2632em; + } + + .site-branding { + min-height: 3.7895em; + padding-right: 74px; + } + + .site-title { + font-size: 32px; + font-size: 3.2rem; + line-height: 1.25; + } + + .site-description { + font-size: 16px; + font-size: 1.6rem; + } + + .widget { + font-size: 16px; + font-size: 1.6rem; + } + + .widget blockquote { + font-size: 19px; + font-size: 1.9rem; + line-height: 1.6842; + margin-bottom: 1.6842em; + margin-left: -1.2632em; + padding-left: 1.0526em; + } + + .widget blockquote p { + margin-bottom: 1.6842em; + } + + .widget blockquote cite, + .widget blockquote small { + font-size: 16px; + font-size: 1.6rem; + } + + .widget button, + .widget input, + .widget select, + .widget textarea { + line-height: 1.5; + } + + .widget button, + .widget input { + line-height: normal; + } + + .widget button, + .widget input[type="button"], + .widget input[type="reset"], + .widget input[type="submit"] { + font-size: 16px; + font-size: 1.6rem; + padding: 0.8125em 1.625em; + } + + .widget input[type="text"], + .widget input[type="email"], + .widget input[type="url"], + .widget input[type="password"], + .widget input[type="search"], + .widget textarea { + padding: 0.75em; + } + + .widget .wp-caption-text, + .widget .gallery-caption { + line-height: 1.5; + } + + .widget_calendar td, + .widget_calendar th { + line-height: 2.9375; + } + + .widget_archive li, + .widget_categories li, + .widget_links li, + .widget_meta li, + .widget_nav_menu li, + .widget_pages li, + .widget_recent_comments li, + .widget_recent_entries li { + padding: 0.7188em 0; + } + + .widget_categories .children, + .widget_nav_menu .sub-menu, + .widget_pages .children { + margin: 0.7188em 0 0 1em; + padding-top: 0.7188em; + } + + .widget_rss .rss-date, + .widget_rss cite { + font-size: 13px; + font-size: 1.3rem; + line-height: 1.8462; + } + + .post-thumbnail { + margin-bottom: 2.9474em; + } + + .entry-title, + .widecolumn h2 { + font-size: 39px; + font-size: 3.9rem; + line-height: 1.2308; + margin-bottom: 1.2308em; + } + + .entry-content h1, + .entry-summary h1, + .page-content h1, + .comment-content h1 { + font-size: 39px; + font-size: 3.9rem; + line-height: 1.2308; + margin-top: 1.641em; + margin-bottom: 0.8205em; + } + + .entry-content h2, + .entry-summary h2, + .page-content h2, + .comment-content h2 { + font-size: 32px; + font-size: 3.2rem; + line-height: 1.25; + margin-top: 2em; + margin-bottom: 1em; + } + + .entry-content h3, + .entry-summary h3, + .page-content h3, + .comment-content h3 { + font-size: 27px; + font-size: 2.7rem; + line-height: 1.1852; + margin-top: 2.3704em; + margin-bottom: 1.1852em; + } + + .entry-content h4, + .entry-summary h4, + .page-content h4, + .comment-content h4 { + font-size: 22px; + font-size: 2.2rem; + line-height: 1.4545; + margin-top: 2.9091em; + margin-bottom: 1.4545em; + } + + .entry-content h5, + .entry-content h6, + .entry-summary h5, + .entry-summary h6, + .page-content h5, + .page-content h6, + .comment-content h5, + .comment-content h6 { + font-size: 19px; + font-size: 1.9rem; + line-height: 1.2632; + margin-top: 3.3684em; + margin-bottom: 1.6842em; + } + + .comments-area .more-link:after, + .entry-content .more-link:after, + .entry-summary .more-link:after { + top: 3px; + } + + .author-info .avatar { + height: 56px; + margin: 0 1.6842em 1.6842em 0; + width: 56px; + } + + .author-link:after { + font-size: 24px; + top: 0; + } + + .posted-on:before, + .byline:before, + .cat-links:before, + .tags-links:before, + .comments-link:before, + .entry-format:before, + .edit-link:before, + .full-size-link:before { + top: 4px; + } + + .taxonomy-description { + padding-top: 0.4211em; + } + + .page-title, + .comments-title, + .comment-reply-title, + .post-navigation .post-title { + font-size: 27px; + font-size: 2.7rem; + line-height: 1.1852; + } + + .page-links { + margin-bottom: 1.4736em; + } + + .page-links a, + .page-links > span { + margin: 0 0.25em 0.25em 0; + } + + .entry-attachment { + margin-bottom: 1.6842em + } + + .format-aside .entry-title, + .format-image .entry-title, + .format-video .entry-title, + .format-quote .entry-title, + .format-gallery .entry-title, + .format-status .entry-title, + .format-link .entry-title, + .format-audio .entry-title, + .format-chat .entry-title { + font-size: 22px; + font-size: 2.2rem; + line-height: 1.4545; + margin-bottom: 1.4545em; + } + + .format-link .entry-title a:after { + top: 0.125em; + } + + .comments-title { + margin-bottom: 1.4545em; + } + + .comment-list article, + .comment-list .pingback, + .comment-list .trackback { + padding: 1.6842em 0; + } + + .comment-list + .comment-respond, + .comment-navigation + .comment-respond { + padding-top: 1.6842em; + } + + .comment-list .children > li { + padding-left: 1.4737em; + } + + .comment-author .avatar { + height: 56px; + margin-right: 1.6842em; + top: 3px; + width: 56px; + } + + .comment-metadata { + line-height: 2; + } + + .comment-metadata .edit-link:before { + top: 8px; + } + + .pingback .edit-link:before { + top: 8px; + } + + .bypostauthor > article .fn:after { + top: 8px; + } + + .comment-content ul, + .comment-content ol { + margin-bottom: 1.6842em; + } + + .comment-list .reply a { + padding: 0.4375em 0.875em; + } + + .comment-form, + .no-comments { + padding-top: 1.6842em; + } + + embed, + iframe, + object, + video { + margin-bottom: 1.6842em; + } + + .wp-audio-shortcode, + .wp-video, + .wp-playlist.wp-audio-playlist { + font-size: 19px; + font-size: 1.9rem; + margin-bottom: 1.6842em; + } + + .wp-caption, + .gallery { + margin-bottom: 1.6842em; + } + + .widecolumn .mu_alert { + margin-bottom: 1.6842em; + } + + .widecolumn p { + margin: 1.6842em 0; + } + + .widecolumn p + h2 { + margin-top: 1.641em; + } + + .widecolumn #key, + .widecolumn .mu_register #blog_title, + .widecolumn .mu_register #user_email, + .widecolumn .mu_register #blogname, + .widecolumn .mu_register #user_name { + font-size: 19px; + font-size: 1.9rem; + } + + .widecolumn .mu_register #blog_title, + .widecolumn .mu_register #user_email, + .widecolumn .mu_register #user_name { + margin: 0 0 0.421em; + } +} + + +/** + * 16.4 Desktop Small 955px + */ + +@media screen and (min-width: 59.6875em) { + body:before { + background-color: #fff; + box-shadow: 0 0 1px rgba(0, 0, 0, 0.15); + content: ""; + display: block; + height: 100%; + min-height: 100%; + position: fixed; + top: 0; + right: 0; + width: 29.4118%; + z-index: 0; /* Fixes flashing bug with scrolling on Safari */ + } + + .site { + margin: 0 auto; + max-width: 1403px; + } + + .sidebar { + float: right; + margin-left: -100%; + max-width: 413px; + position: relative; + width: 29.4118%; + right: 0; + } + + .secondary { + background-color: transparent; + box-shadow: none; + display: block; + margin: 0; + padding: 0; + } + + .site-main { + padding: 8.3333% 0; + } + + .site-content { + display: block; + float: right; + margin-right: 29.4118%; + width: 70.5882%; + } + + body { + font-size: 15px; + font-size: 1.5rem; + line-height: 1.6; + } + + p, + address, + pre, + hr, + ul, + ol, + dl, + dd, + table { + margin-bottom: 1.6em; + } + + blockquote { + font-size: 18px; + font-size: 1.8rem; + line-height: 1.6667; + margin-bottom: 1.6667em; + margin-left: -1.3333em; + padding-left: 1.1111em; + } + + blockquote cite, + blockquote small { + font-size: 15px; + font-size: 1.5rem; + line-height: 1.6; + } + + pre { + line-height: 1.2; + } + + button, + input, + select, + textarea { + font-size: 16px; + font-size: 1.6rem; + line-height: 1.5; + } + + button, + input { + line-height: normal; + } + + button, + input[type="button"], + input[type="reset"], + input[type="submit"], + .post-password-form input[type="submit"], + .widecolumn #submit, + .widecolumn .mu_register input[type="submit"] { + font-size: 12px; + font-size: 1.2rem; + padding: 0.7917em 1.5833em; + } + + input[type="text"], + input[type="email"], + input[type="url"], + input[type="password"], + input[type="search"], + textarea { + padding: 0.375em; + } + + .main-navigation { + font-size: 12px; + font-size: 1.2rem; + margin: 0 20% 20%; + } + + .main-navigation a { + padding: 0.5em 0; + } + + .main-navigation .menu-item-has-children > a { + padding-right: 30px; + } + + .main-navigation .menu-item-description { + font-size: 12px; + font-size: 1.2rem; + line-height: 1.5; + } + + .dropdown-toggle-button { + height: 24px; + width: 24px; + } + + .dropdown-toggle-button:after { + font-size: 16px; + line-height: 24px; + width: 24px; + } + + .social-navigation { + margin: 0 20% 20%; + } + + .social-navigation ul { + margin-bottom: -1.6em; + } + + .social-navigation li { + width: 25%; + } + + .social-navigation a { + height: 3.2em; + } + + .secondary-toggle { + display: none; + } + + .post-password-form label, + .post-navigation .meta-nav, + .comment-navigation, + .image-navigation, + .author-heading, + .author-bio, + .entry-footer, + .page-links a, + .page-links span, + .comment-metadata, + .pingback .edit-link, + .comment-list .reply, + .comment-notes, + .comment-awaiting-moderation, + .logged-in-as, + .comment-form label, + .form-allowed-tags, + .site-info, + .wp-caption-text, + .gallery-caption, + .entry-caption, + .widecolumn label, + .widecolumn .mu_register label { + font-size: 12px; + font-size: 1.2rem; + } + + .post-navigation { + margin: 8.3333% 8.3333% 0; + } + + .post-navigation a { + padding: 5% 10%; + } + + .pagination { + margin: 8.333% 8.333% 0; + } + + .pagination .nav-links { + min-height: 3.2em; + } + + .pagination .page-numbers { + line-height: 3.2em; + padding: 0 0.8em; + } + + .pagination .prev, + .pagination .next { + height: 48px; + padding: 0; + width: 48px; + } + + .pagination .prev:before, + .pagination .next:before { + height: 48px; + line-height: 48px; + width: 48px; + } + + .image-navigation .nav-previous a:before, + .image-navigation .nav-next a:after, + .comment-navigation .nav-previous a:before, + .comment-navigation .nav-next a:after { + font-size: 16px; + top: 0; + } + + .image-navigation { + padding: 0 10%; + } + + blockquote.alignleft, + .wp-caption.alignleft, + img.alignleft { + margin: 0.4em 1.6em 1.6em 0; + } + + blockquote.alignright, + .wp-caption.alignright, + img.alignright { + margin: 0.4em 0 1.6em 1.6em; + } + + blockquote.aligncenter, + .wp-caption.aligncenter, + img.aligncenter { + clear: both; + margin-top: 0.4em; + margin-bottom: 1.6em; + } + + .wp-caption.alignleft, + .wp-caption.alignright, + .wp-caption.aligncenter { + margin-bottom: 1.2em; + } + + .site-header { + background-color: transparent; + border-bottom: 0; + margin: 20% 0; + padding: 0 20%; + } + + .site-branding { + min-height: 0; + padding: 0; + } + + .site-title { + font-size: 22px; + font-size: 2.2rem; + line-height: 1.3636; + } + + .site-description { + font-size: 12px; + font-size: 1.2rem; + } + + .widget { + font-size: 12px; + font-size: 1.2rem; + margin: 0 0 20%; + padding: 0 20%; + } + + .widget blockquote { + font-size: 12px; + font-size: 1.2rem; + line-height: 1.5; + margin-bottom: 1.5em; + margin-left: -1.5em; + padding-left: 1.1667em; + } + + .widget blockquote p { + margin-bottom: 1.5em; + } + + .widget blockquote cite, + .widget blockquote small { + font-size: 12px; + font-size: 1.2rem; + } + + .widget pre { + padding: 0.5em; + } + + .widget button, + .widget input, + .widget select, + .widget textarea { + font-size: 12px; + font-size: 1.2rem; + } + + .widget button, + .widget input[type="button"], + .widget input[type="reset"], + .widget input[type="submit"] { + font-size: 12px; + font-size: 1.2rem; + padding: 0.5417em 1.0833em; + } + + .widget input[type="text"], + .widget input[type="email"], + .widget input[type="url"], + .widget input[type="password"], + .widget input[type="search"], + .widget textarea { + padding: 0.4583em; + } + + .widget .wp-caption-text, + .widget .gallery-caption { + font-size: 12px; + font-size: 1.2rem; + } + + .widget_calendar td, + .widget_calendar th { + line-height: 1.9167; + } + + .widget_archive li, + .widget_categories li, + .widget_links li, + .widget_meta li, + .widget_nav_menu li, + .widget_pages li, + .widget_recent_comments li, + .widget_recent_entries li { + padding: 0.4583em 0; + } + + .widget_categories .children, + .widget_nav_menu .sub-menu, + .widget_pages .children { + margin: 0.4583em 0 0 1em; + padding-top: 0.4583em; + } + + .widget_rss .rss-date, + .widget_rss cite { + font-size: 12px; + font-size: 1.2rem; + line-height: 1.5; + } + + .hentry, + .page-header, + .page-content { + margin: 0 8.3333%; + } + + .hentry { + padding-top: 8.3333%; + } + + .hentry + .hentry, + .page-header + .hentry, + .page-header + .page-content { + margin-top: 8.3333%; + } + + .post-thumbnail { + margin-bottom: 2.4em; + } + + .entry-header { + padding: 0 10%; + } + + .entry-title, + .widecolumn h2 { + font-size: 31px; + font-size: 3.1rem; + line-height: 1.1613; + margin-bottom: 1.1613em; + } + + .entry-content, + .entry-summary { + padding: 0 10% 10%; + } + + .entry-content h1, + .entry-summary h1, + .page-content h1, + .comment-content h1 { + font-size: 31px; + font-size: 3.1rem; + line-height: 1.1613; + margin-top: 1.5484em; + margin-bottom: 0.7742em; + } + + .entry-content h2, + .entry-summary h2, + .page-content h2, + .comment-content h2 { + font-size: 26px; + font-size: 2.6rem; + line-height: 1.3846; + margin-top: 1.8462em; + margin-bottom: 0.9231em; + } + + .entry-content h3, + .entry-summary h3, + .page-content h3, + .comment-content h3 { + font-size: 22px; + font-size: 2.2rem; + line-height: 1.3636; + margin-top: 2.1818em; + margin-bottom: 1.0909em; + } + + .entry-content h4, + .entry-summary h4, + .page-content h4, + .comment-content h4 { + font-size: 18px; + font-size: 1.8rem; + line-height: 1.3333; + margin-top: 2.6667em; + margin-bottom: 1.3333em; + } + + .entry-content h5, + .entry-content h6, + .entry-summary h5, + .entry-summary h6, + .page-content h5, + .page-content h6, + .comment-content h5, + .comment-content h6 { + font-size: 15px; + font-size: 1.5rem; + line-height: 1.2; + margin-top: 3.2em; + margin-bottom: 1.6em; + } + + .comments-area .more-link:after, + .entry-content .more-link:after, + .entry-summary .more-link:after { + font-size: 16px; + top: 5px; + } + + .author-info { + margin: 0 10%; + padding: 10% 0; + } + + .author-info .avatar { + height: 36px; + margin: 0 1.5em 1.5em 0; + width: 36px; + } + + .author-link:after { + font-size: 16px; + top: 1px; + } + + .entry-footer { + padding: 5% 10%; + } + + .posted-on:before, + .byline:before, + .cat-links:before, + .tags-links:before, + .comments-link:before, + .entry-format:before, + .edit-link:before, + .full-size-link:before { + top: 0; + } + + .page-header { + padding: 4.1666% 8.3333%; + } + + .page-content { + padding: 8.3333%; + } + + .taxonomy-description { + padding-top: 0.4em; + } + + .page-title, + .comments-title, + .comment-reply-title, + .post-navigation .post-title { + font-size: 18px; + font-size: 1.8rem; + line-height: 1.3333; + } + + .page-links { + margin-bottom: 1.3333em; + } + + .page-links a, + .page-links > span { + margin: 0 0.3333em 0.3333em 0; + } + + .entry-attachment { + margin-bottom: 1.6em; + } + + .format-aside .entry-title, + .format-image .entry-title, + .format-video .entry-title, + .format-quote .entry-title, + .format-gallery .entry-title, + .format-status .entry-title, + .format-link .entry-title, + .format-audio .entry-title, + .format-chat .entry-title { + font-size: 18px; + font-size: 1.8rem; + line-height: 1.3333; + margin-bottom: 1.3333em; + } + + .format-link .entry-title a:after { + top: 0; + } + + .comments-area { + margin: 8.3333% 8.3333% 0; + padding: 8.3333%; + } + + .comments-title { + margin-bottom: 1.3333em; + } + + .comment-list article, + .comment-list .pingback, + .comment-list .trackback { + padding: 1.6em 0; + } + + .comment-list + .comment-respond, + .comment-navigation + .comment-respond { + padding-top: 1.6em; + } + + .comment-list .children > li { + padding-left: 0.8em; + } + + .comment-author { + margin-bottom: 0.4em; + } + + .comment-author .avatar { + height: 24px; + margin-right: 0.8em; + top: 0; + width: 24px; + } + + .comment-metadata .edit-link:before { + top: 3px; + } + + .pingback .edit-link:before { + top: 5px; + } + + .bypostauthor > article .fn:after { + top: 5px; + left: 3px; + } + + .comment-content ul, + .comment-content ol { + margin-bottom: 2em; + } + + .comment-list .reply a { + padding: 0.4167em 0.8333em; + } + + .comment-form, + .no-comments { + padding-top: 1.6em; + } + + .comment-reply-title small a:before { + top: -3px; + } + + .site-footer { + float: right; + margin: 0 35.2941% 0 0; + padding: 0; + width: 58.8235%; + } + + .site-info { + padding: 5% 10%; + } + + embed, + iframe, + object, + video { + margin-bottom: 1.6em; + } + + .wp-audio-shortcode, + .wp-video, + .wp-playlist.wp-audio-playlist { + font-size: 15px; + font-size: 1.5rem; + margin-bottom: 1.6em; + } + + .wp-caption, + .gallery { + margin-bottom: 1.6em; + } + + .widecolumn { + margin: 8.3333%; + padding: 8.3333%; + } + + .widecolumn .mu_alert { + margin-bottom: 1.6em; + } + + .widecolumn p { + margin: 1.6em 0; + } + + .widecolumn p + h2 { + margin-top: 1.5484em; + } + + .widecolumn #key, + .widecolumn .mu_register #blog_title, + .widecolumn .mu_register #user_email, + .widecolumn .mu_register #blogname, + .widecolumn .mu_register #user_name { + font-size: 16px; + font-size: 1.6rem; + } + + .widecolumn .mu_register #blog_title, + .widecolumn .mu_register #user_email, + .widecolumn .mu_register #user_name { + margin: 0 0 0.375em; + } +} + + +/** + * 16.5 Desktop Medium 1100px + */ + +@media screen and (min-width: 68.75em) { + body, + button, + input, + select, + textarea { + font-size: 17px; + font-size: 1.7rem; + line-height: 1.6471; + } + + button, + input { + line-height: normal; + } + + p, + address, + pre, + hr, + ul, + ol, + dl, + dd, + table { + margin-bottom: 1.6471em; + } + + blockquote { + font-size: 20px; + font-size: 2rem; + line-height: 1.75; + margin-bottom: 1.75em; + margin-left: -1.05em; + padding-left: 0.85em; + } + + blockquote p { + margin-bottom: 1.75em; + } + + blockquote cite, + blockquote small { + font-size: 17px; + font-size: 1.7rem; + line-height: 1.6471; + } + + pre { + line-height: 1.2353; + } + + button, + input[type="button"], + input[type="reset"], + input[type="submit"], + .post-password-form input[type="submit"], + .widecolumn #submit, + .widecolumn .mu_register input[type="submit"] { + font-size: 14px; + font-size: 1.4rem; + padding: 0.8214em 1.5714em; + } + + input[type="text"], + input[type="email"], + input[type="url"], + input[type="password"], + input[type="search"], + textarea { + padding: 0.5em; + } + + .main-navigation { + font-size: 14px; + font-size: 1.4rem; + } + + .main-navigation a { + padding: 0.4643em 0; + } + + .main-navigation .menu-item-has-children > a { + padding-right: 34px; + } + + .main-navigation .menu-item-description { + line-height: 1.4583; + margin-top: 0.25em; + } + + .dropdown-toggle-button { + height: 28px; + width: 28px; + } + + .dropdown-toggle-button:after { + line-height: 28px; + width: 28px; + } + + .social-navigation ul { + margin-bottom: -1.4706em; + } + + .social-navigation li { + width: 20%; + } + + .social-navigation a { + height: 2.8824em; + } + + .post-password-form label, + .post-navigation .meta-nav, + .comment-navigation, + .image-navigation, + .author-heading, + .author-bio, + .entry-footer, + .page-links a, + .page-links span, + .comment-metadata, + .pingback .edit-link, + .comment-list .reply, + .comment-notes, + .comment-awaiting-moderation, + .logged-in-as, + .comment-form label, + .form-allowed-tags, + .site-info, + .wp-caption-text, + .gallery-caption, + .entry-caption, + .widecolumn label, + .widecolumn .mu_register label { + font-size: 14px; + font-size: 1.4rem; + } + + .pagination .nav-links { + min-height: 3.2941em; + } + + .pagination .page-numbers { + line-height: 3.2941em; + padding: 0 0.8235em; + } + + .pagination .prev, + .pagination .next { + height: 56px; + padding: 0; + width: 56px; + } + + .pagination .prev:before, + .pagination .next:before { + height: 56px; + line-height: 56px; + width: 56px; + } + + .image-navigation .nav-previous a:before, + .image-navigation .nav-next a:after, + .comment-navigation .nav-previous a:before, + .comment-navigation .nav-next a:after { + top: 2px; + } + + blockquote.alignleft, + .wp-caption.alignleft, + img.alignleft { + margin: 0.4118em 1.6471em 1.6471em 0; + } + + blockquote.alignright, + .wp-caption.alignright, + img.alignright { + margin: 0.4118em 0 1.6471em 1.6471em; + } + + blockquote.aligncenter, + .wp-caption.aligncenter, + img.aligncenter { + margin-top: 0.4118em; + margin-bottom: 1.6471em; + } + + .wp-caption.alignleft, + .wp-caption.alignright, + .wp-caption.aligncenter { + margin-bottom: 1.2353em; + } + + .site-title { + font-size: 24px; + font-size: 2.4rem; + line-height: 1.1667; + } + + .site-description { + font-size: 14px; + font-size: 1.4rem; + } + + .widget { + font-size: 14px; + font-size: 1.4rem; + } + + .widget blockquote { + font-size: 14px; + font-size: 1.4rem; + padding-left: 1.2143em; + } + + .widget button, + .widget input, + .widget select, + .widget textarea { + font-size: 14px; + font-size: 1.4rem; + } + + .widget button, + .widget input[type="button"], + .widget input[type="reset"], + .widget input[type="submit"] { + font-size: 12px; + font-size: 1.2rem; + padding: 0.75em 1.5em; + } + + .widget input[type="text"], + .widget input[type="email"], + .widget input[type="url"], + .widget input[type="password"], + .widget input[type="search"], + .widget textarea { + padding: 0.5em; + } + + .widget .wp-caption-text, + .widget .gallery-caption { + line-height: 1.4583; + padding: 0.5833em 0; + } + + .widget_calendar caption { + margin: 0 0 1.9286em; + } + + .widget_calendar td, + .widget_calendar th { + line-height: 1.9286; + } + + .widget_archive li, + .widget_categories li, + .widget_links li, + .widget_meta li, + .widget_nav_menu li, + .widget_pages li, + .widget_recent_comments li, + .widget_recent_entries li { + padding: 0.4643em 0; + } + + .widget_categories .children, + .widget_nav_menu .sub-menu, + .widget_pages .children { + margin: 0.4643em 0 0 1em; + padding-top: 0.4643em; + } + + .widget_rss .rss-date, + .widget_rss cite { + line-height: 1.75; + } + + .post-thumbnail { + margin-bottom: 2.4706em; + } + + .entry-title, + .widecolumn h2 { + font-size: 35px; + font-size: 3.5rem; + line-height: 1.2; + margin-bottom: 1.2em; + } + + .entry-content h1, + .entry-summary h1, + .page-content h1, + .comment-content h1 { + font-size: 35px; + font-size: 3.5rem; + line-height: 1.2; + margin-top: 1.6em; + margin-bottom: 0.8em; + } + + .entry-content h2, + .entry-summary h2, + .page-content h2, + .comment-content h2 { + font-size: 29px; + font-size: 2.9rem; + line-height: 1.2069; + margin-top: 1.931em; + margin-bottom: 0.9655em; + } + + .entry-content h3, + .entry-summary h3, + .page-content h3, + .comment-content h3 { + font-size: 24px; + font-size: 2.4rem; + line-height: 1.1667; + margin-top: 2.3333em; + margin-bottom: 1.1667em; + } + + .entry-content h4, + .entry-summary h4, + .page-content h4, + .comment-content h4 { + font-size: 20px; + font-size: 2rem; + line-height: 1.4; + margin-top: 2.8em; + margin-bottom: 1.4em; + } + + .entry-content h5, + .entry-content h6, + .entry-summary h5, + .entry-summary h6, + .page-content h5, + .page-content h6, + .comment-content h5, + .comment-content h6 { + font-size: 17px; + font-size: 1.7rem; + line-height: 1.2353; + margin-top: 3.2941em; + margin-bottom: 1.6471em; + } + + .comments-area .more-link:after, + .entry-content .more-link:after, + .entry-summary .more-link:after { + font-size: 24px; + top: 2px; + } + + .author-info .avatar { + height: 42px; + margin: 0 1.6471em 1.6471em 0; + width: 42px; + } + + .author-link:after { + top: 3px; + } + + .posted-on:before, + .byline:before, + .cat-links:before, + .tags-links:before, + .comments-link:before, + .entry-format:before, + .edit-link:before, + .full-size-link:before { + top: 3px; + } + + .taxonomy-description { + padding-top: 0.4118em; + } + + .page-title, + .comments-title, + .comment-reply-title, + .post-navigation .post-title { + font-size: 24px; + font-size: 2.4rem; + line-height: 1.1667; + } + + .page-links { + margin-bottom: 1.4117em; + } + + .page-links a, + .page-links > span { + margin: 0 0.2857em 0.2857em 0; + } + + .entry-attachment { + margin-bottom: 1.6471em; + } + + .format-aside .entry-title, + .format-image .entry-title, + .format-video .entry-title, + .format-quote .entry-title, + .format-gallery .entry-title, + .format-status .entry-title, + .format-link .entry-title, + .format-audio .entry-title, + .format-chat .entry-title { + font-size: 20px; + font-size: 2rem; + line-height: 1.4; + margin-bottom: 1.4em; + } + + .format-link .entry-title a:after { + top: 0.0833em; + } + + .comments-title { + margin-bottom: 1.4em; + } + + .comment-list article, + .comment-list .pingback, + .comment-list .trackback { + padding: 1.6471em 0; + } + + .comment-list + .comment-respond, + .comment-navigation + .comment-respond { + padding-top: 1.6471em; + } + + .comment-list .children > li { + padding-left: 1.1667em; + } + + .comment-author { + margin-bottom: 0; + } + + .comment-author .avatar { + height: 42px; + margin-right: 1.64705em; + top: 5px; + width: 42px; + } + + .bypostauthor > article .fn:after { + top: 7px; + left: 6px; + } + + .comment-metadata .edit-link:before { + top: 6px; + } + + .pingback .edit-link:before { + top: 6px; + } + + .comment-content ul, + .comment-content ol { + margin-bottom: 1.6471em; + } + + .comment-list .reply a { + padding: 0.4286em 0.8571em; + } + + .comment-form, + .no-comments { + padding-top: 1.6471em; + } + + .comment-reply-title small a:before { + top: -1px; + } + + embed, + iframe, + object, + video { + margin-bottom: 1.6471em; + } + + .wp-audio-shortcode, + .wp-video, + .wp-playlist.wp-audio-playlist { + font-size: 17px; + font-size: 1.7rem; + margin-bottom: 1.6471em; + } + + .wp-caption, + .gallery { + margin-bottom: 1.6471em; + } + + .widecolumn .mu_alert { + margin-bottom: 1.6471em; + } + + .widecolumn p { + margin: 1.6471em 0; + } + + .widecolumn p + h2 { + margin-top: 1.6em; + } + + .widecolumn #key, + .widecolumn .mu_register #blog_title, + .widecolumn .mu_register #user_email, + .widecolumn .mu_register #blogname, + .widecolumn .mu_register #user_name { + font-size: 17px; + font-size: 1.7rem; + } + + .widecolumn .mu_register #blog_title, + .widecolumn .mu_register #user_email, + .widecolumn .mu_register #user_name { + margin: 0 0 0.4117em; + } +} + + +/** + * 16.6 Desktop Large 1240px + */ + +@media screen and (min-width: 77.5em) { + body, + button, + input, + select, + textarea { + font-size: 19px; + font-size: 1.9rem; + line-height: 1.6842; + } + + button, + input { + line-height: normal; + } + + p, + address, + pre, + hr, + ul, + ol, + dl, + dd, + table { + margin-bottom: 1.6842em; + } + + blockquote { + font-size: 22px; + font-size: 2.2rem; + line-height: 1.8182; + margin-bottom: 1.8182em; + margin-left: -1.0909em; + padding-left: 0.9091em; + } + + blockquote p { + margin-bottom: 1.8182em; + } + + blockquote cite, + blockquote small { + font-size: 19px; + font-size: 1.9rem; + line-height: 1.6842; + } + + pre { + line-height: 1.2632; + } + + button, + input[type="button"], + input[type="reset"], + input[type="submit"], + .post-password-form input[type="submit"], + .widecolumn #submit, + .widecolumn .mu_register input[type="submit"] { + font-size: 16px; + font-size: 1.6rem; + padding: 0.8125em 1.625em; + } + + input[type="text"], + input[type="email"], + input[type="url"], + input[type="password"], + input[type="search"], + textarea { + padding: 0.5278em; + } + + .main-navigation { + font-size: 16px; + font-size: 1.6rem; + } + + .main-navigation a { + padding: 0.5em 0; + } + + .main-navigation .menu-item-has-children > a { + padding-right: 38px; + } + + .main-navigation .menu-item-description { + font-size: 13px; + font-size: 1.3rem; + line-height: 1.5385; + margin-top: 0.3077em; + } + + .dropdown-toggle-button { + height: 32px; + top: 4px; + width: 32px; + } + + .dropdown-toggle-button:after { + line-height: 32px; + width: 32px; + } + + .social-navigation ul { + margin-bottom: -1.2632em; + } + + .social-navigation a { + height: 2.5263em; + } + + .post-password-form label, + .post-navigation .meta-nav, + .comment-navigation, + .image-navigation, + .author-heading, + .author-bio, + .entry-footer, + .page-links a, + .page-links span, + .comment-metadata, + .pingback .edit-link, + .comment-list .reply, + .comment-notes, + .comment-awaiting-moderation, + .logged-in-as, + .comment-form label, + .form-allowed-tags, + .site-info, + .wp-caption-text, + .gallery-caption, + .entry-caption, + .widecolumn label, + .widecolumn .mu_register label { + font-size: 16px; + font-size: 1.6rem; + } + + .pagination .nav-links { + min-height: 3.3684em; + } + + .pagination .page-numbers { + line-height: 3.3684em; + padding: 0 0.8421em; + } + + .pagination .prev, + .pagination .next { + height: 64px; + padding: 0; + width: 64px; + } + + .pagination .prev:before, + .pagination .next:before { + height: 64px; + line-height: 64px; + width: 64px; + } + + .image-navigation .nav-previous a:before, + .image-navigation .nav-next a:after, + .comment-navigation .nav-previous a:before, + .comment-navigation .nav-next a:after { + font-size: 24px; + top: -1px; + } + + blockquote.alignleft, + .wp-caption.alignleft, + img.alignleft { + margin: 0.4211em 1.6842em 1.6842em 0; + } + + blockquote.alignright, + .wp-caption.alignright, + img.alignright { + margin: 0.4211em 0 1.6842em 1.6842em; + } + + blockquote.aligncenter, + .wp-caption.aligncenter, + img.aligncenter { + margin-top: 0.4211em; + margin-bottom: 1.6842em; + } + + .wp-caption.alignleft, + .wp-caption.alignright, + .wp-caption.aligncenter { + margin-bottom: 1.2632em; + } + + .site-title { + font-size: 27px; + font-size: 2.7rem; + line-height: 1.1852; + } + + .site-description { + font-size: 16px; + font-size: 1.6rem; + } + + .widget { + font-size: 16px; + font-size: 1.6rem; + } + + .widget blockquote { + font-size: 16px; + font-size: 1.6rem; + padding-left: 1.25em; + } + + .widget blockquote cite, + .widget blockquote small { + font-size: 13px; + font-size: 1.3rem; + line-height: 1.8462; + } + + .widget button, + .widget input, + .widget select, + .widget textarea { + font-size: 16px; + font-size: 1.6rem; + } + + .widget button, + .widget input[type="button"], + .widget input[type="reset"], + .widget input[type="submit"] { + font-size: 13px; + font-size: 1.3rem; + padding: 0.8462em 1.6923em; + } + + .widget input[type="text"], + .widget input[type="email"], + .widget input[type="url"], + .widget input[type="password"], + .widget input[type="search"], + .widget textarea { + padding: 0.5em; + } + + .widget .wp-caption-text, + .widget .gallery-caption { + font-size: 13px; + font-size: 1.3rem; + line-height: 1.5385; + padding: 0.6154em 0; + } + + .widget_calendar td, + .widget_calendar th { + line-height: 1.9375; + } + + .widget_calendar caption { + margin: 0 0 1.5em; + } + + .widget_archive li, + .widget_categories li, + .widget_links li, + .widget_meta li, + .widget_nav_menu li, + .widget_pages li, + .widget_recent_comments li, + .widget_recent_entries li { + padding: 0.4688em 0; + } + + .widget_categories .children, + .widget_nav_menu .sub-menu, + .widget_pages .children { + margin: 0.4688em 0 0 1em; + padding-top: 0.4688em; + } + + .widget_rss .rss-date, + .widget_rss cite { + font-size: 13px; + font-size: 1.3rem; + line-height: 1.8462; + } + + .post-thumbnail { + margin-bottom: 2.9474em; + } + + .entry-title, + .widecolumn h2 { + font-size: 39px; + font-size: 3.9rem; + line-height: 1.2308; + margin-bottom: 1.2308em; + } + + .entry-content h1, + .entry-summary h1, + .page-content h1, + .comment-content h1 { + font-size: 39px; + font-size: 3.9rem; + line-height: 1.2308; + margin-top: 1.641em; + margin-bottom: 0.8205em; + } + + .entry-content h2, + .entry-summary h2, + .page-content h2, + .comment-content h2 { + font-size: 32px; + font-size: 3.2rem; + line-height: 1.25; + margin-top: 2em; + margin-bottom: 1em; + } + + .entry-content h3, + .entry-summary h3, + .page-content h3, + .comment-content h3 { + font-size: 27px; + font-size: 2.7rem; + line-height: 1.1852; + margin-top: 2.3704em; + margin-bottom: 1.1852em; + } + + .entry-content h4, + .entry-summary h4, + .page-content h4, + .comment-content h4 { + font-size: 22px; + font-size: 2.2rem; + line-height: 1.4545; + margin-top: 2.9091em; + margin-bottom: 1.4545em; + } + + .entry-content h5, + .entry-content h6, + .entry-summary h5, + .entry-summary h6, + .page-content h5, + .page-content h6, + .comment-content h5, + .comment-content h6 { + font-size: 19px; + font-size: 1.9rem; + line-height: 1.2632; + margin-top: 3.3684em; + margin-bottom: 1.6842em; + } + + .comments-area .more-link:after, + .entry-content .more-link:after, + .entry-summary .more-link:after { + top: 3px; + } + + .author-info .avatar { + height: 56px; + margin: 0 1.6842em 1.6842em 0; + width: 56px; + } + + .author-link:after { + font-size: 24px; + top: 0; + } + + .posted-on:before, + .byline:before, + .cat-links:before, + .tags-links:before, + .comments-link:before, + .entry-format:before, + .edit-link:before, + .full-size-link:before { + top: 4px; + } + + .taxonomy-description { + padding-top: 0.4211em; + } + + .page-title, + .comments-title, + .comment-reply-title, + .post-navigation .post-title { + font-size: 27px; + font-size: 2.7rem; + line-height: 1.1852; + } + + .page-links { + margin-bottom: 1.4736em; + } + + .page-links a, + .page-links > span { + margin: 0 0.25em 0.25em 0; + } + + .entry-attachment { + margin-bottom: 1.6842em; + } + + .format-aside .entry-title, + .format-image .entry-title, + .format-video .entry-title, + .format-quote .entry-title, + .format-gallery .entry-title, + .format-status .entry-title, + .format-link .entry-title, + .format-audio .entry-title, + .format-chat .entry-title { + font-size: 22px; + font-size: 2.2rem; + line-height: 1.4545; + margin-bottom: 1.4545em; + } + + .format-link .entry-title a:after { + top: 3px; + } + + .comments-title { + margin-bottom: 1.4545em; + } + + .comment-list article, + .comment-list .pingback, + .comment-list .trackback { + padding: 1.6842em 0; + } + + .comment-list + .comment-respond, + .comment-navigation + .comment-respond { + padding-top: 1.6842em; + } + + .comment-list .children > li { + padding-left: 1.4737em; + } + + .comment-author .avatar { + height: 56px; + margin-right: 1.6842em; + top: 3px; + width: 56px; + } + + .bypostauthor > article .fn:after { + top: 8px; + } + + .comment-metadata .edit-link:before { + top: 8px; + } + + .pingback .edit-link:before { + top: 8px; + } + + .comment-content ul, + .comment-content ol { + margin-bottom: 1.6842em; + } + + .comment-list .reply a { + padding: 0.4375em 0.875em; + } + + .comment-form, + .no-comments { + padding-top: 1.6842em; + } + + embed, + iframe, + object, + video { + margin-bottom: 1.6842em; + } + + .wp-audio-shortcode, + .wp-video, + .wp-playlist.wp-audio-playlist { + font-size: 19px; + font-size: 1.9rem; + margin-bottom: 1.6842em; + } + + .wp-caption, + .gallery { + margin-bottom: 1.6842em; + } + + .widecolumn .mu_alert { + margin-bottom: 1.6842em; + } + + .widecolumn p { + margin: 1.6842em 0; + } + + .widecolumn p + h2 { + margin-top: 1.641em; + } + + .widecolumn #key, + .widecolumn .mu_register #blog_title, + .widecolumn .mu_register #user_email, + .widecolumn .mu_register #blogname, + .widecolumn .mu_register #user_name { + font-size: 19px; + font-size: 1.9rem; + } + + .widecolumn .mu_register #blog_title, + .widecolumn .mu_register #user_email, + .widecolumn .mu_register #user_name { + margin: 0 0 0.421em; + } +} + + +/** + * 16.7 Desktop X-Large 1403px + */ + +@media screen and (min-width: 87.6875em) { + body:before { + width: -webkit-calc(50% - 289px); + width: calc(50% - 289px); + } +} + + +/** + * 17.0 Print + */ + +@media print { + body { + background: none !important; /* Brute force since user agents all print differently. */ + font-size: 11.25pt; + } + + .secondary-toggle, + .navigation, + .page-links, + .edit-link, + #reply-title, + .comment-form, + .comment-edit-link, + .comment-list .reply a, + button, + input, + textarea, + select, + .widecolumn form, + .widecolumn .mu_register form { + display: none; + } + + .site-header, + .site-footer, + .hentry, + .entry-footer, + .page-header, + .page-content, + .comments-area, + .widecolumn { + background: none !important; /* Make sure color schemes dont't affect to print */ + } + + body, + blockquote, + blockquote cite, + blockquote small, + label, + a, + .site-title a, + .site-description, + .post-title, + .author-heading, + .entry-footer, + .entry-footer a, + .taxonomy-description, + .entry-caption, + .comment-author, + .comment-metadata, + .comment-metadata a, + .comment-notes, + .comment-awaiting-moderation, + .no-comments, + .site-info, + .site-info a, + .wp-caption-text, + .gallery-caption { + color: #000 !important; /* Make sure color schemes don't affect to print */ + } + + pre, + abbr[title], + table, + th, + td, + .site-header, + .site-footer, + .hentry + .hentry, + .author-info, + .page-header, + .comments-area, + .comment-list + .comment-respond, + .comment-list article, + .comment-list .pingback, + .comment-list .trackback, + .no-comments { + border-color: #eaeaea !important; /* Make sure color schemes don't affect to print */ + } + + .site { + margin: 0 7.6923%; + } + + .sidebar { + position: relative !important; /* Make sure sticky sidebar doesn't affect to print */ + } + + .site-branding { + padding: 0; + } + + .site-header { + padding: 7.6923% 0; + } + + .site-description { + display: block; + } + + .hentry + .hentry { + margin-top: 7.6923%; + } + + .hentry.has-post-thumbnail { + padding-top: 7.6923%; + } + + .sticky-post { + background: #000 !important; + color: #fff !important; + } + + .entry-header, + .entry-footer { + padding: 0; + } + + .entry-content, + .entry-summary { + padding: 0 0 7.6923%; + } + + .post-thumbnail img { + margin: 0; + } + + .author-info { + margin: 0; + } + + .page-content { + padding: 7.6923% 0 0; + } + + .page-header { + padding: 3.84615% 0; + } + + .comments-area { + border: 0; + padding: 7.6923% 0 0; + } + + .site-footer { + margin-top: 7.6923%; + padding: 3.84615% 0; + } + + .widecolumn { + margin: 7.6923% 0 0; + padding: 0; + } +} + +/*---------------------------- + Archive +-----------------------------*/ + +ul.archivegroup { + margin-bottom: 15px; +} + +.archivegroup .expanded ul { + display: block; +} + +.archivegroup .collapsed ul { + display: none; +} + +ul.month { + list-style: outside none none; + margin: 0.5em 0 0 1.3em; + padding: 0; +} + +/*---------------------------- + Tab +-----------------------------*/ + +.tab { + width: 100%; + line-height: 1; + border-bottom: 1px solid #F1F1F1; + margin-bottom:1.2308em; +} + +.tab ul { + padding:0; + margin:0; +} + +.tab li { + display: inline-block; + margin:0; + padding:0; +} + +.tab a { + background: #F1F1F1; + border-radius: 6px 6px 0px 0; + color: #555555; + text-align: center; + padding: 8px 14px; + display: inline-block; + margin: 0 5px; +} + +/*---------------------------- + Custom +-----------------------------*/ + +.tags-links a:after { + content:", "; +} + +.tags-links a:last-child:after { + content:""; +} + +.site-info p { + margin: 0; + display:inline; + margin-right: 5px; +} + +.site-info p:last-child { + margin:0; +} + +.author-description p { + font-size: 1.6rem; +} + +.post-blockquote { + padding: 0 10%; +} + +.post-link { + font-size: 2.2rem; + line-height: 1.8182; + margin-bottom: 1.8182em; +} + +.post-link a:after { + font-family: "Genericons"; + content: "\f442"; + position: relative; + top: 3px; + font-weight: normal; +} + +.nav li.active a { + font-weight: 700; +} + +.nav .dropdown-menu li a { + font-weight: 400; +} + +.nav li.active .dropdown-toggle, .nav .dropdown-menu li.active a { + font-weight: 700; +} + +.nav .expanded { + display:block; +} + +@media screen and (max-width: 38.75em) { + .main-navigation { + margin: 0 auto 9.0909%; + } +} + +.comments-area a.more-link { + border-bottom: 1px solid #333; +} + +.comments-area a.more-link:hover { + border-bottom: none; +} + +.feed-link { + display:inline; + margin:0 0 0 10px; + float:right; +} + +.feed-link a { + height:100%; +} + +#more { + display:block; + box-shadow: none; + border: none; +} + +.social-logo a { + height:35px; + width:35px; +} \ No newline at end of file diff --git a/themes/twentyfifteen/genericons/COPYING.txt b/themes/twentyfifteen/genericons/COPYING.txt new file mode 100644 index 0000000..aece214 --- /dev/null +++ b/themes/twentyfifteen/genericons/COPYING.txt @@ -0,0 +1,9 @@ +Genericons is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. + +The fonts are distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +As a special exception, if you create a document which uses this font, and embed this font or unaltered portions of this font into the document, this font does not by itself cause the resulting document to be covered by the GNU General Public License. This exception does not however invalidate any other reasons why the document might be covered by the GNU General Public License. If you modify this font, you may extend this exception to your version of the font, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. + +This license does not convey any intellectual property rights to third party trademarks that may be included in the icon font; such marks remain subject to all rights and guidelines of use of their owner. \ No newline at end of file diff --git a/themes/twentyfifteen/genericons/Genericons.eot b/themes/twentyfifteen/genericons/Genericons.eot new file mode 100644 index 0000000..b5f8647 Binary files /dev/null and b/themes/twentyfifteen/genericons/Genericons.eot differ diff --git a/themes/twentyfifteen/genericons/Genericons.svg b/themes/twentyfifteen/genericons/Genericons.svg new file mode 100644 index 0000000..f813110 --- /dev/null +++ b/themes/twentyfifteen/genericons/Genericons.svg @@ -0,0 +1,543 @@ + + + + + +Created by FontForge 20120731 at Fri Oct 3 09:39:07 2014 + By Joen +Created by Joen with FontForge 2.0 (http://fontforge.sf.net) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/themes/twentyfifteen/genericons/Genericons.ttf b/themes/twentyfifteen/genericons/Genericons.ttf new file mode 100644 index 0000000..1f160dd Binary files /dev/null and b/themes/twentyfifteen/genericons/Genericons.ttf differ diff --git a/themes/twentyfifteen/genericons/Genericons.woff b/themes/twentyfifteen/genericons/Genericons.woff new file mode 100644 index 0000000..973e033 Binary files /dev/null and b/themes/twentyfifteen/genericons/Genericons.woff differ diff --git a/themes/twentyfifteen/genericons/LICENSE.txt b/themes/twentyfifteen/genericons/LICENSE.txt new file mode 100644 index 0000000..d159169 --- /dev/null +++ b/themes/twentyfifteen/genericons/LICENSE.txt @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/themes/twentyfifteen/genericons/README.md b/themes/twentyfifteen/genericons/README.md new file mode 100644 index 0000000..faf8f60 --- /dev/null +++ b/themes/twentyfifteen/genericons/README.md @@ -0,0 +1,152 @@ +## Genericons + +Genericons are vector icons embedded in a webfont designed to be clean and simple keeping with a generic aesthetic. + +Use genericons for instant HiDPI, to change icon colors on the fly, or even with CSS effects such as drop-shadows or gradients! + + +### Usage + +To use it, place the `font` folder in your stylesheet directory and enqueue the genericons.css file. Now you can create an icon like this: + +``` +.my-icon:before { + content: '\f101'; + font: normal 16px/1 'Genericons'; + display: inline-block; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +``` + +This will output a comment icon before every element with the class "my-icon". The `content: '\f101';` part of this CSS is easily copied from the helper tool at http://genericons.com/, or `example.html` in the `font` directory. + +You can also use the bundled example.css if you'd rather insert the icons using HTML tags. + + +### Notes + +**Photoshop mockups** + +The `Genericons.ttf` file found in the `font` directory can be placed in your system fonts folder and used Photoshop or other graphics apps if you like. + +If you're using Genericons in your Photoshop mockups, please remember to delete the old version of the font from Font Book, and grab the new one from the zip file. This also affects using it in your webdesigns: if you have an old version of the font installed locally, that's the font that'll be used in your website as well, so if you're missing icons, check for old versions of the font on your system. + +**Pixel grid** + +Genericons has been designed for a 16x16px grid. That means it'll look sharp at font-size: 16px exactly. It'll also be crisp at multiples thereof, such as 32px or 64px. It'll look reasonably crisp at in-between font sizes such as 24px or 48px, but not quite as crisp as 16 or 32. Please don't set the font-size to 17px, though, that'll just look terrible blurry. + +**Antialiasing** + +If you keep intact the `-webkit-font-smoothing: antialiased;` and `-moz-osx-font-smoothing: grayscale;` CSS properties. That'll make the icons look their best possible, in Firefox and WebKit based browsers. + +**optimizeLegibility** + +Note: On Android browsers with version 4.2, 4.3, and probably later, Genericons will simply not show up if you're using the CSS property "text-rendering" set to "optimizeLegibility. + +**Updates** + +We don't often update icons, but do very carefully when we get good feedback suggesting improvements. Please be mindful if you upgrade, and check that the updated icons behave as you intended. + + +### Changelog + +**3.2** + +A number of new icons and a couple of quick updates. + +* New: Activity +* New: HTML anchor +* New: Bug +* New: Download +* New: Handset +* New: Microphone +* New: Minus +* New: Plus +* New: Move +* New: Rating stars, empty, half, full +* New: Shuffle +* New: video camera +* New: Spotify +* New: Twitch +* Update: Fixed geometry in Edit icon +* Update: Updated Foursquare icon + +Twitch and Spotify mark the last social icons that will be added to Genericons. +Future social icons will have to happen in a separate font. + +**3.1** + +Genericons is now generated using a commandline tool called FontCustom. This makes it far easier to add new icons to the font, but the switch means the download zip now has a different layout, fonts have different filenames, there's now no .otf font included (but the .ttf should suffice), and the font now has slightly different metrics. I've taken great care to ensure this new version should work as a drop-in replacement, but please be mindful and test carefully if you choose to upgrade. + +* Per feedback, the baked-in 16px width and height has been removed from the helper CSS. It wasn't really necessary (the glyph itself has these dimensions naturally), and it caused some headaches. +* Base64 encoding is now included by default in the helper CSS. This makes it drop-in easy to get Genericons working in Firefox even when using a CDN. +* Title attribute on website tool. +* New: Website. +* New: Ellipsis. +* New: Foursquare. +* New: X-post. +* New: Sitemap. +* New: Hierarchy. +* New: Paintbrush. +* Updated: Show and Hide icons were updated for clarity. + +**3.0.3** + +Bunch of updates mostly. + +* Two new icons, Dropbox and Fullscreen. +* Updates to all icons containing an exclamation mark. +* Updates to Image and Quote. +* Nicer "Share" icon. +* Bigger default Linkedin icon. + +**3.0.2** + +A slew of new stuff and updates. + +* Social icons: Skype, Digg, Reddit, Stumbleupon, Pocket. +* New generic icons: heart, lock and print. +* New editing icons: code, bold, italic, image +* New interaction icons: subscribe, unsubscribe, subscribed, reply all, reply, flag. +* The hyperlink icon has been updated to be clearer, chunkier. +* The "home" icon has been updated for style, size and clarity. +* The email icon has been updated for style and clarity, and to fit with the new subscribe icons. +* The document icon has been updated for style. +* The "pin" icon has been updated for style and clarity. +* The Twitter icon has been scaled down to fit with the other social icons. + +**3.0.1** + +Mostly maintenance. + +* Fixed an issue with the example page that showed an old "top" icon instead of the actual NEW "refresh" icon. +* Added inverse Google+ and Path. +* Replaced tabs with spaces in the helper CSS. +* Changed the Genericons.com copy/paste tool to serve span's instead of div's for casual icon insertion. It's being converted to "inline-block" anyway. + +**3.0** + +Mainly maintenance and a few new icons. + +* Fast forward, rewind, PollDaddy, Notice, Info, Help, Portfolio +* Updated the feed icon. It's a bit smaller now for consistency, the previous one was rather big. +* So, the previous version numbering, 2.09, wasn't very PHP version compare friendly. So from now on it'll be 3.0, 3.1 etc. Props Ipstenu. +* Genericons.com now has a mini release blog. +* The CSS has prettier formatting, props Konstantin Obenland. + +**2.09** + +Updated Facebook icon to new version. Updated Instagram logo to use new one-color version. Updated Google+ icon to use same radius as Instagram and Facebook. Added a bunch of new icons, cog, unapprove, cart, media player buttons, tablet, send to tablet. + +**2.06** + +Included Base64 encoded version. This is necessary for Genericons to work with CDNs in Firefox. Firefox blocks fonts linked from a different domain. A CDN (typically s.example.com) usually puts the font on a subdomain, and is hence blocked in Firefox. + +**2.05** + +Added a bunch of new icons, including upload to cloud, download to cloud, many more. + +**2.0** + +Initial public release diff --git a/themes/twentyfifteen/genericons/genericons.css b/themes/twentyfifteen/genericons/genericons.css new file mode 100644 index 0000000..36f02a3 --- /dev/null +++ b/themes/twentyfifteen/genericons/genericons.css @@ -0,0 +1,209 @@ +/** + + Genericons + +*/ + + +/* IE8 and below use EOT and allow cross-site embedding. + IE9 uses WOFF which is base64 encoded to allow cross-site embedding. + So unfortunately, IE9 will throw a console error, but it'll still work. + When the font is base64 encoded, cross-site embedding works in Firefox */ + +@font-face { + font-family: 'Genericons'; + src: url('Genericons.eot'); +} + +@font-face { + font-family: 'Genericons'; + src: url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAADgYAA0AAAAAWDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAA3/AAAABoAAAAcbOWpBk9TLzIAAAGUAAAARQAAAGBVb3cYY21hcAAAAngAAACUAAABqq7WqvhjdnQgAAADDAAAAAQAAAAEAEQFEWdhc3AAADf0AAAACAAAAAj//wADZ2x5ZgAABEAAADAqAABJ0A3bTddoZWFkAAABMAAAACkAAAA2B8ZTM2hoZWEAAAFcAAAAGAAAACQQuQgFaG10eAAAAdwAAACZAAABNGKqU2Vsb2NhAAADEAAAAS4AAAEuB9f1Nm1heHAAAAF0AAAAIAAAACAA6AEZbmFtZQAANGwAAAFRAAAChXCWuFJwb3N0AAA1wAAAAjEAAAXmlxz2knjaY2BkYGAA4rplZ/Tj+W2+MnBzMIDAhRBmaWSag4EDQjGBKADj7gZyAAAAeNpjYGRg4GAAgh1gEsRmZEAFLAAWNADXAAEAAACWAOgAEAAAAAAAAgAAAAEAAQAAAEAALgAAAAB42mNg4WBg/MLAysDAasw6k4GBUQ5CM19nSGMSYmBgYmDjZIADAQSTISDNNYXhwEeGr+IcIO4ODogwI5ISBQZGAOtvCU0AAAB42kVPuxXCQAyTL+GRmmVoKdgA6FNRMoObdAyRnj3o6NkGLOl4+N75I381AUeUTPoNASSyoWVUBMYUYkmt/KOQVdG79IceFtwj8QpN4JxI+vL4LrYUTlL294GNerLNcGfiRMu6gfhOGMbSzTOz30lv9SbvMoe+TRfHFld08b4wQ/Mhk6ocD8rtKzrHrV/49A34cy/9BURAKJ4AAAB42t2NPw8BQRTEZ+/E2Xi7NlHIJsI1hGgodVqdVqfVqZRqH8QXvL25eq0/USh8AL/kzWReJhkAOV43hMKDW0rqmVu4Jh/BpY+tdNDBh2ndoabnnGtuueeR52YQI1AhILhQ1iDoWHLJDXc88NQgxl5ujS2sMjNZyUImMhYvfTFSdC/v3R+oNj4llSXJvgv4e+6zoCcQAEQFEQAAACwALAAsAFoAhADMAPIBAAEcAUYBlAHOAggCsgNMA6QD4AQSBMIFXAWoBgQGdgcIByoHageOB8gIJgkeCn4LOgvIDH4Myg2YDeoOLA5oDtIO9A8QDy4PeA+aD+AQNhCgEN4RFBFSEZwR9hJgEoISpBLuEwwTKBNEE3ITihPOFAYUWBSYFMgU3BT4FT4VTBViFaAVzhY6FmYWlhaoFsIW2hbuFwQXEhcgFzYXlBfEGAIYNhh4GLIY2hj8GSoZhBnAGfAaBhoUGioaQBpOGn4awBr4GyobgBuWG6wb3hwCHCwccByqHOgdFh02HWodmh3MHgQeHh5GHowfpB/OH9wf6B/2IAQgWCCOIOYhdiGuIfAiciKOIrQi6CL2IyojRCN2I5QjviQIJJAkxCToAAB42oV8CWBU1dX/PW+dyT57Mkkms2RmAkkmyazZCEPYE3ZCWALKJkhYI7IorT4XFERwQdEiAtaK1l0roMUln3WtSktBPltrP7CLyx9b21o/hczlf+59MyGA+jF579333n3vbuf+zu+cex5EICMIERbK04hIVBJ6BkhN87OqRL4IP6PIf2x+VhQwSZ4R2WWZXX5WVaCv+Vlg1yMmj8nvMXlGCG5aDvfSy+Vppx8bIb1HCFEEIhCFyBp/bzbJJxbiIAQ8No9s88TkmMcGuPkxbcKjQCTSRwQtpYkESErDFDmLj8pa+t9Zwg8UNyIA5lHxh++1YFluyVwgSO5yocBMwvFowKtYxRr4Kcw7fJjuoZfQPYcPw1vHduw4tkMl567MYzn6Du9gNwgWr4GmaoqGr3WQYjIY6yqz5lk8JNwiREOCN0+wukC0yTESdoHNmif4vCGIxmVNIN9iY/FAHzqwb/3o0ev36YezZ4nw8ye3d0amrRs2fXtnJzamTxM1DcgZrT8TO4jfzk3upb2d26cPWzct0rn9ye2sPgIxDOw/7DuTB7BKbGM/Cd/Vp/UREXsFMAWajHuBAJ5Tvmcb9g+wawprm0CIUcC+1s7gWQp/eI8/h32ZixmtimqSTSGIReNuu6zd1nOW9Nx2ElpOytqG1ytSn2rCvRWvb9hz8iQfA3xKYWPAxhXrY80Dnykcj8G5pAdwTDef2tK9Q8gkKNaajfOWU5uB7OgekCQCqyevSxGJsnG120xYo1g8ZmKDiicOG9bNFHVg/+MddwDTLZCwsVv2MMsWFA9B1qHuzmTP7p5kZ3dvZ/ch+vWhus4GfkElhzZSbd7uwD2NHaBN7OmZSLWOxnsCu+eBtvEEHqi28dChjaAl10wvwjyU5wHMw3qO9KqsbgXEh+0N87pVggk8CQ9rtH7BhyPk87J6xSOK1r1jR7dGk3S/Blv2nKT8HE+TPKFgk9klmoRe7eQeQTt3uqMbMEVEyIybjKW6mASw8sDFxikYj0WDmCzAZIsQiwaCLDcfe03Kjzc1xWe1t0PBjAULZnTVtPonjpbx9hnchIL4rbtujc1q7+7G+zM/p32fz+yq6blx1OWHRmMR2M6oASWPrOMzyyWYbVZBkVQlgELBimlRsOAWIRAMQZ6gBoKKGhLzIQ9wcjgUm9UlOxQ1TwhBMCQFB+N1u8MlOVxKwmq32qxKMFAewNqaWwRxDdgh68RLN7YteYHSe30+CLpiMxeMH1tbskQxGvMtUl64eUHiqptvvioxf2goK6sg32CUlpTUjpkwf2YsmmsPjR46yikYS73xUimnyGhyisZSpzcXFIc7MWp+M/h899DUC0vabnzphIGwPf16y8P0rTOvhFV3ofSrKcPnOhVLeXjC/E1T916RXzHm0joQZXOd3wvg9deZFEGomNSQKMlevWfK5vkTwn6zEurKypMLYtVSrq+4UFCznWZQCl31Hil3kGtwXpapfGJdVqFbibx8Bhoe3sIbh53IgIoQ3qcGYiKliC1hkiSTCPGHE4KoENXuj5sT5bILzIgrZkecJALBHGDd6xIccckhAMtUnhAsXsVnt7RIiUAVuCWCsEcQ9wgDPonsP+R56k90U/cH4phd7xbSU/RYXmPX6fuvXPZjePyTgiT9G+2Rl4w+8L/N9tKg8iiMu9p5pvFV+s+aV+GrW7Y+4dbci36t7B2/Zcmga+hBehXsgg1g+dnP6Bd0I12I2xc/+xlYtElQBTe20SNv9u5dBh29oVDxvfTXwubkw/Q369+D+PharTMMHzRc2u0qjXTkeJRiKIV/T6OHjtvHhMAJ8YJ9dJ/Q6G5pLb/mTu2Cl2OBvFDWXYB4XIV4/BFpwBNFtSPgSpLP7bdHwjjlUbwwgYchKF8MrxJ2yYES2iJEwnZHPJEHalzV2pcL1bO0p39L6TZ6mJ6tqpr24B1D173k87vraq99ZMKM9hnhW+CWj7MaF2xqn7Al8uNl1o6GFUrtqgnFtiXH3jt0/+phD8mBUXXitpVqbtE7N8qVYvinlyzofPSd7EGVbZsWNA5JFCWTS7y5en0J6g9VI8F+dPAhSls8Q1BHRByJgA8VSCnCIirN8wCC/g3ycujfKlv3yeOXXHLnjCpKU1XshoqIcIYgdL4JUm9OcwL+lRW/dM2IU7Qv1bCjW8Y7HNuxXPkTLNfN8EFkioGVEW2RsCfKQPTyckVpN4zNp2/Q3j/9yVE95pJr2hLdTqc6Z2FF1GmUvqFH+g6KY6EGhOjc6WPipYoo0r+Z/NVeUTASRJ9M2yyIzB6ykKzg2GA3s0HxeXFGF5jjgJILCoRRdrPBbgFLPNEixqIMCAwIHZGwI1Du80qKGo6E40MhbldURQWLiDgSd9jPXfPjUKti3ByLim2wDMZ9uW3Y6n2vfXr1Afrcl9u2fUn/ePo9eu0oMXDL9ZLwzb9W/Rl8kwSpIM+iOgqt4JDNcp6kChMawbiCfnbfLfTs4THFRf5lPq/NkmetqgX/09d0WPOt1o0TA0t9PrxoqxR88pCvD/5B1fDtzx24+tPX9q0etu1LGMdLT+WdohsWSqX399WEZEV4ODXMI+3t2w05Sk5d3ahIYWhmzCv4De7skvxCW3ZDJyxc1fXgClkQocwrykLfPYIJZqiC1w1ZmYtqReXNO1MN3bD6w8NM1lHXk2t5/+YjykfIUhxJnOhe1cRknGEqWLAbAy3gcIkOuwKsh1CIgngB0VUBNuRIrJhocbFDnA4JQW9IxX5PcNCOJDxehZ1GPCibQrN5rOXgPde86/S4nWWeH79ty6u/enJzz/Qh2TYNclRIPTftpqLGD7Qp4yyjfPFSj1XsRQJ2ls9KprZk2RLtaoNgTqDAnW821LT/YubUvTenHrj2r5N0yRQaYSr89VqxpcHTXA5TpN/uXvLUPFFIdt8+aW9vKubxCPZFk6ZdLkBhbm1hRWkwKBcASRfRh8+X2Mcuumx2fWlWaUGJtdBmjI5uuvX5Vc/Xbps/dRibG1w3IrAqLyE/MpM6nR0FmeplooaqCCkIXoqyaQcqEgSPOeixtSh4T7AJc+gBaHtImHzZ4qmJjiqo6pQL6MHJnZWjB+dm04OSBGOzbW5PTaS1fMrmxQ1AxP+5ef7YtnnV4+tqx4fO7BTMS9b5I+7ieOq/xevnbDWV+IqLLdmJpU+s5GOppcfSgnOyeQAapKc940oWpAwh8CGpsdrxAq+moMY89gKbirVOcByzmXSEYCCAlMBBv71hxGSY1Dp8yuRhUtPDm8KT670F9BsAMBiyvA3ekcMykKEPwmkiFvV9Im6c2Ng8fkJT48S+DfDmUweKKoOFqzx09f4DcKjS5hxUemkHnYGd+RgqqsmooyaxGrskfWoHggLO0mAgYQkJvGcZDmN/svlqZlKG9casSMjUPPYXZNlaZKlu7e+f3DY3Wj31qh0HFi54yju2wDvnbrX0p1KefeuiqTMCzXmOqxeueWH+yBve+vGcx25eMTY41ayqolVQffZpaxPl45bd84s/G0hi/qa9++ds+PiVXcub5yTpR/UbtscfuVp42uhZEr310NIpke3/1bDg9ueh7sDlz1zXFpq86qZ7J9093+YszJmYVWgy+u56cdX43fdtXT89rOuUjB5ekOE2BUKegM0MxhMWFzDNwhol6o2yO+wIYZCIB4JpzYKiw5gt0v4Ep1xMtjBfGWAnOQLkQl6T5hx3bWsvGVOydfJVv7l9ctMVu95bvfbI7msmDupebC6RBZMgy3kjRmu9PZc92F0/acclsQ5/Tnada/Tw+KxYgcHYY3HI++mpXQNZDP2cfs3eP3j9AnDG2pceAvHurifuWplMXPKj2+9uu+XoYEOexZDMstpME6+a9+zNk5uX3DZt+zd3x7piNbvWDW6dPuLq9srJFgv1T52/eSI4YO3hfrIikL3CXHWuvBcnVz7n4AXIswvK00fZCjO++oo+8lXqynRC3sv2X6XP8KjrbsK5shdPJBFtBR9qkiAKC9LWBP4sZocZoQ1TeMmsbABrQQ4aZnem7l+2wjt5tvWqjo3XPT3zSF3U2jy2vmeVoWBTcuSNKjHQh2iKDqGDoAxuuwbKOpZdufpeg5X+lj4/kf7z6adn31sKT7A2ZGy5fMSGi+afUVAImjB7+vgeuNWpIAOn/FzAfR9n0gTgA6IpFTiXvbqFg+iKgMtA2YSKCsWGkeCYyRfjjUpIw+HndLqpoLp53KabV8+Zs2zDpZcMb42+0d3eHqo2qRptop/Q6K6qKmf5DPq3uN1eVtbQeN0GYU3Kl0zOmrklowsy+OEg1WTIxfUnbqXA7o4XYI34bHRz/oN1syO4x00ol5WoPkrBam+CcHwghIhl9NWTzJxDM+Hv5s2n6OenNpvp39tjMom1t8e09O58FKHkpP5U30mRjGpEYw3tuKaRKfaItD/zTDufWmcBVFDOkm3kTrKD/ITcTx4gD5FHmGWJTbDVKuzPqtSh/aLUKaqV7RQbAxTsTiUfQPEGobYGAsHaQCygd28gGA3yGRiI4cUodkGsNh6L10VZn8fCCX7Uf0OhNgHxsANq7XW19ojd0f+zsa2W/Vkd1jo7mOSEERx+2ZYAk1/1J4KqEYKyP6aqOOr8n4B/QnqPh1SrqcKUagURUJxFdlWA8/4J0J8Z1bzwMmYXXgYB+t+RfhHgq8D1SWpd6swn4Eq98RDcTT/+RBj92WefQaUgf0I/Fhofkv4lS7RaUAWQ2DOsUIEVmX4Dvh9odXYOHGWvT9dU5PfxAPgQPijBUUkWQAYBT9nGHuMvYPuj2dm0Ot1CUX8jK4NlwydgIn3vlZ0wgz6y85W9f1yRehmir9w3YdeuXZiasfOVB/644nxZtaCee5l8wmQVWWEB2otubua1IClH01FA/eCwSwmcMlw/IKYisA4FhqmYA21CC2eDCiP1iKy10TrGd8rZJf5onIFwCBT9gnAOmJHmBLji4dmYWYBvYzfZOVNKIhquQY7XyJ3wlD2RPhUgXJ7QqRJ7JWK4hGUGA+ZEHK8nFElBuDfbJYkcYCyUkUN6FyOhnI8e3U2PL1++0Gra96P14N4wtn3lu3dNL0+GsEeNIgz72WuLHwTXPLf/cvrh7eLgwZ1brlzbMWvuU9e0Z3d3LKJfLb9ySEuWYefyFf/T1OJoD23cFOu02CIFVbHSqlmBQNRgMBcVVIaLndFqc7FDVirLKmpCY3LRJjTa7CMDgVFWm2w2Fnsr7JVdHq9fFDo3tkam1eTYzJMWra0vHxYxFRvNjg2PdEy/fRrdcAo2LWqavuPt1eNvmOeMj1m9ih58+GH62ei23OkzoPpZk/k++tnba6/7EEI6B9abyShwmg3fY1izcin9/d13nR07Jq/BNmP7u6tGbVoTxrZmCdC+rOnWDZHqa+5OZQ2/qX71YF+Jt/2ap+YKS19pGW9talmy9Efrf+XyTJnT9XF7pNoaHDJ33rTiyjI1O8/hGD1ocIfH4bEIQo7TXNzm97eYkN7WVwpQNrbU5RGg0ufrCFo9TotkLCpzz6wdtjRkyhl5ycpYtKPaYM+rGVKe2NA88apYfs7yB/tu/ubdm25cc+S+pVb38q2T76FPrt+wqtT5P3t2wfKf3Pc7lyTk3PIB/dPuffR3H17fL78G1FQkm3SRK8mtun+SkekYkmlQfZwGodgwz18ZuGR2hjIsMslG6ybBU0osLdcopR6IhlCKOOnkHAJ5khhPcwrGQ60utMviiDIZtqtR+z13FroSbmehu7nK77AUOiyWaZ7yeKk7N7z4jnfWLHx47ZSgoaA0mPBGNtzaNsSSV5yFU1xQwNBomnXP3Nj4sfeDAew5ZeXDWiIWn2XY2urC8mGV3j8f+tmBl5oc4REL6l0tcUu0oCw8tLO2aoakZZi8QKZZSpJDLomEZ7a0Bkrt9praSkt+a4k7UT1kZHD4dT2dYf/QznkxeygSCddY3ZV2VSqyhKqcan52npovIXlJLrlhVMfDyetOz3NFwoMToXJRNucb8wfXTq65du9WcVFTT/TK1bMbLD5HcsWgWZdOG1Hhx7I3Im7E1evIIuxxF07qPDmExqcpz4AzmadcQjyB6tYlYj/HQ4ov6A3kYTZwiWWghiSc/C0i2kLybrVo7MgZI5qceWWVy1auW3X59KTZjGrEYLK6/dHS6IqOkWaLZ8Tw+gKoV6zJoTPGTxlalyWUt0zpmj11mMUiFUSi7aOmjh5TUlwkmpxFRuNJ1dE4qDR7zPCRjzz89E/v3TDbqQ4ScwaHp825YdvB+TM3T01Y5NxcVaH/T1DtDrfL5yrNNgtFrpxcKPRW5pVXi8+m/ibI2ZJsqR6+dOS467vaqrz5BoRYJb+wItJeXT138rjGqpzst43uJSseeuCN2ROuaHILeSVFWYTzr1uxb65EmRxErsPesavc0RxkIiahmmdMVERbmhk5KI7AvICBgT/Mw2xte5qo9N9HosV0rXWATrSmOUz/fVuG3sTVYREYf8P+hVctnzjuig+fR/ptGl7Xtf7uSVvXtY2a//JD21dPraKLmry+IU0dU5Z0utzlbktBNNE1v3Kwp8RRVBP1eYuc9fVTp63atmRZfUMi1jVj4+yWeq+npfXyCdWhQqfDVlJWFff64tHp6w78ZMUqsXXxFQv33zC+MW/Isl0v/GF1x7QrNk66e31XXXtO1dTV2x96ef4c+uuOy2cMaa4IFjsdFqPRnI/vCHnL3e6WkM1eXl4dCtcitXIGB41tm7toRGswUGI1mzyu8NDBVXabxxOrLSxCm659/LiaoaEQtweQ5RGF8dQoYyg4P3XrBvdKJbIuzrlCQiWYuFbiHc88/0hU0IpWNHuwyM629liSsSCaHHbl6FmDtd66FfOSoCKieWaOKjAYYG+sXSLFdeUGT1DfY+7u9oraCkG75IFvNsumak9Jx84p0/b6A+26ifIebFUj6mruLQySWjKUjEG7bDPWMo7V0octikQHxwqwlmmr117OzDOFnfnj3DxR7ajjWJJ7Xqx2CayOOHNFKcSrMJd51GLVfWuAGpvzyIydh/ksCGgOuQXtItYVaPUE/aLdwc5dIL2VP9iV3/nCoc581+D8+tvuoP9oDYWGDQuFWmHE7NbW2a2Cp7JhUHXZ1NSWx8D36KP0o8cepx89+ij4Uh9X1EwrrRrUKFfjQAyt3lcfyrvydfolPU6/fH1NQWll0dqpdVNLDv51tmw226ChcEpd25IlbTUT60R6evyfniqZFo7PjouGfFdlfmdnfqUrvx6UUCsW39qq70OhIWW1gxqCQ1KLu/cvXXagu/vA8QPdwn01JeOGlDcIHaGWUHUy9XSiqzhcd9kLGydO3Pj8ZWjPRob5pq6tDswzwtv27Bx5zKC6JXctqR4faqbX5MytCMVns/nJUFNFqSE+ksDxYA4uZsaLfDlIGIIKRF+K4N3msKmyJ2MzBmOOhH5Tmmz32701ALPvnzNSmx0HtWZEjfzmli1vSfcjLVJn754zZ/dsWHI/XpaOzLb7bSEvLZv1k5mxrh+POHLYU1PjgU82vfTKpqXV1x7p2jVr5s6u39WGjrHrRK8jW5tBuc4n5Rn7gS+Q6f4HtkSGfJetkzkg4UIjIeFQkOln1sbQUPhDoL3bT/9A/+Dvbg/AEtnUMKLBJKt8yeKIvnx2hK1RpPaxDPRD8PMHdkilPl+pRHSf4cvIDVv7168chBhFkzEnYTNCzCHcBj2pL+h2WC5YKKYFCyxP/VPIp9tTX0APvR2u2J36MvXlbrWVvksPQnnqBfDR5+m7EIUx9CP6sLiX/hHGQvTMt/S9xavpq9CyejFvu0DIWWUktt1FRvK2q6KAqpiZRCrkgW6xMWue8Uec32ztKGFGxsiMJZ1VMkuLe2094RaQ35jRaI3OlGXFWlTjOm2QVboub7A721qWX9ZcIZz0yk5LaoWtVP6301pa9pG1WBRcouSy0H8W+3zFMDTbXqCS+fMppS1Wq63CZhYMtKEgV5TVygrZ5qiqKqErf2Evc5v7DIqMclKY58wz7Mq1+rzFwWJPjoXjFFt7YmttA63ZAQtN5HsXltIrSRzrBJRavl7H1pHQmHUg1xEjQi/z7TGLF7OnNE2T0BxGZoQcISNLWLLC2FIO97IZIbPIKuFUSBFKxHe6GaApmEwRtobXzs5JZv2Ky2EZ8ad9xhnrgLmM9ZVVxCY8kywmNB5NYh24QH5x1aoX6Rn6MT3z0sqVL8Fda96/r6vrvvfX7KJf79wJWX+EwV30GZWsfEnPxLKj3YIPvnRmZdfO458f39m1k35N38LsEqGz6H93wST4gy4fWCfC13lNeO5lOGq3iqxXPawzpW6+UqwxL8DJPZLG14fp5yf3MM605yTrk3PtyibFpEr3PSJnjNhwszBnni5W3B5PjxcbKh8rLCKj0jmNmyZgZ7fH+rgFLeI+1etE5h9I4t6paGfYFNK0M5iNZUixvbA/4KSE3YdezHl+XVxkMGnEutSi5a+KjEclLHqJniaoDUfQICqBuh+qqoRlKaFIibrsSV4GYdahw81drd9ZY+lXIBhUrFFxTqgInsEqCW4H2qeHvqvyhOT013VgTEAxykYlaUIdN5zhacQmprdM2pNOR3Az/VBPZ549FyrAasyP39MASvQ87B7faPqY2Qvku5oCMT0ggc+PaTBNvVq9GtvjRoQDB6DB0CJAAtSAN5+vf6qQsIeHIuzCn4SyWamT5U2NQW+OtV745jmhbL+/O7C/0GwufC51Yn8A036hnufy15TmGUORKdKL+1MnnvP79xe1thbuF8owecDf3T83Oc4XkBLsOxVQS7MoiHK3ZEZ2R9BqQQRDDYXYh4aG6d4X0vMH6iFr58q+lesPf3V4PdsBNvgfKzN3cOrseuFeeCd9c/16kvG3p8viLb2gOJIuKg+sdkvMY5NN8I+LykyN6n+nQdDEldR0Ubn023O1MvA+FgfEe5SQCu6L6zfTfrAeotZvZwn/R3UUcm6FI/V/1IvrNwKVBqK8T3KxTqWIbtUstoJBW9AIcayKaATe8UZgnuU4mhpx7kQVOO9C/JThDJUX0q+Q93x1GVXg9GWQA4Mhxw9r6Nbxr3/w2jh6K1wx/vVly16fmCLMbXeSvjqPY6uMT1J50erVi+E0nF68enVfJVwJqydMnTKB3kq34hFe3aM/cFKIcXQ+r84sxsXHZx0Bb5CtJyms7kgrE8xiTUDQ4oBggjUEbYkM3vs5c8QGJXS+KZEiDzynnBQA5vKW3P3zXdsv6Vj2ejus+X3oujPkOo028mbd/b9vp7bwasB73bc9sow3raVn6Mk9yxBy4DlP0Z6Twgm6l7Vp4nbvlAlw5QfwMX8DvMEauDf1Lm/4191LeBNf7Zm7nIMxCAy09DgU7H/mxsP6GQGVUS8kNdpLezVI8h0k5QvONZYnvXbL1wXOf4eB9PWKSa2vt69XE5N8JybVC841lofJqJbWKxbEsxiLHrJVGmJ+fcVNZT3IsAqRSo70O3Mj534y0QFH07GnPQYINEwhOM+mAV/TwUfPofDMCEX7EXTxrzfFTRABj5mN8wYoRd6wgxjZfLXgH8jFoBJafpD6qf8gLRfGPfecdC09kPoMxtHnBAe0geBIfcawRecLGnZtFp/tCLxB5gRHra9pfUQTccIoDDApc7ineqGXJs/xY8YXjNyfYgT8M3kYi0jhT8TfaUzz8KRetmNVJRLvv16lF58zkDzGdIwCm90OHIoaQfWjPGIf9fZpNClqqSfmClNTe7W5ybkajMf0XAVL79OgF1vO7vXN5fdy2a00f8K3syE2ZkKoVOQ5jPYgDCVT/ElWFegdiDc5OLc5g+ZxMJ6oUO4zhVGNOQFPsiBQBT4zM45QzQLR11DazpLDdPdvj8A2mAwlb6w4S2Y/9AX9hO5/ctXeVfgnZ0JRfgvzD4tkxRv0L/QpesWRJ6Edir54aHafxvNx3U5krMdZ9RXsDSeP/3GhPuE2KU7RFmQW/VOzGDwW9d3KvOiVU7891bq42eHwCd9UrrpiVSX9Xz7vfh+lf4sIs0ZpcxK+5LTueun9UWPHjjp9hM8qiLE1ECwvs25iQ2yI6LyGoQLaLglub3IkQ1BD9PUwaLA7WOODakgQOI1SvCwajv66nf7q1ekPbW0EtAoCsS3jWfATbmi+tsOQV6//dCa7Dr6pC77ijZVQlB4/FupoArQm/PEhJ4UytjDz+LGFM9kFKA+X0lree3osG48Rq8xEiOWBl3F6nFZ2Nw8V83n7A8L4XOM0mQeGcQTXWKpn4qRVOG80dmRhYSntaobtVzNsYDFggjaxZ9WkNNl6jTazM4FsZPMC7lCYbOSRQj32EMFTZVgfi5rRhChgxRfYxXKuOWZOokvokkkzd8K+G1988UZ8s0qYNllzFG/APZOOrtkFWSnni2B4kQWqMTyby/BMPsGmEJIJHyQcMucl9IR2Qj4xN0Vgr9aLY4UyaiD9XIoU4WCx8WJHA/mG6BtwRyPTbSmuCgdwBgsZhO8I4qzOY35uhwkHkTWBeUAcHlMZChiP3jCh6MOf/yxon9aM8P/+4ZtPPTZ/vbyp/rJRf05plvfHTFr45Ap2TSnF809DqzaOfIb+o4qetm9+A8Rbd4GdTrj8jUdG4/OW90f98vI1h7eVgoI3aYrZJCK2VdJ4a9i01FhMY7qeDH9YJ7D2cUn0p3OcQfOkD5/rIzyQkCHNVCFpYH2mcjuzjM1yzg/SB3BI6fVLc3q+CPX0P7BdoxZYIz2UTqzqG46CwYbhn7t7enb3yA/QMsq8pHtSJ/Vjyzx2F8WHHuphWc7jJirnswxfeJjewJkp87g8NJXwCO3n5iMicfqqyIPzBk5Gwl7FdUr63RmmnNCZMknjjvmCoz8dWaszZV39yFzxeLgSQrMRybPPxPII+7jyGPgH6cBRFqOaUUM0qZsDfJ/EyrH7OAj8CdAfpPphn06MJU6bmUbS33qGW5QswJcROkbEicps0RJuz+rqMBpvgrQfi/uYuH9ywOKlqh7a2Lq2KvTiFXtOFkqE22U7yjwbD0WqL9twck9LK5+bmgqqnI41tlsZ/w6yiREMRIeylUERablyoL39s7Yj7bSBnoA3oa3ts/ZjbTP2niV75V3tR/EWjKEN4Ga3juFZW2rHXiAMkIHpLpnRKPVc/4t6RWS9Qtyn+Dv57/KTXNcIWHjMAxKBL6hlOkxn4b/05/IT1EItnTBdg+ncD4kT7HeKpj+Dcx7JLZJaiUynP2cRvjB9OrXIT3TSn+OznfAFt+WTCqsHY3RMQQJCRKo3haymV2a6WEBqk+T5GJYkWT6sixGzcS+BkMSfxhQ2JlO9/bERIlaPRbqiBIs8VLmPyyHgDMWq6fdQttkkzdxL8wRZ4+HexCiyymuMlDEJOEMEPaib8/gCdiJrysX2n48EUbJrUOckuCVIMvYe2xIRm2/geWSAPfh950I/mUplUn3ahYn+4PJMdPn3pHjXCNwPwn0ZrM4XrcpnkIXhmKw7ZPhe940wRwnznvXxaxILztHSs13EW2kc4e9n+BW44P0RpnBtvtiAcsQYM4ThXFEae5GWKZCzMuYFzJSJFh4zjM8VvJ+ZuGd1H0LGD85wpljHYqbP5fQRPFZBYQQwBIKIz/AG8UMfDvJNn91xltzx2U0KBw7uCdePqXfupf/5RSn9N+SW/gKyGU0k+rxX0lYcw+c0ADC0GggCLuhHAQmrx8KaAeWGtxYbpwdTK8qhjVUdo0t1UBCwajp2AXPbMD2CB7d74yFHpSuNEeewp7wfe/R6fF/p6ShNkqmDPqznl8zhSIfO7yhT4N9CMF5l5B48E1va8qhcXyMQI0bgpGWR+8z+ZO6I1B9mCQE6S2AjRHHecY8cKvB9/MZ5Pqx8piZKeXAK7nwx/l0AMKjFPGcZy2bDcpWaYrORvZvF1+nzNj3mJj7iTEM0IatNSzOrWyCa4BaLwk2LZEZ0+4gYDof7DjN/FBMlTZfnM1ha4s4EszQFRMs96lx1LqniKyuqX1EtapARxaAlEJSDzH5MBBNyPCEmHIjKCYdod/gdqh3Hmgu3PazObaS/qWm2b3l7qLPl7S22plr6m8ZPDYZPG6Gutsm25e1h1mFv32pvqoU6dplu4vArnLrV3lxzLqf+gtzsJL6huUbP+qn+4lvfwheXcewmF/gYrGjPn/dVCXAnvwpxv5Ux4AQoF35fIoU3n9qyaYNwaEwf4anUyDEXfWySOrzl1OYxqZEbNrGjcGjDRfyh+JxeKc/YFQiobPaz6S7r3CGlHxgLQhgmTGgklB79qj6532E6mM3uc7Ki8yiTzhLZ1Yyql4kO1Yxb93MunpN9laN/mdP/vUcG5/VwKBFvnmbFkwzeD1h/yORFMmRh4ql/Y6OXmOIKov/bFDLg2xQsLf1tigg8eN7wvZhLBmCu7gRPY10adLFzDAiAp/UZi/tvMqDLqypyPGLvV9C6YpjLMdV4XjGe9G9AcUIaXIX+IoFXG6d+pmj+lQ/2v6hliseHsN2s9f3VuFDuLBfKnZRZpIux+N4IMrcL5U5YrKP9Xtqr7b1I4MK8mL52Bi00rcfOK8/x3V9PMc560RdUqYG89YKCzhw+z448r4zId5ehr1zjrHLw5WoGtOxXCpEYj+j6nvLhFX9Hx13P/Wz2TQsripyFRdERxc53TeaRU76vTkJD4+RVyWGXPDe6oKDEV1LsHVxdNazBW2q1VUfT3xnoNq8u1eynotwwRwXH3BPUjcPmhhMX5GUZjSxvCkdeIsxhz/Iy5kPdzJ+R8YMwpmMmdnwigoZBxIJb0Oe3oGUXKWZJhVGNFHt5J3TQ/3e8Ukt93sl9kVrnUDyTeV24H5NnTKf5mo6Kc+db5Sq2ksEs0BbBXgaJFnChtsbKrx/bFLzxhZfHPvDA2Jef31jRPBZF9rKRv3rzvpbBI++9d+TglvveenUk9zMsghPqTsWNM1j/0oz5v0RQLaKDObSDwtLj9AjUHD8iHTl+5MhxqDnT/Q2Qb+SGbcihG7ZBA7y5jb5J39wGb9KyFom0MJuM26dpP1ARW/0xCjFUtGjFXRQQHTsXwK47iRREFZGHgqvnvO4xpt91F63MYYR583CHVPZcDu7T73f6XlyP0h+uh+2Hy0/9XyVr5DvKLPuBMi2o/oPqD5XaB6/Nojv2d/1QySg+r3WxTAxF0zIqox7Dck1GgQUtmIKowpg/zSRwrycDYJGgHtrR9uLCsxyP5STzjtJeLsLsYz16bEfbOKrp5+l4CR3X83iM+MC3yhe8i3zH8+d8DyLrk4wu8vLgKNFnCvMAC44eEhfyUSvb21eOGr2sJdLg8zVEWpaN5leA95SMM49ZpGwT+1MDMI7zo2zmpYE0iPMSWby2J8iX6oF7RhhwSxqbWA31q1JklT9SxMy8FFePUvqThPatiZ6e8lmXhrWB3In7Gi4cUhbg6MbOkT0x/tmiwg3hPr7ffArspzazVVLkHdJ5Y6jpkbWapn/fwHSxPB3bUECcPP7Yw1FSUW08BMXnYa44BqGVUKQnfaiTFn+1cuW8Scvn/eVXdDKQ6xfOrKu7fM32y+a+q2ijRv5k8Y15atFNK+9/Rnh+yOjW0lLaQo+Nn3QbSfvRiZxZH/aJEdWTiFh8CY88Q/tSq6DJCnZA85IbVFxzpn3eGucW2QyDWD9nAkvAFGSBpZxdwP60PkbB7T3LsVLS6UrfO0KyNzUX3ExAjP1x44w3GEkOj9+24Qii7reYPBb24QSTtkEAumdY9RsBTXpNN25A+5aPme5uAd3FrH2rcSKM53KaGFMsPeN4YSMMGmdRGjczmLNNO19Pmsl/na/DHEFFHcrDR4OJGiEfaoShqmMolEGgBvKl4FBwJIJDhUBQdeBfvsgy4SnqugTCM8+YyBfK8BomyiAfEmoZqIl8Q7ASTxwJfKHkUGtkhYWfOmrkoQIS56ECPi2pmFXENzryUeouVJF5opglm1wCeQ2SbUq+r6iwPloRBJBlR64l1x8oHu4szHXIeaUOZ6RQzK0xFNoq8setlqweyWZoHt+sFOSE7O6RrqXz338qUOv21biUkuza9vJEbrDYa/F4jKXZ1vb4YDkvO1TgLMvzObPcTkNhKFinlDbmDwpWocFoAIOcJYPT9aMPNklZ2cPdWWqewZBvzW0OCvmWEXVeo8FjqKktExwl4Ypyk+CRBl+kuP8jKRZk2H0Tfv90VqTIYLGJpXF3QjX78qxOH2Sp/qzmuKwKdl+2scIp2p1Ge/b6dsEkZwnGLF9ps8dmNRlM4L8ZcgwGRTWLDrnINjjfXOINOEzmrITVYs8xFagWi5xvslgLnc3O2opKt6vSaTRPrC1oNWWZchzloQVT76Bnny3PuWVoa31JQaxFzjaquebiItXutch1xoJsydI4bERZl+wwORWuQ/eKbnWulPFBXsTj+/m875c33PDLG0Rx4EE6cQM/DvhLf1PI/C69DNVR5g3kG03sFfv9NXhiYHOFxEwg9iLq9yXZM1KSr2XhdeQa/KqB9CW5HyeZXucSOH9hl/V3DvQBVJBaUq9/C65HLiEn8+jfhKe//jEhY4sPgfSl8vSEl9LEDpGmkX/pfZY0jmK2cGPg6pu6d/B0n74WKbSnA0ZGrfE+yPRGtyb5vGtHMuQLdbY6qH30ju4HvWtG4QU7z7s/Q5iVftvi/P9XIK1LMos7mW/kgejapI8wA15EBU75FZGBBLOccKMkkwLOw/Q0x7cExwCN5OrrIUYRbWIItkh8xdTnDUIsGFDyQWGxXA7d3VgG51w0BD7DAv/t94MfeJSf+Os4tiNODySdXf5x/m5/vqDl+zGV70xqT8cCgZhf1agDaWeuvzsA5aJsGz1l42kaG9feHYc2LenMx8z6U92Y6nImU//Bh/wxQgZ+pzmCjCMdZDZZyNeM0jGBLZBgQYEeU/8VFmPLhnfABf6J4LnRZl4fPGZAvT/y54Kj2j/U7bH0sI9qPIsaL51kqznpJAuiSeli0Jc2084/zNHHnQvCg0iqPkqfj1zrBV977MG0nODpg3tOQkZsUJLoRyf3pNXK6fYBxnB7RnYE7JOTalLp5etpRF+XjxgFEdmugy2PZuas/Kivp1XMFuiqszqTpMf+OppHBuBPX4iSV8dahL4TApceNAenr97GXGLsXPhpegVPgBU4p+7EOeXhay0OHh2QcIHD5ItFYgM62Rax+UwtkOlmmd61mD5IF9IHF9816vXVmpbuO01b/Tr9sd5Nh2c+9ut3Hp3ZtsgC/9EePNcLD2o023KZmEo3WkjLBCETUB50j1cl+57aXAqsrUMgGmRLfOVBpf+COREI+nRvWDQRMPFa4k2X4G4RWFwcOytQ7TY//wSVO8vyBJUvEryX6501PxANXD+Lfr3zJ/Q/M2/AkwUzPXnvsbu9pffj6WWPfwHSF49fhsldJSltZ2rIrH9t6nrijqaKLb/kiwrD2hbTs1v5+5LHH1t3y+Z1jx/Tz7YCLB7bilkmzT0Mgn7tenwVvvJ6/YyePdzVqf1887zlka7krFsmZHxd2oC1bMGTRgtZ0116bN4zniJxxsDGkDIEgH4OwLiNPWLyVgHJQivB6lDtxCG/df99R+gV9Cn6lzdWCKT7pUUQPiRGIpSseANKYDJsO/LF8Zeeof+YwuvwBspCI/9/Nkp53BnnipxEWxMRRWDu1YAQjLjAHZcm7enpmRidGXmh1/rVM2fJM19Zex3vQ/ExUeuZKJCJPZGZUUomFRykXw6iX0LBICg4uPngwXRMs4gtHbimJpP0mtq5b9QdGQ8Od3yaBqbVdJ8M2HMCldkz6vRd1yH9XMZO4P2dnfluTv+xcAGGt8yXzoi1nmL9zb/ZI7xuRraKBqJHFv345xFRifHIBY9E1tKtULUW7ejoOqiiW9ceFZ5Ivf9+6njq+Pup94Un5E/oT35H93z4Icz7nYhmCP1R6ka4ha4VfgQ3Zv5PgUwZmXgITzGgCT/gJUePork/4MH0YtzA+uUPfFrklbzwHUczVbz4ZbSC1Q8Wp2P3uK1mR4ZfyfxPRpQutprNcdrDo82Z3KmBIMIyuwvhhN3BfNYKH9Oz3OzqZoPBE7PGDJp+wx591beP6GeUcWMOZFwtA0n/hyxN18zv0q9TnoYLvz8MoCE/47uiNvkn5QEP/2KAfy4QcTvsCd0cKfcNuByWHHZLmC0k6zf457L9dzLf9w/85EhcYfeYzB/T3//0ydqyImHwjo1gfNN2RemgQRvp/qeferZ+UKnRt/Wen0Kgp0RzBApr7qRXH/77oeLyunJDYM+bv4S564ou/IiJl3JmsbuwsCj75gpj1OExlK3L+2JQaa1j0rS6/CbXoGz/+OEFaBkGChPO6Z0JQ6W3PJxVOXFM3oD+EHnEaBGTaB//Txb4grvoy7ANWwIldJdQsqvvUmUIraYPfP4XSpSFp8/ApZ/B4/LjtBqOsg2OnXmJDmckQ3orNVyceWbH0aMca9L+ovQa8kCLkqlg3ag5L/qSmzNs9vErfP//ATHKtuMAAHjajZA9TgMxEIWfyY9EhBBFDuAKhSKON0m10EUKUgRt+vx4ky3wRruOktByFlpKuAT0nICOO/DWsUBICFhrPd+8Gc+MDeAYDxDYfxe4DSzQwEvgA9TxFriCU3EeuIqG2Aau4UTcB65Tf2amqB7S2/pTJQs08RT4AEd4DVzBFd4DV9EU08A1SHEXuE79EQPkMJjAcZ9DYood9xEy+pa0QcrYkjSkZsmlzbFgXKILBU3bYobjWiFGhysJuclnrkJBT1E11M+AQW4mzszldCdHmbFyk7qlHGbWDbN8YWRXadlaOreKO52EalKqqkiUNY6nL/14hsVTzHyzgqKxJk9nmSVf+/ukWOOGjpmna9rfrhDz/6nqPtJDGxHz2szXpD6LfZs1ll/d6fTakW53ddT/x6hjHywYzvyTa99BeVtOhrHJizSzUutIaa3l3zU/ABw5cLgAAAB42l3SZ5MVVRSF4fuOBEmCiZyDiInb5+zTPYOkgWEIEpUgQUkShpyVoCA5Jy3/LlBz3/ED/WVVdVU/1XvVanW1Bp83rdbRd0Hr/ee/wbdddPEBwxjOCEbyIaMYzRjGMo6PGM8EPuYTPuUzPmcik5jMFKYyjenMYCazmM0c5jKP+SzgCxbyJYv4iq/5hm/5jsW0qUhkgkJNQzc9LOF7lrKM5axgJb2sYjV9rKGftaxjPRv4gY1sYjNb2Mo2fuQntrODneziZ3azh73s4xd+ZT8HOMghDvMbRzjKMY4zwAlOcorTnOEs5zjPBS5yictc4Xf+4CrXuM4N/uQvbnKLv7nNHe5yj/s84CGPeMwTnvKM57zgJa94zT/8O/LymYH+qt02KzOZ2QyzmLXZmN1mz2AmvaSX9JJe0kt6SS/pJb005FV6lV6lV+lVepVepVfpVXqVXtJLekkv6SW9pJc6Xvau7F3Zu7J3Ze/K3pXbQ981Zuc/Qid0Qid0Qid0Qid04n+nc0/YT9hP2E/YT9hP2E/YT9hP2E/YT9hP2E/YT9hP2E/YT9hPJL2kl/SyXtbLelkv62W9rJf1sl7WC73QC73QC73QC73QC73QK3pFr+gVvaJX9Ipe0St6Ra/Wq/VqvVqv1qv1ar1ar9ar9Rq9Rq/Ra/QavUav6XjFnRV3VtxZcWfFnRV3VtpD3zVmt9lj9pqrzNVmn7nG7O+kuyzusrjL4i6LuyzusrjLUjVvAQpVcTgAAAAAAAAB//8AAnjaY2BgYGQAgjO2i86D6AshzNIwGgBAmQUAAAA=) format('woff'), + url('Genericons.ttf') format('truetype'), + url('Genericons.svg#genericonsregular') format('svg'); + font-weight: normal; + font-style: normal; +} + +@media screen and (-webkit-min-device-pixel-ratio:0) { + @font-face { + font-family: "Genericons"; + src: url("./Genericons.svg#Genericons") format("svg"); + } +} + + +/** + * All Genericons + */ + +.genericon { + font-size: 16px; + vertical-align: top; + text-align: center; + -moz-transition: color .1s ease-in 0; + -webkit-transition: color .1s ease-in 0; + display: inline-block; + font-family: "Genericons"; + font-style: normal; + font-weight: normal; + font-variant: normal; + line-height: 1; + text-decoration: inherit; + text-transform: none; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + speak: none; +} + + +/** + * Individual icons + */ + +.genericon-404:before { content: "\f423"; } +.genericon-activity:before { content: "\f508"; } +.genericon-anchor:before { content: "\f509"; } +.genericon-aside:before { content: "\f101"; } +.genericon-attachment:before { content: "\f416"; } +.genericon-audio:before { content: "\f109"; } +.genericon-bold:before { content: "\f471"; } +.genericon-book:before { content: "\f444"; } +.genericon-bug:before { content: "\f50a"; } +.genericon-cart:before { content: "\f447"; } +.genericon-category:before { content: "\f301"; } +.genericon-chat:before { content: "\f108"; } +.genericon-checkmark:before { content: "\f418"; } +.genericon-close:before { content: "\f405"; } +.genericon-close-alt:before { content: "\f406"; } +.genericon-cloud:before { content: "\f426"; } +.genericon-cloud-download:before { content: "\f440"; } +.genericon-cloud-upload:before { content: "\f441"; } +.genericon-code:before { content: "\f462"; } +.genericon-codepen:before { content: "\f216"; } +.genericon-cog:before { content: "\f445"; } +.genericon-collapse:before { content: "\f432"; } +.genericon-comment:before { content: "\f300"; } +.genericon-day:before { content: "\f305"; } +.genericon-digg:before { content: "\f221"; } +.genericon-document:before { content: "\f443"; } +.genericon-dot:before { content: "\f428"; } +.genericon-downarrow:before { content: "\f502"; } +.genericon-download:before { content: "\f50b"; } +.genericon-draggable:before { content: "\f436"; } +.genericon-dribbble:before { content: "\f201"; } +.genericon-dropbox:before { content: "\f225"; } +.genericon-dropdown:before { content: "\f433"; } +.genericon-dropdown-left:before { content: "\f434"; } +.genericon-edit:before { content: "\f411"; } +.genericon-ellipsis:before { content: "\f476"; } +.genericon-expand:before { content: "\f431"; } +.genericon-external:before { content: "\f442"; } +.genericon-facebook:before { content: "\f203"; } +.genericon-facebook-alt:before { content: "\f204"; } +.genericon-fastforward:before { content: "\f458"; } +.genericon-feed:before { content: "\f413"; } +.genericon-flag:before { content: "\f468"; } +.genericon-flickr:before { content: "\f211"; } +.genericon-foursquare:before { content: "\f226"; } +.genericon-fullscreen:before { content: "\f474"; } +.genericon-gallery:before { content: "\f103"; } +.genericon-github:before { content: "\f200"; } +.genericon-googleplus:before { content: "\f206"; } +.genericon-googleplus-alt:before { content: "\f218"; } +.genericon-handset:before { content: "\f50c"; } +.genericon-heart:before { content: "\f461"; } +.genericon-help:before { content: "\f457"; } +.genericon-hide:before { content: "\f404"; } +.genericon-hierarchy:before { content: "\f505"; } +.genericon-home:before { content: "\f409"; } +.genericon-image:before { content: "\f102"; } +.genericon-info:before { content: "\f455"; } +.genericon-instagram:before { content: "\f215"; } +.genericon-italic:before { content: "\f472"; } +.genericon-key:before { content: "\f427"; } +.genericon-leftarrow:before { content: "\f503"; } +.genericon-link:before { content: "\f107"; } +.genericon-linkedin:before { content: "\f207"; } +.genericon-linkedin-alt:before { content: "\f208"; } +.genericon-location:before { content: "\f417"; } +.genericon-lock:before { content: "\f470"; } +.genericon-mail:before { content: "\f410"; } +.genericon-maximize:before { content: "\f422"; } +.genericon-menu:before { content: "\f419"; } +.genericon-microphone:before { content: "\f50d"; } +.genericon-minimize:before { content: "\f421"; } +.genericon-minus:before { content: "\f50e"; } +.genericon-month:before { content: "\f307"; } +.genericon-move:before { content: "\f50f"; } +.genericon-next:before { content: "\f429"; } +.genericon-notice:before { content: "\f456"; } +.genericon-paintbrush:before { content: "\f506"; } +.genericon-path:before { content: "\f219"; } +.genericon-pause:before { content: "\f448"; } +.genericon-phone:before { content: "\f437"; } +.genericon-picture:before { content: "\f473"; } +.genericon-pinned:before { content: "\f308"; } +.genericon-pinterest:before { content: "\f209"; } +.genericon-pinterest-alt:before { content: "\f210"; } +.genericon-play:before { content: "\f452"; } +.genericon-plugin:before { content: "\f439"; } +.genericon-plus:before { content: "\f510"; } +.genericon-pocket:before { content: "\f224"; } +.genericon-polldaddy:before { content: "\f217"; } +.genericon-portfolio:before { content: "\f460"; } +.genericon-previous:before { content: "\f430"; } +.genericon-print:before { content: "\f469"; } +.genericon-quote:before { content: "\f106"; } +.genericon-rating-empty:before { content: "\f511"; } +.genericon-rating-full:before { content: "\f512"; } +.genericon-rating-half:before { content: "\f513"; } +.genericon-reddit:before { content: "\f222"; } +.genericon-refresh:before { content: "\f420"; } +.genericon-reply:before { content: "\f412"; } +.genericon-reply-alt:before { content: "\f466"; } +.genericon-reply-single:before { content: "\f467"; } +.genericon-rewind:before { content: "\f459"; } +.genericon-rightarrow:before { content: "\f501"; } +.genericon-search:before { content: "\f400"; } +.genericon-send-to-phone:before { content: "\f438"; } +.genericon-send-to-tablet:before { content: "\f454"; } +.genericon-share:before { content: "\f415"; } +.genericon-show:before { content: "\f403"; } +.genericon-shuffle:before { content: "\f514"; } +.genericon-sitemap:before { content: "\f507"; } +.genericon-skip-ahead:before { content: "\f451"; } +.genericon-skip-back:before { content: "\f450"; } +.genericon-skype:before { content: "\f220"; } +.genericon-spam:before { content: "\f424"; } +.genericon-spotify:before { content: "\f515"; } +.genericon-standard:before { content: "\f100"; } +.genericon-star:before { content: "\f408"; } +.genericon-status:before { content: "\f105"; } +.genericon-stop:before { content: "\f449"; } +.genericon-stumbleupon:before { content: "\f223"; } +.genericon-subscribe:before { content: "\f463"; } +.genericon-subscribed:before { content: "\f465"; } +.genericon-summary:before { content: "\f425"; } +.genericon-tablet:before { content: "\f453"; } +.genericon-tag:before { content: "\f302"; } +.genericon-time:before { content: "\f303"; } +.genericon-top:before { content: "\f435"; } +.genericon-trash:before { content: "\f407"; } +.genericon-tumblr:before { content: "\f214"; } +.genericon-twitch:before { content: "\f516"; } +.genericon-twitter:before { content: "\f202"; } +.genericon-unapprove:before { content: "\f446"; } +.genericon-unsubscribe:before { content: "\f464"; } +.genericon-unzoom:before { content: "\f401"; } +.genericon-uparrow:before { content: "\f500"; } +.genericon-user:before { content: "\f304"; } +.genericon-video:before { content: "\f104"; } +.genericon-videocamera:before { content: "\f517"; } +.genericon-vimeo:before { content: "\f212"; } +.genericon-warning:before { content: "\f414"; } +.genericon-website:before { content: "\f475"; } +.genericon-week:before { content: "\f306"; } +.genericon-wordpress:before { content: "\f205"; } +.genericon-xpost:before { content: "\f504"; } +.genericon-youtube:before { content: "\f213"; } +.genericon-zoom:before { content: "\f402"; } diff --git a/themes/twentyfifteen/images/avatar.png b/themes/twentyfifteen/images/avatar.png new file mode 100644 index 0000000..52685f2 Binary files /dev/null and b/themes/twentyfifteen/images/avatar.png differ diff --git a/themes/twentyfifteen/js/functions.js b/themes/twentyfifteen/js/functions.js new file mode 100644 index 0000000..756fbe4 --- /dev/null +++ b/themes/twentyfifteen/js/functions.js @@ -0,0 +1,178 @@ +/* global screenReaderText */ +/** + * Theme functions file. + * + * Contains handlers for navigation and widget area. + */ + +( function( $ ) { + var $body, $window, $sidebar, adminbarOffset, top = false, + bottom = false, windowWidth, windowHeight, lastWindowPos = 0, + topOffset = 0, bodyHeight, sidebarHeight, resizeTimer, + secondary, button; + + function initMainNavigation( container ) { + // Add dropdown toggle that display child menu items. + container.find( '.item.dropdown > a' ).after( '' ); + + // Toggle buttons and submenu items with active children menu items. + container.find( '.item.dropdown.active > button' ).addClass( 'toggle-on' ); + container.find( '.item.dropdown.active > .subnav' ).addClass( 'toggled-on' ); + + container.find( '.dropdown-toggle-button' ).click( function( e ) { + var _this = $( this ); + e.preventDefault(); + _this.toggleClass( 'toggle-on' ); + _this.next( '.children, .sub-menu, .subnav, .dropdown-menu' ).toggleClass( 'toggled-on' ); + _this.attr( 'aria-expanded', _this.attr( 'aria-expanded' ) === 'false' ? 'true' : 'false' ); + _this.html( _this.html() === screenReaderText.expand ? screenReaderText.collapse : screenReaderText.expand ); + } ); + } + initMainNavigation( $( '.main-navigation' ) ); + + // Re-initialize the main navigation when it is updated, persisting any existing submenu expanded states. + $( document ).on( 'customize-preview-menu-refreshed', function( e, params ) { + if ( 'primary' === params.wpNavMenuArgs.theme_location ) { + initMainNavigation( params.newContainer ); + + // Re-sync expanded states from oldContainer. + params.oldContainer.find( '.dropdown-toggle-button.toggle-on' ).each(function() { + var containerId = $( this ).parent().prop( 'id' ); + $( params.newContainer ).find( '#' + containerId + ' > .dropdown-toggle-button' ).triggerHandler( 'click' ); + }); + } + }); + + secondary = $( '#secondary' ); + button = $( '.site-branding' ).find( '.secondary-toggle' ); + + // Enable menu toggle for small screens. + ( function() { + var menu, widgets, social; + if ( ! secondary || ! button ) { + return; + } + + // Hide button if there are no widgets and the menus are missing or empty. + menu = secondary.find( '.nav-menu' ); + widgets = secondary.find( '#widget-area' ); + social = secondary.find( '#social-navigation' ); + if ( ! widgets.length && ! social.length && ( ! menu || ! menu.children().length ) ) { + button.hide(); + return; + } + + button.on( 'click.twentyfifteen', function() { + secondary.toggleClass( 'toggled-on' ); + secondary.trigger( 'resize' ); + $( this ).toggleClass( 'toggled-on' ); + if ( $( this, secondary ).hasClass( 'toggled-on' ) ) { + $( this ).attr( 'aria-expanded', 'true' ); + secondary.attr( 'aria-expanded', 'true' ); + } else { + $( this ).attr( 'aria-expanded', 'false' ); + secondary.attr( 'aria-expanded', 'false' ); + } + } ); + } )(); + + /** + * @summary Add or remove ARIA attributes. + * Uses jQuery's width() function to determine the size of the window and add + * the default ARIA attributes for the menu toggle if it's visible. + * @since Twenty Fifteen 1.1 + */ + function onResizeARIA() { + if ( 955 > $window.width() ) { + button.attr( 'aria-expanded', 'false' ); + secondary.attr( 'aria-expanded', 'false' ); + button.attr( 'aria-controls', 'secondary' ); + } else { + button.removeAttr( 'aria-expanded' ); + secondary.removeAttr( 'aria-expanded' ); + button.removeAttr( 'aria-controls' ); + } + } + + // Sidebar scrolling. + function resize() { + windowWidth = $window.width(); + + if ( 955 > windowWidth ) { + top = bottom = false; + $sidebar.removeAttr( 'style' ); + } + } + + function scroll() { + var windowPos = $window.scrollTop(); + + if ( 955 > windowWidth ) { + return; + } + + sidebarHeight = $sidebar.height(); + windowHeight = $window.height(); + bodyHeight = $body.height(); + + if ( sidebarHeight + adminbarOffset > windowHeight ) { + if ( windowPos > lastWindowPos ) { + if ( top ) { + top = false; + topOffset = ( $sidebar.offset().top > 0 ) ? $sidebar.offset().top - adminbarOffset : 0; + $sidebar.attr( 'style', 'top: ' + topOffset + 'px;' ); + } else if ( ! bottom && windowPos + windowHeight > sidebarHeight + $sidebar.offset().top && sidebarHeight + adminbarOffset < bodyHeight ) { + bottom = true; + $sidebar.attr( 'style', 'position: fixed; bottom: 0;' ); + } + } else if ( windowPos < lastWindowPos ) { + if ( bottom ) { + bottom = false; + topOffset = ( $sidebar.offset().top > 0 ) ? $sidebar.offset().top - adminbarOffset : 0; + $sidebar.attr( 'style', 'top: ' + topOffset + 'px;' ); + } else if ( ! top && windowPos + adminbarOffset < $sidebar.offset().top ) { + top = true; + $sidebar.attr( 'style', 'position: fixed;' ); + } + } else { + top = bottom = false; + topOffset = ( $sidebar.offset().top > 0 ) ? $sidebar.offset().top - adminbarOffset : 0; + $sidebar.attr( 'style', 'top: ' + topOffset + 'px;' ); + } + } else if ( ! top ) { + top = true; + $sidebar.attr( 'style', 'position: fixed;' ); + } + + lastWindowPos = windowPos; + } + + function resizeAndScroll() { + resize(); + scroll(); + } + + $( document ).ready( function() { + $body = $( document.body ); + $window = $( window ); + $sidebar = $( '#sidebar' ).first(); + adminbarOffset = $( '#toolbar' ).height(); + + $window + .on( 'scroll.twentyfifteen', scroll ) + .on( 'load.twentyfifteen', onResizeARIA ) + .on( 'resize.twentyfifteen', function() { + clearTimeout( resizeTimer ); + resizeTimer = setTimeout( resizeAndScroll, 500 ); + onResizeARIA(); + } ); + $sidebar.on( 'click.twentyfifteen keydown.twentyfifteen', 'button', resizeAndScroll ); + + resizeAndScroll(); + + for ( var i = 1; i < 6; i++ ) { + setTimeout( resizeAndScroll, 100 * i ); + } + } ); + +} )( jQuery ); diff --git a/themes/twentyfifteen/js/html5.js b/themes/twentyfifteen/js/html5.js new file mode 100644 index 0000000..412fe56 --- /dev/null +++ b/themes/twentyfifteen/js/html5.js @@ -0,0 +1,9 @@ +/* + * HTML5 Shiv v3.7.0 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed + */ + +(function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag(); +a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/[\w\-]+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x"; +c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode|| +"undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:"3.7.0",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f); +if(g)return a.createDocumentFragment();for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d",{size:1}).attr("size")&&e.attrFn,s=e.attr,u=e.attrHooks.value&&e.attrHooks.value.get||function(){return null},c=e.attrHooks.value&&e.attrHooks.value.set||function(){return n},l=/^(?:input|button)$/i,d=/^[238]$/,p=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,f=/^(?:checked|selected)$/i;a(e,"attrFn",o||{},"jQuery.attrFn is deprecated"),e.attr=function(t,a,i,u){var c=a.toLowerCase(),g=t&&t.nodeType;return u&&(4>s.length&&r("jQuery.fn.attr( props, pass ) is deprecated"),t&&!d.test(g)&&(o?a in o:e.isFunction(e.fn[a])))?e(t)[a](i):("type"===a&&i!==n&&l.test(t.nodeName)&&t.parentNode&&r("Can't change the 'type' of an input or button in IE 6/7/8"),!e.attrHooks[c]&&p.test(c)&&(e.attrHooks[c]={get:function(t,r){var a,i=e.prop(t,r);return i===!0||"boolean"!=typeof i&&(a=t.getAttributeNode(r))&&a.nodeValue!==!1?r.toLowerCase():n},set:function(t,n,r){var a;return n===!1?e.removeAttr(t,r):(a=e.propFix[r]||r,a in t&&(t[a]=!0),t.setAttribute(r,r.toLowerCase())),r}},f.test(c)&&r("jQuery.fn.attr('"+c+"') may use property instead of attribute")),s.call(e,t,a,i))},e.attrHooks.value={get:function(e,t){var n=(e.nodeName||"").toLowerCase();return"button"===n?u.apply(this,arguments):("input"!==n&&"option"!==n&&r("jQuery.fn.attr('value') no longer gets properties"),t in e?e.value:null)},set:function(e,t){var a=(e.nodeName||"").toLowerCase();return"button"===a?c.apply(this,arguments):("input"!==a&&"option"!==a&&r("jQuery.fn.attr('value', val) no longer sets properties"),e.value=t,n)}};var g,h,v=e.fn.init,m=e.parseJSON,y=/^([^<]*)(<[\w\W]+>)([^>]*)$/;e.fn.init=function(t,n,a){var i;return t&&"string"==typeof t&&!e.isPlainObject(n)&&(i=y.exec(e.trim(t)))&&i[0]&&("<"!==t.charAt(0)&&r("$(html) HTML strings must start with '<' character"),i[3]&&r("$(html) HTML text after last tag is ignored"),"#"===i[0].charAt(0)&&(r("HTML string cannot start with a '#' character"),e.error("JQMIGRATE: Invalid selector string (XSS)")),n&&n.context&&(n=n.context),e.parseHTML)?v.call(this,e.parseHTML(i[2],n,!0),n,a):v.apply(this,arguments)},e.fn.init.prototype=e.fn,e.parseJSON=function(e){return e||null===e?m.apply(this,arguments):(r("jQuery.parseJSON requires a valid JSON string"),null)},e.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||0>e.indexOf("compatible")&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e.browser||(g=e.uaMatch(navigator.userAgent),h={},g.browser&&(h[g.browser]=!0,h.version=g.version),h.chrome?h.webkit=!0:h.webkit&&(h.safari=!0),e.browser=h),a(e,"browser",e.browser,"jQuery.browser is deprecated"),e.sub=function(){function t(e,n){return new t.fn.init(e,n)}e.extend(!0,t,this),t.superclass=this,t.fn=t.prototype=this(),t.fn.constructor=t,t.sub=this.sub,t.fn.init=function(r,a){return a&&a instanceof e&&!(a instanceof t)&&(a=t(a)),e.fn.init.call(this,r,a,n)},t.fn.init.prototype=t.fn;var n=t(document);return r("jQuery.sub() is deprecated"),t},e.ajaxSetup({converters:{"text json":e.parseJSON}});var b=e.fn.data;e.fn.data=function(t){var a,i,o=this[0];return!o||"events"!==t||1!==arguments.length||(a=e.data(o,t),i=e._data(o,t),a!==n&&a!==i||i===n)?b.apply(this,arguments):(r("Use of jQuery.fn.data('events') is deprecated"),i)};var j=/\/(java|ecma)script/i,w=e.fn.andSelf||e.fn.addBack;e.fn.andSelf=function(){return r("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()"),w.apply(this,arguments)},e.clean||(e.clean=function(t,a,i,o){a=a||document,a=!a.nodeType&&a[0]||a,a=a.ownerDocument||a,r("jQuery.clean() is deprecated");var s,u,c,l,d=[];if(e.merge(d,e.buildFragment(t,a).childNodes),i)for(c=function(e){return!e.type||j.test(e.type)?o?o.push(e.parentNode?e.parentNode.removeChild(e):e):i.appendChild(e):n},s=0;null!=(u=d[s]);s++)e.nodeName(u,"script")&&c(u)||(i.appendChild(u),u.getElementsByTagName!==n&&(l=e.grep(e.merge([],u.getElementsByTagName("script")),c),d.splice.apply(d,[s+1,0].concat(l)),s+=l.length));return d});var Q=e.event.add,x=e.event.remove,k=e.event.trigger,N=e.fn.toggle,T=e.fn.live,M=e.fn.die,S="ajaxStart|ajaxStop|ajaxSend|ajaxComplete|ajaxError|ajaxSuccess",C=RegExp("\\b(?:"+S+")\\b"),H=/(?:^|\s)hover(\.\S+|)\b/,A=function(t){return"string"!=typeof t||e.event.special.hover?t:(H.test(t)&&r("'hover' pseudo-event is deprecated, use 'mouseenter mouseleave'"),t&&t.replace(H,"mouseenter$1 mouseleave$1"))};e.event.props&&"attrChange"!==e.event.props[0]&&e.event.props.unshift("attrChange","attrName","relatedNode","srcElement"),e.event.dispatch&&a(e.event,"handle",e.event.dispatch,"jQuery.event.handle is undocumented and deprecated"),e.event.add=function(e,t,n,a,i){e!==document&&C.test(t)&&r("AJAX events should be attached to document: "+t),Q.call(this,e,A(t||""),n,a,i)},e.event.remove=function(e,t,n,r,a){x.call(this,e,A(t)||"",n,r,a)},e.fn.error=function(){var e=Array.prototype.slice.call(arguments,0);return r("jQuery.fn.error() is deprecated"),e.splice(0,0,"error"),arguments.length?this.bind.apply(this,e):(this.triggerHandler.apply(this,e),this)},e.fn.toggle=function(t,n){if(!e.isFunction(t)||!e.isFunction(n))return N.apply(this,arguments);r("jQuery.fn.toggle(handler, handler...) is deprecated");var a=arguments,i=t.guid||e.guid++,o=0,s=function(n){var r=(e._data(this,"lastToggle"+t.guid)||0)%o;return e._data(this,"lastToggle"+t.guid,r+1),n.preventDefault(),a[r].apply(this,arguments)||!1};for(s.guid=i;a.length>o;)a[o++].guid=i;return this.click(s)},e.fn.live=function(t,n,a){return r("jQuery.fn.live() is deprecated"),T?T.apply(this,arguments):(e(this.context).on(t,this.selector,n,a),this)},e.fn.die=function(t,n){return r("jQuery.fn.die() is deprecated"),M?M.apply(this,arguments):(e(this.context).off(t,this.selector||"**",n),this)},e.event.trigger=function(e,t,n,a){return n||C.test(e)||r("Global events are undocumented and deprecated"),k.call(this,e,t,n||document,a)},e.each(S.split("|"),function(t,n){e.event.special[n]={setup:function(){var t=this;return t!==document&&(e.event.add(document,n+"."+e.guid,function(){e.event.trigger(n,null,t,!0)}),e._data(this,n,e.guid++)),!1},teardown:function(){return this!==document&&e.event.remove(document,n+"."+e._data(this,n)),!1}}})}(jQuery,window); \ No newline at end of file diff --git a/themes/twentyfifteen/js/jquery.js b/themes/twentyfifteen/js/jquery.js new file mode 100644 index 0000000..49990d6 --- /dev/null +++ b/themes/twentyfifteen/js/jquery.js @@ -0,0 +1,4 @@ +/*! jQuery v2.1.4 | (c) 2005, 2015 jQuery Foundation, Inc. | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,m="2.1.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)+1>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b="length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,aa=/[+~]/,ba=/'|\\/g,ca=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),da=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ea=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fa){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(ba,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+ra(o[l]);w=aa.test(a)&&pa(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",ea,!1):e.attachEvent&&e.attachEvent("onunload",ea)),p=!f(g),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?la(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ca,da),a[3]=(a[3]||a[4]||a[5]||"").replace(ca,da),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ca,da).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(ca,da),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return W.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(ca,da).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:oa(function(){return[0]}),last:oa(function(a,b){return[b-1]}),eq:oa(function(a,b,c){return[0>c?c+b:c]}),even:oa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:oa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:oa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:oa(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function sa(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function ta(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ua(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function va(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wa(a,b,c,d,e,f){return d&&!d[u]&&(d=wa(d)),e&&!e[u]&&(e=wa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ua(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:va(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=va(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=va(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sa(function(a){return a===b},h,!0),l=sa(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sa(ta(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wa(i>1&&ta(m),i>1&&ra(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xa(a.slice(i,e)),f>e&&xa(a=a.slice(e)),f>e&&ra(a))}m.push(c)}return ta(m)}function ya(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=va(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&ga.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,ya(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ca,da),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ca,da),aa.test(j[0].type)&&pa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&ra(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,aa.test(a)&&pa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+K.uid++}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){ +return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b)},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthx",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]*)\/>/gi,ba=/<([\w:]+)/,ca=/<|&#?\w+;/,da=/<(?:script|style|link)/i,ea=/checked\s*(?:[^=]|=\s*.checked.)/i,fa=/^$|\/(?:java|ecma)script/i,ga=/^true\/(.*)/,ha=/^\s*\s*$/g,ia={option:[1,""],thead:[1,"","
        "],col:[2,"","
        "],tr:[2,"","
        "],td:[3,"","
        "],_default:[0,"",""]};ia.optgroup=ia.option,ia.tbody=ia.tfoot=ia.colgroup=ia.caption=ia.thead,ia.th=ia.td;function ja(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function ka(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function la(a){var b=ga.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function ma(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function na(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function oa(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pa(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=oa(h),f=oa(a),d=0,e=f.length;e>d;d++)pa(f[d],g[d]);if(b)if(c)for(f=f||oa(a),g=g||oa(h),d=0,e=f.length;e>d;d++)na(f[d],g[d]);else na(a,h);return g=oa(h,"script"),g.length>0&&ma(g,!i&&oa(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(ca.test(e)){f=f||k.appendChild(b.createElement("div")),g=(ba.exec(e)||["",""])[1].toLowerCase(),h=ia[g]||ia._default,f.innerHTML=h[1]+e.replace(aa,"<$1>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=oa(k.appendChild(e),"script"),i&&ma(f),c)){j=0;while(e=f[j++])fa.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(oa(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&ma(oa(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(oa(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!da.test(a)&&!ia[(ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(aa,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(oa(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(oa(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&ea.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(oa(c,"script"),ka),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,oa(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,la),j=0;g>j;j++)h=f[j],fa.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(ha,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qa,ra={};function sa(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function ta(a){var b=l,c=ra[a];return c||(c=sa(a,b),"none"!==c&&c||(qa=(qa||n(" +
        + + video)):?> +
        + +
        + + quote)):?> +
        +
        quote ?>
        +
        + + link)) { ?> +
        +

        title; ?>

        +
        + +
        +

        title; ?>

        +
        + +
        + body, $p->url); ?> + [...] +
        + + + + + + + + + \ No newline at end of file diff --git a/themes/twentyfifteen/no-posts.html.php b/themes/twentyfifteen/no-posts.html.php new file mode 100644 index 0000000..4d04447 --- /dev/null +++ b/themes/twentyfifteen/no-posts.html.php @@ -0,0 +1,8 @@ + +
        +
        +

        !

        +
        +
        +
        +
        \ No newline at end of file diff --git a/themes/twentyfifteen/post.html.php b/themes/twentyfifteen/post.html.php new file mode 100644 index 0000000..093c7fc --- /dev/null +++ b/themes/twentyfifteen/post.html.php @@ -0,0 +1,110 @@ + +
        + image)):?> +
        + <?php echo $p->title; ?> +
        + + audio)):?> +
        + +
        + + video)):?> +
        + +
        + + quote)):?> +
        +
        quote ?>
        +
        + +
        + + link)) {?> +

        title; ?>

        + +

        title; ?>

        + +
        +
        + body; ?> +
        + +
        +
        +

        + related);?> +
        +
        +

        +
        + <?php echo $author->name; ?> +
        +
        +

        name; ?>

        + about ?> +
        +
        + +
        + + title, $p->url) ?> + + + + + +
        + +
        + + +
        + +
        + + diff --git a/themes/twentyfifteen/profile.html.php b/themes/twentyfifteen/profile.html.php new file mode 100644 index 0000000..8f9d1c3 --- /dev/null +++ b/themes/twentyfifteen/profile.html.php @@ -0,0 +1,38 @@ + +
        +
        + +

        name ?>

        +
        +
        + about ?> +

        + +
          + +
        • + title ?> - + date) ?> - category; ?> +
        • + +
        + +
        +
        + + + + + \ No newline at end of file diff --git a/themes/twentyfifteen/static.html.php b/themes/twentyfifteen/static.html.php new file mode 100644 index 0000000..8b6bbb4 --- /dev/null +++ b/themes/twentyfifteen/static.html.php @@ -0,0 +1,21 @@ + +
        +
        + +

        title ?>

        +
        +
        + body; ?> +
        +
        + \ No newline at end of file diff --git a/themes/twentysixteen/404-search.html.php b/themes/twentysixteen/404-search.html.php new file mode 100644 index 0000000..bf8dcb9 --- /dev/null +++ b/themes/twentysixteen/404-search.html.php @@ -0,0 +1,18 @@ + +
        +
        +

        Search results not found!

        +
        +
        +

        Please search again, or would you like to try our homepage instead?

        +
        + +
        +
        +
        diff --git a/themes/twentysixteen/404.html.php b/themes/twentysixteen/404.html.php new file mode 100644 index 0000000..1b110d4 --- /dev/null +++ b/themes/twentysixteen/404.html.php @@ -0,0 +1,16 @@ + +
        +
        +

        This page doesn't exist!

        +
        +
        +

        Please search to find what you're looking for or visit our homepage instead.

        + +
        +
        \ No newline at end of file diff --git a/themes/twentysixteen/LICENSE.txt b/themes/twentysixteen/LICENSE.txt new file mode 100644 index 0000000..4ed6db1 --- /dev/null +++ b/themes/twentysixteen/LICENSE.txt @@ -0,0 +1,22 @@ +Twenty Sixteen WordPress Theme, Copyright 2015-2016 WordPress.org & Automattic.com +Twenty Sixteen is distributed under the terms of the GNU GPL + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +Twenty Fifteen Theme bundles the following third-party resources: + +HTML5 Shiv v3.7.0, Copyright 2014 Alexander Farkas +Licenses: MIT/GPL2 +Source: https://github.com/aFarkas/html5shiv + +Genericons icon font, Copyright 2013-2016 Automattic.com +License: GNU GPL, Version 2 (or later) +Source: http://www.genericons.com \ No newline at end of file diff --git a/themes/twentysixteen/README.md b/themes/twentysixteen/README.md new file mode 100644 index 0000000..5a4ddd5 --- /dev/null +++ b/themes/twentysixteen/README.md @@ -0,0 +1,10 @@ +# HTMLy Theme Twenty Sixteen +WordPress Twenty Sixteen ported to HTMLy. + +## Installations + - Upload and extract the zip file into themes directory. + - Activate it from HTMLy panel. + +## License + +See the LICENSE.txt diff --git a/themes/twentysixteen/css/ie.css b/themes/twentysixteen/css/ie.css new file mode 100644 index 0000000..6aa093a --- /dev/null +++ b/themes/twentysixteen/css/ie.css @@ -0,0 +1,48 @@ +/* +Theme Name: Twenty Sixteen +Description: Global Styles for older IE versions (previous to IE10). +*/ + +.site-header-main:before, +.site-header-main:after, +.site-footer:before, +.site-footer:after { + content: ""; + display: table; +} + +.site-header-main:after, +.site-footer:after { + clear: both; +} + +@media screen and (min-width: 56.875em) { + .site-branding, + .site-info { + float: left; + } + + .site-header-menu, + .site-footer .social-navigation { + float: right; + } + + .site-footer .social-navigation { + margin-left: 7px; + } + + .rtl .site-branding, + .rtl .site-info { + float: right; + } + + .rtl .site-header-menu, + .rtl .site-footer .social-navigation { + float: left; + } + + .rtl .site-footer .social-navigation { + margin-right: 7px; + margin-left: 0; + } +} diff --git a/themes/twentysixteen/css/ie7.css b/themes/twentysixteen/css/ie7.css new file mode 100644 index 0000000..6f9ec28 --- /dev/null +++ b/themes/twentysixteen/css/ie7.css @@ -0,0 +1,176 @@ +/* +Theme Name: Twenty Sixteen +Description: IE7 specific style. +*/ + +.site-inner { + max-width: 656px; +} + +.post-navigation, +.pagination, +.image-navigation, +.entry-header, +.entry-summary, +.entry-content, +.entry-footer, +.page-header, +.page-content, +.post-thumbnail, +.content-bottom-widgets, +.comments-area { + margin-right: 28px; + margin-left: 28px; + max-width: 100%; +} + +.site-header, +.sidebar, +.site-footer, +.widecolumn { + padding-right: 28px; + padding-left: 28px; +} + +.search-submit { + height: auto; + margin-top: 28px; + padding: 15px 0 8px; + position: relative; + width: auto; +} + +.search-submit .screen-reader-text { + height: auto; + position: relative !important; + width: auto; +} + +.image-navigation .nav-previous, +.image-navigation .nav-next, +.comment-navigation .nav-previous, +.comment-navigation .nav-next { + *display: inline; + zoom: 1; +} + +.image-navigation .nav-previous + .nav-next, +.comment-navigation .nav-previous + .nav-next { + margin-left: 14px; +} + +.pagination .nav-links { + padding: 0; +} + +.pagination .page-numbers { + line-height: 1; + margin: -4px 14px 0; + padding: 18px 0; +} + +.pagination .prev, +.pagination .next { + display: inline-block; + font-size: 16px; + font-weight: 700; + height: auto; + left: 0; + line-height: 1; + margin: 0; + padding: 18px 14px; + position: relative; + right: 0; + text-transform: none; + width: auto; +} + +.dropdown-toggle { + display: none; +} + +.main-navigation ul ul { + display: block; +} + +.social-navigation { + margin-top: 1.75em; +} + +.social-navigation a { + height: auto; + padding: 3px 7px; + width: auto; +} + +.social-navigation .screen-reader-text { + height: auto; + position: relative !important; + width: auto; +} + +.site-header-main { + overflow : hidden; + zoom : 1; +} + +.entry-footer > span { + margin-right: 14px; +} + +.site-info .site-title { + font-size: 13px; + margin-right: 14px; +} + +.gallery-item { + max-width: 30%; +} + +.gallery-columns-1 .gallery-item { + max-width: 100%; +} + +.gallery-columns-2 .gallery-item { + max-width: 46%; +} + +.gallery-columns-4 .gallery-item { + max-width: 22%; +} + +.gallery-columns-5 .gallery-item { + max-width: 17%; +} + +.gallery-columns-6 .gallery-item { + max-width: 13.5%; +} + +.gallery-columns-7 .gallery-item { + max-width: 11%; +} + +.gallery-columns-8 .gallery-item { + max-width: 9.5%; +} + +.gallery-columns-9 .gallery-item { + max-width: 8%; +} + +.rtl .image-navigation .nav-previous + .nav-next, +.rtl .comment-navigation .nav-previous + .nav-next { + margin-right: 14px; + margin-left: 0; +} + +.rtl .entry-footer > span { + margin-right: 14px; + margin-left: 0; +} + +.rtl .site-info .site-title { + margin-right: 0; + margin-left: 14px; +} diff --git a/themes/twentysixteen/css/ie8.css b/themes/twentysixteen/css/ie8.css new file mode 100644 index 0000000..7b181c1 --- /dev/null +++ b/themes/twentysixteen/css/ie8.css @@ -0,0 +1,226 @@ +/* +Theme Name: Twenty Sixteen +Description: IE8 specific style. +*/ + +code { + background-color: transparent; + padding: 0; +} + +.entry-content a, +.entry-summary a, +.taxonomy-description a, +.logged-in-as a, +.comment-content a, +.pingback .comment-body > a, +.textwidget a, +.entry-footer a:hover, +.site-info a:hover { + text-decoration: underline; +} + +.entry-content a:hover, +.entry-content a:focus, +.entry-summary a:hover, +.entry-summary a:focus, +.taxonomy-description a:hover, +.taxonomy-description a:focus, +.logged-in-as a:hover, +.logged-in-as a:focus, +.comment-content a:hover, +.comment-content a:focus, +.pingback .comment-body > a:hover, +.pingback .comment-body > a:focus, +.textwidget a:hover, +.textwidget a:focus, +.entry-content .wp-audio-shortcode a, +.entry-content .wp-playlist a, +.page-links a { + text-decoration: none; +} + +.site { + margin: 21px; +} + +.site-inner { + max-width: 710px; +} + +.site-header { + padding-top: 3.9375em; + padding-bottom: 3.9375em; +} + +.site-branding { + float: left; + margin-top: 1.3125em; + margin-bottom: 1.3125em; +} + +.site-title { + font-size: 28px; + line-height: 1.25; +} + +.site-description { + display: block; +} + +.menu-toggle { + float: right; + font-size: 16px; + margin: 1.3125em 0; + padding: 0.8125em 0.875em 0.6875em; +} + +.site-header-menu { + clear: both; + margin: 0; + padding: 1.3125em 0; +} + +.site-header .main-navigation + .social-navigation { + margin-top: 2.625em; +} + +.header-image { + margin: 1.3125em 0; +} + +.site-main { + margin-bottom: 5.25em; +} + +.post-navigation { + margin-bottom: 5.25em; +} + +.post-navigation .post-title { + font-size: 28px; + line-height: 1.25; +} + +.pagination { + margin: 0 7.6923% 4.421052632em; +} + +.pagination .nav-links:before, +.pagination .nav-links:after { + display: none; +} + +/* restore screen-reader-text */ +.pagination .current .screen-reader-text { + position: absolute !important; +} + +.pagination .page-numbers { + display: inline-block; + font-weight: 400; +} + +.image-navigation .nav-previous, +.image-navigation .nav-next, +.comment-navigation .nav-previous, +.comment-navigation .nav-next { + display: inline-block; +} + +.image-navigation .nav-previous + .nav-next:before, +.comment-navigation .nav-previous + .nav-next:before { + content: "\002f"; + display: inline-block; + opacity: 0.7; + padding: 0 0.538461538em; +} + +.site-main > article { + margin-bottom: 5.25em; +} + +.entry-title { + font-size: 33px; + line-height: 1.2727272727; + margin-bottom: 0.8484848485em; +} + +.entry-content blockquote.alignleft, +.entry-content blockquote.alignright { + border-width: 4px 0 0 0; + padding: 0.9473684211em 0 0; + width: 50%; +} + +.entry-footer > span:before { + content: "\002f"; + display: inline-block; + opacity: 0.7; + padding: 0 0.538461538em; +} + +.entry-footer > span:first-child:before { + display: none; +} + +.updated { + display: none; +} + +.updated.published { + display: inline; +} + +.comment-author { + margin-bottom: 0; +} + +.comment-author .avatar { + height: 42px; + position: relative; + top: 0.25em; + width: 42px; +} + +.comment-list .children > li { + padding-left: 1.75em; +} + +.comment-list + .comment-respond, +.comment-navigation + .comment-respond { + padding-top: 3.5em; +} + +.comment-reply-link { + margin-top: 0; +} + +.comments-area, +.widget, +.content-bottom-widgets .widget-area { + margin-bottom: 5.25em; +} + +.sidebar, +.widecolumn { + margin-bottom: 5.25em; +} + +.site-footer .main-navigation, +.site-footer .social-navigation { + display: none; +} + +.rtl .site-branding { + float: right; +} + +.rtl .menu-toggle { + float: left; +} + +.rtl .comment-list .children > li { + padding-right: 1.75em; + padding-left: 0; +} diff --git a/themes/twentysixteen/css/rtl.css b/themes/twentysixteen/css/rtl.css new file mode 100644 index 0000000..5456c70 --- /dev/null +++ b/themes/twentysixteen/css/rtl.css @@ -0,0 +1,754 @@ +/* +Theme Name: Twenty Sixteen +Description: Adds support for languages written in a Right To Left (RTL) direction. +It's easy, just a matter of overwriting all the horizontal positioning attributes +of your CSS stylesheet in a separate stylesheet file named rtl.css. + +See: https://codex.wordpress.org/Right_to_Left_Language_Support +*/ + +/** + * Table of Contents: + * + * 1.0 - Normalize + * 2.0 - Typography + * 3.0 - Elements + * 4.0 - Forms + * 5.0 - Navigations + * 6.0 - Accessibility + * 7.0 - Widgets + * 8.0 - Content + * 8.1 - Header + * 8.2 - Posts and pages + * 8.3 - Comments + * 8.4 - Footer + * 9.0 - Multisites + * 10.0 - Media Queries + * 10.1 - >= 710px + * 10.2 - >= 910px + * 10.3 - >= 985px + * 10.4 - >= 1200px + */ + + +/** + * 1.0 - Normalize + */ + +body { + direction: rtl; + unicode-bidi: embed; +} + +input[type="checkbox"], +input[type="radio"] { + margin-right: auto; + margin-left: 0.4375em; +} + + +/** + * 2.0 - Typography + */ + +body, +button, +button[disabled]:hover, +button[disabled]:focus, +input[type="button"], +input[type="button"][disabled]:hover, +input[type="button"][disabled]:focus, +input[type="reset"], +input[type="reset"][disabled]:hover, +input[type="reset"][disabled]:focus, +input[type="submit"], +input[type="submit"][disabled]:hover, +input[type="submit"][disabled]:focus, +input, +select, +textarea, +.post-password-form label, +.main-navigation, +.post-navigation, +.post-navigation .post-title, +.pagination, +.image-navigation, +.comment-navigation, +.site .skip-link, +.logged-in .site .skip-link, +.widget .widget-title, +.widget_recent_entries .post-date, +.widget_rss .rss-date, +.widget_rss cite, +.tagcloud a, +.site-title, +.entry-title, +.entry-footer, +.sticky-post, +.page-title, +.page-links, +.comments-title, +.comment-reply-title, +.comment-metadata, +.pingback .edit-link, +.comment-reply-link, +.comment-form label, +.no-comments, +.required, +.site-footer .site-title, +.site-footer .site-title:after, +.widecolumn label, +.widecolumn .mu_register label { + font-family: Arial, Tahoma, sans-serif; +} + +::-webkit-input-placeholder { + font-family: Arial, Tahoma, sans-serif; +} + +:-moz-placeholder { + font-family: Arial, Tahoma, sans-serif; +} + +::-moz-placeholder { + font-family: Arial, Tahoma, sans-serif; +} + +:-ms-input-placeholder { + font-family: Arial, Tahoma, sans-serif; +} + +blockquote { + border-right-width: 4px; + border-left-width: 0; + padding-right: 1.263157895em; + padding-left: 0; +} + +.entry-content h1, +.entry-content h2, +.entry-content h3, +.entry-content h4, +.entry-content h5, +.entry-content h6, +.entry-summary h1, +.entry-summary h2, +.entry-summary h3, +.entry-summary h4, +.entry-summary h5, +.entry-summary h6, +.comment-content h1, +.comment-content h2, +.comment-content h3, +.comment-content h4, +.comment-content h5, +.comment-content h6, +.textwidget h1, +.textwidget h2, +.textwidget h3, +.textwidget h4, +.textwidget h5, +.textwidget h6, +.entry-content .author-title, +.widget_calendar caption, +.widecolumn h2 { + font-weight: 700; +} + + +/** + * 3.0 - Elements + */ + +ul, +ol { + margin: 0 1.25em 1.75em 0; +} + +ol { + margin-right: 1.5em; + margin-left: 0; +} + +caption, +th, +td { + text-align: right; +} + + +/** + * 4.0 - Forms + */ + +input[type="search"].search-field { + border-radius: 0 2px 2px 0; +} + +.search-submit:before { + left: 1px; +} + +.search-submit { + border-radius: 2px 0 0 2px; + left: 0; + right: auto; +} + + +/** + * 5.0 - Navigation + */ + +.main-navigation ul ul { + margin-right: 0.875em; + margin-left: auto; +} + +.main-navigation .menu-item-has-children > a { + margin-right: auto; + margin-left: 56px; +} + +.dropdown-toggle { + left: 0; + right: auto; +} + +.dropdown-toggle:after { + border-right-width: 1px; + border-left-width: 0; + left: auto; + right: 1px; +} + +.social-navigation li { + float: right; + margin: 0 0 0.4375em 0.4375em; +} + +.pagination:before { + left: 0; + right: auto; +} + +.pagination:after { + left: 54px; + right: auto; +} + +.pagination .nav-links { + padding-right: 0; + padding-left: 106px; +} + +.pagination .nav-links:before { + content: "\f430"; + left: -1px; + right: auto; +} + +.pagination .nav-links:after { + content: "\f429"; + left: 55px; + right: auto; +} + +.pagination .page-numbers { + margin: 0 -0.7368421053em 0 0.7368421053em; +} + +.pagination .prev, +.pagination .next { + margin: 0; +} + +.pagination .prev { + left: 54px; + right: auto; +} + +.pagination .prev:before { + content: "\f429"; + left: auto; + right: -1px; +} + +.pagination .next { + left: 0; + right: auto; +} + +.pagination .next:before { + content: "\f430"; + left: -1px; + right: auto; +} + +.comment-navigation { + margin-right: 0; + margin-left: 0; +} + + +/** + * 6.0 - Accessibility + */ + +.site .skip-link { + left: auto; + right: -9999em; +} + +.site .skip-link:focus { + left: auto; + right: 6px; +} + + +/** + * 7.0 - Widgets + */ + +.tagcloud a { + margin-right: 0; + margin-left: 0.1875em; +} + + +/** + * 8.0 - Content + */ + + +/** + * 8.1 - Header + */ + +.site-branding { + margin-right: 0; + margin-left: auto; +} + + +/** + * 8.2 - Posts and pages + */ + +.author-avatar .avatar { + float: right; + margin-right: 0; + margin-left: 1.75em; +} + +.entry-footer .avatar { + margin-right: 0; + margin-left: 0.5384615385em; +} + +.page-links a, +.page-links > span { + margin-right: auto; + margin-left: 0.3076923077em; +} + +.page-links > .page-links-title { + padding-right: 0; + padding-left: 0.6153846154em; +} + +body:not(.search-results) .entry-summary .alignright { + margin: 0.2631578947em 0 1.4736842105em 1.4736842105em; +} + +body:not(.search-results) .entry-summary .alignleft { + margin: 0.2631578947em 1.4736842105em 1.4736842105em 0; +} + + +/** + * 8.3 - Comments + */ + +.comment-list .children > li { + padding-right: 0.875em; + padding-left: 0; +} + +.comment-author .avatar { + float: right; + margin-right: auto; + margin-left: 0.875em; +} + +.bypostauthor > article .fn:after { + left: auto; + right: 3px; +} + +.comment-content ul, +.comment-content ol { + margin: 0 1.25em 1.5em 0; +} + +.comment-reply-title small a { + float: left; +} + + +/** + * 8.4 - Footer + */ + +.site-footer .site-title:after { + padding-right: 0.538461538em; + padding-left: 0.307692308em; +} + + +/** + * 9.0 - Multisites + */ + +.widecolumn .mu_register label { + margin-right: 0; + margin-left: 0.7692307692em; +} + + +/** + * 10.0 - Media Queries + */ + + +/** + * 10.1 - >= 710px + */ + +@media screen and (min-width: 44.375em) { + .pagination { + margin: 0 7.6923% 4.421052632em 23.0769%; + } + + .entry-header, + .post-thumbnail, + .entry-content, + .entry-summary, + .entry-footer, + .comments-area, + .image-navigation, + .post-navigation, + .page-header, + .page-content, + .content-bottom-widgets { + margin-right: 7.6923%; + margin-left: 23.0769%; + } + + .entry-content blockquote:not(.alignright):not(.alignleft), + .entry-summary blockquote, + .comment-content blockquote { + margin-right: -1.473684211em; + margin-left: auto; + } + + .entry-content blockquote blockquote:not(.alignright):not(.alignleft), + .entry-summary blockquote blockquote, + .comment-content blockquote blockquote { + margin-right: 0; + margin-left: auto; + } + + .entry-content ul, + .entry-summary ul, + .comment-content ul, + .entry-content ol, + .entry-summary ol, + .comment-content ol { + margin-right: 0; + margin-left: auto; + } + + .entry-content li > ul, + .entry-summary li > ul, + .comment-content li > ul, + .entry-content blockquote > ul, + .entry-summary blockquote > ul, + .comment-content blockquote > ul { + margin-right: 1.25em; + margin-left: auto; + } + + .entry-content li > ol, + .entry-summary li > ol, + .comment-content li > ol, + .entry-content blockquote > ol, + .entry-summary blockquote > ol, + .comment-content blockquote > ol { + margin-right: 1.5em; + margin-left: auto; + } + + .comment-list .children > li { + padding-right: 1.75em; + padding-left: 0; + } + + .sidebar, + .widecolumn { + padding-right: 7.6923%; + padding-left: 23.0769%; + } + + body:not(.search-results) .entry-summary li > ul, + body:not(.search-results) .entry-summary blockquote > ul { + margin-right: 1.157894737em; + margin-left: auto; + } + + body:not(.search-results) .entry-summary li > ol, + body:not(.search-results) .entry-summary blockquote > ol { + margin-right: 1.473684211em; + margin-left: auto; + } +} + + +/** + * 10.2 - >= 910px + */ + +@media screen and (min-width: 56.875em) { + .main-navigation .primary-menu > li { + float: right; + } + + .main-navigation ul ul { + left: auto; + margin: 0; + right: -999em; + } + + .main-navigation ul ul:before { + left: 9px; + right: auto; + } + + .main-navigation ul ul:after { + left: 11px; + right: auto; + } + + .main-navigation li:hover > ul, + .main-navigation li.focus > ul { + left: 0; + right: auto; + } + + .main-navigation ul ul li:hover > ul, + .main-navigation ul ul li.focus > ul { + left: 100%; + right: auto; + } + + .main-navigation .menu-item-has-children > a { + margin: 0; + padding-right: 0.875em; + padding-left: 2.25em; + } + + .main-navigation .menu-item-has-children > a:after { + left: 0.625em; + right: auto; + } + + .main-navigation ul ul .menu-item-has-children > a { + padding-right: 0.875em; + padding-left: 2.0625em; + } + + .main-navigation ul ul .menu-item-has-children > a:after { + left: 0.5625em; + right: auto; + top: 0.8125em; + -webkit-transform: rotate(-90deg); + -moz-transform: rotate(-90deg); + -ms-transform: rotate(-90deg); + transform: rotate(-90deg); + } + + .content-area { + float: right; + margin-right: auto; + margin-left: -100%; + } + + .entry-header, + .post-thumbnail, + .entry-content, + .entry-summary, + .entry-footer, + .comments-area, + .image-navigation, + .post-navigation, + .pagination, + .page-header, + .page-content, + .content-bottom-widgets { + margin-right: 0; + margin-left: 0; + } + + .sidebar { + float: right; + margin-right: 75%; + margin-left: auto; + padding: 0; + } + + .widget blockquote { + padding-right: 1.0625em; + padding-left: 0; + } + + .widget .alignright { + margin: 0.2307692308em 0 1.6153846154em 1.6153846154em; + } + + .widget .alignleft { + margin: 0.2307692308em 1.6153846154em 1.6153846154em 0; + } + + .tagcloud a { + margin: 0 0 0.5384615385em 0.2307692308em; + } + + .content-bottom-widgets .widget-area:nth-child(1):nth-last-child(2), + .content-bottom-widgets .widget-area:nth-child(2):nth-last-child(1) { + float: right; + margin-right: auto; + margin-left: 7.1428571%; + } + + .content-bottom-widgets .widget-area:nth-child(2):nth-last-child(1):last-of-type { + margin-right: auto; + margin-left: 0; + } + + .site-info { + margin: 0.538461538em 0 0.538461538em auto; + } + + .no-sidebar .entry-header, + .no-sidebar .entry-content, + .no-sidebar .entry-summary, + .no-sidebar .entry-footer, + .no-sidebar .comments-area, + .no-sidebar .image-navigation, + .no-sidebar .post-navigation, + .no-sidebar .pagination, + .no-sidebar .page-header, + .no-sidebar .page-content, + .no-sidebar .content-bottom-widgets { + margin-right: 15%; + margin-left: 15%; + } + + .no-sidebar .post-thumbnail { + margin-right: 0; + margin-left: 0; + } + + .widecolumn { + padding-right: 15%; + padding-left: 15%; + } +} + + +/** + * 10.3 - >= 985px + */ + +@media screen and (min-width: 61.5625em) { + body:not(.search-results) article:not(.type-page) .entry-content { + float: left; + } + + body:not(.search-results) article:not(.type-page) .entry-content > blockquote.alignleft.below-entry-meta { + margin-right: 1.473684211em; + margin-left: 0; + width: -webkit-calc(50% - 0.736842105em); + width: calc(50% - 0.736842105em);; + } + + body:not(.search-results) article:not(.type-page) .entry-content > blockquote.alignright.below-entry-meta { + margin-right: -40%; + margin-left: 1.473684211em; + width: -webkit-calc(60% - 1.4736842105em); + width: calc(60% - 1.4736842105em); + } + + body:not(.search-results) article:not(.type-page) img.below-entry-meta, + body:not(.search-results) article:not(.type-page) figure.below-entry-meta { + margin-right: -40%; + margin-left: 0; + } + + body:not(.search-results) article:not(.type-page) .entry-footer { + float: right; + } + + body.no-sidebar:not(.search-results) article:not(.type-page) .entry-content { + float: right; + margin-right: 34.99999999%; + margin-left: -100%; + } + + body.no-sidebar:not(.search-results) article:not(.type-page) .entry-footer { + margin-right: 15%; + margin-left: -100%; + } +} + + +/** + * 10.4 - >= 1200px + */ + +@media screen and (min-width: 75em) { + body:not(.search-results) .entry-summary li > ul, + body:not(.search-results) .entry-summary blockquote > ul { + margin-right: 0.956521739em; + margin-left: auto; + } + + body:not(.search-results) .entry-summary li > ol, + body:not(.search-results) .entry-summary blockquote > ol { + margin-right: 1.52173913em; + margin-left: auto; + } + + body:not(.search-results) .entry-summary blockquote { + padding-right: 1.347826087em; + padding-left: 0; + } + + body:not(.search-results) .entry-summary blockquote:not(.alignright):not(.alignleft) { + margin-right: -1.52173913em; + margin-left: auto; + } + + body:not(.search-results) .entry-summary blockquote blockquote:not(.alignright):not(.alignleft) { + margin-right: 0; + margin-left: auto; + } + + body:not(.search-results) .entry-summary .alignright { + margin: 0.2608695652em 0 1.5217391304em 1.5217391304em; + } + + body:not(.search-results) .entry-summary .alignleft { + margin: 0.2608695652em 1.5217391304em 1.5217391304em 0; + } +} diff --git a/themes/twentysixteen/css/style.css b/themes/twentysixteen/css/style.css new file mode 100644 index 0000000..b67354b --- /dev/null +++ b/themes/twentysixteen/css/style.css @@ -0,0 +1,4095 @@ +/* +Theme Name: Twenty Sixteen +Theme URI: https://wordpress.org/themes/twentysixteen/ +Author: the WordPress team +Author URI: https://wordpress.org/ +Description: Twenty Sixteen is a modernized take on an ever-popular WordPress layout — the horizontal masthead with an optional right sidebar that works perfectly for blogs and websites. It has custom color options with beautiful default color schemes, a harmonious fluid grid using a mobile-first approach, and impeccable polish in every detail. Twenty Sixteen will make your WordPress look beautiful everywhere. +Version: 1.0 +License: GNU General Public License v2 or later +License URI: http://www.gnu.org/licenses/gpl-2.0.html +Tags: black, blue, gray, red, white, yellow, dark, light, one-column, two-columns, right-sidebar, fixed-layout, responsive-layout, accessibility-ready, custom-background, custom-colors, custom-header, custom-menu, editor-style, featured-images, flexible-header, microformats, post-formats, rtl-language-support, sticky-post, threaded-comments, translation-ready +Text Domain: twentysixteen + +This theme, like WordPress, is licensed under the GPL. +Use it to make something cool, have fun, and share what you've learned with others. +*/ + + +/** + * Table of Contents + * + * 1.0 - Normalize + * 2.0 - Genericons + * 3.0 - Typography + * 4.0 - Elements + * 5.0 - Forms + * 6.0 - Navigation + * 6.1 - Links + * 6.2 - Menus + * 7.0 - Accessibility + * 8.0 - Alignments + * 9.0 - Clearings + * 10.0 - Widgets + * 11.0 - Content + * 11.1 - Header + * 11.2 - Posts and pages + * 11.3 - Post Formats + * 11.4 - Comments + * 11.5 - Sidebar + * 11.6 - Footer + * 12.0 - Media + * 12.1 - Captions + * 12.2 - Galleries + * 13.0 - Multisite + * 14.0 - Media Queries + * 14.1 - >= 710px + * 14.2 - >= 783px + * 14.3 - >= 910px + * 14.4 - >= 985px + * 14.5 - >= 1200px + * 15.0 - Print + */ + + +/** + * 1.0 - Normalize + * + * Normalizing styles have been helped along thanks to the fine work of + * Nicolas Gallagher and Jonathan Neal http://necolas.github.com/normalize.css/ + */ + +html { + font-family: sans-serif; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +body { + margin: 0; +} + +article, +aside, +details, +figcaption, +figure, +footer, +header, +main, +menu, +nav, +section, +summary { + display: block; +} + +audio, +canvas, +progress, +video { + display: inline-block; + vertical-align: baseline; +} + +audio:not([controls]) { + display: none; + height: 0; +} + +[hidden], +template { + display: none; +} + +a { + background-color: transparent; +} + +abbr[title] { + border-bottom: 1px dotted; +} + +b, +strong { + font-weight: 700; +} + +small { + font-size: 80%; +} + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +img { + border: 0; +} + +svg:not(:root) { + overflow: hidden; +} + +figure { + margin: 0; +} + +hr { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; +} + +code, +kbd, +pre, +samp { + font-size: 1em; +} + +button, +input, +optgroup, +select, +textarea { + color: inherit; + font: inherit; + margin: 0; +} + +select { + text-transform: none; +} + +button { + overflow: visible; +} + +button, +input, +select, +textarea { + max-width: 100%; +} + +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; +} + +button[disabled], +html input[disabled] { + cursor: default; + opacity: .5; +} + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +input[type="checkbox"], +input[type="radio"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + margin-right: 0.4375em; + padding: 0; +} + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +input[type="search"] { + -webkit-appearance: textfield; +} + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +fieldset { + border: 1px solid #d1d1d1; + margin: 0 0 1.75em; + padding: 0.875em; +} + +fieldset > :last-child { + margin-bottom: 0; +} + +legend { + border: 0; + padding: 0; +} + +textarea { + overflow: auto; + vertical-align: top; +} + +optgroup { + font-weight: bold; +} + + +/** + * 2.0 - Genericons + */ + +.menu-item-has-children a:after, +.item.dropdown a:after, +.social-navigation a:before, +.dropdown-toggle-button:after, +.bypostauthor > article .fn:after, +.comment-reply-title small a:before, +.pagination .prev:before, +.pagination .next:before, +.pagination .nav-links:before, +.pagination .nav-links:after, +.search-submit:before { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: inline-block; + font-family: "Genericons"; + font-size: 16px; + font-style: normal; + font-variant: normal; + font-weight: normal; + line-height: 1; + speak: none; + text-align: center; + text-decoration: inherit; + text-transform: none; + vertical-align: top; +} + + +/** + * 3.0 - Typography + */ + +body, +button, +input, +select, +textarea { + color: #1a1a1a; + font-family: Merriweather, Georgia, serif; + font-size: 16px; + font-size: 1rem; + line-height: 1.75; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + clear: both; + font-weight: 700; + margin: 0; + text-rendering: optimizeLegibility; +} + +p { + margin: 0 0 1.75em; +} + +dfn, +cite, +em, +i { + font-style: italic; +} + +blockquote { + border: 0 solid #1a1a1a; + border-left-width: 4px; + color: #686868; + font-size: 19px; + font-size: 1.1875rem; + font-style: italic; + line-height: 1.4736842105; + margin: 0 0 1.4736842105em; + padding: 0 0 0 1.263157895em; +} + +blockquote, +q { + quotes: none; +} + +blockquote:before, +blockquote:after, +q:before, +q:after { + content: ""; +} + +blockquote p { + margin-bottom: 1.4736842105em; +} + +blockquote cite, +blockquote small { + color: #1a1a1a; + display: block; + font-size: 16px; + font-size: 1rem; + line-height: 1.75; +} + +blockquote cite:before, +blockquote small:before { + content: "\2014\00a0"; +} + +blockquote em, +blockquote i, +blockquote cite { + font-style: normal; +} + +blockquote strong, +blockquote b { + font-weight: 400; +} + +blockquote > :last-child { + margin-bottom: 0; +} + +address { + font-style: italic; + margin: 0 0 1.75em; +} + +code, +kbd, +tt, +var, +samp, +pre { + font-family: Inconsolata, monospace; +} + +pre { + background-color: transparent; + background-color: rgba(0, 0, 0, 0.01); + border: 1px solid #eaeaea; + border: 1px solid rgba(51, 51, 51, 0.1); + line-height: 1.2; + margin-bottom: 1.6em; + max-width: 100%; + overflow: auto; + padding: 0.8em; + white-space: pre; + white-space: pre-wrap; + word-wrap: break-word; +} + +abbr, +acronym { + border-bottom: 1px dotted #d1d1d1; + cursor: help; +} + +mark, +ins { + background: #007acc; + color: #fff; + padding: 0.125em 0.25em; + text-decoration: none; +} + +big { + font-size: 125%; +} + + +/** + * 4.0 - Elements + */ + +html { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +*, +*:before, +*:after { + /* Inherit box-sizing to make it easier to change the property for components that leverage other behavior; see http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */ + -webkit-box-sizing: inherit; + -moz-box-sizing: inherit; + box-sizing: inherit; +} + +body { + background: #1a1a1a; + /* Fallback for when there is no custom background color defined. */ +} + +hr { + background-color: #d1d1d1; + border: 0; + height: 1px; + margin: 0 0 1.75em; +} + +ul, +ol { + margin: 0 0 1.75em 1.25em; + padding: 0; +} + +ul { + list-style: disc; +} + +ol { + list-style: decimal; + margin-left: 1.5em; +} + +li > ul, +li > ol { + margin-bottom: 0; +} + +dl { + margin: 0 0 1.75em; +} + +dt { + font-weight: 700; +} + +dd { + margin: 0 0 1.75em; +} + +img { + height: auto; + /* Make sure images are scaled correctly. */ + max-width: 100%; + /* Adhere to container width. */ + vertical-align: middle; +} + +del { + opacity: 0.8; +} + +table, +th, +td { + border: 1px solid #d1d1d1; +} + +table { + border-collapse: separate; + border-spacing: 0; + border-width: 1px 0 0 1px; + margin: 0 0 1.75em; + table-layout: fixed; + /* Prevents HTML tables from becoming too wide */ + width: 100%; +} + +caption, +th, +td { + font-weight: normal; + text-align: left; +} + +th { + border-width: 0 1px 1px 0; + font-weight: 700; +} + +td { + border-width: 0 1px 1px 0; +} + +th, +td { + padding: 0.4375em; +} + +/* Placeholder text color -- selectors need to be separate to work. */ +::-webkit-input-placeholder { + color: #686868; + font-family: Montserrat, "Helvetica Neue", sans-serif; +} + +:-moz-placeholder { + color: #686868; + font-family: Montserrat, "Helvetica Neue", sans-serif; +} + +::-moz-placeholder { + color: #686868; + font-family: Montserrat, "Helvetica Neue", sans-serif; + opacity: 1; + /* Since FF19 lowers the opacity of the placeholder by default */ +} + +:-ms-input-placeholder { + color: #686868; + font-family: Montserrat, "Helvetica Neue", sans-serif; +} + + +/** + * 5.0 - Forms + */ + +input { + line-height: normal; +} + +button, +button[disabled]:hover, +button[disabled]:focus, +input[type="button"], +input[type="button"][disabled]:hover, +input[type="button"][disabled]:focus, +input[type="reset"], +input[type="reset"][disabled]:hover, +input[type="reset"][disabled]:focus, +input[type="submit"], +input[type="submit"][disabled]:hover, +input[type="submit"][disabled]:focus { + background: #1a1a1a; + border: 0; + border-radius: 2px; + color: #fff; + font-family: Montserrat, "Helvetica Neue", sans-serif; + font-weight: 700; + letter-spacing: 0.046875em; + line-height: 1; + padding: 0.84375em 0.875em 0.78125em; + text-transform: uppercase; +} + +button:hover, +button:focus, +input[type="button"]:hover, +input[type="button"]:focus, +input[type="reset"]:hover, +input[type="reset"]:focus, +input[type="submit"]:hover, +input[type="submit"]:focus { + background: #007acc; +} + +button:focus, +input[type="button"]:focus, +input[type="reset"]:focus, +input[type="submit"]:focus { + outline: thin dotted; + outline-offset: -4px; +} + +input[type="text"], +input[type="email"], +input[type="url"], +input[type="password"], +input[type="search"], +input[type="tel"], +input[type="number"], +textarea { + background: #f7f7f7; + background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, 0)); + border: 1px solid #d1d1d1; + border-radius: 2px; + color: #686868; + padding: 0.625em 0.4375em; + width: 100%; +} + +input[type="text"]:focus, +input[type="email"]:focus, +input[type="url"]:focus, +input[type="password"]:focus, +input[type="search"]:focus, +input[type="tel"]:focus, +input[type="number"]:focus, +textarea:focus { + background-color: #fff; + border-color: #007acc; + color: #1a1a1a; + outline: 0; +} + +.post-password-form { + margin-bottom: 1.75em; +} + +.post-password-form label { + color: #686868; + display: block; + font-family: Montserrat, "Helvetica Neue", sans-serif; + font-size: 13px; + font-size: 0.8125rem; + letter-spacing: 0.076923077em; + line-height: 1.6153846154; + margin-bottom: 1.75em; + text-transform: uppercase; +} + +.post-password-form input[type="password"] { + margin-top: 0.4375em; +} + +.post-password-form > :last-child { + margin-bottom: 0; +} + +.search-form { + position: relative; +} + +input[type="search"].search-field { + border-radius: 2px 0 0 2px; + width: -webkit-calc(100% - 42px); + width: calc(100% - 42px); +} + +.search-submit:before { + content: "\f400"; + font-size: 24px; + left: 2px; + line-height: 42px; + position: relative; + width: 40px; +} + +.search-submit { + border-radius: 0 2px 2px 0; + bottom: 0; + overflow: hidden; + padding: 0; + position: absolute; + right: 0; + top: 0; + width: 42px; +} + + +/** + * 6.0 - Navigation + */ + +/** + * 6.1 - Links + */ + +a { + color: #007acc; + text-decoration: none; +} + +a:hover, +a:focus, +a:active { + color: #686868; +} + +a:focus { + outline: thin dotted; +} + +a:hover, +a:active { + outline: 0; +} + +.entry-content a, +.entry-summary a, +.taxonomy-description a, +.logged-in-as a, +.comment-content a, +.pingback .comment-body > a, +.textwidget a, +.entry-footer a:hover, +.site-info a:hover { + box-shadow: 0 1px 0 0 currentColor; +} + +.entry-content a:hover, +.entry-content a:focus, +.entry-summary a:hover, +.entry-summary a:focus, +.taxonomy-description a:hover, +.taxonomy-description a:focus, +.logged-in-as a:hover, +.logged-in-as a:focus, +.comment-content a:hover, +.comment-content a:focus, +.pingback .comment-body > a:hover, +.pingback .comment-body > a:focus, +.textwidget a:hover, +.textwidget a:focus { + box-shadow: none; +} + + +/** + * 6.2 - Menus + */ + +.site-header-menu { + display: none; + -webkit-flex: 0 1 100%; + -ms-flex: 0 1 100%; + flex: 0 1 100%; + margin: 0.875em 0; +} + +.site-header-menu.toggled-on, +.no-js .site-header-menu { + display: block; +} + +.main-navigation { + font-family: Montserrat, "Helvetica Neue", sans-serif; +} + +.site-footer .main-navigation { + margin-bottom: 1.75em; +} + +.main-navigation ul { + list-style: none; + margin: 0; +} + +.main-navigation li { + border-top: 1px solid #d1d1d1; + position: relative; +} + +.main-navigation a { + color: #1a1a1a; + display: block; + line-height: 1.3125; + outline-offset: -1px; + padding: 0.84375em 0; +} + +.main-navigation a:hover, +.main-navigation a:focus { + color: #007acc; +} + +.main-navigation .current-menu-item > a, +.main-navigation .current-menu-ancestor > a { + font-weight: 700; +} + +.main-navigation ul ul { + display: none; + margin-left: 0.875em; +} + +.no-js .main-navigation ul ul { + display: block; +} + +.main-navigation ul .toggled-on { + display: block; +} + +.main-navigation .primary-menu { + border-bottom: 1px solid #d1d1d1; +} + +.main-navigation .menu-item-has-children > a { + margin-right: 56px; +} + +.dropdown-toggle-button { + background-color: transparent; + border: 0; + border-radius: 0; + color: #1a1a1a; + content: ""; + height: 48px; + padding: 0; + position: absolute; + right: 0; + text-transform: none; + top: 0; + width: 48px; +} + +.dropdown-toggle-button:after { + border: 0 solid #d1d1d1; + border-left-width: 1px; + content: "\f431"; + font-size: 24px; + left: 1px; + position: relative; + width: 48px; +} + +.dropdown-toggle-button:hover, +.dropdown-toggle-button:focus { + background-color: transparent; + color: #007acc; +} + +.dropdown-toggle-button:focus { + outline: thin dotted; + outline-offset: -1px; +} + +.dropdown-toggle-button:focus:after { + border-color: transparent; +} + +.dropdown-toggle-button.toggled-on:after { + content: "\f432"; +} + +.site-header .main-navigation + .social-navigation { + margin-top: 1.75em; +} + +.site-footer .social-navigation { + margin-bottom: 1.75em; +} + +.social-navigation ul { + list-style: none; + margin: 0 0 -0.4375em; +} + +.social-navigation li { + float: left; + margin: 0 0.4375em 0.4375em 0; +} + +.social-navigation a { + border: 1px solid #d1d1d1; + border-radius: 50%; + color: #1a1a1a; + display: block; + height: 35px; + position: relative; + width: 35px; +} + +.social-navigation a:before { + content: "\f415"; + height: 33px; + line-height: 33px; + text-align: center; + width: 33px; +} + +.social-navigation a:hover:before, +.social-navigation a:focus:before { + color: #007acc; +} + +.social-navigation a[href*="codepen.io"]:before { + content: "\f216"; +} + +.social-navigation a[href*="digg.com"]:before { + content: "\f221"; +} + +.social-navigation a[href*="dribbble.com"]:before { + content: "\f201"; +} + +.social-navigation a[href*="dropbox.com"]:before { + content: "\f225"; +} + +.social-navigation a[href*="facebook.com"]:before { + content: "\f203"; +} + +.social-navigation a[href*="flickr.com"]:before { + content: "\f211"; +} + +.social-navigation a[href*="foursquare.com"]:before { + content: "\f226"; +} + +.social-navigation a[href*="plus.google.com"]:before { + content: "\f206"; +} + +.social-navigation a[href*="github.com"]:before { + content: "\f200"; +} + +.social-navigation a[href*="instagram.com"]:before { + content: "\f215"; +} + +.social-navigation a[href*="linkedin.com"]:before { + content: "\f208"; +} + +.social-navigation a[href*="path.com"]:before { + content: "\f219"; +} + +.social-navigation a[href*="pinterest.com"]:before { + content: "\f210"; +} + +.social-navigation a[href*="getpocket.com"]:before { + content: "\f224"; +} + +.social-navigation a[href*="polldaddy.com"]:before { + content: "\f217"; +} + +.social-navigation a[href*="reddit.com"]:before { + content: "\f222"; +} + +.social-navigation a[href*="skype.com"]:before { + content: "\f220"; +} + +.social-navigation a[href*="stumbleupon.com"]:before { + content: "\f223"; +} + +.social-navigation a[href*="tumblr.com"]:before { + content: "\f214"; +} + +.social-navigation a[href*="twitter.com"]:before { + content: "\f202"; +} + +.social-navigation a[href*="vimeo.com"]:before { + content: "\f212"; +} + +.social-navigation a[href*="wordpress.com"]:before, +.social-navigation a[href*="wordpress.org"]:before { + content: "\f205"; +} + +.social-navigation a[href*="youtube.com"]:before { + content: "\f213"; +} + +.social-navigation a[href^="mailto:"]:before { + content: "\f410"; +} + +.social-navigation a[href*="spotify.com"]:before { + content: "\f515"; +} + +.social-navigation a[href*="twitch.tv"]:before { + content: "\f516"; +} + +.social-navigation a[href*="/feed"]:before { + content: "\f413"; +} + +.social-navigation a[href*="tiktok.com"]:before { + content:"\f108"; +} + +.social-navigation a[href*="linkedin.com"]:before { + content:"\f207"; +} + +.social-navigation a.social-logo-mastodon:before { + content:"\f10a"; +} + +.post-navigation { + border-top: 4px solid #1a1a1a; + border-bottom: 4px solid #1a1a1a; + clear: both; + font-family: Montserrat, "Helvetica Neue", sans-serif; + margin: 0 7.6923% 3.5em; +} + +.post-navigation a { + color: #1a1a1a; + display: block; + padding: 1.75em 0; +} + +.post-navigation span { + display: block; +} + +.post-navigation .meta-nav { + color: #686868; + font-size: 13px; + font-size: 0.8125rem; + letter-spacing: 0.076923077em; + line-height: 1.6153846154; + margin-bottom: 0.5384615385em; + text-transform: uppercase; +} + +.post-navigation .post-title { + display: inline; + font-family: Montserrat, "Helvetica Neue", sans-serif; + font-size: 23px; + font-size: 1.4375rem; + font-weight: 700; + line-height: 1.2173913043; + text-rendering: optimizeLegibility; +} + +.post-navigation a:hover .post-title, +.post-navigation a:focus .post-title { + color: #007acc; +} + +.post-navigation div + div { + border-top: 4px solid #1a1a1a; +} + +.pagination { + border-top: 4px solid #1a1a1a; + font-family: Montserrat, "Helvetica Neue", sans-serif; + font-size: 19px; + font-size: 1.1875rem; + margin: 0 7.6923% 2.947368421em; + min-height: 56px; + position: relative; +} + +.pagination:before, +.pagination:after { + background-color: #1a1a1a; + content: ""; + height: 52px; + position: absolute; + top:0; + width: 52px; + z-index: 0; +} + +.pagination:before { + right: 0; +} + +.pagination:after { + right: 54px; +} + +.pagination a:hover, +.pagination a:focus { + color: #1a1a1a; +} + +.pagination .nav-links { + padding-right: 106px; + position: relative; +} + +.pagination .nav-links:before, +.pagination .nav-links:after { + color: #fff; + font-size: 32px; + line-height: 51px; + opacity: 0.3; + position: absolute; + width: 52px; + z-index: 1; +} + +.pagination .nav-links:before { + content: "\f429"; + right: -1px; +} + +.pagination .nav-links:after { + content: "\f430"; + right: 55px; +} + +/* reset screen-reader-text */ +.pagination .current .screen-reader-text { + position: static !important; +} + +.pagination .page-numbers { + display: none; + letter-spacing: 0.013157895em; + line-height: 1; + margin: 0 0.7368421053em 0 -0.7368421053em; + padding: 0.8157894737em 0.7368421053em 0.3947368421em; + text-transform: uppercase; +} + +.pagination .current { + display: inline-block; + font-weight: 700; +} + +.pagination .prev, +.pagination .next { + background-color: #1a1a1a; + color: #fff; + display: inline-block; + height: 52px; + margin: 0; + overflow: hidden; + padding: 0; + position: absolute; + top: 0; + width: 52px; + z-index: 2; +} + +.pagination .prev:before, +.pagination .next:before { + font-size: 32px; + height: 53px; + line-height: 52px; + position: relative; + width: 53px; +} + +.pagination .prev:hover, +.pagination .prev:focus, +.pagination .next:hover, +.pagination .next:focus { + background-color: #007acc; + color: #fff; +} + +.pagination .prev:focus, +.pagination .next:focus { + outline: 0; +} + +.pagination .prev { + right: 54px; +} + +.pagination .prev:before { + content: "\f430"; + left: -1px; + top: -1px; +} + +.pagination .next { + right: 0; +} + +.pagination .next:before { + content: "\f429"; + right: -1px; + top: -1px; +} + +.image-navigation, +.comment-navigation { + border-top: 1px solid #d1d1d1; + border-bottom: 1px solid #d1d1d1; + color: #686868; + font-family: Montserrat, "Helvetica Neue", sans-serif; + font-size: 13px; + font-size: 0.8125rem; + line-height: 1.6153846154; + margin: 0 7.6923% 2.1538461538em; + padding: 1.0769230769em 0; +} + +.comment-navigation { + margin-right: 0; + margin-left: 0; +} + +.comments-title + .comment-navigation { + border-bottom: 0; + margin-bottom: 0; +} + +.image-navigation .nav-previous:not(:empty), +.image-navigation .nav-next:not(:empty), +.comment-navigation .nav-previous:not(:empty), +.comment-navigation .nav-next:not(:empty) { + display: inline-block; +} + +.image-navigation .nav-previous:not(:empty) + .nav-next:not(:empty):before, +.comment-navigation .nav-previous:not(:empty) + .nav-next:not(:empty):before { + content: "\002f"; + display: inline-block; + opacity: 0.7; + padding: 0 0.538461538em; +} + + +/** + * 7.0 - Accessibility + */ + +/* Text meant only for screen readers */ +.says, +.screen-reader-text { + clip: rect(1px, 1px, 1px, 1px); + height: 1px; + overflow: hidden; + position: absolute !important; + width: 1px; + /* many screen reader and browser combinations announce broken words as they would appear visually */ + word-wrap: normal !important; +} + +/* must have higher specificity than alternative color schemes inline styles */ +.site .skip-link { + background-color: #f1f1f1; + box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.2); + color: #21759b; + display: block; + font-family: Montserrat, "Helvetica Neue", sans-serif; + font-size: 14px; + font-weight: 700; + left: -9999em; + outline: none; + padding: 15px 23px 14px; + text-decoration: none; + text-transform: none; + top: -9999em; +} + +.logged-in .site .skip-link { + box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.2); + font-family: "Open Sans", sans-serif; +} + +.site .skip-link:focus { + clip: auto; + height: auto; + left: 6px; + top: 7px; + width: auto; + z-index: 100000; +} + + +/** + * 8.0 - Alignments + */ + +.alignleft { + float: left; + margin: 0.375em 1.75em 1.75em 0; +} + +.alignright { + float: right; + margin: 0.375em 0 1.75em 1.75em; +} + +.aligncenter { + clear: both; + display: block; + margin: 0 auto 1.75em; +} + +blockquote.alignleft { + margin: 0.3157894737em 1.4736842105em 1.473684211em 0; +} + +blockquote.alignright { + margin: 0.3157894737em 0 1.473684211em 1.4736842105em; +} + +blockquote.aligncenter { + margin-bottom: 1.473684211em; +} + + +/** + * 9.0 - Clearings + */ + +.clear:before, +.clear:after, +blockquote:before, +blockquote:after, +.entry-content:before, +.entry-content:after, +.entry-summary:before, +.entry-summary:after, +.comment-content:before, +.comment-content:after, +.site-content:before, +.site-content:after, +.site-main > article:before, +.site-main > article:after, +.primary-menu:before, +.primary-menu:after, +.social-links-menu:before, +.social-links-menu:after, +.textwidget:before, +.textwidget:after, +.content-bottom-widgets:before, +.content-bottom-widgets:after { + content: ""; + display: table; +} + +.clear:after, +blockquote:after, +.entry-content:after, +.entry-summary:after, +.comment-content:after, +.site-content:after, +.site-main > article:after, +.primary-menu:after, +.social-links-menu:after, +.textwidget:after, +.content-bottom-widgets:after { + clear: both; +} + + +/** + * 10.0 - Widgets + */ + +.widget { + border-top: 4px solid #1a1a1a; + margin-bottom: 3.5em; + padding-top: 1.75em; +} + +.widget-area > :last-child, +.widget > :last-child { + margin-bottom: 0; +} + +.widget .widget-title { + font-family: Montserrat, "Helvetica Neue", sans-serif; + font-size: 16px; + font-size: 1rem; + letter-spacing: 0.046875em; + line-height: 1.3125; + margin: 0 0 1.75em; + text-transform: uppercase; +} + +.widget .widget-title:empty { + margin-bottom: 0; +} + +.widget-title a { + color: #1a1a1a; +} + +/* Calendar widget */ +.widget.widget_calendar table { + margin: 0; +} + +.widget_calendar td, +.widget_calendar th { + line-height: 2.5625; + padding: 0; + text-align: center; +} + +.widget_calendar caption { + font-weight: 900; + margin-bottom: 1.75em; +} + +.widget_calendar tbody a { + background-color: #007acc; + color: #fff; + display: block; + font-weight: 700; +} + +.widget_calendar tbody a:hover, +.widget_calendar tbody a:focus { + background-color: #686868; + color: #fff; +} + +/* Recent Posts widget */ +.widget_recent_entries .post-date { + color: #686868; + display: block; + font-family: Montserrat, "Helvetica Neue", sans-serif; + font-size: 13px; + font-size: 0.8125rem; + line-height: 1.615384615; + margin-bottom: 0.538461538em; +} + +.widget_recent_entries li:last-child .post-date { + margin-bottom: 0; +} + +/* RSS widget */ +.widget_rss .rsswidget img { + margin-top: -0.375em; +} + +.widget_rss .rss-date, +.widget_rss cite { + color: #686868; + display: block; + font-family: Montserrat, "Helvetica Neue", sans-serif; + font-size: 13px; + font-size: 0.8125rem; + font-style: normal; + line-height: 1.615384615; + margin-bottom: 0.538461538em; +} + +.widget_rss .rssSummary:last-child { + margin-bottom: 2.1538461538em; +} + +.widget_rss li:last-child :last-child { + margin-bottom: 0; +} + +/* Tag Cloud widget */ +.tagcloud a { + border: 1px solid #d1d1d1; + border-radius: 2px; + display: inline-block; + font-family: Montserrat, "Helvetica Neue", sans-serif; + font-size: inherit !important; + line-height: 1; + margin: 0 0.1875em 0.4375em 0; + padding: 0.5625em 0.4375em 0.5em; +} + +.tagcloud a:hover, +.tagcloud a:focus { + border-color: #007acc; + color: #007acc; + outline: 0; +} + + +/** + * 11.0 - Content + */ + +.site { + background-color: #fff; +} + +.site-inner { + margin: 0 auto; + max-width: 1320px; + position: relative; +} + +.site-content { + word-wrap: break-word; +} + +/* Do not show the outline on the skip link target. */ +#content[tabindex="-1"]:focus { + outline: 0; +} + +.site-main { + margin-bottom: 3.5em; +} + +.site-main > :last-child { + margin-bottom: 0; +} + + +/** + * 11.1 - Header + */ + +.site-header { + padding: 2.625em 7.6923%; +} + +.site-header-main { + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; +} + +.site-branding { + margin: 0.875em auto 0.875em 0; +} + +.site-title { + font-family: Montserrat, "Helvetica Neue", sans-serif; + font-size: 23px; + font-size: 1.4375rem; + font-weight: 700; + line-height: 1.2173913043; + margin: 0; +} + +.site-branding .site-title a { + color: #1a1a1a; +} + +.site-branding .site-title a:hover, +.site-branding .site-title a:focus { + color: #007acc; +} + +.site-description { + color: #686868; + display: none; + font-size: 13px; + font-size: 0.8125rem; + font-weight: 400; + line-height: 1.0769230769; + margin: 0.538461538em 0 0; +} + +.menu-toggle { + background-color: transparent; + border: 1px solid #d1d1d1; + color: #1a1a1a; + font-size: 13px; + font-size: 0.8125rem; + margin: 1.076923077em 0; + padding: 0.769230769em; +} + +.no-js .menu-toggle { + display: none; +} + +.menu-toggle:hover, +.menu-toggle:focus { + background-color: transparent; + border-color: #007acc; + color: #007acc; +} + +.menu-toggle.toggled-on, +.menu-toggle.toggled-on:hover, +.menu-toggle.toggled-on:focus { + background-color: #1a1a1a; + border-color: #1a1a1a; + color: #fff; +} + +.menu-toggle:focus { + outline: 0; +} + +.menu-toggle.toggled-on:focus { + outline: thin dotted; +} + +.header-image { + clear: both; + margin: 0.875em 0; +} + +.header-image a { + display: block; +} + +.header-image a:hover img, +.header-image a:focus img { + opacity: 0.85; +} + + +/** + * 11.2 - Posts and pages + */ + +.site-main > article { + margin-bottom: 3.5em; + position: relative; +} + +.entry-header, +.entry-summary, +.entry-content, +.entry-footer, +.page-content { + margin-right: 7.6923%; + margin-left: 7.6923%; +} + +.entry-title { + font-family: Montserrat, "Helvetica Neue", sans-serif; + font-size: 28px; + font-size: 1.75rem; + font-weight: 700; + line-height: 1.25; + margin-bottom: 1em; +} + +.entry-title a { + color: #1a1a1a; +} + +.entry-title a:hover, +.entry-title a:focus { + color: #007acc; +} + +.post-thumbnail { + display: block; + margin: 0 7.6923% 1.75em; +} + +.post-thumbnail img { + display: block; +} + +.no-sidebar .post-thumbnail img { + margin: 0 auto; +} + +a.post-thumbnail:hover, +a.post-thumbnail:focus { + opacity: 0.85; +} + +.entry-content, +.entry-summary { + border-color: #d1d1d1; +} + +.entry-content h1, +.entry-summary h1, +.comment-content h1, +.textwidget h1 { + font-size: 28px; + font-size: 1.75rem; + line-height: 1.25; + margin-top: 2em; + margin-bottom: 1em; +} + +.entry-content h2, +.entry-summary h2, +.comment-content h2, +.textwidget h2 { + font-size: 23px; + font-size: 1.4375rem; + line-height: 1.2173913043; + margin-top: 2.4347826087em; + margin-bottom: 1.2173913043em; +} + +.entry-content h3, +.entry-summary h3, +.comment-content h3, +.textwidget h3 { + font-size: 19px; + font-size: 1.1875rem; + line-height: 1.1052631579; + margin-top: 2.9473684211em; + margin-bottom: 1.4736842105em; +} + +.entry-content h4, +.entry-content h5, +.entry-content h6, +.entry-summary h4, +.entry-summary h5, +.entry-summary h6, +.comment-content h4, +.comment-content h5, +.comment-content h6, +.textwidget h4, +.textwidget h5, +.textwidget h6 { + font-size: 16px; + font-size: 1rem; + line-height: 1.3125; + margin-top: 3.5em; + margin-bottom: 1.75em; +} + +.entry-content h4, +.entry-summary h4, +.comment-content h4, +.textwidget h4 { + letter-spacing: 0.140625em; + text-transform: uppercase; +} + +.entry-content h6, +.entry-summary h6, +.comment-content h6, +.textwidget h6 { + font-style: italic; +} + +.entry-content h1, +.entry-content h2, +.entry-content h3, +.entry-content h4, +.entry-content h5, +.entry-content h6, +.entry-summary h1, +.entry-summary h2, +.entry-summary h3, +.entry-summary h4, +.entry-summary h5, +.entry-summary h6, +.comment-content h1, +.comment-content h2, +.comment-content h3, +.comment-content h4, +.comment-content h5, +.comment-content h6, +.textwidget h1, +.textwidget h2, +.textwidget h3, +.textwidget h4, +.textwidget h5, +.textwidget h6 { + font-weight: 900; +} + +.entry-content h1:first-child, +.entry-content h2:first-child, +.entry-content h3:first-child, +.entry-content h4:first-child, +.entry-content h5:first-child, +.entry-content h6:first-child, +.entry-summary h1:first-child, +.entry-summary h2:first-child, +.entry-summary h3:first-child, +.entry-summary h4:first-child, +.entry-summary h5:first-child, +.entry-summary h6:first-child, +.comment-content h1:first-child, +.comment-content h2:first-child, +.comment-content h3:first-child, +.comment-content h4:first-child, +.comment-content h5:first-child, +.comment-content h6:first-child, +.textwidget h1:first-child, +.textwidget h2:first-child, +.textwidget h3:first-child, +.textwidget h4:first-child, +.textwidget h5:first-child, +.textwidget h6:first-child { + margin-top: 0; +} + +.post-navigation .post-title, +.entry-title, +.comments-title { + -webkit-hyphens: auto; + -moz-hyphens: auto; + -ms-hyphens: auto; + hyphens: auto; +} + +body:not(.search-results) .entry-summary { + color: #686868; + font-size: 19px; + font-size: 1.1875rem; + line-height: 1.4736842105; + margin-bottom: 1.4736842105em; +} + +body:not(.search-results) .entry-header + .entry-summary { + margin-top: -0.736842105em; +} + +body:not(.search-results) .entry-summary p, +body:not(.search-results) .entry-summary address, +body:not(.search-results) .entry-summary hr, +body:not(.search-results) .entry-summary ul, +body:not(.search-results) .entry-summary ol, +body:not(.search-results) .entry-summary dl, +body:not(.search-results) .entry-summary dd, +body:not(.search-results) .entry-summary table { + margin-bottom: 1.4736842105em; +} + +body:not(.search-results) .entry-summary li > ul, +body:not(.search-results) .entry-summary li > ol { + margin-bottom: 0; +} + +body:not(.search-results) .entry-summary th, +body:not(.search-results) .entry-summary td { + padding: 0.3684210526em; +} + +body:not(.search-results) .entry-summary fieldset { + margin-bottom: 1.4736842105em; + padding: 0.3684210526em; +} + +body:not(.search-results) .entry-summary blockquote { + border-color: currentColor; +} + +body:not(.search-results) .entry-summary blockquote > :last-child { + margin-bottom: 0; +} + +body:not(.search-results) .entry-summary .alignleft { + margin: 0.2631578947em 1.4736842105em 1.4736842105em 0; +} + +body:not(.search-results) .entry-summary .alignright { + margin: 0.2631578947em 0 1.4736842105em 1.4736842105em; +} + +body:not(.search-results) .entry-summary .aligncenter { + margin-bottom: 1.4736842105em; +} + +.entry-content > :last-child, +.entry-summary > :last-child, +body:not(.search-results) .entry-summary > :last-child, +.page-content > :last-child, +.comment-content > :last-child, +.textwidget > :last-child { + margin-bottom: 0; +} + +.more-link { + white-space: nowrap; +} + +.author-info { + border-color: inherit; + border-style: solid; + border-width: 1px 0 1px 0; + clear: both; + padding-top: 1.75em; + padding-bottom: 1.75em; +} + +.author-avatar .avatar { + float: left; + height: 42px; + margin: 0 1.75em 1.75em 0; + width: 42px; +} + +.author-description > :last-child { + margin-bottom: 0; +} + +.entry-content .author-title { + clear: none; + font-size: 16px; + font-size: 1rem; + font-weight: 900; + line-height: 1.75; + margin: 0; +} + +.author-bio { + color: #686868; + font-size: 13px; + font-size: 0.8125rem; + line-height: 1.6153846154; + margin-bottom: 1.6153846154em; + overflow: hidden; +} + +.author-link { + white-space: nowrap; +} + +.entry-footer { + color: #686868; + font-family: Montserrat, "Helvetica Neue", sans-serif; + font-size: 13px; + font-size: 0.8125rem; + line-height: 1.6153846154; + margin-top: 2.1538461538em; +} + +.entry-footer:empty { + margin: 0; +} + +.entry-footer a { + color: #686868; +} + +.entry-footer a:hover, +.entry-footer a:focus { + color: #007acc; +} + +.entry-footer > span:not(:first-child):before { + content: "\002f"; + display: inline-block; + opacity: 0.7; + padding: 0 0.538461538em; +} + +.entry-footer .avatar { + height: 21px; + margin: -0.1538461538em 0.5384615385em 0 0; + width: 21px; +} + +.sticky-post { + color: #686868; + display: block; + font-family: Montserrat, "Helvetica Neue", sans-serif; + font-size: 13px; + font-size: 0.8125rem; + letter-spacing: 0.076923077em; + line-height: 1.6153846154; + margin-bottom: 0.5384615385em; + text-transform: uppercase; +} + +/** + * IE8 and earlier will drop any block with CSS3 selectors. + * Do not combine these styles with the next block. + */ +.updated:not(.published) { + display: none; +} + +.sticky .posted-on, +.byline { + display: none; +} + +.single .byline, +.group-blog .byline { + display: inline; +} + +.page-header { + border-top: 4px solid #1a1a1a; + margin: 0 7.6923% 3.5em; + padding-top: 1.75em; +} + +body.error404 .page-header, +body.search-no-results .page-header { + border-top: 0; + padding-top: 0; +} + +.page-title { + font-family: Montserrat, "Helvetica Neue", sans-serif; + font-size: 23px; + font-size: 1.4375rem; + line-height: 1.2173913043; +} + +.taxonomy-description { + color: #686868; + font-size: 13px; + font-size: 0.8125rem; + line-height: 1.6153846154; +} + +.taxonomy-description p { + margin: 0.5384615385em 0 1.6153846154em; +} + +.taxonomy-description > :last-child { + margin-bottom: 0; +} + +.page-links { + clear: both; + font-family: Montserrat, "Helvetica Neue", sans-serif; + margin: 0 0 1.75em; +} + +.page-links a, +.page-links > span { + border: 1px solid #d1d1d1; + border-radius: 2px; + display: inline-block; + font-size: 13px; + font-size: 0.8125rem; + height: 1.8461538462em; + line-height: 1.6923076923em; + margin-right: 0.3076923077em; + text-align: center; + width: 1.8461538462em; +} + +.page-links a { + background-color: #1a1a1a; + border-color: #1a1a1a; + color: #fff; +} + +.page-links a:hover, +.page-links a:focus { + background-color: #007acc; + border-color: transparent; + color: #fff; +} + +.page-links > .page-links-title { + border: 0; + color: #1a1a1a; + height: auto; + margin: 0; + padding-right: 0.6153846154em; + width: auto; +} + +.entry-attachment { + margin-bottom: 1.75em; +} + +.entry-caption { + color: #686868; + font-size: 13px; + font-size: 0.8125rem; + font-style: italic; + line-height: 1.6153846154; + padding-top: 1.0769230769em; +} + +.entry-caption > :last-child { + margin-bottom: 0; +} + +.content-bottom-widgets { + margin: 0 7.6923%; +} + +.content-bottom-widgets .widget-area { + margin-bottom: 3.5em; +} + +.entry-content figcaption, +.entry-summary figcaption { + font-style: italic; + text-align: center; + padding-bottom: .5em; +} + +/** + * 11.3 - Post Formats + */ + +.format-aside .entry-title, +.format-image .entry-title, +.format-video .entry-title, +.format-quote .entry-title, +.format-gallery .entry-title, +.format-status .entry-title, +.format-link .entry-title, +.format-audio .entry-title, +.format-chat .entry-title { + font-size: 19px; + font-size: 1.1875rem; + line-height: 1.473684211; + margin-bottom: 1.473684211em; +} + +.blog .format-status .entry-title, +.archive .format-status .entry-title { + display: none; +} + + +/** + * 11.4 - Comments + */ + +.comments-area { + margin: 0 7.6923% 3.5em; +} + +.comment-list + .comment-respond, +.comment-navigation + .comment-respond { + padding-top: 1.75em; +} + +.comments-title, +.comment-reply-title { + border-top: 4px solid #1a1a1a; + font-family: Montserrat, "Helvetica Neue", sans-serif; + font-size: 23px; + font-size: 1.4375rem; + font-weight: 700; + line-height: 1.3125; + padding-top: 1.217391304em; +} + +.comments-title { + margin-bottom: 1.217391304em; +} + +.comment-list { + list-style: none; + margin: 0; +} + +.comment-list article, +.comment-list .pingback, +.comment-list .trackback { + border-top: 1px solid #d1d1d1; + padding: 1.75em 0; +} + +.comment-list .children { + list-style: none; + margin: 0; +} + +.comment-list .children > li { + padding-left: 0.875em; +} + +.comment-author { + color: #1a1a1a; + margin-bottom: 0.4375em; +} + +.comment-author .avatar { + float: left; + height: 28px; + margin-right: 0.875em; + position: relative; + width: 28px; +} + +.bypostauthor > article .fn:after { + content: "\f304"; + left: 3px; + position: relative; + top: 5px; +} + +.comment-metadata, +.pingback .edit-link { + color: #686868; + font-family: Montserrat, "Helvetica Neue", sans-serif; + font-size: 13px; + font-size: 0.8125rem; + line-height: 1.6153846154; +} + +.comment-metadata { + margin-bottom: 2.1538461538em; +} + +.comment-metadata a, +.pingback .comment-edit-link { + color: #686868; +} + +.comment-metadata a:hover, +.comment-metadata a:focus, +.pingback .comment-edit-link:hover, +.pingback .comment-edit-link:focus { + color: #007acc; +} + +.comment-metadata .edit-link, +.pingback .edit-link { + display: inline-block; +} + +.comment-metadata .edit-link:before, +.pingback .edit-link:before { + content: "\002f"; + display: inline-block; + opacity: 0.7; + padding: 0 0.538461538em; +} + +.comment-content ul, +.comment-content ol { + margin: 0 0 1.5em 1.25em; +} + +.comment-content li > ul, +.comment-content li > ol { + margin-bottom: 0; +} + +.comment-reply-link { + border: 1px solid #d1d1d1; + border-radius: 2px; + color: #007acc; + display: inline-block; + font-family: Montserrat, "Helvetica Neue", sans-serif; + font-size: 13px; + font-size: 0.8125rem; + line-height: 1; + margin-top: 2.1538461538em; + padding: 0.5384615385em 0.5384615385em 0.4615384615em; +} + +.comment-reply-link:hover, +.comment-reply-link:focus { + border-color: currentColor; + color: #007acc; + outline: 0; +} + +.comment-form { + padding-top: 1.75em; +} + +.comment-form label { + color: #686868; + display: block; + font-family: Montserrat, "Helvetica Neue", sans-serif; + font-size: 13px; + font-size: 0.8125rem; + letter-spacing: 0.076923077em; + line-height: 1.6153846154; + margin-bottom: 0.5384615385em; + text-transform: uppercase; +} + +.comment-list .comment-form { + padding-bottom: 1.75em; +} + +.comment-notes, +.comment-awaiting-moderation, +.logged-in-as, +.form-allowed-tags { + color: #686868; + font-size: 13px; + font-size: 0.8125rem; + line-height: 1.6153846154; + margin-bottom: 2.1538461538em; +} + +.no-comments { + border-top: 1px solid #d1d1d1; + font-family: Montserrat, "Helvetica Neue", sans-serif; + font-weight: 700; + margin: 0; + padding-top: 1.75em; +} + +.comment-navigation + .no-comments { + border-top: 0; + padding-top: 0; +} + +.form-allowed-tags code { + font-family: Inconsolata, monospace; +} + +.form-submit { + margin-bottom: 0; +} + +.required { + color: #007acc; + font-family: Merriweather, Georgia, serif; +} + +.comment-reply-title small { + font-size: 100%; +} + +.comment-reply-title small a { + border: 0; + float: right; + height: 32px; + overflow: hidden; + width: 26px; +} + +.comment-reply-title small a:hover, +.comment-reply-title small a:focus { + color: #1a1a1a; +} + +.comment-reply-title small a:before { + content: "\f405"; + font-size: 32px; + position: relative; + top: -5px; +} + + +/** + * 11.5 - Sidebar + */ + +.sidebar { + margin-bottom: 3.5em; + padding: 0 7.6923%; +} + + +/** + * 11.6 - Footer + */ + +.site-footer { + padding: 0 7.6923% 1.75em; +} + +.site-info { + color: #686868; + font-size: 13px; + font-size: 0.8125rem; + line-height: 1.6153846154; +} + +.site-info a { + color: #686868; +} + +.site-info a:hover, +.site-info a:focus { + color: #007acc; +} + +.site-footer .site-title { + font-family: inherit; + font-size: inherit; + font-weight: 400; +} + +.site-footer .site-title:after { + content: "\002f"; + display: inline-block; + font-family: Montserrat, sans-serif; + opacity: 0.7; + padding: 0 0.307692308em 0 0.538461538em; +} + + +/** + * 12.0 - Media + */ + +.site .avatar { + border-radius: 50%; +} + +.entry-content .wp-smiley, +.entry-summary .wp-smiley, +.comment-content .wp-smiley, +.textwidget .wp-smiley { + border: none; + margin-top: 0; + margin-bottom: 0; + padding: 0; +} + +.entry-content a img, +.entry-summary a img, +.comment-content a img, +.textwidget a img { + display: block; +} + +/* Make sure embeds and iframes fit their containers. */ +embed, +iframe, +object, +video { + margin-bottom: 1.75em; + max-width: 100%; + vertical-align: middle; +} + +p > embed, +p > iframe, +p > object, +p > video { + margin-bottom: 0; +} + +.entry-content .wp-audio-shortcode a, +.entry-content .wp-playlist a { + box-shadow: none; +} + +.wp-audio-shortcode, +.wp-video, +.wp-playlist.wp-audio-playlist { + margin-top: 0; + margin-bottom: 1.75em; +} + +.wp-playlist.wp-audio-playlist { + padding-bottom: 0; +} + +.wp-playlist .wp-playlist-tracks { + margin-top: 0; +} + +.wp-playlist-item .wp-playlist-caption { + border-bottom: 0; + padding: 0.7142857143em 0; +} + +.wp-playlist-item .wp-playlist-item-length { + top: 0.7142857143em; +} + + +/** + * 12.1 - Captions + */ + +.wp-caption { + margin-bottom: 1.75em; + max-width: 100%; +} + +.wp-caption img[class*="wp-image-"] { + display: block; + margin: 0; +} + +.wp-caption .wp-caption-text { + color: #686868; + font-size: 13px; + font-size: 0.8125rem; + font-style: italic; + line-height: 1.6153846154; + padding-top: 0.5384615385em; +} + + +/** + * 12.2 - Galleries + */ + +.gallery { + margin: 0 -1.1666667% 1.75em; +} + +.gallery-item { + display: inline-block; + max-width: 33.33%; + padding: 0 1.1400652% 2.2801304%; + text-align: center; + vertical-align: top; + width: 100%; +} + +.gallery-columns-1 .gallery-item { + max-width: 100%; +} + +.gallery-columns-2 .gallery-item { + max-width: 50%; +} + +.gallery-columns-4 .gallery-item { + max-width: 25%; +} + +.gallery-columns-5 .gallery-item { + max-width: 20%; +} + +.gallery-columns-6 .gallery-item { + max-width: 16.66%; +} + +.gallery-columns-7 .gallery-item { + max-width: 14.28%; +} + +.gallery-columns-8 .gallery-item { + max-width: 12.5%; +} + +.gallery-columns-9 .gallery-item { + max-width: 11.11%; +} + +.gallery-icon img { + margin: 0 auto; +} + +.gallery-caption { + color: #686868; + display: block; + font-size: 13px; + font-size: 0.8125rem; + font-style: italic; + line-height: 1.6153846154; + padding-top: 0.5384615385em; +} + +.gallery-columns-6 .gallery-caption, +.gallery-columns-7 .gallery-caption, +.gallery-columns-8 .gallery-caption, +.gallery-columns-9 .gallery-caption { + display: none; +} + + +/** + * 13.0 - Multisites + */ + +.widecolumn { + margin-bottom: 3.5em; + padding: 0 7.6923%; +} + +.widecolumn .mu_register { + width: auto; +} + +.widecolumn .mu_register .mu_alert { + background: transparent; + border-color: #d1d1d1; + color: inherit; + margin-bottom: 3.5em; + padding: 1.75em; +} + +.widecolumn form, +.widecolumn .mu_register form { + margin-top: 0; +} + +.widecolumn h2 { + font-size: 23px; + font-size: 1.4375rem; + font-weight: 900; + line-height: 1.2173913043; + margin-bottom: 1.2173913043em; +} + +.widecolumn p { + margin: 1.75em 0; +} + +.widecolumn p + h2 { + margin-top: 2.4347826087em; +} + +.widecolumn label, +.widecolumn .mu_register label { + color: #686868; + font-family: Montserrat, "Helvetica Neue", sans-serif; + font-size: 13px; + font-size: 0.8125rem; + font-weight: 400; + letter-spacing: 0.076923077em; + line-height: 1.6153846154; + text-transform: uppercase; +} + +.widecolumn .mu_register label { + margin: 2.1538461538em 0.7692307692em 0.5384615385em 0; +} + +.widecolumn .mu_register label strong { + font-weight: 400; +} + +.widecolumn #key, +.widecolumn .mu_register #blog_title, +.widecolumn .mu_register #user_email, +.widecolumn .mu_register #blogname, +.widecolumn .mu_register #user_name { + font-size: 16px; + font-size: 1rem; + width: 100%; +} + +.widecolumn .mu_register #blogname { + margin: 0; +} + +.widecolumn .mu_register #blog_title, +.widecolumn .mu_register #user_email, +.widecolumn .mu_register #user_name { + margin: 0 0 0.375em; +} + +.widecolumn #submit, +.widecolumn .mu_register input[type="submit"] { + font-size: 16px; + font-size: 1rem; + margin: 0; + width: auto; +} + +.widecolumn .mu_register .prefix_address, +.widecolumn .mu_register .suffix_address { + font-size: inherit; +} + +.widecolumn .mu_register > :last-child, +.widecolumn form > :last-child { + margin-bottom: 0; +} + + +/** + * 14.0 - Media Queries + */ + +/** + * Does the same thing as , + * but in the future W3C standard way. -ms- prefix is required for IE10+ to + * render responsive styling in Windows 8 "snapped" views; IE10+ does not honor + * the meta tag. See https://core.trac.wordpress.org/ticket/25888. + */ +@-ms-viewport { + width: device-width; +} + +@viewport { + width: device-width; +} + + +/** + * 14.1 - >= 710px + */ + +@media screen and (min-width: 44.375em) { + body:not(.custom-background-image):before, + body:not(.custom-background-image):after { + background: inherit; + content: ""; + display: block; + height: 21px; + left: 0; + position: fixed; + width: 100%; + z-index: 99; + } + + body:not(.custom-background-image):before { + top: 0; + } + + body:not(.custom-background-image).admin-bar:before { + top: 46px; + } + + body:not(.custom-background-image):after { + bottom: 0; + } + + .site { + margin: 21px; + } + + .site-main { + margin-bottom: 5.25em; + } + + .site-header { + padding: 3.9375em 7.6923%; + } + + .site-branding { + margin-top: 1.3125em; + margin-bottom: 1.3125em; + } + + .site-title { + font-size: 28px; + font-size: 1.75rem; + line-height: 1.25; + } + + .site-description { + display: block; + } + + .menu-toggle { + font-size: 16px; + font-size: 1.0rem; + margin: 1.3125em 0; + padding: 0.8125em 0.875em 0.6875em; + } + + .site-header-menu { + margin: 1.3125em 0; + } + + .site-header .main-navigation + .social-navigation { + margin-top: 2.625em; + } + + .header-image { + margin: 1.3125em 0; + } + + .pagination { + margin: 0 23.0769% 4.421052632em 7.6923% + } + + .post-navigation { + margin-bottom: 5.25em; + } + + .post-navigation .post-title { + font-size: 28px; + font-size: 1.75rem; + line-height: 1.25; + } + + /* restore screen-reader-text */ + .pagination .current .screen-reader-text { + position: absolute !important; + } + + .pagination .page-numbers { + display: inline-block; + } + + .site-main > article { + margin-bottom: 5.25em; + } + + .entry-header, + .post-thumbnail, + .entry-content, + .entry-summary, + .entry-footer, + .comments-area, + .image-navigation, + .post-navigation, + .page-header, + .page-content, + .content-bottom-widgets { + margin-right: 23.0769%; + } + + .entry-title { + font-size: 33px; + font-size: 2.0625rem; + line-height: 1.2727272727; + margin-bottom: 0.8484848485em; + } + + .entry-content blockquote.alignleft, + .entry-content blockquote.alignright { + border-width: 4px 0 0 0; + padding: 0.9473684211em 0 0; + width: -webkit-calc(50% - 0.736842105em); + width: calc(50% - 0.736842105em); + } + + .entry-content blockquote:not(.alignleft):not(.alignright), + .entry-summary blockquote, + .comment-content blockquote { + margin-left: -1.473684211em; + } + + .entry-content blockquote blockquote:not(.alignleft):not(.alignright), + .entry-summary blockquote blockquote, + .comment-content blockquote blockquote { + margin-left: 0; + } + + .entry-content ul, + .entry-summary ul, + .comment-content ul, + .entry-content ol, + .entry-summary ol, + .comment-content ol { + margin-left: 0; + } + + .entry-content li > ul, + .entry-summary li > ul, + .comment-content li > ul, + .entry-content blockquote > ul, + .entry-summary blockquote > ul, + .comment-content blockquote > ul { + margin-left: 1.25em; + } + + .entry-content li > ol, + .entry-summary li > ol, + .comment-content li > ol, + .entry-content blockquote > ol, + .entry-summary blockquote > ol, + .comment-content blockquote > ol { + margin-left: 1.5em; + } + + .comment-author { + margin-bottom: 0; + } + + .comment-author .avatar { + height: 42px; + position: relative; + top: 0.25em; + width: 42px; + } + + .comment-list .children > li { + padding-left: 1.75em; + } + + .comment-list + .comment-respond, + .comment-navigation + .comment-respond { + padding-top: 3.5em; + } + + .comments-area, + .widget, + .content-bottom-widgets .widget-area { + margin-bottom: 5.25em; + } + + .sidebar, + .widecolumn { + margin-bottom: 5.25em; + padding-right: 23.0769%; + } + + body:not(.search-results) .entry-summary li > ul, + body:not(.search-results) .entry-summary blockquote > ul { + margin-left: 1.157894737em; + } + + body:not(.search-results) .entry-summary li > ol, + body:not(.search-results) .entry-summary blockquote > ol { + margin-left: 1.473684211em; + } +} + + +/** + * 14.2 - >= 783px + */ + +@media screen and (min-width: 48.9375em) { + body:not(.custom-background-image).admin-bar:before { + top: 32px; + } +} + + +/** + * 14.3 - >= 910px + */ + +@media screen and (min-width: 56.875em) { + .site-header { + padding-right: 4.5455%; + padding-left: 4.5455%; + } + + .site-header-main { + -webkit-align-items: flex-start; + -ms-flex-align: start; + align-items: flex-start; + } + + .site-header-menu { + display: block; + -webkit-flex: 0 1 auto; + -ms-flex: 0 1 auto; + flex: 0 1 auto; + } + + .main-navigation { + margin: 0 -0.875em; + } + + .main-navigation .primary-menu, + .main-navigation .primary-menu > li { + border: 0; + } + + .main-navigation .primary-menu > li { + float: left; + } + + .main-navigation a { + outline-offset: -8px; + padding: 0.65625em 0.875em; + white-space: nowrap; + } + + .main-navigation li:hover > a, + .main-navigation li.focus > a { + color: #007acc; + } + + .main-navigation ul ul { + border-bottom: 1px solid #d1d1d1; + display: block; + left: -999em; + margin: 0; + position: absolute; + z-index: 99999; + } + + .main-navigation ul ul ul { + top: -1px; + } + + .main-navigation ul ul ul:before, + .main-navigation ul ul ul:after { + border: 0; + } + + .main-navigation ul ul li { + background-color: #fff; + border: 1px solid #d1d1d1; + border-bottom-width: 0; + } + + .main-navigation ul ul a { + white-space: normal; + width: 12.6875em; + } + + .main-navigation ul ul:before, + .main-navigation ul ul:after { + border-style: solid; + content: ""; + position: absolute; + } + + .main-navigation ul ul:before { + border-color: #d1d1d1 transparent; + border-width: 0 10px 10px; + right: 9px; + top: -9px; + } + + .main-navigation ul ul:after { + border-color: #fff transparent; + border-width: 0 8px 8px; + right: 11px; + top: -7px; + } + + .main-navigation li:hover > ul, + .main-navigation li.focus > ul { + left: auto; + right: 0; + } + + .main-navigation ul ul li:hover > ul, + .main-navigation ul ul li.focus > ul { + left: auto; + right: 100%; + } + + .main-navigation .menu-item-has-children > a, .main-navigation .item.dropdown > a { + margin: 0; + padding-right: 2.25em; + } + + .main-navigation .menu-item-has-children > a:after, .main-navigation .item.dropdown > a:after { + content: "\f431"; + position: absolute; + right: 0.625em; + top: 0.8125em; + } + + .main-navigation ul ul .menu-item-has-children > a, .main-navigation ul ul .item.dropdown > a { + padding-right: 2.0625em; + } + + .main-navigation ul ul .menu-item-has-children > a:after, .main-navigation ul ul .item.dropdown > a:after { + right: 0.5625em; + top: 0.875em; + -webkit-transform: rotate(90deg); + -moz-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); + } + + .dropdown-toggle-button, + .main-navigation ul .dropdown-toggle-button.toggled-on, + .menu-toggle, + .site-header .social-navigation, + .site-footer .main-navigation { + display: none; + } + + .site-content { + padding: 0 4.5455%; + } + + .content-area { + float: left; + margin-right: -100%; + width: 70%; + } + + .entry-header, + .post-thumbnail, + .entry-content, + .entry-summary, + .entry-footer, + .comments-area, + .image-navigation, + .post-navigation, + .pagination, + .page-header, + .page-content, + .content-bottom-widgets { + margin-right: 0; + margin-left: 0; + } + + .sidebar { + float: left; + margin-left: 75%; + padding: 0; + width: 25%; + } + + .widget { + font-size: 13px; + font-size: 0.8125rem; + line-height: 1.6153846154; + margin-bottom: 3.230769231em; + padding-top: 1.615384615em; + } + + .widget .widget-title { + margin-bottom: 1.3125em; + } + + .widget p, + .widget address, + .widget hr, + .widget ul, + .widget ol, + .widget dl, + .widget dd, + .widget table { + margin-bottom: 1.6153846154em; + } + + .widget li > ul, + .widget li > ol { + margin-bottom: 0; + } + + .widget blockquote { + font-size: 16px; + font-size: 1rem; + line-height: 1.3125; + margin-bottom: 1.3125em; + padding-left: 1.0625em; + } + + .widget blockquote cite, + .widget blockquote small { + font-size: 13px; + font-size: 0.8125rem; + line-height: 1.6153846154; + } + + .widget th, + .widget td { + padding: 0.5384615385em; + } + + .widget pre { + font-size: 13px; + font-size: 0.8125rem; + line-height: 1.6153846154; + margin-bottom: 1.6153846154em; + padding: 0.5384615385em; + } + + .widget fieldset { + margin-bottom: 1.6153846154em; + padding: 0.5384615385em; + } + + .widget button, + .widget input, + .widget select, + .widget textarea { + font-size: 13px; + font-size: 0.8125rem; + line-height: 1.6153846154; + } + + .widget button, + .widget input[type="button"], + .widget input[type="reset"], + .widget input[type="submit"] { + line-height: 1; + padding: 0.846153846em; + } + + .widget input[type="text"], + .widget input[type="email"], + .widget input[type="url"], + .widget input[type="password"], + .widget input[type="search"], + .widget input[type="tel"], + .widget input[type="number"], + .widget textarea { + padding: 0.4615384615em 0.5384615385em; + } + + .widget h1 { + font-size: 23px; + font-size: 1.4375rem; + line-height: 1.2173913043; + margin-bottom: 0.9130434783em; + } + + .widget h2 { + font-size: 19px; + font-size: 1.1875rem; + line-height: 1.1052631579; + margin-bottom: 1.1052631579em; + } + + .widget h3 { + font-size: 16px; + font-size: 1rem; + line-height: 1.3125; + margin-bottom: 1.3125em; + } + + .widget h4, + .widget h5, + .widget h6 { + font-size: 13px; + font-size: 0.8125rem; + line-height: 1.6153846154; + margin-bottom: 0.9130434783em; + } + + .widget .alignleft { + margin: 0.2307692308em 1.6153846154em 1.6153846154em 0; + } + + .widget .alignright { + margin: 0.2307692308em 0 1.6153846154em 1.6153846154em; + } + + .widget .aligncenter { + margin-bottom: 1.6153846154em; + } + + .widget_calendar td, + .widget_calendar th { + line-height: 2.6923076923; + padding: 0; + } + + .widget_rss .rssSummary:last-child { + margin-bottom: 1.615384615em; + } + + .widget input[type="search"].search-field { + width: -webkit-calc(100% - 35px); + width: calc(100% - 35px); + } + + .widget .search-submit:before { + font-size: 16px; + left: 1px; + line-height: 35px; + width: 34px; + } + + .widget button.search-submit { + padding: 0; + width: 35px; + } + + .tagcloud a { + margin: 0 0.2307692308em 0.5384615385em 0; + padding: 0.5384615385em 0.4615384615em 0.4615384615em; + } + + .textwidget h1 { + margin-top: 1.8260869565em; + } + + .textwidget h2 { + margin-top: 2.2105263158em; + } + + .textwidget h3 { + margin-top: 2.625em; + } + + .textwidget h4 { + letter-spacing: 0.153846154em; + } + + .textwidget h4, + .textwidget h5, + .textwidget h6 { + margin-top: 3.2307692308em; + } + + .content-bottom-widgets .widget-area:nth-child(1):nth-last-child(2), + .content-bottom-widgets .widget-area:nth-child(2):nth-last-child(1) { + float: left; + margin-right: 7.1428571%; + width: 46.42857145%; + } + + .content-bottom-widgets .widget-area:nth-child(2):nth-last-child(1):last-of-type { + margin-right: 0; + } + + .site-footer { + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + padding: 0 4.5455% 3.5em; + } + + .site-footer .social-navigation { + margin: 0; + -webkit-order: 2; + -ms-flex-order: 2; + order: 2; + } + + .site-info { + margin: 0.538461538em auto 0.538461538em 0; + -webkit-order: 1; + -ms-flex-order: 1; + order: 1; + } + + .no-sidebar .content-area { + float: none; + margin: 0; + width: 100%; + } + + .no-sidebar .entry-header, + .no-sidebar .entry-content, + .no-sidebar .entry-summary, + .no-sidebar .entry-footer, + .no-sidebar .comments-area, + .no-sidebar .image-navigation, + .no-sidebar .post-navigation, + .no-sidebar .pagination, + .no-sidebar .page-header, + .no-sidebar .page-content, + .no-sidebar .content-bottom-widgets { + margin-right: 15%; + margin-left: 15%; + } + + .widecolumn { + padding-right: 15%; + padding-left: 15%; + } +} + + +/** + * 14.4 - >= 985px + */ + +@media screen and (min-width: 61.5625em) { + .site-main { + margin-bottom: 7.0em; + } + + .site-header { + padding: 5.25em 4.5455%; + } + + .site-branding, + .site-header-menu, + .header-image { + margin-top: 1.75em; + margin-bottom: 1.75em; + } + + .image-navigation { + margin-bottom: 3.230769231em; + } + + .post-navigation { + margin-bottom: 7.0em; + } + + .pagination { + margin-bottom: 5.894736842em; + } + + .widget { + margin-bottom: 4.307692308em; + } + + .site-main > article { + margin-bottom: 7.0em; + } + + .entry-title { + font-size: 40px; + font-size: 2.5rem; + line-height: 1.225; + margin-bottom: 1.05em; + } + + .format-aside .entry-title, + .format-image .entry-title, + .format-video .entry-title, + .format-quote .entry-title, + .format-gallery .entry-title, + .format-status .entry-title, + .format-link .entry-title, + .format-audio .entry-title, + .format-chat .entry-title { + font-size: 23px; + font-size: 1.4375em; + line-height: 1.304347826; + margin-bottom: 1.826086957em; + } + + .post-thumbnail { + margin-bottom: 2.625em; + } + + .entry-content h1, + .entry-summary h1, + .comment-content h1 { + font-size: 33px; + font-size: 2.0625rem; + line-height: 1.2727272727; + margin-top: 1.696969697em; + margin-bottom: 0.8484848485em; + } + + .entry-content h2, + .entry-summary h2, + .comment-content h2 { + font-size: 28px; + font-size: 1.75rem; + line-height: 1.25; + margin-top: 2em; + margin-bottom: 1em; + } + + .entry-content h3, + .entry-summary h3, + .comment-content h3 { + font-size: 23px; + font-size: 1.4375rem; + line-height: 1.2173913043; + margin-top: 2.4347826087em; + margin-bottom: 1.2173913043em; + } + + .entry-content h4, + .entry-summary h4, + .entry-intro h4, + .comment-content h4 { + letter-spacing: 0.131578947em; + } + + .entry-content h4, + .entry-content h5, + .entry-content h6, + .entry-summary h4, + .entry-summary h5, + .entry-summary h6, + .comment-content h4, + .comment-content h5, + .comment-content h6 { + font-size: 19px; + font-size: 1.1875rem; + line-height: 1.1052631579; + margin-top: 2.9473684211em; + margin-bottom: 1.473684211em; + } + + .author-info { + border-bottom-width: 0; + padding-bottom: 0; + } + + .comment-list + .comment-respond, + .comment-navigation + .comment-respond { + padding-top: 5.25em; + } + + .comments-area, + .sidebar, + .content-bottom-widgets .widget-area, + .widecolumn { + margin-bottom: 7.0em; + } + + body:not(.search-results) .entry-summary { + margin-bottom: 2.210526316em; + } + + body:not(.search-results) .entry-header + .entry-summary { + margin-top: -1.105263158em; + } + + body:not(.search-results) article:not(.type-page) .entry-content { + float: right; + width: 71.42857144%; + } + + body:not(.search-results) article:not(.type-page) .entry-content > blockquote.alignleft.below-entry-meta { + margin-left: -40%; + width: -webkit-calc(60% - 1.4736842105em); + width: calc(60% - 1.4736842105em); + } + + body:not(.search-results) article:not(.type-page) img.below-entry-meta, + body:not(.search-results) article:not(.type-page) figure.below-entry-meta { + clear: both; + display: block; + float: none; + margin-right: 0; + margin-left: -40%; + max-width: 140%; + } + + body:not(.search-results) article:not(.type-page) figure.below-entry-meta img.below-entry-meta, + body:not(.search-results) article:not(.type-page) table figure.below-entry-meta, + body:not(.search-results) article:not(.type-page) table img.below-entry-meta { + margin: 0; + max-width: 100%; + } + + body:not(.search-results) article:not(.type-page) .entry-footer { + float: left; + margin-top: 0.1538461538em; + width: 21.42857143%; + } + + body:not(.search-results) article:not(.type-page) .entry-footer > span:not(:first-child):before { + display: none; + } + + .single .byline, + .full-size-link, + body:not(.search-results).group-blog .byline, + body:not(.search-results) .entry-format, + body:not(.search-results) .cat-links, + body:not(.search-results) .tags-links, + body:not(.search-results) article:not(.sticky) .posted-on, + body:not(.search-results) article:not(.type-page) .comments-link, + body:not(.search-results) article:not(.type-page) .entry-footer .edit-link { + display: block; + margin-bottom: 0.5384615385em; + } + + body:not(.search-results) article:not(.type-page) .entry-footer > span:last-child { + margin-bottom: 0; + } + + body:not(.search-results) article:not(.type-page) .entry-footer .avatar { + display: block; + height: auto; + margin: 0 0 0.5384615385em; + width: 49px; + } + + body.no-sidebar:not(.search-results) article:not(.type-page) .entry-content { + float: left; + margin-right: -100%; + margin-left: 34.99999999%; + width: 50.00000001%; + } + + body.no-sidebar:not(.search-results) article:not(.type-page) .entry-footer { + margin-right: -100%; + margin-left: 15%; + width: 15%; + } +} + + +/** + * 14.5 - >= 1200px + */ + +@media screen and (min-width: 75em) { + body:not(.search-results) .entry-summary { + font-size: 23px; + font-size: 1.4375rem; + line-height: 1.5217391304; + margin-bottom: 1.826086957em; + } + + body:not(.search-results) .entry-header + .entry-summary { + margin-top: -0.913043478em; + } + + body:not(.search-results) .entry-summary p, + body:not(.search-results) .entry-summary address, + body:not(.search-results) .entry-summary hr, + body:not(.search-results) .entry-summary ul, + body:not(.search-results) .entry-summary ol, + body:not(.search-results) .entry-summary dl, + body:not(.search-results) .entry-summary dd, + body:not(.search-results) .entry-summary table { + margin-bottom: 1.5217391304em; + } + + body:not(.search-results) .entry-summary li > ul, + body:not(.search-results) .entry-summary blockquote > ul { + margin-left: 0.956521739em; + } + + body:not(.search-results) .entry-summary li > ol, + body:not(.search-results) .entry-summary blockquote > ol { + margin-left: 1.52173913em; + } + + body:not(.search-results) .entry-summary blockquote { + font-size: 23px; + font-size: 1.4375rem; + line-height: 1.5217391304; + margin: 0 0 1.5217391304em; + padding-left: 1.347826087em; + } + + body:not(.search-results) .entry-summary blockquote:not(.alignleft):not(.alignright) { + margin-left: -1.52173913em; + } + + body:not(.search-results) .entry-summary blockquote blockquote:not(.alignleft):not(.alignright) { + margin-left: 0; + } + + body:not(.search-results) .entry-summary blockquote cite, + body:not(.search-results) .entry-summary blockquote small { + font-size: 19px; + font-size: 1.1875rem; + line-height: 1.8421052632; + } + + body:not(.search-results) .entry-summary th, + body:not(.search-results) .entry-summary td { + padding: 0.3043478261em; + } + + body:not(.search-results) .entry-summary pre { + font-size: 16px; + font-size: 1rem; + line-height: 1.75; + margin-bottom: 1.75em; + padding: 1.75em; + } + + body:not(.search-results) .entry-summary fieldset { + margin-bottom: 1.5217391304em; + padding: 0.3043478261em; + } + + body:not(.search-results) .entry-summary h1 { + margin-top: 2.121212121em; + margin-bottom: 1.060606061em; + } + + body:not(.search-results) .entry-summary h2 { + margin-top: 2.5em; + margin-bottom: 1.25em; + } + + body:not(.search-results) .entry-summary h3 { + margin-top: 3.043478261em; + margin-bottom: 1.52173913em; + } + + body:not(.search-results) .entry-summary h4, + body:not(.search-results) .entry-summary h5, + body:not(.search-results) .entry-summary h6 { + margin-top: 3.684210526em; + margin-bottom: 1.842105263em; + } + + body:not(.search-results) .entry-summary h1:first-child, + body:not(.search-results) .entry-summary h2:first-child, + body:not(.search-results) .entry-summary h3:first-child, + body:not(.search-results) .entry-summary h4:first-child, + body:not(.search-results) .entry-summary h5:first-child, + body:not(.search-results) .entry-summary h6:first-child { + margin-top: 0; + } + + body:not(.search-results) .entry-summary .alignleft { + margin: 0.2608695652em 1.5217391304em 1.5217391304em 0; + } + + body:not(.search-results) .entry-summary .alignright { + margin: 0.2608695652em 0 1.5217391304em 1.5217391304em; + } + + body:not(.search-results) .entry-summary .aligncenter { + margin-bottom: 1.5217391304em; + } +} + + +/** + * 15.0 - Print + */ + +@media print { + form, + button, + input, + select, + textarea, + .navigation, + .main-navigation, + .social-navigation, + .sidebar, + .content-bottom-widgets, + .header-image, + .page-links, + .edit-link, + .comment-respond, + .comment-edit-link, + .comment-reply-link, + .comment-metadata .edit-link, + .pingback .edit-link { + display: none; + } + + body, + blockquote cite, + blockquote small, + pre, + .entry-content h4, + .entry-content h5, + .entry-content h6, + .entry-summary h4, + .entry-summary h5, + .entry-summary h6, + .comment-content h4, + .comment-content h5, + .comment-content h6, + .entry-content .author-title { + font-size: 12pt; + } + + blockquote { + font-size: 14.25pt; + } + + .site-title, + .page-title, + .comments-title, + .entry-content h2, + .entry-summary h2, + .comment-content h2, + .widecolumn h2 { + font-size: 17.25pt; + } + + .site-description { + display: block; + } + + .entry-title { + font-size: 24.75pt; + line-height: 1.2727272727; + margin-bottom: 1.696969697em; + } + + .format-aside .entry-title, + .format-image .entry-title, + .format-video .entry-title, + .format-quote .entry-title, + .format-gallery .entry-title, + .format-status .entry-title, + .format-link .entry-title, + .format-audio .entry-title, + .format-chat .entry-title { + font-size: 17.25pt; + line-height: 1.304347826; + margin-bottom: 1.826086957em; + } + + .entry-content h1, + .entry-summary h1, + .comment-content h1 { + font-size: 21pt; + } + + .entry-content h3, + .entry-summary h3, + .comment-content h3, + body:not(.search-results) .entry-summary { + font-size: 14.25pt; + } + + .site-description, + .author-bio, + .entry-footer, + .sticky-post, + .taxonomy-description, + .entry-caption, + .comment-metadata, + .comment-notes, + .comment-awaiting-moderation, + .site-info, + .wp-caption .wp-caption-text, + .gallery-caption { + font-size: 9.75pt; + } + + body, + .site { + background: none !important; /* Brute force since user agents all print differently. */ + } + + body, + blockquote cite, + blockquote small, + .site-branding .site-title a, + .entry-title a, + .comment-author { + color: #1a1a1a !important; /* Make sure color schemes don't affect to print */ + } + + blockquote, + .page-header, + .comments-title { + border-color: #1a1a1a !important; /* Make sure color schemes don't affect to print */ + } + + blockquote, + .site-description, + body:not(.search-results) .entry-summary, + body:not(.search-results) .entry-summary blockquote, + .author-bio, + .entry-footer, + .entry-footer a, + .sticky-post, + .taxonomy-description, + .entry-caption, + .comment-author, + .comment-metadata a, + .comment-notes, + .comment-awaiting-moderation, + .site-info, + .site-info a, + .wp-caption .wp-caption-text, + .gallery-caption { + color: #686868 !important; /* Make sure color schemes don't affect to print */ + } + + code, + hr { + background-color: #d1d1d1 !important; /* Make sure color schemes don't affect to print */ + } + + pre, + abbr, + acronym, + table, + th, + td, + .author-info, + .comment-list article, + .comment-list .pingback, + .comment-list .trackback, + .no-comments { + border-color: #d1d1d1 !important; /* Make sure color schemes don't affect to print */ + } + + a { + color: #007acc !important; /* Make sure color schemes don't affect to print */ + } + + .entry-content a, + .entry-summary a, + .taxonomy-description a, + .comment-content a, + .pingback .comment-body > a { + box-shadow: none; + border-bottom: 1px solid #007acc !important; /* Make sure color schemes don't affect to print */ + } + + .site { + margin: 5%; + } + + .site-inner { + max-width: none; + } + + .site-header { + padding: 0 0 1.75em; + } + + .site-branding { + margin-top: 0; + margin-bottom: 1.75em; + } + + .site-main { + margin-bottom: 3.5em; + } + + .entry-header, + .entry-footer, + .page-header, + .page-content, + .entry-content, + .entry-summary, + .post-thumbnail, + .comments-area { + margin-right: 0; + margin-left: 0; + } + + .post-thumbnail, + .site-main > article { + margin-bottom: 3.5em; + } + + .entry-content blockquote.alignleft, + .entry-content blockquote.alignright { + border-width: 4px 0 0 0; + padding: 0.9473684211em 0 0; + width: -webkit-calc(50% - 0.736842105em); + width: calc(50% - 0.736842105em); + } + + body:not(.search-results) .entry-header + .entry-summary { + margin-top: -1.473684211em; + } + + .site-footer, + .widecolumn { + padding: 0; + } +} + +/*---------------------------- + Archive +-----------------------------*/ + +ul.archivegroup { + margin-bottom: 5px; + list-style: outside none none; + margin-left: 0; +} + +.archivegroup .expanded ul { + display: block; +} + +.archivegroup .collapsed ul { + display: none; +} + +ul.month { + list-style: outside none none; + margin: 0.5em 0 0 1.3em; + padding: 0; +} + +/*---------------------------- + Tab +-----------------------------*/ + +.tab { + width: 100%; + line-height: 1; + border-bottom: 1px solid #F1F1F1; + margin-bottom:1.2308em; +} + +.tab ul { + padding:0; + margin:0; +} + +.tab li { + display: inline-block; + margin:0; + padding:0; +} + +.tab a { + background: #F1F1F1; + border-radius: 6px 6px 0px 0; + color: #555555; + text-align: center; + padding: 8px 14px; + display: inline-block; + margin: 0 5px; +} + +/*---------------------------- + Custom +-----------------------------*/ + +.tags-links a:after { + content:", "; +} + +.tags-links a:last-child:after { + content:""; +} + +.post-list .tags-links a { + margin-right: 5px; +} + +.post-list .tags-links a:last-child { + margin-right: 0px; +} + +.copyright p { + display:inline; + margin-right: 5px; + margin-bottom: 0; +} + +.copyright p :last-child { + margin-right: 0; +} + +.author-description p { + color: #686868; + font-size: 0.8125rem; + line-height: 1.61538; + margin-bottom: 1.61538em; + overflow: hidden; +} + +/*---------------------------- + Embed +-----------------------------*/ + + +@media all and (max-width: 480px) { + + .embed-youtube iframe { + height: 250px!important; + } + + .embed-soundcloud iframe { + height: 150px!important; + } + +} + +@media all and (max-width: 360px) { + + .embed-youtube iframe { + height: 200px!important; + } + +} + +.post-link a:after { + font-family: "Genericons"; + content: "\f442"; + position: relative; + top: 3px; + font-weight: normal; +} + +.nav li.active a { + font-weight: 700; +} + +.nav .dropdown-menu li a { + font-weight: 400; +} + +.nav li.active .dropdown-toggle, .nav .dropdown-menu li.active a { + font-weight: 700; +} + +.feed-link { + display:inline; + margin:0 0 0 10px; + float:right; +} + +#more { + display:block; + box-shadow: none; + border: none; +} + +.social-logo a { + height:35px; + width:35px; +} + +.social-logo a:before { + line-height: 33px!important; +} \ No newline at end of file diff --git a/themes/twentysixteen/genericons/COPYING.txt b/themes/twentysixteen/genericons/COPYING.txt new file mode 100644 index 0000000..aece214 --- /dev/null +++ b/themes/twentysixteen/genericons/COPYING.txt @@ -0,0 +1,9 @@ +Genericons is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. + +The fonts are distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +As a special exception, if you create a document which uses this font, and embed this font or unaltered portions of this font into the document, this font does not by itself cause the resulting document to be covered by the GNU General Public License. This exception does not however invalidate any other reasons why the document might be covered by the GNU General Public License. If you modify this font, you may extend this exception to your version of the font, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. + +This license does not convey any intellectual property rights to third party trademarks that may be included in the icon font; such marks remain subject to all rights and guidelines of use of their owner. \ No newline at end of file diff --git a/themes/twentysixteen/genericons/Genericons.eot b/themes/twentysixteen/genericons/Genericons.eot new file mode 100644 index 0000000..7322565 Binary files /dev/null and b/themes/twentysixteen/genericons/Genericons.eot differ diff --git a/themes/twentysixteen/genericons/Genericons.svg b/themes/twentysixteen/genericons/Genericons.svg new file mode 100644 index 0000000..4740685 --- /dev/null +++ b/themes/twentysixteen/genericons/Genericons.svg @@ -0,0 +1,537 @@ + + + + + +Created by FontForge 20150618 at Fri Sep 18 10:24:13 2015 + By Joen Asmussen +Copyright (c) 2015, Joen Asmussen + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/themes/twentysixteen/genericons/Genericons.ttf b/themes/twentysixteen/genericons/Genericons.ttf new file mode 100644 index 0000000..0174438 Binary files /dev/null and b/themes/twentysixteen/genericons/Genericons.ttf differ diff --git a/themes/twentysixteen/genericons/Genericons.woff b/themes/twentysixteen/genericons/Genericons.woff new file mode 100644 index 0000000..0e7212a Binary files /dev/null and b/themes/twentysixteen/genericons/Genericons.woff differ diff --git a/themes/twentysixteen/genericons/LICENSE.txt b/themes/twentysixteen/genericons/LICENSE.txt new file mode 100644 index 0000000..d159169 --- /dev/null +++ b/themes/twentysixteen/genericons/LICENSE.txt @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/themes/twentysixteen/genericons/README.md b/themes/twentysixteen/genericons/README.md new file mode 100644 index 0000000..4aa8cc0 --- /dev/null +++ b/themes/twentysixteen/genericons/README.md @@ -0,0 +1,218 @@ +# Genericons + +Genericons are vector icons embedded in a webfont designed to be clean and simple keeping with a generic aesthetic. + +Use genericons for instant HiDPI, to change icon colors on the fly, or even with CSS effects such as drop-shadows or gradients! + + +## Usage + +To use it, place the `genericons` folder in your stylesheet directory and enqueue the genericons.css file. Now you can create an icon like this: + +``` +.my-icon:before { + content: '\f101'; + font: normal 16px/1 'Genericons'; + display: inline-block; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +``` + +This will output a comment icon before every element with the class "my-icon". The `content: '\f101';` part of this CSS is easily copied from the helper tool at http://genericons.com/, or `example.html` in the `font` directory. + +You can also use the bundled example.css if you'd rather insert the icons using HTML tags. + + +## Building your own Genericons + +In the `source` directory, you'll find all Genericons source icons in SVG format. This will allow you to bake your own flavor of Genericons using a tool such as FontCustom (http://fontcustom.com) or Fontello (http://fontello.com). Perhaps you need more logos than are available in the base Genericons package? Just add those logos and bake your own expanded set. Maybe you need just a few of the icons Genericons provides, but would like to trim the fat? Remove the ones you won't need! + + +### FontCustom instructions + +FontCustom is a powerful commandline tool which which bakes icon fonts from the SVG source files. It's the tool Genericons is built on, and it provides highly accurate and perfectly crisp icons, *provided all SVGs have the same pixel height*. + +It's not that hard to use, and once it's installed you'll never think of icon-fonts the same way again. Seriously, you should try it. Icon fonts for everyone! + +1. Install FontCustom. Follow the instructions on the website: http://fontcustom.com/ +2. In the `source` directory from the Genericons download, open the file called `fontcustom.yml` in a text editor. Customize the `font_name` and `css_selector`. +3. Open a terminal. Browse to the `source` directory. Type `fontcustom compile`. + +You'll now receive a brand new subdirectory called `fontcustom-webfont`. Inside here you'll find your very own flavor of Genericons, with only the icons you want, including a handy example page that'll help you copy/paste the necessary glyphs or CSS values. + +*Please note*: In the source directory, there's a hidden file called `.fontcustom-manifest.json`. This file is auto-generated by the FontCustom tool, and holds codepoints (unicode addresses) for every glyph, so its address doesn't change when you add or remove icons. If you feel the need to "start fresh" with the unicode addresses, you should delete this file. + + +### Fontello instructions + +Fontello is very easy to use. Just drop the SVG files of the icons you want onto their website and download the font. The downside is that Fontello seems to ignore the 16px pixelgrid, so you'll end up with fuzzy icons. Buyer beware. + + +## Notes + +**Photoshop mockups** + +The `Genericons.ttf` file can be placed in your system fonts folder and used Photoshop or other graphics apps if you like. + +If you're using Genericons in your Photoshop mockups, please remember to delete the old version of the font from Font Book, and grab the new one from the zip file. This also affects using it in your webdesigns: if you have an old version of the font installed locally, that's the font that'll be used in your website as well, so if you're missing icons, check for old versions of the font on your system. + +**Pixel grid** + +Genericons has been designed for a 16x16px grid. That means it'll look sharp at font-size: 16px exactly. It'll also be crisp at multiples thereof, such as 32px or 64px. It'll look reasonably crisp at in-between font sizes such as 24px or 48px, but not quite as crisp as 16 or 32. Please don't set the font-size to 17px, though, that'll just look terrible blurry. + +**Antialiasing** + +If you keep intact the `-webkit-font-smoothing: antialiased;` and `-moz-osx-font-smoothing: grayscale;` CSS properties. That'll make the icons look their best possible, in Firefox and WebKit based browsers. + +**optimizeLegibility** + +Note: On Android browsers with version 4.2, 4.3, and probably later, Genericons will simply not show up if you're using the CSS property "text-rendering" set to "optimizeLegibility. + +**Updates** + +We don't often update icons, but do very carefully when we get good feedback suggesting improvements. Please be mindful if you upgrade, and check that the updated icons behave as you intended. + +**Base64 encoding** + +By default, Genericons ships with a stylesheet that includes a base64 encoded version of the font. This is to sidestep issues with cross-origin requests for fonts, that happen when a stylesheet loads a font that's stored on a different domain or subdomain. This is very common when using caching plugins. + +Base64 encoding comes with a 25% filesize overhead compared to just loading the WOFF file directly. If you know that you won't be loading fonts across domains, or have the ability to edit your server config files to allow it, you can get slightly faster performance by loading Genericons without the base64 encoding. Simply edit `genericons.css` and edit the `@font-face` declaration to match this: + +``` +@font-face { + font-family: 'Genericons'; + src: url('Genericons.woff') format('woff'), + url('Genericons.ttf') format('truetype'), + url('Genericons.svg#genericonsregular') format('svg'); + font-weight: normal; + font-style: normal; +} +``` + + + +## Changelog + +**3.4.1** + +* IE8 support restored. + +**3.4** + +* Updated: Update Google Plus icon to new geometric version. This also *retires* the "alt" version, so *please be mindful if you choose to update, make sure you use the `f206` glyph, not the `f218` glyph, as it no longer exists! +* New: Added helper rotation classes to the base CSS, thanks to geminorum. Apply `genericon-rotate-90` to rotate 90 degrees, -180, -270. Or `genericon-flip-horizontal` or -vertical. + +*Again, it is important if you choose to update to this version, make sure you're not using `genericon-googleplus-alt` or unicode character `f218`, as that has been retired! Use `genericon-googleplus` and glyph `f206` instead!* + +**3.3.1** + +Security Hardening: Remove Genericons example.html file. Please visit genericons.com instead. + +**3.3** + +The Open Source release. + +You can now build your own flavors of Genericons with all the SVGs provided. + + +**3.2** + +A number of new icons and a couple of quick updates. + +* New: Activity +* New: HTML anchor +* New: Bug +* New: Download +* New: Handset +* New: Microphone +* New: Minus +* New: Plus +* New: Move +* New: Rating stars, empty, half, full +* New: Shuffle +* New: video camera +* New: Spotify +* New: Twitch +* Update: Fixed geometry in Edit icon +* Update: Updated Foursquare icon +* IE8 bugfix, slipstreamed into this. + +Twitch and Spotify mark the last social icons that will be added to Genericons. +Future social icons will have to happen in a separate font. + +**3.1** + +Genericons is now generated using a commandline tool called FontCustom. This makes it far easier to add new icons to the font, but the switch means the download zip now has a different layout, fonts have different filenames, there's now no .otf font included (but the .ttf should suffice), and the font now has slightly different metrics. I've taken great care to ensure this new version should work as a drop-in replacement, but please be mindful and test carefully if you choose to upgrade. + +* Per feedback, the baked-in 16px width and height has been removed from the helper CSS. It wasn't really necessary (the glyph itself has these dimensions naturally), and it caused some headaches. +* Base64 encoding is now included by default in the helper CSS. This makes it drop-in easy to get Genericons working in Firefox even when using a CDN. +* Title attribute on website tool. +* New: Website. +* New: Ellipsis. +* New: Foursquare. +* New: X-post. +* New: Sitemap. +* New: Hierarchy. +* New: Paintbrush. +* Updated: Show and Hide icons were updated for clarity. + +**3.0.3** + +Bunch of updates mostly. + +* Two new icons, Dropbox and Fullscreen. +* Updates to all icons containing an exclamation mark. +* Updates to Image and Quote. +* Nicer "Share" icon. +* Bigger default Linkedin icon. + +**3.0.2** + +A slew of new stuff and updates. + +* Social icons: Skype, Digg, Reddit, Stumbleupon, Pocket. +* New generic icons: heart, lock and print. +* New editing icons: code, bold, italic, image +* New interaction icons: subscribe, unsubscribe, subscribed, reply all, reply, flag. +* The hyperlink icon has been updated to be clearer, chunkier. +* The "home" icon has been updated for style, size and clarity. +* The email icon has been updated for style and clarity, and to fit with the new subscribe icons. +* The document icon has been updated for style. +* The "pin" icon has been updated for style and clarity. +* The Twitter icon has been scaled down to fit with the other social icons. + +**3.0.1** + +Mostly maintenance. + +* Fixed an issue with the example page that showed an old "top" icon instead of the actual NEW "refresh" icon. +* Added inverse Google+ and Path. +* Replaced tabs with spaces in the helper CSS. +* Changed the Genericons.com copy/paste tool to serve span's instead of div's for casual icon insertion. It's being converted to "inline-block" anyway. + +**3.0** + +Mainly maintenance and a few new icons. + +* Fast forward, rewind, PollDaddy, Notice, Info, Help, Portfolio +* Updated the feed icon. It's a bit smaller now for consistency, the previous one was rather big. +* So, the previous version numbering, 2.09, wasn't very PHP version compare friendly. So from now on it'll be 3.0, 3.1 etc. Props Ipstenu. +* Genericons.com now has a mini release blog. +* The CSS has prettier formatting, props Konstantin Obenland. + +**2.09** + +Updated Facebook icon to new version. Updated Instagram logo to use new one-color version. Updated Google+ icon to use same radius as Instagram and Facebook. Added a bunch of new icons, cog, unapprove, cart, media player buttons, tablet, send to tablet. + +**2.06** + +Included Base64 encoded version. This is necessary for Genericons to work with CDNs in Firefox. Firefox blocks fonts linked from a different domain. A CDN (typically s.example.com) usually puts the font on a subdomain, and is hence blocked in Firefox. + +**2.05** + +Added a bunch of new icons, including upload to cloud, download to cloud, many more. + +**2.0** + +Initial public release diff --git a/themes/twentysixteen/genericons/genericons.css b/themes/twentysixteen/genericons/genericons.css new file mode 100644 index 0000000..87cf754 --- /dev/null +++ b/themes/twentysixteen/genericons/genericons.css @@ -0,0 +1,263 @@ +/** + + Genericons + +*/ + + +/* IE8 and below use EOT and allow cross-site embedding. + IE9 uses WOFF which is base64 encoded to allow cross-site embedding. + So unfortunately, IE9 will throw a console error, but it'll still work. + When the font is base64 encoded, cross-site embedding works in Firefox */ +@font-face { + font-family: "Genericons"; + src: url("./Genericons.eot"); + src: url("./Genericons.eot?") format("embedded-opentype"); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: "Genericons"; + src: url("data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAADakAA0AAAAAVqwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAA2iAAAABoAAAAcdeu6KE9TLzIAAAGgAAAARQAAAGBkLHXFY21hcAAAAogAAACWAAABsqlys6FjdnQgAAADIAAAAAQAAAAEAEQFEWdhc3AAADaAAAAACAAAAAj//wADZ2x5ZgAABFQAAC7AAABIkKrsSc5oZWFkAAABMAAAAC8AAAA2C2BCV2hoZWEAAAFgAAAAHQAAACQQuAgGaG10eAAAAegAAACfAAABOFjwU3Jsb2NhAAADJAAAATAAAAEwy4vdrm1heHAAAAGAAAAAIAAAACAA6QEZbmFtZQAAMxQAAAE5AAACN1KGf59wb3N0AAA0UAAAAjAAAAXo9iKXv3jaY2BkYGAAYqUtWvLx/DZfGbg5GEDgkmLVWhj9/ycDAwcbWJyDgQlEAQABJgkgAHjaY2BkYOBgAIIdHAz/fwLZbAyMDKiAFQBE7gLWAAAAAAEAAACXAOgAEAAAAAAAAgAAAAEAAQAAAEAALgAAAAB42mNgYf/MOIGBlYGB1Zh1JgMDoxyEZr7OkMYkxMDAxMDKzAADjAIMCBCQ5prC0MCg8FWcA8TdwQFVg6REgYERAPvTCMQAAAB42i1PsRXCUAg8SAprl7FN4QZqb2WZGRjAIVLrHj4be4ews7OJHAd54cMBd+Af7JHmt3RPYAOHAYFweFhmYE4jlj+uVb8nshCzd/qVeNUCLysG8lgwrojfSW/pcTK6o7rWX82En6HJwIEv+wbi28IwpndxRu/JaJGStHRDq5EB+OKCNumZLlSVl2TnOFVtl9nR5t7woR0QzVT+D7cKLeIAeNpjYGBgZoBgGQZGBhBYA+QxgvksDBOAtAIQsoDoj5yfOD9JflL7zPGF84vkF80vll88v0R+yfxS9lX8/3+wCoZPDJ8EPil8ZvjC8EXgi8IXgy8OXwK+JHwp+Mrw////x/wsfHx8HHxMvJo8Rjw6PGo8CjxSPCI8fDwc3PVQ2/ECRjYGuDJGJiDBhK4A4pXhDABtHClYAAAARAURAAAALAAsACwALABaAIQAzADyAQABHAFGAZQBzgIIArIDTAOkA+AEEgTCBRYFYgW+BjAGwgbkByQHSAeCB+AI2Ao4CowLGgvQDBwM6g08DX4Nug4kDkYOYg6ADsoO7A8yD4gP8hAwEGYQpBDuEUgRshHUEfYSQBJeEnoSlhLEEtwTIBNYE6oT6hQaFC4UShSQFJ4UtBTyFSAVjBW4FegV+hYUFiwWQBZWFmQWchaIFuYXFhdUF4gXyhgEGCwYThh8GNYZEhlCGVgZZhl8GZIZoBnQGhIaShp8GtIa6Br+GzAbVBt+G8Ib/Bw6HGgciBy8HOwdHh1WHXAdmB3eHvYfIB8uHzofSB9WH6of4CA4IMghACFCIcQh4CIGIjoiSCJ8IpYiyCLmIxAjWiPwJCQkSHja1Xx5YFTVvf/53nUm++zJJJnMkpkJJJkss5GFMIQ9w04IS0BZRSJLMIIo1l4XFETQFkVFBKwVrbuWpRaXPOtalZaCPKu1D2yf28NX21qfQubk9z3nzoSAS//+Mbn3nnvuuWc/n+/n+z3fCxHIaEKEJfJMIhKVhJ4GUtP8jCqRz+ufVuQ/NT8jChgkT4ssWmbRz6gK9DU/Ayw+bPKY/B6TZ7TgpuVwN71Unnnm0dHS24QQRSACUYis8XyzST6xEAch4LF5ZJsnKkc9NsDDj2ETXgUikT4iaClNJEBSGoZIP74qa+l//YRfKB5EAEyj4g/ztWBZbslcIEjucqHATOpjkYBXsYo18DNYeOQI3UMvonuOHIHXj+/YcXyHSs7FLGQp+o7sYA8IFq+BpmqKhtk6SDEZinWVWfMsHlLfIkRCgjdPsLpAtMlRUu8CmzVP8HlDEInJmkC+wcbihT54cN/6cePW79Mv/f1E+MUT2zvCM68cOWt7Rwc2pk8TNQ3IWW0gEbuI3yxI7KW9HdtnjbxyZrhj+xPbWX0EYhjcf9h3Jg9gldjBfhLm1af1ERF7BTAEmoxngQDeU35mB/YPsDiFtU0gxChgX2tn8S6FP3zG38O+zMWEVkU1yaYQRCMxt13WblvTT9bcdgpaTsnahlcqUp9owt0Vr2zYc+oUHwN8S2FjwMYV62PNA5+pPhaFc0EP4JhuPr2la4eQCVCsNRvnLac3A9nRNShIBFZPXpciEmHjareZsEbRWNTEBhVvHDasmyniwP7HJ+4AhlsgbmOP7PUsWVA8DFmHuzoSa3avSXR09XZ0HaZfHa7raOARKjm8kWoLdwfuamwHbcqaNVOo1t54V2D3QtA2nsQL1TYePrwRtMTaWUWYhvI0gGlYz5FeldWtgPiwvfW8bpVgAk/cwxqtR/hwhHxeVq9YWNG6duzo0miCHtBgy55TlN/jbYIHFGwyi6IJ6NVO7RG0c7c7ugBDRITMuMlYqovNAFYeuNg4BWPRSBCDBRhsEaKRQJCl5mOvSfmxpqbY3GQSCmYvXjy7s6bVP2WcjI/P4iEUxG7ddWt0brKrC5/P+Yz2fTans2bNjWMvPTwOi8B2Vhtw5pEr+cpyCWabVVAkVQngpGDFtChYcIsQCIYgT1ADQUUNifmQB7g4HIrN6pIdiponhCAYkoJDMd7ucEkOlxK32q02qxIMlAewtuYWQVwLdsg6+fyNbcufpfRunw+CruicxZMm1JYsV4zGfIuUV9+8OH7VzTdfFV80IpSVVZBvMErLS2rHT140JxrJtYfGjRjrFIyl3liplFNkNDlFY6nTmwuKwx0fu6gZfL67aOrZ5W03Pn/SQNiZfrXlIfr62RfrVXeh9JvpoxY4FUt5/eRFm2bsvTy/YvzFdSDK5jq/F8DrrzMpglAxtSFekt2zZ/rmRZPr/WYl1JmVJxdEq6VcX3GhoGY7zaAUuoZ5pNwhrqF5WabyKXVZhW4l/MJZaHhoC28cdiIDKkJ4nxqIiZQittSTBJlKiL8+LogKUe3+mDleLrvAjLhidsRIPBDMAda9LsERkxwCsETlccHiVXx2S4sUD1SBWyIIewRxjzDgk8iBw54n/0w3db0rjt/1ViE9TY/nNXaeue+KFT+Cxz4uSNCP6Bp5+biD/9dsLw0qj8DEq51nG1+if695Cb68Zevjbs19yW+VvZO2LB9yLT1Er4JdsAEsP/85/ZxupEvw+PznPweLNhWq4MY2evS13r0roL03FCq+m/5W2Jx4iP5u/dsQm1SrddTDuw0Xd7lKw+05HqUYSuGfM+nhE/bxIXBCrGAf3Sc0ultay6/9qXZB5lggL5R1FyAeVyEef0Aa8EZR7Qi4kuRz++3helzyOL0wgJfhOL8YXsXtkgNnaIsQrrc7YvE8UGOqllwpVM/Vnvo9pdvoEdpfVTXzgZ+MuPJ5n99dV/vjhyfPTs6uvwVu+TCrcfGm5OQt4R+tsLY3rFJquycX25Yff/vwfT0jH5QDY+vEbavV3KI3b5QrxfqfXbS445E3s4dUtm1a3Dg8XpRILPfm6vUlKD9UjQQH0MGHKG3xDEcZEXbEAz4UIKUIiyg0zwMI+hHk5dCPKlv3yZOWX/TT2VWUpqrYAxUR4SxB6HwNpN6c5jj8Iyt28drRp2lfqmFHl4xPOLZjufLHWK6b4YPIBAMrI9IiYU+Ugejl5YrSbpiQT1+lvX/+s6N6/EXXtsW7nE51/pKKiNMofU2P9h0SJ0ANCJEFs8bHShVRpB+Z/NVeUTASRJ9M2yyIzB6yhKzi2GA3s0HxeXFFF5hjgDMXFKjHuZsNdgtYYvEWMRphQGBA6AjXOwLlPq+kqPXh+tgIiNkVVVHBIiKOxBz2c3F+HGpVjJmjEbENVsDEL7aN7Nn38idXH6T7v9i27Qv6pzNv0x+PFQO3XC8JX/+j+y/gmypIBXkW1VFoBYdslvMkVZjcCMZV9NN7b6H9R8YXF/lX+Lw2S561qhb8T13bbs23WjdOCVzm82GkrVLwycO/OvSeqmHu+w9e/cnL+3pGbvsCJvLSU3mn6YYlUul9fTUhWREeSo30SHv7dkOOklNXNzZcGJoT9Qp+gzu7JL/Qlt3QAUu6Ox9YJQsilHlFWei7SzDBbFXwuiErE6lWVN68M9XQBT3vH2FzXSC3wj9Rlm4ldWQ4G0W73q8hITOh1ZARh5FBLM5+Me7xh20+my/qi4ajYeE9IZAbGLPkmh3T1723++JF9797+do3WncKVqO9oMjucpWblz66ZMmjS0d2j48VSXS/uE9nVJIWDE/fcc2SMYGLd7+3bu37uy+ePPEeyFVzDdmqURIXP/rbRxeXx8Y0Fb3Nk2M9RZ13Kc8jJzFjXTkjCTJxx4YX4R/FPkZF2FQHFYWyxxz02FoUfCbYhPn0ILQ9KExbumxGvL0KqjrkAnpoWkfluKG52fSQJMGEbJvbUxNuLZ++eVkDEPG/bl40oW1h9aS62kmhszsF8/Ir/WF3cSz1n+L187eaSnzFxZbs+GWPr2ZcKT0/Gct0k+ZBKzC91Bg/saCYDoEPiYTVjhG8moIa9dgLbCrWOs672mbSVyVbeCiGHfSbG0ZPg6mto6ZPGyk1PbSpftowbwH9GgAMhixvg3fMyMwy1ZfkGSIW9X0sbpzS2DxpclPjlL4N8NqTB4sqg4XdHtpz4CAcrrQ5h5Re3E5nY2c+isJhGsqFqazGLkkf9kBQwJURDMQtbALEWKWsrD/ZGsFVEULemYdJkQSpeewvyOeJLNWt++MT2xZEqmdctePgksVPeicUeOffqZb+TMqzb71kxuxAc57j6iVrn1005obXfzT/0ZtXTQjOMKuqaBVUn33munj5xBV3/fIvBhJftGnvgfkbPnxx18rm+Qn6wbAN22MPXy08ZfQsj9x6+LLp4e3/0bD49l9B3cFLn76uLTSt+6a7p965yOYszJmSVWgy+u54rnvS7nu3rp9Vr+N4RvYtzvCJAiFPwGYGY3ELn8/AGiXqjbI77AgbEI8Fgmk0x6nD2CRS7TinOWxuYboywE5yBMiFXCIt5+/YliwZX7J12lW/u31a0+W73u5Zd3T3tVOGdC0zl8iCSZDlvNHjtN41Sx/oGjZ1x0XRdn9Odp1r3KjY3GiBwbjG4pAP0NO7BjMH+hn9iuU/dP1icEaTlx0G8c7Ox+9YnYhfdM3td7bdcmyoIc9iSGRZbaYpVy185uZpzctvm7n96zujndGaXVcObZ01+upk5TSLhfpnLNo8BRyw7sgAQRDIXmGBukDei4srn/PeAuS2BeXpq2yF2V9+SR/+MnVFOiDvZecv03d41eUlUW9Xc4gXbyQR+bkP0TuIkwWpYhx/FrPDjCITQxhlVjaAtSAHlaGfpu5bsco7bZ71qvaN1z0152hdxNo8YdiabkPBpsSYG1VioA/SFB1Oh0AZ3HYtlLWvuKLnboOV/p7+agr9+1NPzbu7FB5nbcjoT/mIDd9af0ZBIag27OnjZ+CanoKsl/J7Ac99nL0SgHeJplTgWvbqWgUqEw47kw9xEwoHnDaMeEZNvihvVFwaBb+gs0wF1c0TN93cM3/+ig0XXzSqNfJqVzIZqjapGm2iH9PIrqoqZ/ls+lHMbi8ra2i8boOwNuVLJObO2cKm52D8cJBqjsEX1J+4lQK7O1aANeKr0c05B9bNHkb2b8J5WQlepRSs9iaojw2GELGMvnSKqVBIzf/XvPk0/ez0ZjP932RUJtFkMqqlT+ejCCWn9Lf6TolkbCMqSKg7NY1JsVekA5l3knxp9QOooPSTbeSnZAe5h9xH7icPkoeZNodNsNUq7M+q1KHOoNQpqpWdFBsDFOxOJR9A8QahtgYCwdpANKB3byAYCfIVGIhiZAS7IFobi8bqIqzPo/VxftV/I6A2DrF6B9Ta62rtYbtj4GdjRy37szqsdXYwyXEjOPyyLQ4mv+qPB1UjBGV/VFVx1Pk/Af+E9BkvqVZThSnVCiLgdBZZrADn/RNgIDGKVuEFTC68AAIM5JHOCDArcH2cujJ19mNwpV59EO6kH34sjPv000+hUpA/ph8KjQ9K/5AlWi2oAkjsHVaowIpM54D5A63OzoFjLPt0TUX+HC+AL+GLEhyTZAFkEPCWHew1ngE7H8vOptXpFop6jqwMlgzfgCn07Rd3wmz68M4X9/5pVeoFiLx47+Rdu3ZhaPbOF+//06rz56oF5dwL5GM2V5GJFaCO5uaqVQsSYVTXBJQPDrsUV9I8AjEVgXUEMEzFFKiHWTgDUxiRRmStjdQhVQuUsyj+aoyBcAgUPUI4B8whIRjggocnY1Qcc2MP2T0TSiIqi0GO1w6XiLfsjfStAPXlOINQiAVZlojhEpYZDJjjMYyPK5KCcG+2SxI5yJgfI2T0Dkb8OAc8tpueWLlyidW075r14N4wIbn6rTtmlSdC2KNGEUb+/OVlD4Brodt/KX3/dnHo0I4tV6xrn7vgyWuT2V3tl9AvV14xvCXLsHPlqv9qanEkQxs3RTsstnBBVbS0am4gEDEYzEUFlfXFzki1udghK5VlFTWh8bmohxlt9jGBwFirTTYbi70V9spOj9cvCh0bW8Mza3Js5qmXrBtWPjJsKjaaHRsebp91+0y64TRsuqRp1o43eibdsNAZG9/TTQ899BD9dFxb7qzZUP2MyXwv/fSNdde9DyGdd+rNZLQzzUDvMqxdfRn945139E8Yn9dgm739re6xm9bWY1uzBEiuaLp1Q7j62jtTWaNuGtYz1FfiTV775ALhshdbJlmbWpZfds3637g80+d3fpgMV1uDwxcsnFlcWaZm5zkc44YMbfc4PBZByHGai9v8/haTXYFhlQKUTSh1eQSo9Pnag1aP0yIZi8rcc2pHXhYy5Yy5aHU00l5tsOfVDC+Pb2ieclU0P2flA303f/3WTTeuPXrvZVb3yq3T7qJPrN/QXer8rz27YOU99/7BJQk5t7xL/7x7H/3D+9f//8R1mT73Y3W4ej25BG9cuAjy5BAqSKY8A858HnIJsTiKJ5eI+ngspPiC3kAeJgOXWAZqSMLF0iK6RIe8Wy2aMGb26CZnXlnlitVXdl86K2E2I+waTFa3P1IaWdU+xmzxjB41rACGKdbEiNmTpo+oyxLKW6Z3zpsx0mKRCsKR5NgZ48aXFBeJJmeR0XhKdTQOKc0eP2rMww899bO7N8xzqkPEnKH1M+ffsO3QojmbZ8Qtcm6uqtD/EVS7w+3yuUqzzUKRKycXCr2VeeXV4jOpjwQ5W5It1aMuGzPx+s62Km++ASFJyS+sCCerqxdMm9hYlZP9htG9fNWD9786b/LlTW4hr6QoKz2GiEFXIAYNIddh79hVbgwNMqiRUCwy5iaivseUAtlmBWapCgz+YRqmD9rTgn3gORITJpusg2SINS3zB57bMnQgpo4Mw6QbDiy5auWUiZe//yukq6ZRdZ3r75y69cq2sYteeHB7z4wqekmT1ze8qX368g6Xu9xtKYjEOxdVDvWUOIpqIj5vkXPYsBkzu7ctXzGsIR7tnL1xXsswr6el9dLJ1aFCp8NWUlYV8/pikVlXHrxnVbfYuuzyJQdumNSYN3zFrmff62mfefnGqXeu76xL5lTN6Nn+4AuL5tPftl86e3hzRbDY6bAYjeZ8zCPkLXe7W0I2e3l5dai+FqmIMzhkQtuCS0a3BgMlVrPJ46ofMbTKbvN4orWFRagDJSdNrBkRCnH+jKyIKMzuGGESHXFX1wbwrFQiS+EcJSRUgomjOO94Zp1Gwe6ptyuaPVhkZ0cymmCsgSZGXjFu7lCtt27VwgSoiACeOWMLDAbYG01KpLiu3OAJ6mdM3ZWsqK0QtIvu/3qzbKr2lLTvnD5zrz+Q1Cn927BVDas93KIVJLVkBBmPesxmrGUMq6UPWwSJAY4VYC3TWqK9nKkzCrvzxzidV+0oE1iQWwesdgmsjhgzlyjEqzCzbsRi1e0/gBKO866MXoTpLCimHHILYgXrCtQSgn7R7mD3LpBezx/qyu949nBHvmto/rDbfkL/1hoKjRwZCrXC6HmtrfNaBU9lw5DqshmpLY+C75FH6AePPkY/eOQR8KU+rKiZWVo1pFGuxoEYUb1vWCjvilfoF/QE/eKVtQWllUXrZtTNKDn03/Nks9kGDYXT69qWL2+rmVIn0jOT/vxkycz62LyYaMh3VeZ3dORXuvKHgRJqxeJbW/VzKDS8rHZIQ3B4alnXgctWHOzqOnjiYJdwb03JxOHlDUJ7qCVUnUg9Fe8srq9b+uzGKVM2/mop6n/hkb4Z66oDC43whj07Rx4/pG75HcurJ4Wa6bU5CypCsXlsfSK/Znq6RnwkjuPBjDBM7RX5loUwHDw23VzOu81hU2VPRscKRh1x/aE0ze63e2sA5t03f4w2LwZqzega+bUtW16X7kMaoc7bPX/+7nmw/D6Mlo7Os/ttIS8tm3vPnGjnj0YfPeKpqfHAx5uef3HTZdU/Ptq5a+6cnZ1/qA0dZ/FEryPbP8B5nU/KM3ybb+Lo+jrbxkF+yPZyHBB3IamOOxRkxpn9GyTW7wWSXX76Hn3P35UMwHLZ1DC6wSSr3Kx+VN/iOcrs6Kl9LAF9H/z8hR1Sqc9XKhHdrvUCcqnWgT0WByFG0WTMiduMEHUIt8Ga1Od0O6wULBTDggVWpv4u5NPtqc9hDb0dLt+d+iL1xW61lb5FD0F56lnw0V/RtyAC4+kH9CFxL/0TTIDI2W/o28t66EvQ0rOMt10ghCpzsO0uMoa3XRUFNU9iKoQKeaBrOEwcMr6F65vtb8TNyLCYcqGzMKaZcMuiBxVo+dXZjdbIHFlWrEU1rjMGWaVX5g11Z1vL8suaK4RTXtlpSa2ylcr/dFpLyz6wFouCS5RcFvr3Yp+vGEZk2wtUsmgRpbTFarVV2MyCgTYU5IqyWlkh2xxVVSV09S/tZW5zn0GRcZ4U5jnzDLtyrT5vcbDYk2PhOMX2R9h+0GDtb9BmCPnezY/0bgfHOgFnLd9TYnsdqPw5PDaPGBZ6xd5+wjRETJ7i8jylIRPW+klmLmHJCmPHOdwqZYTMRqCESyFFKBHf7GKApmAwRdg+U5Ldk8weC5+HZcSftmtm2DQza+q7f4hNeCdZTKhsmcQ6cIH8XHf3c/Qs/ZCefX716ufhjrXv3NvZee87a3fRr3buhKw/wdBO+rRKVj+vJ2LJkefji8+fXd2588RnJ3Z27qRf0dcxuUToXPqfnTAV3tPnB9aJ8L1IE957GY7arSLrVQ/rTKmL72ZqTGs+tUfS+B4m/ezUnn7siD2nCBncrmxSTKp0W53JEw3b8LAw45c+rbj+mh4vNlQ+VlhYRqFzBg9NwM5ORvu4xiniOdXrRKYcSODZqWhn2RLStLOYjCVIsbNwIOCkhD2HXkx5fl1cZChpxLrUoqasioxHxS16iZ4mqK0PowJRAnU/VFUJy1JC4RJ1xRO8DMK0KYebmya/s8bSb0AwqFij4pxQETyNVRLcDtTnDn9X5QnJGajr4H3rYpwblaQJZdwohqdhm5g+MmFPOowc1Wb6oZ7OvHtuO5vVmF+/pwGU6GnYM37Q9DVzFsh3NQWi+qY5Xx8zYaZ6tXo1tseNCAcOQB2tRYA4qAFvPt+jUyFurx+BsAt/Fsrmpk6VNzUGvTnWYcLX+4WyA/6uwIFCs7lwf+rkgQCG/cIwnspfU5pnDIWnS88dSJ3c7/cfKGptLTwglGHwoL9rYG1ynC8gJdh3KqCUZjv15W7JjOyOIM9HBEMJhdhHNGq6+9n0+oFhkLVzdd/q9Ue+PLKenQAb/LfVmSe4dHY9eze8mX64fv2AfTpdFm/pBcWRdFGoXtgtUY9NNsHfvlVmauxAngZBE1dT07fKpd+cq5VhsG2cr7cSUsFtVza2FeOJMjj6gXqIOIw4UGzpCv+mOkomIb6S+jf14vKNQKWBKO+QXKxTKaJbNdv/Z9AWNEIMqyIagXe8EZi2FUNVI8aNjgLnXYifMpyl8hL6JfKeL5dSBc4shRwYCjl+WEu3Tnrl3Zcn0lvh8kmvrFjxypQUYWauU/SlhRxbZXyTypf09CyDM3BmWU9PXyVcAT2TZ0yfTG+lW/EKL+3RXzglRDk6n1dn5ofh46uOgDcIjDWyuiOtjDNLeByCFgcE46whqEtk8N7PmSM2KK7zTYkUeWC/ckoAWMBbcucvdm2/qH3FK0lY+8fQdWfJdRpt5M268//eSG3h1YC3u257eAVvWsuaEaf2rEDIgf2eoj2nhJN0L2vTlO3e6ZPhinfhQ54DvMoauDf1Fm/4V13LeRNfWrNgJQdjEBho6b4S2P/M7IX1MwIKo15IaLSX9mqQ4CdIyBfcayxNen+R29HPz8NA+nrFhNbX29eriQl+EhPqBfcaS8PmqJaWKxbEsyjzcLFVGqJ+ziLsKutBhlWIVHJ4wPgZPveTiQ44mo49ySgg0DCB4OxPA76mg4+eQuGJEYoOIOjiX2+KqyACXjMH5w1QirxhBzGy9WrBP5CLQSW0/BD1U/8hWi5M3L9f+jE9mPoUJtL9ggPaQHCkPmXYovMFDbs2i692BN4gMxqj1Ne0PqKJuGAUBpiUGahTvdBLE+f4MeMLRu6TZAT8M3kYi0jhT8TfGQxzF5pedmJVJRLvv16lF98zkDzGdIwCW90OHIoaQfXjfMQ+6u3TaELUUo8vEGak9moLEgs0mIThBQqW3qdBL7acPetbwJ/lskdp/oS5syE2Ztx8VOQ5jPYgDCVS/E1WFegdjDc5uLY5g+a+Gp6IUO4z1aMYcwLeZEGgCnxmphyhmAWi7zm09ZMjdPfvj8I2mAYlr67qJ/Me/Jx+TA880b23G//kjLvE72HREZGsepX+lT5JLz/6BCSh6PMH5/VpPB2X7f3fADEo6ovYG07uo+JCecJ1UlyiLcgsBpZmMXgs6luVeZErZnxzunVZs8PhE76u7L68u5L+H193f4zQj8LC3LHa/LgvMbNrmPTO2AkTxp45ylcVRNmeAQ5MZp/BhtgQ1nkNQwXUXeJc3+RIhqCG6Oth0GB3sMYH1ZAgcBqleJnHFv1tkv7mpVkPbm0E1AoC0S2TmIMOHqi+JmH4S9d/MofFg2/G4i95YyWcSo8dD7U3AWoT/tjwU0IZ28h47PiSOSwCyutLaS3vPd3fivsxVWa8mPLAyzg9Liu7m7sz+bwDTkt8rXGazJ2XOIJrLLRmytRuXDcauzLXpZR2NcP2qxk2MD8lQZuypntqmmy9TJvZnUA2snUBP1HY3Mgjhbp/HIKnyrA+GjGjClHAii+wi+VccsyZSpfT5VPn7IR9Nz733I2Ys0qYNFl7DB/AXVOPrd0FWSnnc2B4jjlTMTxbwPBMPsmWEJIJH8QdMucl9KR2Uj65IEVgr9aLY4Vz1EAGuBQpwsFi48WuBvI10Q82k3GZ4pHionAQZ7CQIZhHEFd1HrMLO0w4iKwJzALi8JjKcIJxDwMTTn34y18E7ZOa0f4/PnTz6UcXrZc3DVs69i8pzfLO+KlLnljF4pRSvP8k1L1xzNP0b1X0jH3zqyDeugvsdPKlrz48Dt+3vDP215euPbKtFBR8SFNMJxGxrZLGW8OWpcb87tL1ZPjDOoG1j89EfzrFWVRP+vC9PsKd3RjSzBASBtZnKtczy9gq5/wgfQGHlN7vM6fXizCM/gu2a9QCa6UH04HuvlE4Mdgw/H33mjW718j30zLEJyLsSZ3Sry0L2VOcPvTwGpbkPG6icj7L8IW7kg1emTL3HUNVCa+QPLceEYnTsSJ3IBu8GAnLisuUdN4ZphzXmTJJ4475gqs/7f2pM2Vd/Mhc8Hi4EEK1Ecmzz8TSCPu48Bj8B2nnRuZHmRFDNKGrA/ycwMqx5zgI/A3QX6T6ZZ9OjCVOm5lE0nM9yzVK5oTKCB0j4kRlumgJ12d1cRiJNUHajsVtTNw+OWizT1UPb2xdVxV67vI9pwolwvWyHWWejYfD1Us3nNrT0srXpqaCKqf9Ye1Wxr+DbGEEA5ERbCdNRFquHEwmP207mqQN9CS8Bm1tnyaPt83e20/2yruSx/ARjKcN4GaPjuNdW2rHXiAMkIHJLpnRKPVc/4t6RWS9Qtym+Af5f+UnuKwRsPCoByQCn1PLLJjFXFTpL+THqYVaOmCWBrO4HRIX2B8UTX8H1zySWyS1EplFf8G8UGHWLGqRH++gv8B3O+BzrssnFFYPxuiYgASEiFRvCllNr8xksYDUJsHTMSxJsHRYFyMm41YCIYE/jQlsDKZ6B3wJRKwe88bEGSxyd9o+Pg8BVyhWTX+Gc5st0syzNE+QNe6STIwiq7zGSBmbAWeJoDsecx5fwG5kTfm2/ucjQZzZNShz4lwTJBl9jx3xsM03+D48SB/8vnthgEylMqE+7cLAgAN0xgP6e0K8awRuB+G2DFbnb+1iZ5CF4ZisG2T4WbeNMEMJs5718TiJObNo6dUu4qM0jvD8GX4FLsg/zASuzRcdVI4YZYownCtKYxlpmQI5K2NWwEyZqOExxfhcwQeYituv2xAydnCGM8U6FjN5Lqev4LEKCiOAIRBEfIc3iF/6cJBv+vQn/eQnn96kcODglnD9mnrzbvqvX5bSf0Ju6S8hm9FEoq97Ja3FMXxOAwBDq8Eg4IIBFJCwesz1FnDe8NZi43SHX0U5vLGqfVypDgoCVk3HLmBmGyZH8OJ2bzzsqHSlMeIc9pQPYI9ej+8rPe1JSDJ10If1/JI5HOnQ+R1lCtxfn/EqI7fgmdjWlkfl8hqBGDECFy3zLmf6JzNHpN6bKwToXIGNEMV1xy1yKMD38Qfn2bDymZgo5c4cePJFue86MKjFNP2MZbNhuUpNsdXI8gaUm/q6TY+5iY84kxBNyGrTs5nVLRCJc41F4apFIjN1+4hYX1/fd4TZo9hU0vT5fBZLi/80zjRNAdFyj7pAXUCq+M6K6ldUixpkRDFoCQTlINMf48G4HIuLcQeictwh2h1+h2rHseaT216vLmikv6tptm95Y4Sz5Y0ttqZa+rvGTwyGTxqhrrbJtuWNkdaRb9xqb6qFOhZNN3H4FU7fam+uOZdSzyA3O4E5NNfoST/RM771dcy4jGM3ucDGYEV9/rwvH4Ab+VWI+fnOaRyUC7+BkOo3n96yaYNweHwf4aHUmPHf+iAidWTL6c3jU2M2bGJX4fCGb/GH4nNypTyjVyCgstXPlrusc4eUfmEsCGGYsEkj4ezRY/XF/SaTwWx1n5srOo8y6SyRxWZEvUx0qGbceoBz8ZTsyxH965GBbxIyOK+7D4n48AwrnmTwftD+QyYtkiELm576dyB6iSkuIAa+nyCDvp/A0tLfT4jAHbwN34u5ZBDm6kbwNNalQRc7x4AAeEZfsXj+OgO6vKoixyOWv4LaFcNcjqnG84rxpH+DihPS4CoMFAm82rj0M0XzL1Gw/0UtUzy+hO1mrR+oxoXzznLhvJMym3TI1zy2MDK3C+edsExH+720V9v7rQlXz4vpSzJooWk5dl55ju/+wodx1m995ZMazFsvKOjskfP0yPPKCH93GfrONa4qB9+uZkDLfqUQjnIPqO8pH170t7ffsf/n825aUlHkLCyKjC52vmUyj5n+fXUSGhqndSdGXrR/XEFBia+k2Du0umpkg7fUaquOpH3hdZ1Xn9Xsp+K8YYYKjrknqRuHzQ0nL0jLEhpZ2hSOvESYwZ6lZcyHupk9I2MHYUzHTOz4RhgVg7AFj6DPb0HNLlzMggqjGimWeQe00/85UamlPuvgtkitYwTeybwu3I7JE6bDvO7/xPrkKtvYTgbTQFsEexnEW8CF0horv35CU/DGZ1+YcP/9E1741caK5gk4ZZeO+c1r97YMHXP33WOGttz7+ktj2Jwgl8BJdafixhWsfw3F7F8iqBbRwQzaQeGyE/Qo1Jw4Kh09cfToCag52/U1kK/lhm3IoRu2QQO8to2+Rl/bBq/RshaJtDCdjOunaTtQEdv9MQpRFLSoxX3LgTjKtTREubBJNxIpiCqsnX0oqges7lEm33UTrcxhhFnz8IRU9lwKbtMfMPp+ux6lP1wP2w+Xn/p3JWvkO8os+4EyLSj+g+oPldoHL8+lOw50/lDJOH1e7mSJGIqm56iMcgzLNRkF5rRgCqIIY/Y0k8CtngyARYJyaEfbc0v6OR7LCWYdpb18CrMPyujxHW0Tqabfp/0ldFzP4z7Vg3OVL8iLfMf752wPIuuTjCzycgdl0Weq5w4WHD0kPsnHrk4mV48dt6Il3ODzNYRbVozjMcB7SsaVxzRSdogDoUEYx/lRNrPSQBrEeYnMv9kT5Fv1wC0jDLgljS2shmHdKdLtDxcxNS/FxaPE51EfSW6Nr1lTPvfiem0wd+K2hguHlDkEurFzZE+Uf1qncEW4j583nwb76c1slxR5h3TeGGq6J6rG6SbTNwQiz8I2FBAn99f1cJRUVBt3QfF5mCmOQWglFOlBH8qkZV+uXr1w6sqFf/0NnQbk+iVz6uouXbt96YK3FG3smHuW3ZinFt20+r6nhV8NH9daWkpb6PFJU28jaTs6kTP7wz4xrHriYYsv7pFna19oFTRRwS6oXnKFikvOtM1b49wim2EQ6+eMYwmYgswRk7MLOJCWxzhxe/s5Vko6Xel7U0j0phaAm00QI/ezZv3KeIOR5HB/ZxuOIMp+i8ljYR8asNk2BEC3DKt+I6BKr+nKDWjf8DHTzS2gm5i1bzROhPFeThNjiqVnDC9shEHjLErjagYztmnny0kz+Y/zZZgjqKgjuLtlMF4j5EONMEJ1jIAyCNRAvhQcAY54cIQQCKoO/MsXWSK8RVkXR3jmCeP5QhnGYaAM8iGuloEazzcEK/HGEccMJYdaIyvMXdNRI48QkDiPEPBtScWkIuboyMdZd6GIzBPFLNnkEsjLkGhT8n1FhcMiFUEAWXbkWnL9geJRzsJch5xX6nCGC8XcGkOhrSJ/Yo9k9Ug2Q/OkZqUgJ2R3j3FdtuidJwO1bl+NSynJrk2Wx3ODxV6Lx2MszbYmY0PlvOxQgbMsz+fMcjsNhaFgnVLamD8kWIUKowEMcpYMTtc1726SsrJHubPUPIMh35rbHBTyLaPrvEaDx1BTWyY4Suoryk2CRxr6LcH9L0mxIMPum/zHp7LCRQaLTSyNueOq2ZdndfogS/VnNcdkVbD7so0VTtHuNNqz1ycFk5wlGLN8pc0em9VkMIH/ZsgxGBTVLDrkItvQfHOJN+AwmbPiVos9x1SgWixyvsliLXQ2O2srKt2uSqfRPKW2oNWUZcpxlIcWz/gJ7X+mPOeWEa3DSgqiLXK2Uc01Fxepdq9FrjMWZEuWxpGjyzplh8mpcBm6V3SrC6SMDfJbPH6Az/t+fcMNv75BFAdfpJM38Ougv7SfJLO79DJUxzlvIF9rYq84YK/BGwNbKyRqArEXUb8vwd6REnwvC+ORa/BYA+lLcDtOIr3PJXD+wqL1PAfbACpILRmmf6+sey4hJ/Po3y2nv5YxIWOLDYd0VHl6wUtpYodI08i/Ru4njWOZLtwYuPqmrh083KfvRQrJtMPI2LXeB5jc6NIkn3fdGIZ8oY5WB7WP29H1gHftWIyw87QHMoRZGdAtzv/2PS1LMps7me+4gejSpI8wBV5EAU55jMhAgmlOeFCSCQHnYXqY41ucY4BGcvX9EKOIOjEEWyS+Y+rzBiEaDCj5oDBfLodubiyDcyYaAp9igf/0+8EP3MtP/G0M2xGjBxPOTv9Ef5c/X9Dy/RjKdya0p6KBQNSvatSBtDPX3xWAclG2jZu+8QyNTkx2xaBNSzjzMbH+VheGOp2J1L/wJX+UkMHfEo4mE0k7mUeW8D2jtE9gC8SZU6DHNBDDfGzZ8A6KiHLlf2C0mdUHrxlQH/D8ueCqDgx1Mpoe9rGN/Sjx0kG2m5MOMiealD4N+tJq2vmX+fq484nwAJKqD9L3Y9Z5wZeMPpCeJ3j7wJ5TkJk2OJPoB6f2pMXKmeQgZTiZmTsC9skpNaH08v00ou/Lh42CiGzXwbZHM2tWfsS3plXMFmh3v84k6fH/Hsc9A/Cnb0TJPdEWoe+kwGcPqoOzerYxkxi7F36W3sETYBWuqZ/imvLwvRYH9w6Iu8BhYh7XgzrZFrb5TC2Q6WaZ3rGMPkCX0AeW3TH2lR5NS/edpvW8Qn+kd9OROY/+9s1H5rRdYoF/aQ+c64UHNJptWSqm0o0W0nOCkMk4H3SLVyX75tdcCqytwyESZFt85UFlIMIcDwR9ujUsEg+YeC3xoUtwtwjML47dFah2m98bCOreoI48QeWbBG/neucuCkQC18+lX+28h/5rzg14s3iOJ+9t9rS39D68XfrY5yB9/thSDO4qSWk7U8Pn/mNT5+M/aarY8mu+qTCybRnt38rzS5x49MpbNl/52HH9bivAsgmtmGTqgiMg6HHXY1aY5fX6He0/0tmh/WLzwpXhzsTcWyZnbF3aoL1swZNGC1nTTXps3TOeInHGwMaQMgSAAQ7AuI09bPJWAclCLcHqUO3EIb9+371H6eX0SfrXV1cJpOv5S6D+sBgOU7LqVSiBabDt6Ocnnn+a/m06r8OrOBca+f8FUcr9zjhX5CTaGg8rAjOvBoRg2AXumDR1z5o1UyJzws/2Wr98up88/aW11/EOFB8XtTVTBDJlTXhOhJKpBYfoF0PoF1AwBAoObT50KO3TLGJLB++pySS9p3buO2pHxoLDDZ+mwWE13SeDzpxAZc6MOn1XPKTfy+gJvL+zM9+Z6T/mLsDwltnSGbHWQ6y/+TduhNfNyHbRQPTIoh//PCIKMe654JHIOroVqtahHh25Eqro1nXHhMdT77yTOpE68U7qHeFx+WN6zx/onvffh4V/EFENodekboRb6DrhGrgx8917poyMP4SnGFCFH5TJsWOo7g96Mb0ZN7h++YPfFnklL8zjWKaK386MVrD6wbK07x7X1ezI8CuZ/cmIs4vtZnOc9nBvczbv1EAQYZk9hfq43cFs1gof036udnWxweCBueOHzLphj77r20f0O8q4MQcyLpaBpP/TkKZrF3Xq8ZSH4cLv9arJBLLoO7029Z3hgId9i8x2j+3hWJhv3NnjulJSnv5M2Wp31PNHkqPebhl4xp+EM0/s4njohol/27r1b3Q/vZ3uZyGxy+LKN+bn/Z3+NXb1xNEmk6nI6cz95SU//uKiXK2kPLiJPvPIuFunjA6HyhSn0vPLn0OgK8epuWrCd9Dr3+l7JBEO5Lvlx359GGZfXaRqg7OGiby4s8vykRcX5qlbTWaTIbvYbHPlOpsacj6qcTVYJ8/GEk3NJZGs3GDbqFxwRvxh57xZYduYQDg3MCWZc15fidybtIjNdh//TwL4ZrzoyzARWxxn7y6hZFffxcpwWk3v/+yvlChLzpyFiz+Fx+THaDUcYwccP/s8HcUIiPR6apQ45+yOY8c4DqVtSen95cHaJhPPusJznmcmV3XYyuQx/Pz/AAfdhq542o2QsWrDMBCGfyVOSjOUDn4AdSlJiY1sMCTZ0hQHQqcM6RyMahsSKVj2EChd+wgd+wZ9s7xDz4pKl0IrkO7T3a+73wZwhU8wnNcNHhwzDPDiuIMLvDvu4hYnxx4G7M5xD9fsyXGf8q+kZN4l3e7tq5YZfDw77tDcN8ddPOLDsQef+Y574Cxx3Kd8gQU0DjiiQokcBWpwDJFhRDGGQIQEY+IV6SQU0RwGezR0GpvBQh+OVZkXNR9mIx6LKBnzlZaKz82+MUaSZGmV0k7JqJOit1hKJasy04p4TcWcmu6wJRHWMm92W4LUimsbK1JIayskYxwz2r81PlciTBBgSvv7M5BqVae6yiWPQ8Fn/McAXaJJMA1a8/9wu7FFQ2Vtf4mwE0IbW2fYyMqUWnEholAIwf/u+QXtVlqxAAAAeNpt0meTFVUUheH7DhkJEgQJgpIFhdvn7NM9gxKGCZKzKGZyUHJGySAgSq7i5wrFfYdPdFXX+tRP9V61Wl2tt8//rdbh1vueV29eWl2tYXQxjOGMYCSjGM0YxvIB4xjPBCbyIZOYzBSm8hHTmM7HzGAms5jNJ8xhLp/yGfOYzwIWsojFLOFzlrKML/iS5aygTUUiExRqGrrpYSVf8TWrWM0a1tLLOvroZ4BBvmE9G9jIJjazha1sYzs72MkudvMte/iO79nLD/zIT/zML/zKb+xjPwc4yCEOc4SjHOM4v/MHJzjJKU5zhrOc4zwXuMglLnOFq/zJX1zjOje4yS1uc4e73ONv7vOAh/zDI/7lPx7zhKc84zkveDnqwsljg1W7bVZmMrMZZjFrszG7zZ63mfSSXtJLekkv6SW9pJf00pBX6VV6lV6lV+lVepVepVfpVXpJL+klvaSX9JJe6njZu7J3Ze/K3pW9K3tXbg9915id/wid0Amd0Amd0Amd0Il3TueesJ+wn7CfsJ+wn7CfsJ+wn7CfsJ+wn7CfsJ+wn7CfsJ+wn0h6SS/pZb2sl/WyXtbLelkv62W9rBd6oRd6oRd6oRd6oRd6oVf0il7RK3pFr+gVvaJX9IperVfr1Xq1Xq1X69V6tV6tV+s1eo1eo9foNXqNXtPxijsr7qy4s+LOijsr7qy0h75rzG6zx+w115l9Zr85YA520l0Wd1ncZXGXxV0Wd1ncZama1x+EcTsAAAAB//8AAnjaY2BgYGQAgosrjpwF0ZcUq9bCaABTzgdAAAA=") format("woff"), + url("./Genericons.ttf") format("truetype"), + url("./Genericons.svg#Genericons") format("svg"); + font-weight: normal; + font-style: normal; +} + +@media screen and (-webkit-min-device-pixel-ratio:0) { + @font-face { + font-family: "Genericons"; + src: url("./Genericons.svg#Genericons") format("svg"); + } +} + + +/** + * All Genericons + */ + +.genericon { + font-size: 16px; + vertical-align: top; + text-align: center; + -moz-transition: color .1s ease-in 0; + -webkit-transition: color .1s ease-in 0; + display: inline-block; + font-family: "Genericons"; + font-style: normal; + font-weight: normal; + font-variant: normal; + line-height: 1; + text-decoration: inherit; + text-transform: none; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + speak: none; +} + + +/** + * Helper classes + */ + +.genericon-rotate-90 { + -webkit-transform: rotate(90deg); + -moz-transform: rotate(90deg); + -ms-transform: rotate(90deg); + -o-transform: rotate(90deg); + transform: rotate(90deg); + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); +} + +.genericon-rotate-180 { + -webkit-transform: rotate(180deg); + -moz-transform: rotate(180deg); + -ms-transform: rotate(180deg); + -o-transform: rotate(180deg); + transform: rotate(180deg); + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); +} + +.genericon-rotate-270 { + -webkit-transform: rotate(270deg); + -moz-transform: rotate(270deg); + -ms-transform: rotate(270deg); + -o-transform: rotate(270deg); + transform: rotate(270deg); + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); +} + +.genericon-flip-horizontal { + -webkit-transform: scale(-1, 1); + -moz-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + -o-transform: scale(-1, 1); + transform: scale(-1, 1); +} + +.genericon-flip-vertical { + -webkit-transform: scale(1, -1); + -moz-transform: scale(1, -1); + -ms-transform: scale(1, -1); + -o-transform: scale(1, -1); + transform: scale(1, -1); +} + + +/** + * Individual icons + */ + +.genericon-404:before { content: "\f423"; } +.genericon-activity:before { content: "\f508"; } +.genericon-anchor:before { content: "\f509"; } +.genericon-aside:before { content: "\f101"; } +.genericon-attachment:before { content: "\f416"; } +.genericon-audio:before { content: "\f109"; } +.genericon-bold:before { content: "\f471"; } +.genericon-book:before { content: "\f444"; } +.genericon-bug:before { content: "\f50a"; } +.genericon-cart:before { content: "\f447"; } +.genericon-category:before { content: "\f301"; } +.genericon-chat:before { content: "\f108"; } +.genericon-checkmark:before { content: "\f418"; } +.genericon-close:before { content: "\f405"; } +.genericon-close-alt:before { content: "\f406"; } +.genericon-cloud:before { content: "\f426"; } +.genericon-cloud-download:before { content: "\f440"; } +.genericon-cloud-upload:before { content: "\f441"; } +.genericon-code:before { content: "\f462"; } +.genericon-codepen:before { content: "\f216"; } +.genericon-cog:before { content: "\f445"; } +.genericon-collapse:before { content: "\f432"; } +.genericon-comment:before { content: "\f300"; } +.genericon-day:before { content: "\f305"; } +.genericon-digg:before { content: "\f221"; } +.genericon-document:before { content: "\f443"; } +.genericon-dot:before { content: "\f428"; } +.genericon-downarrow:before { content: "\f502"; } +.genericon-download:before { content: "\f50b"; } +.genericon-draggable:before { content: "\f436"; } +.genericon-dribbble:before { content: "\f201"; } +.genericon-dropbox:before { content: "\f225"; } +.genericon-dropdown:before { content: "\f433"; } +.genericon-dropdown-left:before { content: "\f434"; } +.genericon-edit:before { content: "\f411"; } +.genericon-ellipsis:before { content: "\f476"; } +.genericon-expand:before { content: "\f431"; } +.genericon-external:before { content: "\f442"; } +.genericon-facebook:before { content: "\f203"; } +.genericon-facebook-alt:before { content: "\f204"; } +.genericon-fastforward:before { content: "\f458"; } +.genericon-feed:before { content: "\f413"; } +.genericon-flag:before { content: "\f468"; } +.genericon-flickr:before { content: "\f211"; } +.genericon-foursquare:before { content: "\f226"; } +.genericon-fullscreen:before { content: "\f474"; } +.genericon-gallery:before { content: "\f103"; } +.genericon-github:before { content: "\f200"; } +.genericon-googleplus:before { content: "\f206"; } +.genericon-googleplus-alt:before { content: "\f218"; } +.genericon-handset:before { content: "\f50c"; } +.genericon-heart:before { content: "\f461"; } +.genericon-help:before { content: "\f457"; } +.genericon-hide:before { content: "\f404"; } +.genericon-hierarchy:before { content: "\f505"; } +.genericon-home:before { content: "\f409"; } +.genericon-image:before { content: "\f102"; } +.genericon-info:before { content: "\f455"; } +.genericon-instagram:before { content: "\f215"; } +.genericon-italic:before { content: "\f472"; } +.genericon-key:before { content: "\f427"; } +.genericon-leftarrow:before { content: "\f503"; } +.genericon-link:before { content: "\f107"; } +.genericon-linkedin:before { content: "\f207"; } +.genericon-linkedin-alt:before { content: "\f208"; } +.genericon-location:before { content: "\f417"; } +.genericon-lock:before { content: "\f470"; } +.genericon-mail:before { content: "\f410"; } +.genericon-maximize:before { content: "\f422"; } +.genericon-menu:before { content: "\f419"; } +.genericon-microphone:before { content: "\f50d"; } +.genericon-minimize:before { content: "\f421"; } +.genericon-minus:before { content: "\f50e"; } +.genericon-month:before { content: "\f307"; } +.genericon-move:before { content: "\f50f"; } +.genericon-next:before { content: "\f429"; } +.genericon-notice:before { content: "\f456"; } +.genericon-paintbrush:before { content: "\f506"; } +.genericon-path:before { content: "\f219"; } +.genericon-pause:before { content: "\f448"; } +.genericon-phone:before { content: "\f437"; } +.genericon-picture:before { content: "\f473"; } +.genericon-pinned:before { content: "\f308"; } +.genericon-pinterest:before { content: "\f209"; } +.genericon-pinterest-alt:before { content: "\f210"; } +.genericon-play:before { content: "\f452"; } +.genericon-plugin:before { content: "\f439"; } +.genericon-plus:before { content: "\f510"; } +.genericon-pocket:before { content: "\f224"; } +.genericon-polldaddy:before { content: "\f217"; } +.genericon-portfolio:before { content: "\f460"; } +.genericon-previous:before { content: "\f430"; } +.genericon-print:before { content: "\f469"; } +.genericon-quote:before { content: "\f106"; } +.genericon-rating-empty:before { content: "\f511"; } +.genericon-rating-full:before { content: "\f512"; } +.genericon-rating-half:before { content: "\f513"; } +.genericon-reddit:before { content: "\f222"; } +.genericon-refresh:before { content: "\f420"; } +.genericon-reply:before { content: "\f412"; } +.genericon-reply-alt:before { content: "\f466"; } +.genericon-reply-single:before { content: "\f467"; } +.genericon-rewind:before { content: "\f459"; } +.genericon-rightarrow:before { content: "\f501"; } +.genericon-search:before { content: "\f400"; } +.genericon-send-to-phone:before { content: "\f438"; } +.genericon-send-to-tablet:before { content: "\f454"; } +.genericon-share:before { content: "\f415"; } +.genericon-show:before { content: "\f403"; } +.genericon-shuffle:before { content: "\f514"; } +.genericon-sitemap:before { content: "\f507"; } +.genericon-skip-ahead:before { content: "\f451"; } +.genericon-skip-back:before { content: "\f450"; } +.genericon-skype:before { content: "\f220"; } +.genericon-spam:before { content: "\f424"; } +.genericon-spotify:before { content: "\f515"; } +.genericon-standard:before { content: "\f100"; } +.genericon-star:before { content: "\f408"; } +.genericon-status:before { content: "\f105"; } +.genericon-stop:before { content: "\f449"; } +.genericon-stumbleupon:before { content: "\f223"; } +.genericon-subscribe:before { content: "\f463"; } +.genericon-subscribed:before { content: "\f465"; } +.genericon-summary:before { content: "\f425"; } +.genericon-tablet:before { content: "\f453"; } +.genericon-tag:before { content: "\f302"; } +.genericon-time:before { content: "\f303"; } +.genericon-top:before { content: "\f435"; } +.genericon-trash:before { content: "\f407"; } +.genericon-tumblr:before { content: "\f214"; } +.genericon-twitch:before { content: "\f516"; } +.genericon-twitter:before { content: "\f202"; } +.genericon-unapprove:before { content: "\f446"; } +.genericon-unsubscribe:before { content: "\f464"; } +.genericon-unzoom:before { content: "\f401"; } +.genericon-uparrow:before { content: "\f500"; } +.genericon-user:before { content: "\f304"; } +.genericon-video:before { content: "\f104"; } +.genericon-videocamera:before { content: "\f517"; } +.genericon-vimeo:before { content: "\f212"; } +.genericon-warning:before { content: "\f414"; } +.genericon-website:before { content: "\f475"; } +.genericon-week:before { content: "\f306"; } +.genericon-wordpress:before { content: "\f205"; } +.genericon-xpost:before { content: "\f504"; } +.genericon-youtube:before { content: "\f213"; } +.genericon-zoom:before { content: "\f402"; } + + + + diff --git a/themes/twentysixteen/img/avatar.png b/themes/twentysixteen/img/avatar.png new file mode 100644 index 0000000..52685f2 Binary files /dev/null and b/themes/twentysixteen/img/avatar.png differ diff --git a/themes/twentysixteen/js/functions.js b/themes/twentysixteen/js/functions.js new file mode 100644 index 0000000..b4436ad --- /dev/null +++ b/themes/twentysixteen/js/functions.js @@ -0,0 +1,200 @@ +/* global screenReaderText */ +/** + * Theme functions file. + * + * Contains handlers for navigation and widget area. + */ + +( function( $ ) { + var body, masthead, menuToggle, siteNavigation, socialNavigation, siteHeaderMenu, resizeTimer; + + function initMainNavigation( container ) { + + // Add dropdown toggle that displays child menu items. + var dropdownToggle = $( '