diff --git a/LICENSE b/LICENSE new file mode 100755 index 00000000..261eeb9e --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md old mode 100644 new mode 100755 index 8485fa33..41a4490c --- a/README.md +++ b/README.md @@ -1,2 +1,35 @@ # disaster-management Lynk Hackathon 2019 - Disaster Management + + +# DisMan +DisMan | Lynk Hackathon 2019 + +Hack Theme: +To build a functional web application that will help during the times of floods by enabling various stakeholders involved like the victims, volunteers and NGOs. + +# Tech Stack Used: + +BackEnd: + +Java, Postgres DB, Tomcat, Jersey (Rest API) + +FrontEnd: + +Bulma CSS, JQuery, HTML, Google Maps + + +The idea is to build an extensible and scalable web app that could be used in case of any natural disaster. + +Different portals can be created for each disaster. In this way, the app can be used for any disaster. + +Users are categorized as victims and volunteers. Users can raise requests calling out for help - either through filling a form on the app or by SMS or WhatsApp. + +Volunteers can signup on the app indicating their availability and their region. + +Requests raised by the victim will be matched to the nearest volunteer using Geo coordinates/pin code. Heatmap of most affected regions are shown. + + +Participants : [Balachandar S](https://github.com/balachandarsv/) [Sujatha S Iyer](https://github.com/SujathaSIyer) + +License : Apache 2.0 diff --git a/WebContent/META-INF/MANIFEST.MF b/WebContent/META-INF/MANIFEST.MF new file mode 100755 index 00000000..5e949512 --- /dev/null +++ b/WebContent/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Class-Path: + diff --git a/WebContent/WEB-INF/lib/aopalliance-repackaged-2.5.0.jar b/WebContent/WEB-INF/lib/aopalliance-repackaged-2.5.0.jar new file mode 100755 index 00000000..24bceaf6 Binary files /dev/null and b/WebContent/WEB-INF/lib/aopalliance-repackaged-2.5.0.jar differ diff --git a/WebContent/WEB-INF/lib/hk2-api-2.5.0.jar b/WebContent/WEB-INF/lib/hk2-api-2.5.0.jar new file mode 100755 index 00000000..749125b5 Binary files /dev/null and b/WebContent/WEB-INF/lib/hk2-api-2.5.0.jar differ diff --git a/WebContent/WEB-INF/lib/hk2-locator-2.5.0.jar b/WebContent/WEB-INF/lib/hk2-locator-2.5.0.jar new file mode 100755 index 00000000..81a15ab2 Binary files /dev/null and b/WebContent/WEB-INF/lib/hk2-locator-2.5.0.jar differ diff --git a/WebContent/WEB-INF/lib/hk2-utils-2.5.0.jar b/WebContent/WEB-INF/lib/hk2-utils-2.5.0.jar new file mode 100755 index 00000000..0c708c51 Binary files /dev/null and b/WebContent/WEB-INF/lib/hk2-utils-2.5.0.jar differ diff --git a/WebContent/WEB-INF/lib/jakarta.activation-api-1.2.1.jar b/WebContent/WEB-INF/lib/jakarta.activation-api-1.2.1.jar new file mode 100755 index 00000000..bbfb52ff Binary files /dev/null and b/WebContent/WEB-INF/lib/jakarta.activation-api-1.2.1.jar differ diff --git a/WebContent/WEB-INF/lib/jakarta.annotation-api-1.3.4.jar b/WebContent/WEB-INF/lib/jakarta.annotation-api-1.3.4.jar new file mode 100755 index 00000000..be216be9 Binary files /dev/null and b/WebContent/WEB-INF/lib/jakarta.annotation-api-1.3.4.jar differ diff --git a/WebContent/WEB-INF/lib/jakarta.inject-2.5.0.jar b/WebContent/WEB-INF/lib/jakarta.inject-2.5.0.jar new file mode 100755 index 00000000..bde8d6c7 Binary files /dev/null and b/WebContent/WEB-INF/lib/jakarta.inject-2.5.0.jar differ diff --git a/WebContent/WEB-INF/lib/jakarta.json-1.1.5.jar b/WebContent/WEB-INF/lib/jakarta.json-1.1.5.jar new file mode 100755 index 00000000..f96ee9b0 Binary files /dev/null and b/WebContent/WEB-INF/lib/jakarta.json-1.1.5.jar differ diff --git a/WebContent/WEB-INF/lib/jakarta.json-api-1.1.5.jar b/WebContent/WEB-INF/lib/jakarta.json-api-1.1.5.jar new file mode 100755 index 00000000..50995a45 Binary files /dev/null and b/WebContent/WEB-INF/lib/jakarta.json-api-1.1.5.jar differ diff --git a/WebContent/WEB-INF/lib/jakarta.json.bind-api-1.0.1.jar b/WebContent/WEB-INF/lib/jakarta.json.bind-api-1.0.1.jar new file mode 100755 index 00000000..1dbfe8c8 Binary files /dev/null and b/WebContent/WEB-INF/lib/jakarta.json.bind-api-1.0.1.jar differ diff --git a/WebContent/WEB-INF/lib/jakarta.persistence-api-2.2.2.jar b/WebContent/WEB-INF/lib/jakarta.persistence-api-2.2.2.jar new file mode 100755 index 00000000..fd4bbd9b Binary files /dev/null and b/WebContent/WEB-INF/lib/jakarta.persistence-api-2.2.2.jar differ diff --git a/WebContent/WEB-INF/lib/jakarta.servlet-api-4.0.2.jar b/WebContent/WEB-INF/lib/jakarta.servlet-api-4.0.2.jar new file mode 100755 index 00000000..3558f8cd Binary files /dev/null and b/WebContent/WEB-INF/lib/jakarta.servlet-api-4.0.2.jar differ diff --git a/WebContent/WEB-INF/lib/jakarta.ws.rs-api-2.1.5-sources.jar b/WebContent/WEB-INF/lib/jakarta.ws.rs-api-2.1.5-sources.jar new file mode 100755 index 00000000..d12a39cb Binary files /dev/null and b/WebContent/WEB-INF/lib/jakarta.ws.rs-api-2.1.5-sources.jar differ diff --git a/WebContent/WEB-INF/lib/jakarta.ws.rs-api-2.1.5.jar b/WebContent/WEB-INF/lib/jakarta.ws.rs-api-2.1.5.jar new file mode 100755 index 00000000..638ec088 Binary files /dev/null and b/WebContent/WEB-INF/lib/jakarta.ws.rs-api-2.1.5.jar differ diff --git a/WebContent/WEB-INF/lib/jakarta.xml.bind-api-2.3.2.jar b/WebContent/WEB-INF/lib/jakarta.xml.bind-api-2.3.2.jar new file mode 100755 index 00000000..b16236d5 Binary files /dev/null and b/WebContent/WEB-INF/lib/jakarta.xml.bind-api-2.3.2.jar differ diff --git a/WebContent/WEB-INF/lib/javassist-3.22.0-GA.jar b/WebContent/WEB-INF/lib/javassist-3.22.0-GA.jar new file mode 100755 index 00000000..e7ec7ffe Binary files /dev/null and b/WebContent/WEB-INF/lib/javassist-3.22.0-GA.jar differ diff --git a/WebContent/WEB-INF/lib/jersey-client.jar b/WebContent/WEB-INF/lib/jersey-client.jar new file mode 100755 index 00000000..a7830224 Binary files /dev/null and b/WebContent/WEB-INF/lib/jersey-client.jar differ diff --git a/WebContent/WEB-INF/lib/jersey-common.jar b/WebContent/WEB-INF/lib/jersey-common.jar new file mode 100755 index 00000000..12191bcb Binary files /dev/null and b/WebContent/WEB-INF/lib/jersey-common.jar differ diff --git a/WebContent/WEB-INF/lib/jersey-container-servlet-core.jar b/WebContent/WEB-INF/lib/jersey-container-servlet-core.jar new file mode 100755 index 00000000..a3bf4854 Binary files /dev/null and b/WebContent/WEB-INF/lib/jersey-container-servlet-core.jar differ diff --git a/WebContent/WEB-INF/lib/jersey-container-servlet.jar b/WebContent/WEB-INF/lib/jersey-container-servlet.jar new file mode 100755 index 00000000..5b31b01d Binary files /dev/null and b/WebContent/WEB-INF/lib/jersey-container-servlet.jar differ diff --git a/WebContent/WEB-INF/lib/jersey-hk2.jar b/WebContent/WEB-INF/lib/jersey-hk2.jar new file mode 100755 index 00000000..62f3ad9e Binary files /dev/null and b/WebContent/WEB-INF/lib/jersey-hk2.jar differ diff --git a/WebContent/WEB-INF/lib/jersey-media-jaxb.jar b/WebContent/WEB-INF/lib/jersey-media-jaxb.jar new file mode 100755 index 00000000..0a144598 Binary files /dev/null and b/WebContent/WEB-INF/lib/jersey-media-jaxb.jar differ diff --git a/WebContent/WEB-INF/lib/jersey-media-json-binding.jar b/WebContent/WEB-INF/lib/jersey-media-json-binding.jar new file mode 100755 index 00000000..ea026a61 Binary files /dev/null and b/WebContent/WEB-INF/lib/jersey-media-json-binding.jar differ diff --git a/WebContent/WEB-INF/lib/jersey-media-multipart-2.28.jar b/WebContent/WEB-INF/lib/jersey-media-multipart-2.28.jar new file mode 100755 index 00000000..d078e417 Binary files /dev/null and b/WebContent/WEB-INF/lib/jersey-media-multipart-2.28.jar differ diff --git a/WebContent/WEB-INF/lib/jersey-media-sse.jar b/WebContent/WEB-INF/lib/jersey-media-sse.jar new file mode 100755 index 00000000..da3b501f Binary files /dev/null and b/WebContent/WEB-INF/lib/jersey-media-sse.jar differ diff --git a/WebContent/WEB-INF/lib/jersey-server.jar b/WebContent/WEB-INF/lib/jersey-server.jar new file mode 100755 index 00000000..73ff9a25 Binary files /dev/null and b/WebContent/WEB-INF/lib/jersey-server.jar differ diff --git a/WebContent/WEB-INF/lib/json-20190722.jar b/WebContent/WEB-INF/lib/json-20190722.jar new file mode 100755 index 00000000..6db21f62 Binary files /dev/null and b/WebContent/WEB-INF/lib/json-20190722.jar differ diff --git a/WebContent/WEB-INF/lib/mimepull-1.9.11.jar b/WebContent/WEB-INF/lib/mimepull-1.9.11.jar new file mode 100755 index 00000000..99a4aba0 Binary files /dev/null and b/WebContent/WEB-INF/lib/mimepull-1.9.11.jar differ diff --git a/WebContent/WEB-INF/lib/org.osgi.core-4.2.0.jar b/WebContent/WEB-INF/lib/org.osgi.core-4.2.0.jar new file mode 100755 index 00000000..b986ac17 Binary files /dev/null and b/WebContent/WEB-INF/lib/org.osgi.core-4.2.0.jar differ diff --git a/WebContent/WEB-INF/lib/osgi-resource-locator-1.0.1.jar b/WebContent/WEB-INF/lib/osgi-resource-locator-1.0.1.jar new file mode 100755 index 00000000..bd6aa17e Binary files /dev/null and b/WebContent/WEB-INF/lib/osgi-resource-locator-1.0.1.jar differ diff --git a/WebContent/WEB-INF/lib/postgresql-42.2.8.jar b/WebContent/WEB-INF/lib/postgresql-42.2.8.jar new file mode 100755 index 00000000..25661456 Binary files /dev/null and b/WebContent/WEB-INF/lib/postgresql-42.2.8.jar differ diff --git a/WebContent/WEB-INF/lib/validation-api-2.0.1.Final.jar b/WebContent/WEB-INF/lib/validation-api-2.0.1.Final.jar new file mode 100755 index 00000000..2368e10a Binary files /dev/null and b/WebContent/WEB-INF/lib/validation-api-2.0.1.Final.jar differ diff --git a/WebContent/WEB-INF/lib/yasson-1.0.3.jar b/WebContent/WEB-INF/lib/yasson-1.0.3.jar new file mode 100755 index 00000000..dfa24dbe Binary files /dev/null and b/WebContent/WEB-INF/lib/yasson-1.0.3.jar differ diff --git a/WebContent/WEB-INF/views/footer.jsp b/WebContent/WEB-INF/views/footer.jsp new file mode 100755 index 00000000..734fb8ec --- /dev/null +++ b/WebContent/WEB-INF/views/footer.jsp @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file diff --git a/WebContent/WEB-INF/views/header.jsp b/WebContent/WEB-INF/views/header.jsp new file mode 100755 index 00000000..f4f2d3fc --- /dev/null +++ b/WebContent/WEB-INF/views/header.jsp @@ -0,0 +1,72 @@ + +<%@page import="com.zeemonsters.disman.auth.SecurityConfig"%> +<%@page import="com.zeemonsters.disman.auth.AppUtils"%> +<%@page import="com.zeemonsters.disman.auth.UserAccount"%> + + + +ZeeMonsters | DisMan + + + + + + + + +
+
+ +
\ No newline at end of file diff --git a/WebContent/WEB-INF/views/index.jsp b/WebContent/WEB-INF/views/index.jsp new file mode 100755 index 00000000..80520223 --- /dev/null +++ b/WebContent/WEB-INF/views/index.jsp @@ -0,0 +1,172 @@ +<%@page import="com.zeemonsters.disman.auth.SecurityConfig"%> +<%@page import="com.zeemonsters.disman.auth.AppUtils"%> +<%@page import="com.zeemonsters.disman.auth.UserAccount"%> +<%@page import="java.util.Set"%> +<%@page import="java.util.Iterator"%> + + + +<% + UserAccount account = AppUtils.getLoginedUser(session); +%> +<% + if (account != null) { + if (account.getRoles().get(0).equals(SecurityConfig.ROLE_VOLUNTEER)) { +%> +
+
+
+ +
+ + +
+ +
+
+
+

DisMan

+

Chance favours the prepared mind

+
+ +
+ +
+
+
+<% + } + } else { +%> +
+
+
+

DisMan

+

Chance favours the prepared mind

+
+
+
+ +<% + } +%> + + + +
+

Recent Portals

+
+ + +
+
+
+ + \ No newline at end of file diff --git a/WebContent/WEB-INF/views/login.jsp b/WebContent/WEB-INF/views/login.jsp new file mode 100755 index 00000000..c116f0ec --- /dev/null +++ b/WebContent/WEB-INF/views/login.jsp @@ -0,0 +1,59 @@ + +<%@page import="java.util.Set"%> +<%@page import="java.util.Iterator"%> + + + +
+
+
+

Login

+ + <% + if (request.getAttribute("errorMessage") != null) { + %> +

${errorMessage}

+ <% + request.setAttribute("errorMessage", null); + } + %> + +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ + +
+
+

+ Sign Up +

+
+
+
+ + + \ No newline at end of file diff --git a/WebContent/WEB-INF/views/portal.jsp b/WebContent/WEB-INF/views/portal.jsp new file mode 100755 index 00000000..d7e1c049 --- /dev/null +++ b/WebContent/WEB-INF/views/portal.jsp @@ -0,0 +1,354 @@ +<%@page import="com.zeemonsters.disman.auth.SecurityConfig"%> +<%@page import="com.zeemonsters.disman.auth.AppUtils"%> +<%@page import="com.zeemonsters.disman.auth.UserAccount"%> + + + +
+
+
+
+ +
+
+
+
+ + + + + + +
+
+ +
+ + +
+
+ <% + if (account != null) { + if (account.getRoles().get(0).equals(SecurityConfig.ROLE_VOLUNTEER)) { + %> + + <%} + }%> + +
+
+
+

Affected Regions

+
+
+ + + + + +
+ + \ No newline at end of file diff --git a/WebContent/WEB-INF/views/portals.jsp b/WebContent/WEB-INF/views/portals.jsp new file mode 100755 index 00000000..d812124d --- /dev/null +++ b/WebContent/WEB-INF/views/portals.jsp @@ -0,0 +1,37 @@ +<%@page import="com.zeemonsters.disman.auth.SecurityConfig"%> +<%@page import="com.zeemonsters.disman.auth.AppUtils"%> +<%@page import="com.zeemonsters.disman.auth.UserAccount"%> +<%@page import="java.util.Set"%> +<%@page import="java.util.Iterator"%> + + +
+ +

Portals

+
+ + +
+
+ + + \ No newline at end of file diff --git a/WebContent/WEB-INF/views/profile.jsp b/WebContent/WEB-INF/views/profile.jsp new file mode 100755 index 00000000..b6ef1666 --- /dev/null +++ b/WebContent/WEB-INF/views/profile.jsp @@ -0,0 +1,192 @@ +<%@page import="com.zeemonsters.disman.auth.SecurityConfig"%> +<%@page import="com.zeemonsters.disman.auth.AppUtils"%> +<%@page import="com.zeemonsters.disman.auth.UserAccount"%> +<%@page import="java.util.Set"%> +<%@page import="java.util.Iterator"%> + + + +<% + UserAccount account = AppUtils.getLoginedUser(session); +%> +<% + if (account != null) { + if (account.getRoles().get(0).equals(SecurityConfig.ROLE_VOLUNTEER)) { +%> +
+
+
+ +
+ + +
+ +
+
+
+

DisMan

+

Helping when required

+
+ +
+ +
+
+
+<% + } + + } +%> + + + + + + \ No newline at end of file diff --git a/WebContent/WEB-INF/views/requests.jsp b/WebContent/WEB-INF/views/requests.jsp new file mode 100755 index 00000000..dfbf1526 --- /dev/null +++ b/WebContent/WEB-INF/views/requests.jsp @@ -0,0 +1,425 @@ +<%@page import="com.zeemonsters.disman.auth.SecurityConfig"%> +<%@page import="com.zeemonsters.disman.auth.AppUtils"%> +<%@page import="com.zeemonsters.disman.auth.UserAccount"%> +<%@page import="java.util.Set"%> +<%@page import="java.util.Iterator"%> + + + +<% + UserAccount account = AppUtils.getLoginedUser(session); +%> +<% + if (account != null) { + if (account.getRoles().get(0).equals(SecurityConfig.ROLE_VOLUNTEER)) { +%> +
+ + + + +

By Latitude Longitude | Closer to you

+ + + + + + + + + + + + + + + + + +
UserIdPincodeLatitudeLongitudeTagsMessageAssigned ToDateActions
+
+

By Pincode

+ + + + + + + + + + + + + + + + + +
UserIdPincodeLatitudeLongitudeTagsMessageAssigned ToDateActions
+ +
+

ALL

+ + + + + + + + + + + + + + + + + +
UserIdPincodeLatitudeLongitudeTagsMessageAssigned ToDateActions
+
+ +<% + } + + } +%> +
+
+
+
+ + +
+
+
+
+ \ No newline at end of file diff --git a/WebContent/WEB-INF/views/signup.jsp b/WebContent/WEB-INF/views/signup.jsp new file mode 100755 index 00000000..fcc1e512 --- /dev/null +++ b/WebContent/WEB-INF/views/signup.jsp @@ -0,0 +1,69 @@ + +<%@page import="java.util.Set"%> +<%@page import="java.util.Iterator"%> + + + +
+
+
+

Signup

+ + <% + if (request.getAttribute("message") != null) { + %> +

${message}

+ <% + request.setAttribute("message", null); + } + %> + +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+ +
+
+

+ Login +

+
+
+
+ + \ No newline at end of file diff --git a/WebContent/WEB-INF/web.xml b/WebContent/WEB-INF/web.xml new file mode 100755 index 00000000..f29c11ad --- /dev/null +++ b/WebContent/WEB-INF/web.xml @@ -0,0 +1,24 @@ + + + DisMan + + RESTAPI + org.glassfish.jersey.servlet.ServletContainer + + + jersey.config.server.provider.packages + com.zeemonsters.disman.servlet + + 1 + + + RESTAPI + /api/* + + + welcome + + \ No newline at end of file diff --git a/WebContent/assets/bulma.css b/WebContent/assets/bulma.css new file mode 100755 index 00000000..e793432a --- /dev/null +++ b/WebContent/assets/bulma.css @@ -0,0 +1,10599 @@ +/*! bulma.io v0.7.5 | MIT License | github.com/jgthms/bulma */ +@-webkit-keyframes spinAround { + from { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + to { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@keyframes spinAround { + from { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + to { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + +.delete, .modal-close, .is-unselectable, .button, .file, .breadcrumb, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .tabs { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.select:not(.is-multiple):not(.is-loading)::after, .navbar-link:not(.is-arrowless)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + -webkit-transform-origin: center; + transform-origin: center; + width: 0.625em; +} + +.box:not(:last-child), .content:not(:last-child), .notification:not(:last-child), .progress:not(:last-child), .table:not(:last-child), .table-container:not(:last-child), .title:not(:last-child), +.subtitle:not(:last-child), .block:not(:last-child), .highlight:not(:last-child), .breadcrumb:not(:last-child), .level:not(:last-child), .list:not(:last-child), .message:not(:last-child), .tabs:not(:last-child) { + margin-bottom: 1.5rem; +} + +.delete, .modal-close { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; +} + +.delete::before, .modal-close::before, .delete::after, .modal-close::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + -webkit-transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform: translateX(-50%) translateY(-50%) rotate(45deg); + -webkit-transform-origin: center center; + transform-origin: center center; +} + +.delete::before, .modal-close::before { + height: 2px; + width: 50%; +} + +.delete::after, .modal-close::after { + height: 50%; + width: 2px; +} + +.delete:hover, .modal-close:hover, .delete:focus, .modal-close:focus { + background-color: rgba(10, 10, 10, 0.3); +} + +.delete:active, .modal-close:active { + background-color: rgba(10, 10, 10, 0.4); +} + +.is-small.delete, .is-small.modal-close { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; +} + +.is-medium.delete, .is-medium.modal-close { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; +} + +.is-large.delete, .is-large.modal-close { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; +} + +.button.is-loading::after, .loader, .select.is-loading::after, .control.is-loading::after { + -webkit-animation: spinAround 500ms infinite linear; + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdbdb; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; +} + +.is-overlay, .image.is-square img, +.image.is-square .has-ratio, .image.is-1by1 img, +.image.is-1by1 .has-ratio, .image.is-5by4 img, +.image.is-5by4 .has-ratio, .image.is-4by3 img, +.image.is-4by3 .has-ratio, .image.is-3by2 img, +.image.is-3by2 .has-ratio, .image.is-5by3 img, +.image.is-5by3 .has-ratio, .image.is-16by9 img, +.image.is-16by9 .has-ratio, .image.is-2by1 img, +.image.is-2by1 .has-ratio, .image.is-3by1 img, +.image.is-3by1 .has-ratio, .image.is-4by5 img, +.image.is-4by5 .has-ratio, .image.is-3by4 img, +.image.is-3by4 .has-ratio, .image.is-2by3 img, +.image.is-2by3 .has-ratio, .image.is-3by5 img, +.image.is-3by5 .has-ratio, .image.is-9by16 img, +.image.is-9by16 .has-ratio, .image.is-1by2 img, +.image.is-1by2 .has-ratio, .image.is-1by3 img, +.image.is-1by3 .has-ratio, .modal, .modal-background, .hero-video { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; +} + +.button, .input, .textarea, .select select, .file-cta, +.file-name, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 4px; + box-shadow: none; + display: inline-flex; + font-size: 1rem; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; +} + +.button:focus, .input:focus, .textarea:focus, .select select:focus, .file-cta:focus, +.file-name:focus, .pagination-previous:focus, +.pagination-next:focus, +.pagination-link:focus, +.pagination-ellipsis:focus, .is-focused.button, .is-focused.input, .is-focused.textarea, .select select.is-focused, .is-focused.file-cta, +.is-focused.file-name, .is-focused.pagination-previous, +.is-focused.pagination-next, +.is-focused.pagination-link, +.is-focused.pagination-ellipsis, .button:active, .input:active, .textarea:active, .select select:active, .file-cta:active, +.file-name:active, .pagination-previous:active, +.pagination-next:active, +.pagination-link:active, +.pagination-ellipsis:active, .is-active.button, .is-active.input, .is-active.textarea, .select select.is-active, .is-active.file-cta, +.is-active.file-name, .is-active.pagination-previous, +.is-active.pagination-next, +.is-active.pagination-link, +.is-active.pagination-ellipsis { + outline: none; +} + +.button[disabled], .input[disabled], .textarea[disabled], .select select[disabled], .file-cta[disabled], +.file-name[disabled], .pagination-previous[disabled], +.pagination-next[disabled], +.pagination-link[disabled], +.pagination-ellipsis[disabled], +fieldset[disabled] .button, +fieldset[disabled] .input, +fieldset[disabled] .textarea, +fieldset[disabled] .select select, +.select fieldset[disabled] select, +fieldset[disabled] .file-cta, +fieldset[disabled] .file-name, +fieldset[disabled] .pagination-previous, +fieldset[disabled] .pagination-next, +fieldset[disabled] .pagination-link, +fieldset[disabled] .pagination-ellipsis { + cursor: not-allowed; +} + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; +} + +ul { + list-style: none; +} + +button, +input, +select, +textarea { + margin: 0; +} + +html { + box-sizing: border-box; +} + +*, *::before, *::after { + box-sizing: inherit; +} + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; +} + +audio { + max-width: 100%; +} + +iframe { + border: 0; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, +th { + padding: 0; +} + +td:not([align]), +th:not([align]) { + text-align: left; +} + +html { + background-color: white; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: hidden; + overflow-y: scroll; + text-rendering: optimizeLegibility; + -webkit-text-size-adjust: 100%; + -moz-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + text-size-adjust: 100%; +} + +article, +aside, +figure, +footer, +header, +hgroup, +section { + display: block; +} + +body, +button, +input, +select, +textarea { + font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif; +} + +code, +pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: monospace; +} + +body { + color: #4a4a4a; + font-size: 1em; + font-weight: 400; + line-height: 1.5; +} + +a { + color: #3273dc; + cursor: pointer; + text-decoration: none; +} + +a strong { + color: currentColor; +} + +a:hover { + color: #363636; +} + +code { + background-color: whitesmoke; + color: #ff3860; + font-size: 0.875em; + font-weight: normal; + padding: 0.25em 0.5em 0.25em; +} + +hr { + background-color: whitesmoke; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; +} + +img { + height: auto; + max-width: 100%; +} + +input[type="checkbox"], +input[type="radio"] { + vertical-align: baseline; +} + +small { + font-size: 0.875em; +} + +span { + font-style: inherit; + font-weight: inherit; +} + +strong { + color: #363636; + font-weight: 700; +} + +fieldset { + border: none; +} + +pre { + -webkit-overflow-scrolling: touch; + background-color: whitesmoke; + color: #4a4a4a; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; +} + +pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; +} + +table td, +table th { + vertical-align: top; +} + +table td:not([align]), +table th:not([align]) { + text-align: left; +} + +table th { + color: #363636; +} + +.is-clearfix::after { + clear: both; + content: " "; + display: table; +} + +.is-pulled-left { + float: left !important; +} + +.is-pulled-right { + float: right !important; +} + +.is-clipped { + overflow: hidden !important; +} + +.is-size-1 { + font-size: 3rem !important; +} + +.is-size-2 { + font-size: 2.5rem !important; +} + +.is-size-3 { + font-size: 2rem !important; +} + +.is-size-4 { + font-size: 1.5rem !important; +} + +.is-size-5 { + font-size: 1.25rem !important; +} + +.is-size-6 { + font-size: 1rem !important; +} + +.is-size-7 { + font-size: 0.75rem !important; +} + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; + } + .is-size-2-mobile { + font-size: 2.5rem !important; + } + .is-size-3-mobile { + font-size: 2rem !important; + } + .is-size-4-mobile { + font-size: 1.5rem !important; + } + .is-size-5-mobile { + font-size: 1.25rem !important; + } + .is-size-6-mobile { + font-size: 1rem !important; + } + .is-size-7-mobile { + font-size: 0.75rem !important; + } +} + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; + } + .is-size-2-tablet { + font-size: 2.5rem !important; + } + .is-size-3-tablet { + font-size: 2rem !important; + } + .is-size-4-tablet { + font-size: 1.5rem !important; + } + .is-size-5-tablet { + font-size: 1.25rem !important; + } + .is-size-6-tablet { + font-size: 1rem !important; + } + .is-size-7-tablet { + font-size: 0.75rem !important; + } +} + +@media screen and (max-width: 1023px) { + .is-size-1-touch { + font-size: 3rem !important; + } + .is-size-2-touch { + font-size: 2.5rem !important; + } + .is-size-3-touch { + font-size: 2rem !important; + } + .is-size-4-touch { + font-size: 1.5rem !important; + } + .is-size-5-touch { + font-size: 1.25rem !important; + } + .is-size-6-touch { + font-size: 1rem !important; + } + .is-size-7-touch { + font-size: 0.75rem !important; + } +} + +@media screen and (min-width: 1024px) { + .is-size-1-desktop { + font-size: 3rem !important; + } + .is-size-2-desktop { + font-size: 2.5rem !important; + } + .is-size-3-desktop { + font-size: 2rem !important; + } + .is-size-4-desktop { + font-size: 1.5rem !important; + } + .is-size-5-desktop { + font-size: 1.25rem !important; + } + .is-size-6-desktop { + font-size: 1rem !important; + } + .is-size-7-desktop { + font-size: 0.75rem !important; + } +} + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; + } + .is-size-2-widescreen { + font-size: 2.5rem !important; + } + .is-size-3-widescreen { + font-size: 2rem !important; + } + .is-size-4-widescreen { + font-size: 1.5rem !important; + } + .is-size-5-widescreen { + font-size: 1.25rem !important; + } + .is-size-6-widescreen { + font-size: 1rem !important; + } + .is-size-7-widescreen { + font-size: 0.75rem !important; + } +} + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; + } + .is-size-2-fullhd { + font-size: 2.5rem !important; + } + .is-size-3-fullhd { + font-size: 2rem !important; + } + .is-size-4-fullhd { + font-size: 1.5rem !important; + } + .is-size-5-fullhd { + font-size: 1.25rem !important; + } + .is-size-6-fullhd { + font-size: 1rem !important; + } + .is-size-7-fullhd { + font-size: 0.75rem !important; + } +} + +.has-text-centered { + text-align: center !important; +} + +.has-text-justified { + text-align: justify !important; +} + +.has-text-left { + text-align: left !important; +} + +.has-text-right { + text-align: right !important; +} + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; + } +} + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .has-text-centered-tablet-only { + text-align: center !important; + } +} + +@media screen and (max-width: 1023px) { + .has-text-centered-touch { + text-align: center !important; + } +} + +@media screen and (min-width: 1024px) { + .has-text-centered-desktop { + text-align: center !important; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; + } +} + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; + } +} + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; + } +} + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; + } +} + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .has-text-justified-tablet-only { + text-align: justify !important; + } +} + +@media screen and (max-width: 1023px) { + .has-text-justified-touch { + text-align: justify !important; + } +} + +@media screen and (min-width: 1024px) { + .has-text-justified-desktop { + text-align: justify !important; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; + } +} + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; + } +} + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; + } +} + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; + } +} + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .has-text-left-tablet-only { + text-align: left !important; + } +} + +@media screen and (max-width: 1023px) { + .has-text-left-touch { + text-align: left !important; + } +} + +@media screen and (min-width: 1024px) { + .has-text-left-desktop { + text-align: left !important; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; + } +} + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; + } +} + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; + } +} + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; + } +} + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .has-text-right-tablet-only { + text-align: right !important; + } +} + +@media screen and (max-width: 1023px) { + .has-text-right-touch { + text-align: right !important; + } +} + +@media screen and (min-width: 1024px) { + .has-text-right-desktop { + text-align: right !important; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; + } +} + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; + } +} + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; + } +} + +.is-capitalized { + text-transform: capitalize !important; +} + +.is-lowercase { + text-transform: lowercase !important; +} + +.is-uppercase { + text-transform: uppercase !important; +} + +.is-italic { + font-style: italic !important; +} + +.has-text-white { + color: white !important; +} + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; +} + +.has-background-white { + background-color: white !important; +} + +.has-text-black { + color: #0a0a0a !important; +} + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; +} + +.has-background-black { + background-color: #0a0a0a !important; +} + +.has-text-light { + color: whitesmoke !important; +} + +a.has-text-light:hover, a.has-text-light:focus { + color: #dbdbdb !important; +} + +.has-background-light { + background-color: whitesmoke !important; +} + +.has-text-dark { + color: #363636 !important; +} + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #1c1c1c !important; +} + +.has-background-dark { + background-color: #363636 !important; +} + +.has-text-primary { + color: #00d1b2 !important; +} + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #009e86 !important; +} + +.has-background-primary { + background-color: #00d1b2 !important; +} + +.has-text-link { + color: #3273dc !important; +} + +a.has-text-link:hover, a.has-text-link:focus { + color: #205bbc !important; +} + +.has-background-link { + background-color: #3273dc !important; +} + +.has-text-info { + color: #209cee !important; +} + +a.has-text-info:hover, a.has-text-info:focus { + color: #0f81cc !important; +} + +.has-background-info { + background-color: #209cee !important; +} + +.has-text-success { + color: #23d160 !important; +} + +a.has-text-success:hover, a.has-text-success:focus { + color: #1ca64c !important; +} + +.has-background-success { + background-color: #23d160 !important; +} + +.has-text-warning { + color: #ffdd57 !important; +} + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #ffd324 !important; +} + +.has-background-warning { + background-color: #ffdd57 !important; +} + +.has-text-danger { + color: #ff3860 !important; +} + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #ff0537 !important; +} + +.has-background-danger { + background-color: #ff3860 !important; +} + +.has-text-black-bis { + color: #121212 !important; +} + +.has-background-black-bis { + background-color: #121212 !important; +} + +.has-text-black-ter { + color: #242424 !important; +} + +.has-background-black-ter { + background-color: #242424 !important; +} + +.has-text-grey-darker { + color: #363636 !important; +} + +.has-background-grey-darker { + background-color: #363636 !important; +} + +.has-text-grey-dark { + color: #4a4a4a !important; +} + +.has-background-grey-dark { + background-color: #4a4a4a !important; +} + +.has-text-grey { + color: #7a7a7a !important; +} + +.has-background-grey { + background-color: #7a7a7a !important; +} + +.has-text-grey-light { + color: #b5b5b5 !important; +} + +.has-background-grey-light { + background-color: #b5b5b5 !important; +} + +.has-text-grey-lighter { + color: #dbdbdb !important; +} + +.has-background-grey-lighter { + background-color: #dbdbdb !important; +} + +.has-text-white-ter { + color: whitesmoke !important; +} + +.has-background-white-ter { + background-color: whitesmoke !important; +} + +.has-text-white-bis { + color: #fafafa !important; +} + +.has-background-white-bis { + background-color: #fafafa !important; +} + +.has-text-weight-light { + font-weight: 300 !important; +} + +.has-text-weight-normal { + font-weight: 400 !important; +} + +.has-text-weight-medium { + font-weight: 500 !important; +} + +.has-text-weight-semibold { + font-weight: 600 !important; +} + +.has-text-weight-bold { + font-weight: 700 !important; +} + +.is-family-primary { + font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; +} + +.is-family-secondary { + font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; +} + +.is-family-sans-serif { + font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; +} + +.is-family-monospace { + font-family: monospace !important; +} + +.is-family-code { + font-family: monospace !important; +} + +.is-block { + display: block !important; +} + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; + } +} + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .is-block-tablet-only { + display: block !important; + } +} + +@media screen and (max-width: 1023px) { + .is-block-touch { + display: block !important; + } +} + +@media screen and (min-width: 1024px) { + .is-block-desktop { + display: block !important; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; + } +} + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; + } +} + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; + } +} + +.is-flex { + display: flex !important; +} + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; + } +} + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .is-flex-tablet-only { + display: flex !important; + } +} + +@media screen and (max-width: 1023px) { + .is-flex-touch { + display: flex !important; + } +} + +@media screen and (min-width: 1024px) { + .is-flex-desktop { + display: flex !important; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; + } +} + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; + } +} + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; + } +} + +.is-inline { + display: inline !important; +} + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; + } +} + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .is-inline-tablet-only { + display: inline !important; + } +} + +@media screen and (max-width: 1023px) { + .is-inline-touch { + display: inline !important; + } +} + +@media screen and (min-width: 1024px) { + .is-inline-desktop { + display: inline !important; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; + } +} + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; + } +} + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; + } +} + +.is-inline-block { + display: inline-block !important; +} + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; + } +} + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .is-inline-block-tablet-only { + display: inline-block !important; + } +} + +@media screen and (max-width: 1023px) { + .is-inline-block-touch { + display: inline-block !important; + } +} + +@media screen and (min-width: 1024px) { + .is-inline-block-desktop { + display: inline-block !important; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; + } +} + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; + } +} + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; + } +} + +.is-inline-flex { + display: inline-flex !important; +} + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; + } +} + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; + } +} + +@media screen and (max-width: 1023px) { + .is-inline-flex-touch { + display: inline-flex !important; + } +} + +@media screen and (min-width: 1024px) { + .is-inline-flex-desktop { + display: inline-flex !important; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; + } +} + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; + } +} + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; + } +} + +.is-hidden { + display: none !important; +} + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; +} + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; + } +} + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .is-hidden-tablet-only { + display: none !important; + } +} + +@media screen and (max-width: 1023px) { + .is-hidden-touch { + display: none !important; + } +} + +@media screen and (min-width: 1024px) { + .is-hidden-desktop { + display: none !important; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; + } +} + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; + } +} + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; + } +} + +.is-invisible { + visibility: hidden !important; +} + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; + } +} + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .is-invisible-tablet-only { + visibility: hidden !important; + } +} + +@media screen and (max-width: 1023px) { + .is-invisible-touch { + visibility: hidden !important; + } +} + +@media screen and (min-width: 1024px) { + .is-invisible-desktop { + visibility: hidden !important; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; + } +} + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; + } +} + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; + } +} + +.is-marginless { + margin: 0 !important; +} + +.is-paddingless { + padding: 0 !important; +} + +.is-radiusless { + border-radius: 0 !important; +} + +.is-shadowless { + box-shadow: none !important; +} + +.is-relative { + position: relative !important; +} + +.box { + background-color: white; + border-radius: 6px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #4a4a4a; + display: block; + padding: 1.25rem; +} + +a.box:hover, a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #3273dc; +} + +a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #3273dc; +} + +.button { + background-color: white; + border-color: #dbdbdb; + border-width: 1px; + color: #363636; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; +} + +.button strong { + color: inherit; +} + +.button .icon, .button .icon.is-small, .button .icon.is-medium, .button .icon.is-large { + height: 1.5em; + width: 1.5em; +} + +.button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; +} + +.button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); +} + +.button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); +} + +.button:hover, .button.is-hovered { + border-color: #b5b5b5; + color: #363636; +} + +.button:focus, .button.is-focused { + border-color: #3273dc; + color: #363636; +} + +.button:focus:not(:active), .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); +} + +.button:active, .button.is-active { + border-color: #4a4a4a; + color: #363636; +} + +.button.is-text { + background-color: transparent; + border-color: transparent; + color: #4a4a4a; + text-decoration: underline; +} + +.button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused { + background-color: whitesmoke; + color: #363636; +} + +.button.is-text:active, .button.is-text.is-active { + background-color: #e8e8e8; + color: #363636; +} + +.button.is-text[disabled], +fieldset[disabled] .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; +} + +.button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; +} + +.button.is-white:hover, .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; +} + +.button.is-white:focus, .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; +} + +.button.is-white:focus:not(:active), .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); +} + +.button.is-white:active, .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; +} + +.button.is-white[disabled], +fieldset[disabled] .button.is-white { + background-color: white; + border-color: transparent; + box-shadow: none; +} + +.button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; +} + +.button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered { + background-color: black; +} + +.button.is-white.is-inverted[disabled], +fieldset[disabled] .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; +} + +.button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; +} + +.button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; +} + +.button.is-white.is-outlined:hover, .button.is-white.is-outlined.is-hovered, .button.is-white.is-outlined:focus, .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; +} + +.button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; +} + +.button.is-white.is-outlined.is-loading:hover::after, .button.is-white.is-outlined.is-loading.is-hovered::after, .button.is-white.is-outlined.is-loading:focus::after, .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; +} + +.button.is-white.is-outlined[disabled], +fieldset[disabled] .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; +} + +.button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; +} + +.button.is-white.is-inverted.is-outlined:hover, .button.is-white.is-inverted.is-outlined.is-hovered, .button.is-white.is-inverted.is-outlined:focus, .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; +} + +.button.is-white.is-inverted.is-outlined.is-loading:hover::after, .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-white.is-inverted.is-outlined.is-loading:focus::after, .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; +} + +.button.is-white.is-inverted.is-outlined[disabled], +fieldset[disabled] .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; +} + +.button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; +} + +.button.is-black:hover, .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; +} + +.button.is-black:focus, .button.is-black.is-focused { + border-color: transparent; + color: white; +} + +.button.is-black:focus:not(:active), .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); +} + +.button.is-black:active, .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; +} + +.button.is-black[disabled], +fieldset[disabled] .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; +} + +.button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; +} + +.button.is-black.is-inverted:hover, .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; +} + +.button.is-black.is-inverted[disabled], +fieldset[disabled] .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; +} + +.button.is-black.is-loading::after { + border-color: transparent transparent white white !important; +} + +.button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; +} + +.button.is-black.is-outlined:hover, .button.is-black.is-outlined.is-hovered, .button.is-black.is-outlined:focus, .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; +} + +.button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; +} + +.button.is-black.is-outlined.is-loading:hover::after, .button.is-black.is-outlined.is-loading.is-hovered::after, .button.is-black.is-outlined.is-loading:focus::after, .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; +} + +.button.is-black.is-outlined[disabled], +fieldset[disabled] .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; +} + +.button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; +} + +.button.is-black.is-inverted.is-outlined:hover, .button.is-black.is-inverted.is-outlined.is-hovered, .button.is-black.is-inverted.is-outlined:focus, .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; +} + +.button.is-black.is-inverted.is-outlined.is-loading:hover::after, .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-black.is-inverted.is-outlined.is-loading:focus::after, .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; +} + +.button.is-black.is-inverted.is-outlined[disabled], +fieldset[disabled] .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; +} + +.button.is-light { + background-color: whitesmoke; + border-color: transparent; + color: #363636; +} + +.button.is-light:hover, .button.is-light.is-hovered { + background-color: #eeeeee; + border-color: transparent; + color: #363636; +} + +.button.is-light:focus, .button.is-light.is-focused { + border-color: transparent; + color: #363636; +} + +.button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); +} + +.button.is-light:active, .button.is-light.is-active { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; +} + +.button.is-light[disabled], +fieldset[disabled] .button.is-light { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; +} + +.button.is-light.is-inverted { + background-color: #363636; + color: whitesmoke; +} + +.button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered { + background-color: #292929; +} + +.button.is-light.is-inverted[disabled], +fieldset[disabled] .button.is-light.is-inverted { + background-color: #363636; + border-color: transparent; + box-shadow: none; + color: whitesmoke; +} + +.button.is-light.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; +} + +.button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; +} + +.button.is-light.is-outlined:hover, .button.is-light.is-outlined.is-hovered, .button.is-light.is-outlined:focus, .button.is-light.is-outlined.is-focused { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; +} + +.button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; +} + +.button.is-light.is-outlined.is-loading:hover::after, .button.is-light.is-outlined.is-loading.is-hovered::after, .button.is-light.is-outlined.is-loading:focus::after, .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; +} + +.button.is-light.is-outlined[disabled], +fieldset[disabled] .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; +} + +.button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; +} + +.button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined.is-hovered, .button.is-light.is-inverted.is-outlined:focus, .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #363636; + color: whitesmoke; +} + +.button.is-light.is-inverted.is-outlined.is-loading:hover::after, .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-light.is-inverted.is-outlined.is-loading:focus::after, .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; +} + +.button.is-light.is-inverted.is-outlined[disabled], +fieldset[disabled] .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; +} + +.button.is-dark { + background-color: #363636; + border-color: transparent; + color: whitesmoke; +} + +.button.is-dark:hover, .button.is-dark.is-hovered { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; +} + +.button.is-dark:focus, .button.is-dark.is-focused { + border-color: transparent; + color: whitesmoke; +} + +.button.is-dark:focus:not(:active), .button.is-dark.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); +} + +.button.is-dark:active, .button.is-dark.is-active { + background-color: #292929; + border-color: transparent; + color: whitesmoke; +} + +.button.is-dark[disabled], +fieldset[disabled] .button.is-dark { + background-color: #363636; + border-color: transparent; + box-shadow: none; +} + +.button.is-dark.is-inverted { + background-color: whitesmoke; + color: #363636; +} + +.button.is-dark.is-inverted:hover, .button.is-dark.is-inverted.is-hovered { + background-color: #e8e8e8; +} + +.button.is-dark.is-inverted[disabled], +fieldset[disabled] .button.is-dark.is-inverted { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; + color: #363636; +} + +.button.is-dark.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; +} + +.button.is-dark.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; +} + +.button.is-dark.is-outlined:hover, .button.is-dark.is-outlined.is-hovered, .button.is-dark.is-outlined:focus, .button.is-dark.is-outlined.is-focused { + background-color: #363636; + border-color: #363636; + color: whitesmoke; +} + +.button.is-dark.is-outlined.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; +} + +.button.is-dark.is-outlined.is-loading:hover::after, .button.is-dark.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-outlined.is-loading:focus::after, .button.is-dark.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; +} + +.button.is-dark.is-outlined[disabled], +fieldset[disabled] .button.is-dark.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; +} + +.button.is-dark.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; +} + +.button.is-dark.is-inverted.is-outlined:hover, .button.is-dark.is-inverted.is-outlined.is-hovered, .button.is-dark.is-inverted.is-outlined:focus, .button.is-dark.is-inverted.is-outlined.is-focused { + background-color: whitesmoke; + color: #363636; +} + +.button.is-dark.is-inverted.is-outlined.is-loading:hover::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; +} + +.button.is-dark.is-inverted.is-outlined[disabled], +fieldset[disabled] .button.is-dark.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; +} + +.button.is-primary { + background-color: #00d1b2; + border-color: transparent; + color: #fff; +} + +.button.is-primary:hover, .button.is-primary.is-hovered { + background-color: #00c4a7; + border-color: transparent; + color: #fff; +} + +.button.is-primary:focus, .button.is-primary.is-focused { + border-color: transparent; + color: #fff; +} + +.button.is-primary:focus:not(:active), .button.is-primary.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(0, 209, 178, 0.25); +} + +.button.is-primary:active, .button.is-primary.is-active { + background-color: #00b89c; + border-color: transparent; + color: #fff; +} + +.button.is-primary[disabled], +fieldset[disabled] .button.is-primary { + background-color: #00d1b2; + border-color: transparent; + box-shadow: none; +} + +.button.is-primary.is-inverted { + background-color: #fff; + color: #00d1b2; +} + +.button.is-primary.is-inverted:hover, .button.is-primary.is-inverted.is-hovered { + background-color: #f2f2f2; +} + +.button.is-primary.is-inverted[disabled], +fieldset[disabled] .button.is-primary.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #00d1b2; +} + +.button.is-primary.is-loading::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-primary.is-outlined { + background-color: transparent; + border-color: #00d1b2; + color: #00d1b2; +} + +.button.is-primary.is-outlined:hover, .button.is-primary.is-outlined.is-hovered, .button.is-primary.is-outlined:focus, .button.is-primary.is-outlined.is-focused { + background-color: #00d1b2; + border-color: #00d1b2; + color: #fff; +} + +.button.is-primary.is-outlined.is-loading::after { + border-color: transparent transparent #00d1b2 #00d1b2 !important; +} + +.button.is-primary.is-outlined.is-loading:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .button.is-primary.is-outlined.is-loading:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-primary.is-outlined[disabled], +fieldset[disabled] .button.is-primary.is-outlined { + background-color: transparent; + border-color: #00d1b2; + box-shadow: none; + color: #00d1b2; +} + +.button.is-primary.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; +} + +.button.is-primary.is-inverted.is-outlined:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .button.is-primary.is-inverted.is-outlined:focus, .button.is-primary.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #00d1b2; +} + +.button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #00d1b2 #00d1b2 !important; +} + +.button.is-primary.is-inverted.is-outlined[disabled], +fieldset[disabled] .button.is-primary.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; +} + +.button.is-link { + background-color: #3273dc; + border-color: transparent; + color: #fff; +} + +.button.is-link:hover, .button.is-link.is-hovered { + background-color: #276cda; + border-color: transparent; + color: #fff; +} + +.button.is-link:focus, .button.is-link.is-focused { + border-color: transparent; + color: #fff; +} + +.button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); +} + +.button.is-link:active, .button.is-link.is-active { + background-color: #2366d1; + border-color: transparent; + color: #fff; +} + +.button.is-link[disabled], +fieldset[disabled] .button.is-link { + background-color: #3273dc; + border-color: transparent; + box-shadow: none; +} + +.button.is-link.is-inverted { + background-color: #fff; + color: #3273dc; +} + +.button.is-link.is-inverted:hover, .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; +} + +.button.is-link.is-inverted[disabled], +fieldset[disabled] .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #3273dc; +} + +.button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-link.is-outlined { + background-color: transparent; + border-color: #3273dc; + color: #3273dc; +} + +.button.is-link.is-outlined:hover, .button.is-link.is-outlined.is-hovered, .button.is-link.is-outlined:focus, .button.is-link.is-outlined.is-focused { + background-color: #3273dc; + border-color: #3273dc; + color: #fff; +} + +.button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #3273dc #3273dc !important; +} + +.button.is-link.is-outlined.is-loading:hover::after, .button.is-link.is-outlined.is-loading.is-hovered::after, .button.is-link.is-outlined.is-loading:focus::after, .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-link.is-outlined[disabled], +fieldset[disabled] .button.is-link.is-outlined { + background-color: transparent; + border-color: #3273dc; + box-shadow: none; + color: #3273dc; +} + +.button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; +} + +.button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined.is-hovered, .button.is-link.is-inverted.is-outlined:focus, .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #3273dc; +} + +.button.is-link.is-inverted.is-outlined.is-loading:hover::after, .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #3273dc #3273dc !important; +} + +.button.is-link.is-inverted.is-outlined[disabled], +fieldset[disabled] .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; +} + +.button.is-info { + background-color: #209cee; + border-color: transparent; + color: #fff; +} + +.button.is-info:hover, .button.is-info.is-hovered { + background-color: #1496ed; + border-color: transparent; + color: #fff; +} + +.button.is-info:focus, .button.is-info.is-focused { + border-color: transparent; + color: #fff; +} + +.button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); +} + +.button.is-info:active, .button.is-info.is-active { + background-color: #118fe4; + border-color: transparent; + color: #fff; +} + +.button.is-info[disabled], +fieldset[disabled] .button.is-info { + background-color: #209cee; + border-color: transparent; + box-shadow: none; +} + +.button.is-info.is-inverted { + background-color: #fff; + color: #209cee; +} + +.button.is-info.is-inverted:hover, .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; +} + +.button.is-info.is-inverted[disabled], +fieldset[disabled] .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #209cee; +} + +.button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + color: #209cee; +} + +.button.is-info.is-outlined:hover, .button.is-info.is-outlined.is-hovered, .button.is-info.is-outlined:focus, .button.is-info.is-outlined.is-focused { + background-color: #209cee; + border-color: #209cee; + color: #fff; +} + +.button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #209cee #209cee !important; +} + +.button.is-info.is-outlined.is-loading:hover::after, .button.is-info.is-outlined.is-loading.is-hovered::after, .button.is-info.is-outlined.is-loading:focus::after, .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-info.is-outlined[disabled], +fieldset[disabled] .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + box-shadow: none; + color: #209cee; +} + +.button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; +} + +.button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined.is-hovered, .button.is-info.is-inverted.is-outlined:focus, .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #209cee; +} + +.button.is-info.is-inverted.is-outlined.is-loading:hover::after, .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #209cee #209cee !important; +} + +.button.is-info.is-inverted.is-outlined[disabled], +fieldset[disabled] .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; +} + +.button.is-success { + background-color: #23d160; + border-color: transparent; + color: #fff; +} + +.button.is-success:hover, .button.is-success.is-hovered { + background-color: #22c65b; + border-color: transparent; + color: #fff; +} + +.button.is-success:focus, .button.is-success.is-focused { + border-color: transparent; + color: #fff; +} + +.button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(35, 209, 96, 0.25); +} + +.button.is-success:active, .button.is-success.is-active { + background-color: #20bc56; + border-color: transparent; + color: #fff; +} + +.button.is-success[disabled], +fieldset[disabled] .button.is-success { + background-color: #23d160; + border-color: transparent; + box-shadow: none; +} + +.button.is-success.is-inverted { + background-color: #fff; + color: #23d160; +} + +.button.is-success.is-inverted:hover, .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; +} + +.button.is-success.is-inverted[disabled], +fieldset[disabled] .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #23d160; +} + +.button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-success.is-outlined { + background-color: transparent; + border-color: #23d160; + color: #23d160; +} + +.button.is-success.is-outlined:hover, .button.is-success.is-outlined.is-hovered, .button.is-success.is-outlined:focus, .button.is-success.is-outlined.is-focused { + background-color: #23d160; + border-color: #23d160; + color: #fff; +} + +.button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #23d160 #23d160 !important; +} + +.button.is-success.is-outlined.is-loading:hover::after, .button.is-success.is-outlined.is-loading.is-hovered::after, .button.is-success.is-outlined.is-loading:focus::after, .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-success.is-outlined[disabled], +fieldset[disabled] .button.is-success.is-outlined { + background-color: transparent; + border-color: #23d160; + box-shadow: none; + color: #23d160; +} + +.button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; +} + +.button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined.is-hovered, .button.is-success.is-inverted.is-outlined:focus, .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #23d160; +} + +.button.is-success.is-inverted.is-outlined.is-loading:hover::after, .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #23d160 #23d160 !important; +} + +.button.is-success.is-inverted.is-outlined[disabled], +fieldset[disabled] .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; +} + +.button.is-warning { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-warning:hover, .button.is-warning.is-hovered { + background-color: #ffdb4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-warning:focus, .button.is-warning.is-focused { + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); +} + +.button.is-warning:active, .button.is-warning.is-active { + background-color: #ffd83d; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-warning[disabled], +fieldset[disabled] .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + box-shadow: none; +} + +.button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; +} + +.button.is-warning.is-inverted:hover, .button.is-warning.is-inverted.is-hovered { + background-color: rgba(0, 0, 0, 0.7); +} + +.button.is-warning.is-inverted[disabled], +fieldset[disabled] .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + border-color: transparent; + box-shadow: none; + color: #ffdd57; +} + +.button.is-warning.is-loading::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; +} + +.button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + color: #ffdd57; +} + +.button.is-warning.is-outlined:hover, .button.is-warning.is-outlined.is-hovered, .button.is-warning.is-outlined:focus, .button.is-warning.is-outlined.is-focused { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; +} + +.button.is-warning.is-outlined.is-loading:hover::after, .button.is-warning.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-outlined.is-loading:focus::after, .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; +} + +.button.is-warning.is-outlined[disabled], +fieldset[disabled] .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + box-shadow: none; + color: #ffdd57; +} + +.button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + color: rgba(0, 0, 0, 0.7); +} + +.button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined.is-hovered, .button.is-warning.is-inverted.is-outlined:focus, .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; +} + +.button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; +} + +.button.is-warning.is-inverted.is-outlined[disabled], +fieldset[disabled] .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + box-shadow: none; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-danger { + background-color: #ff3860; + border-color: transparent; + color: #fff; +} + +.button.is-danger:hover, .button.is-danger.is-hovered { + background-color: #ff2b56; + border-color: transparent; + color: #fff; +} + +.button.is-danger:focus, .button.is-danger.is-focused { + border-color: transparent; + color: #fff; +} + +.button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 56, 96, 0.25); +} + +.button.is-danger:active, .button.is-danger.is-active { + background-color: #ff1f4b; + border-color: transparent; + color: #fff; +} + +.button.is-danger[disabled], +fieldset[disabled] .button.is-danger { + background-color: #ff3860; + border-color: transparent; + box-shadow: none; +} + +.button.is-danger.is-inverted { + background-color: #fff; + color: #ff3860; +} + +.button.is-danger.is-inverted:hover, .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; +} + +.button.is-danger.is-inverted[disabled], +fieldset[disabled] .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #ff3860; +} + +.button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-danger.is-outlined { + background-color: transparent; + border-color: #ff3860; + color: #ff3860; +} + +.button.is-danger.is-outlined:hover, .button.is-danger.is-outlined.is-hovered, .button.is-danger.is-outlined:focus, .button.is-danger.is-outlined.is-focused { + background-color: #ff3860; + border-color: #ff3860; + color: #fff; +} + +.button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #ff3860 #ff3860 !important; +} + +.button.is-danger.is-outlined.is-loading:hover::after, .button.is-danger.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-outlined.is-loading:focus::after, .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-danger.is-outlined[disabled], +fieldset[disabled] .button.is-danger.is-outlined { + background-color: transparent; + border-color: #ff3860; + box-shadow: none; + color: #ff3860; +} + +.button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; +} + +.button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined.is-hovered, .button.is-danger.is-inverted.is-outlined:focus, .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #ff3860; +} + +.button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ff3860 #ff3860 !important; +} + +.button.is-danger.is-inverted.is-outlined[disabled], +fieldset[disabled] .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; +} + +.button.is-small { + border-radius: 2px; + font-size: 0.75rem; +} + +.button.is-normal { + font-size: 1rem; +} + +.button.is-medium { + font-size: 1.25rem; +} + +.button.is-large { + font-size: 1.5rem; +} + +.button[disabled], +fieldset[disabled] .button { + background-color: white; + border-color: #dbdbdb; + box-shadow: none; + opacity: 0.5; +} + +.button.is-fullwidth { + display: flex; + width: 100%; +} + +.button.is-loading { + color: transparent !important; + pointer-events: none; +} + +.button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; +} + +.button.is-static { + background-color: whitesmoke; + border-color: #dbdbdb; + color: #7a7a7a; + box-shadow: none; + pointer-events: none; +} + +.button.is-rounded { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; +} + +.buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} + +.buttons .button { + margin-bottom: 0.5rem; +} + +.buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; +} + +.buttons:last-child { + margin-bottom: -0.5rem; +} + +.buttons:not(:last-child) { + margin-bottom: 1rem; +} + +.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 2px; + font-size: 0.75rem; +} + +.buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; +} + +.buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; +} + +.buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; +} + +.buttons.has-addons .button:last-child { + margin-right: 0; +} + +.buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered { + z-index: 2; +} + +.buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected { + z-index: 3; +} + +.buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover { + z-index: 4; +} + +.buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; +} + +.buttons.is-centered { + justify-content: center; +} + +.buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; +} + +.buttons.is-right { + justify-content: flex-end; +} + +.buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; +} + +.container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; +} + +@media screen and (min-width: 1024px) { + .container { + max-width: 960px; + } + .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; + } +} + +@media screen and (max-width: 1215px) { + .container.is-widescreen { + max-width: 1152px; + } +} + +@media screen and (max-width: 1407px) { + .container.is-fullhd { + max-width: 1344px; + } +} + +@media screen and (min-width: 1216px) { + .container { + max-width: 1152px; + } +} + +@media screen and (min-width: 1408px) { + .container { + max-width: 1344px; + } +} + +.content li + li { + margin-top: 0.25em; +} + +.content p:not(:last-child), +.content dl:not(:last-child), +.content ol:not(:last-child), +.content ul:not(:last-child), +.content blockquote:not(:last-child), +.content pre:not(:last-child), +.content table:not(:last-child) { + margin-bottom: 1em; +} + +.content h1, +.content h2, +.content h3, +.content h4, +.content h5, +.content h6 { + color: #363636; + font-weight: 600; + line-height: 1.125; +} + +.content h1 { + font-size: 2em; + margin-bottom: 0.5em; +} + +.content h1:not(:first-child) { + margin-top: 1em; +} + +.content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; +} + +.content h2:not(:first-child) { + margin-top: 1.1428em; +} + +.content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; +} + +.content h3:not(:first-child) { + margin-top: 1.3333em; +} + +.content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; +} + +.content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; +} + +.content h6 { + font-size: 1em; + margin-bottom: 1em; +} + +.content blockquote { + background-color: whitesmoke; + border-left: 5px solid #dbdbdb; + padding: 1.25em 1.5em; +} + +.content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; +} + +.content ol:not([type]) { + list-style-type: decimal; +} + +.content ol:not([type]).is-lower-alpha { + list-style-type: lower-alpha; +} + +.content ol:not([type]).is-lower-roman { + list-style-type: lower-roman; +} + +.content ol:not([type]).is-upper-alpha { + list-style-type: upper-alpha; +} + +.content ol:not([type]).is-upper-roman { + list-style-type: upper-roman; +} + +.content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; +} + +.content ul ul { + list-style-type: circle; + margin-top: 0.5em; +} + +.content ul ul ul { + list-style-type: square; +} + +.content dd { + margin-left: 2em; +} + +.content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; +} + +.content figure:not(:first-child) { + margin-top: 2em; +} + +.content figure:not(:last-child) { + margin-bottom: 2em; +} + +.content figure img { + display: inline-block; +} + +.content figure figcaption { + font-style: italic; +} + +.content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 1.25em 1.5em; + white-space: pre; + word-wrap: normal; +} + +.content sup, +.content sub { + font-size: 75%; +} + +.content table { + width: 100%; +} + +.content table td, +.content table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; +} + +.content table th { + color: #363636; +} + +.content table th:not([align]) { + text-align: left; +} + +.content table thead td, +.content table thead th { + border-width: 0 0 2px; + color: #363636; +} + +.content table tfoot td, +.content table tfoot th { + border-width: 2px 0 0; + color: #363636; +} + +.content table tbody tr:last-child td, +.content table tbody tr:last-child th { + border-bottom-width: 0; +} + +.content .tabs li + li { + margin-top: 0; +} + +.content.is-small { + font-size: 0.75rem; +} + +.content.is-medium { + font-size: 1.25rem; +} + +.content.is-large { + font-size: 1.5rem; +} + +.icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; +} + +.icon.is-small { + height: 1rem; + width: 1rem; +} + +.icon.is-medium { + height: 2rem; + width: 2rem; +} + +.icon.is-large { + height: 3rem; + width: 3rem; +} + +.image { + display: block; + position: relative; +} + +.image img { + display: block; + height: auto; + width: 100%; +} + +.image img.is-rounded { + border-radius: 290486px; +} + +.image.is-square img, +.image.is-square .has-ratio, .image.is-1by1 img, +.image.is-1by1 .has-ratio, .image.is-5by4 img, +.image.is-5by4 .has-ratio, .image.is-4by3 img, +.image.is-4by3 .has-ratio, .image.is-3by2 img, +.image.is-3by2 .has-ratio, .image.is-5by3 img, +.image.is-5by3 .has-ratio, .image.is-16by9 img, +.image.is-16by9 .has-ratio, .image.is-2by1 img, +.image.is-2by1 .has-ratio, .image.is-3by1 img, +.image.is-3by1 .has-ratio, .image.is-4by5 img, +.image.is-4by5 .has-ratio, .image.is-3by4 img, +.image.is-3by4 .has-ratio, .image.is-2by3 img, +.image.is-2by3 .has-ratio, .image.is-3by5 img, +.image.is-3by5 .has-ratio, .image.is-9by16 img, +.image.is-9by16 .has-ratio, .image.is-1by2 img, +.image.is-1by2 .has-ratio, .image.is-1by3 img, +.image.is-1by3 .has-ratio { + height: 100%; + width: 100%; +} + +.image.is-square, .image.is-1by1 { + padding-top: 100%; +} + +.image.is-5by4 { + padding-top: 80%; +} + +.image.is-4by3 { + padding-top: 75%; +} + +.image.is-3by2 { + padding-top: 66.6666%; +} + +.image.is-5by3 { + padding-top: 60%; +} + +.image.is-16by9 { + padding-top: 56.25%; +} + +.image.is-2by1 { + padding-top: 50%; +} + +.image.is-3by1 { + padding-top: 33.3333%; +} + +.image.is-4by5 { + padding-top: 125%; +} + +.image.is-3by4 { + padding-top: 133.3333%; +} + +.image.is-2by3 { + padding-top: 150%; +} + +.image.is-3by5 { + padding-top: 166.6666%; +} + +.image.is-9by16 { + padding-top: 177.7777%; +} + +.image.is-1by2 { + padding-top: 200%; +} + +.image.is-1by3 { + padding-top: 300%; +} + +.image.is-16x16 { + height: 16px; + width: 16px; +} + +.image.is-24x24 { + height: 24px; + width: 24px; +} + +.image.is-32x32 { + height: 32px; + width: 32px; +} + +.image.is-48x48 { + height: 48px; + width: 48px; +} + +.image.is-64x64 { + height: 64px; + width: 64px; +} + +.image.is-96x96 { + height: 96px; + width: 96px; +} + +.image.is-128x128 { + height: 128px; + width: 128px; +} + +.notification { + background-color: whitesmoke; + border-radius: 4px; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; +} + +.notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; +} + +.notification strong { + color: currentColor; +} + +.notification code, +.notification pre { + background: white; +} + +.notification pre code { + background: transparent; +} + +.notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; +} + +.notification .title, +.notification .subtitle, +.notification .content { + color: currentColor; +} + +.notification.is-white { + background-color: white; + color: #0a0a0a; +} + +.notification.is-black { + background-color: #0a0a0a; + color: white; +} + +.notification.is-light { + background-color: whitesmoke; + color: #363636; +} + +.notification.is-dark { + background-color: #363636; + color: whitesmoke; +} + +.notification.is-primary { + background-color: #00d1b2; + color: #fff; +} + +.notification.is-link { + background-color: #3273dc; + color: #fff; +} + +.notification.is-info { + background-color: #209cee; + color: #fff; +} + +.notification.is-success { + background-color: #23d160; + color: #fff; +} + +.notification.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); +} + +.notification.is-danger { + background-color: #ff3860; + color: #fff; +} + +.progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 1rem; + overflow: hidden; + padding: 0; + width: 100%; +} + +.progress::-webkit-progress-bar { + background-color: #dbdbdb; +} + +.progress::-webkit-progress-value { + background-color: #4a4a4a; +} + +.progress::-moz-progress-bar { + background-color: #4a4a4a; +} + +.progress::-ms-fill { + background-color: #4a4a4a; + border: none; +} + +.progress.is-white::-webkit-progress-value { + background-color: white; +} + +.progress.is-white::-moz-progress-bar { + background-color: white; +} + +.progress.is-white::-ms-fill { + background-color: white; +} + +.progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #dbdbdb 30%); +} + +.progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; +} + +.progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; +} + +.progress.is-black::-ms-fill { + background-color: #0a0a0a; +} + +.progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%); +} + +.progress.is-light::-webkit-progress-value { + background-color: whitesmoke; +} + +.progress.is-light::-moz-progress-bar { + background-color: whitesmoke; +} + +.progress.is-light::-ms-fill { + background-color: whitesmoke; +} + +.progress.is-light:indeterminate { + background-image: linear-gradient(to right, whitesmoke 30%, #dbdbdb 30%); +} + +.progress.is-dark::-webkit-progress-value { + background-color: #363636; +} + +.progress.is-dark::-moz-progress-bar { + background-color: #363636; +} + +.progress.is-dark::-ms-fill { + background-color: #363636; +} + +.progress.is-dark:indeterminate { + background-image: linear-gradient(to right, #363636 30%, #dbdbdb 30%); +} + +.progress.is-primary::-webkit-progress-value { + background-color: #00d1b2; +} + +.progress.is-primary::-moz-progress-bar { + background-color: #00d1b2; +} + +.progress.is-primary::-ms-fill { + background-color: #00d1b2; +} + +.progress.is-primary:indeterminate { + background-image: linear-gradient(to right, #00d1b2 30%, #dbdbdb 30%); +} + +.progress.is-link::-webkit-progress-value { + background-color: #3273dc; +} + +.progress.is-link::-moz-progress-bar { + background-color: #3273dc; +} + +.progress.is-link::-ms-fill { + background-color: #3273dc; +} + +.progress.is-link:indeterminate { + background-image: linear-gradient(to right, #3273dc 30%, #dbdbdb 30%); +} + +.progress.is-info::-webkit-progress-value { + background-color: #209cee; +} + +.progress.is-info::-moz-progress-bar { + background-color: #209cee; +} + +.progress.is-info::-ms-fill { + background-color: #209cee; +} + +.progress.is-info:indeterminate { + background-image: linear-gradient(to right, #209cee 30%, #dbdbdb 30%); +} + +.progress.is-success::-webkit-progress-value { + background-color: #23d160; +} + +.progress.is-success::-moz-progress-bar { + background-color: #23d160; +} + +.progress.is-success::-ms-fill { + background-color: #23d160; +} + +.progress.is-success:indeterminate { + background-image: linear-gradient(to right, #23d160 30%, #dbdbdb 30%); +} + +.progress.is-warning::-webkit-progress-value { + background-color: #ffdd57; +} + +.progress.is-warning::-moz-progress-bar { + background-color: #ffdd57; +} + +.progress.is-warning::-ms-fill { + background-color: #ffdd57; +} + +.progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%); +} + +.progress.is-danger::-webkit-progress-value { + background-color: #ff3860; +} + +.progress.is-danger::-moz-progress-bar { + background-color: #ff3860; +} + +.progress.is-danger::-ms-fill { + background-color: #ff3860; +} + +.progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #ff3860 30%, #dbdbdb 30%); +} + +.progress:indeterminate { + -webkit-animation-duration: 1.5s; + animation-duration: 1.5s; + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; + -webkit-animation-name: moveIndeterminate; + animation-name: moveIndeterminate; + -webkit-animation-timing-function: linear; + animation-timing-function: linear; + background-color: #dbdbdb; + background-image: linear-gradient(to right, #4a4a4a 30%, #dbdbdb 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; +} + +.progress:indeterminate::-webkit-progress-bar { + background-color: transparent; +} + +.progress:indeterminate::-moz-progress-bar { + background-color: transparent; +} + +.progress.is-small { + height: 0.75rem; +} + +.progress.is-medium { + height: 1.25rem; +} + +.progress.is-large { + height: 1.5rem; +} + +@-webkit-keyframes moveIndeterminate { + from { + background-position: 200% 0; + } + to { + background-position: -200% 0; + } +} + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; + } + to { + background-position: -200% 0; + } +} + +.table { + background-color: white; + color: #363636; +} + +.table td, +.table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; +} + +.table td.is-white, +.table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; +} + +.table td.is-black, +.table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; +} + +.table td.is-light, +.table th.is-light { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; +} + +.table td.is-dark, +.table th.is-dark { + background-color: #363636; + border-color: #363636; + color: whitesmoke; +} + +.table td.is-primary, +.table th.is-primary { + background-color: #00d1b2; + border-color: #00d1b2; + color: #fff; +} + +.table td.is-link, +.table th.is-link { + background-color: #3273dc; + border-color: #3273dc; + color: #fff; +} + +.table td.is-info, +.table th.is-info { + background-color: #209cee; + border-color: #209cee; + color: #fff; +} + +.table td.is-success, +.table th.is-success { + background-color: #23d160; + border-color: #23d160; + color: #fff; +} + +.table td.is-warning, +.table th.is-warning { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); +} + +.table td.is-danger, +.table th.is-danger { + background-color: #ff3860; + border-color: #ff3860; + color: #fff; +} + +.table td.is-narrow, +.table th.is-narrow { + white-space: nowrap; + width: 1%; +} + +.table td.is-selected, +.table th.is-selected { + background-color: #00d1b2; + color: #fff; +} + +.table td.is-selected a, +.table td.is-selected strong, +.table th.is-selected a, +.table th.is-selected strong { + color: currentColor; +} + +.table th { + color: #363636; +} + +.table th:not([align]) { + text-align: left; +} + +.table tr.is-selected { + background-color: #00d1b2; + color: #fff; +} + +.table tr.is-selected a, +.table tr.is-selected strong { + color: currentColor; +} + +.table tr.is-selected td, +.table tr.is-selected th { + border-color: #fff; + color: currentColor; +} + +.table thead { + background-color: transparent; +} + +.table thead td, +.table thead th { + border-width: 0 0 2px; + color: #363636; +} + +.table tfoot { + background-color: transparent; +} + +.table tfoot td, +.table tfoot th { + border-width: 2px 0 0; + color: #363636; +} + +.table tbody { + background-color: transparent; +} + +.table tbody tr:last-child td, +.table tbody tr:last-child th { + border-bottom-width: 0; +} + +.table.is-bordered td, +.table.is-bordered th { + border-width: 1px; +} + +.table.is-bordered tr:last-child td, +.table.is-bordered tr:last-child th { + border-bottom-width: 1px; +} + +.table.is-fullwidth { + width: 100%; +} + +.table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #fafafa; +} + +.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #fafafa; +} + +.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: whitesmoke; +} + +.table.is-narrow td, +.table.is-narrow th { + padding: 0.25em 0.5em; +} + +.table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #fafafa; +} + +.table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; +} + +.tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} + +.tags .tag { + margin-bottom: 0.5rem; +} + +.tags .tag:not(:last-child) { + margin-right: 0.5rem; +} + +.tags:last-child { + margin-bottom: -0.5rem; +} + +.tags:not(:last-child) { + margin-bottom: 1rem; +} + +.tags.are-medium .tag:not(.is-normal):not(.is-large) { + font-size: 1rem; +} + +.tags.are-large .tag:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; +} + +.tags.is-centered { + justify-content: center; +} + +.tags.is-centered .tag { + margin-right: 0.25rem; + margin-left: 0.25rem; +} + +.tags.is-right { + justify-content: flex-end; +} + +.tags.is-right .tag:not(:first-child) { + margin-left: 0.5rem; +} + +.tags.is-right .tag:not(:last-child) { + margin-right: 0; +} + +.tags.has-addons .tag { + margin-right: 0; +} + +.tags.has-addons .tag:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.tags.has-addons .tag:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} + +.tag:not(body) { + align-items: center; + background-color: whitesmoke; + border-radius: 4px; + color: #4a4a4a; + display: inline-flex; + font-size: 0.75rem; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; +} + +.tag:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; +} + +.tag:not(body).is-white { + background-color: white; + color: #0a0a0a; +} + +.tag:not(body).is-black { + background-color: #0a0a0a; + color: white; +} + +.tag:not(body).is-light { + background-color: whitesmoke; + color: #363636; +} + +.tag:not(body).is-dark { + background-color: #363636; + color: whitesmoke; +} + +.tag:not(body).is-primary { + background-color: #00d1b2; + color: #fff; +} + +.tag:not(body).is-link { + background-color: #3273dc; + color: #fff; +} + +.tag:not(body).is-info { + background-color: #209cee; + color: #fff; +} + +.tag:not(body).is-success { + background-color: #23d160; + color: #fff; +} + +.tag:not(body).is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); +} + +.tag:not(body).is-danger { + background-color: #ff3860; + color: #fff; +} + +.tag:not(body).is-normal { + font-size: 0.75rem; +} + +.tag:not(body).is-medium { + font-size: 1rem; +} + +.tag:not(body).is-large { + font-size: 1.25rem; +} + +.tag:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; +} + +.tag:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; +} + +.tag:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; +} + +.tag:not(body).is-delete { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; +} + +.tag:not(body).is-delete::before, .tag:not(body).is-delete::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + -webkit-transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform: translateX(-50%) translateY(-50%) rotate(45deg); + -webkit-transform-origin: center center; + transform-origin: center center; +} + +.tag:not(body).is-delete::before { + height: 1px; + width: 50%; +} + +.tag:not(body).is-delete::after { + height: 50%; + width: 1px; +} + +.tag:not(body).is-delete:hover, .tag:not(body).is-delete:focus { + background-color: #e8e8e8; +} + +.tag:not(body).is-delete:active { + background-color: #dbdbdb; +} + +.tag:not(body).is-rounded { + border-radius: 290486px; +} + +a.tag:hover { + text-decoration: underline; +} + +.title, +.subtitle { + word-break: break-word; +} + +.title em, +.title span, +.subtitle em, +.subtitle span { + font-weight: inherit; +} + +.title sub, +.subtitle sub { + font-size: 0.75em; +} + +.title sup, +.subtitle sup { + font-size: 0.75em; +} + +.title .tag, +.subtitle .tag { + vertical-align: middle; +} + +.title { + color: #363636; + font-size: 2rem; + font-weight: 600; + line-height: 1.125; +} + +.title strong { + color: inherit; + font-weight: inherit; +} + +.title + .highlight { + margin-top: -0.75rem; +} + +.title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; +} + +.title.is-1 { + font-size: 3rem; +} + +.title.is-2 { + font-size: 2.5rem; +} + +.title.is-3 { + font-size: 2rem; +} + +.title.is-4 { + font-size: 1.5rem; +} + +.title.is-5 { + font-size: 1.25rem; +} + +.title.is-6 { + font-size: 1rem; +} + +.title.is-7 { + font-size: 0.75rem; +} + +.subtitle { + color: #4a4a4a; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; +} + +.subtitle strong { + color: #363636; + font-weight: 600; +} + +.subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; +} + +.subtitle.is-1 { + font-size: 3rem; +} + +.subtitle.is-2 { + font-size: 2.5rem; +} + +.subtitle.is-3 { + font-size: 2rem; +} + +.subtitle.is-4 { + font-size: 1.5rem; +} + +.subtitle.is-5 { + font-size: 1.25rem; +} + +.subtitle.is-6 { + font-size: 1rem; +} + +.subtitle.is-7 { + font-size: 0.75rem; +} + +.heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; +} + +.highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; +} + +.highlight pre { + overflow: auto; + max-width: 100%; +} + +.number { + align-items: center; + background-color: whitesmoke; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; +} + +.input, .textarea, .select select { + background-color: white; + border-color: #dbdbdb; + border-radius: 4px; + color: #363636; +} + +.input::-moz-placeholder, .textarea::-moz-placeholder, .select select::-moz-placeholder { + color: rgba(54, 54, 54, 0.3); +} + +.input::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .select select::-webkit-input-placeholder { + color: rgba(54, 54, 54, 0.3); +} + +.input:-moz-placeholder, .textarea:-moz-placeholder, .select select:-moz-placeholder { + color: rgba(54, 54, 54, 0.3); +} + +.input:-ms-input-placeholder, .textarea:-ms-input-placeholder, .select select:-ms-input-placeholder { + color: rgba(54, 54, 54, 0.3); +} + +.input:hover, .textarea:hover, .select select:hover, .is-hovered.input, .is-hovered.textarea, .select select.is-hovered { + border-color: #b5b5b5; +} + +.input:focus, .textarea:focus, .select select:focus, .is-focused.input, .is-focused.textarea, .select select.is-focused, .input:active, .textarea:active, .select select:active, .is-active.input, .is-active.textarea, .select select.is-active { + border-color: #3273dc; + box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); +} + +.input[disabled], .textarea[disabled], .select select[disabled], +fieldset[disabled] .input, +fieldset[disabled] .textarea, +fieldset[disabled] .select select, +.select fieldset[disabled] select { + background-color: whitesmoke; + border-color: whitesmoke; + box-shadow: none; + color: #7a7a7a; +} + +.input[disabled]::-moz-placeholder, .textarea[disabled]::-moz-placeholder, .select select[disabled]::-moz-placeholder, +fieldset[disabled] .input::-moz-placeholder, +fieldset[disabled] .textarea::-moz-placeholder, +fieldset[disabled] .select select::-moz-placeholder, +.select fieldset[disabled] select::-moz-placeholder { + color: rgba(122, 122, 122, 0.3); +} + +.input[disabled]::-webkit-input-placeholder, .textarea[disabled]::-webkit-input-placeholder, .select select[disabled]::-webkit-input-placeholder, +fieldset[disabled] .input::-webkit-input-placeholder, +fieldset[disabled] .textarea::-webkit-input-placeholder, +fieldset[disabled] .select select::-webkit-input-placeholder, +.select fieldset[disabled] select::-webkit-input-placeholder { + color: rgba(122, 122, 122, 0.3); +} + +.input[disabled]:-moz-placeholder, .textarea[disabled]:-moz-placeholder, .select select[disabled]:-moz-placeholder, +fieldset[disabled] .input:-moz-placeholder, +fieldset[disabled] .textarea:-moz-placeholder, +fieldset[disabled] .select select:-moz-placeholder, +.select fieldset[disabled] select:-moz-placeholder { + color: rgba(122, 122, 122, 0.3); +} + +.input[disabled]:-ms-input-placeholder, .textarea[disabled]:-ms-input-placeholder, .select select[disabled]:-ms-input-placeholder, +fieldset[disabled] .input:-ms-input-placeholder, +fieldset[disabled] .textarea:-ms-input-placeholder, +fieldset[disabled] .select select:-ms-input-placeholder, +.select fieldset[disabled] select:-ms-input-placeholder { + color: rgba(122, 122, 122, 0.3); +} + +.input, .textarea { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; +} + +.input[readonly], .textarea[readonly] { + box-shadow: none; +} + +.is-white.input, .is-white.textarea { + border-color: white; +} + +.is-white.input:focus, .is-white.textarea:focus, .is-white.is-focused.input, .is-white.is-focused.textarea, .is-white.input:active, .is-white.textarea:active, .is-white.is-active.input, .is-white.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); +} + +.is-black.input, .is-black.textarea { + border-color: #0a0a0a; +} + +.is-black.input:focus, .is-black.textarea:focus, .is-black.is-focused.input, .is-black.is-focused.textarea, .is-black.input:active, .is-black.textarea:active, .is-black.is-active.input, .is-black.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); +} + +.is-light.input, .is-light.textarea { + border-color: whitesmoke; +} + +.is-light.input:focus, .is-light.textarea:focus, .is-light.is-focused.input, .is-light.is-focused.textarea, .is-light.input:active, .is-light.textarea:active, .is-light.is-active.input, .is-light.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); +} + +.is-dark.input, .is-dark.textarea { + border-color: #363636; +} + +.is-dark.input:focus, .is-dark.textarea:focus, .is-dark.is-focused.input, .is-dark.is-focused.textarea, .is-dark.input:active, .is-dark.textarea:active, .is-dark.is-active.input, .is-dark.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); +} + +.is-primary.input, .is-primary.textarea { + border-color: #00d1b2; +} + +.is-primary.input:focus, .is-primary.textarea:focus, .is-primary.is-focused.input, .is-primary.is-focused.textarea, .is-primary.input:active, .is-primary.textarea:active, .is-primary.is-active.input, .is-primary.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(0, 209, 178, 0.25); +} + +.is-link.input, .is-link.textarea { + border-color: #3273dc; +} + +.is-link.input:focus, .is-link.textarea:focus, .is-link.is-focused.input, .is-link.is-focused.textarea, .is-link.input:active, .is-link.textarea:active, .is-link.is-active.input, .is-link.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); +} + +.is-info.input, .is-info.textarea { + border-color: #209cee; +} + +.is-info.input:focus, .is-info.textarea:focus, .is-info.is-focused.input, .is-info.is-focused.textarea, .is-info.input:active, .is-info.textarea:active, .is-info.is-active.input, .is-info.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); +} + +.is-success.input, .is-success.textarea { + border-color: #23d160; +} + +.is-success.input:focus, .is-success.textarea:focus, .is-success.is-focused.input, .is-success.is-focused.textarea, .is-success.input:active, .is-success.textarea:active, .is-success.is-active.input, .is-success.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(35, 209, 96, 0.25); +} + +.is-warning.input, .is-warning.textarea { + border-color: #ffdd57; +} + +.is-warning.input:focus, .is-warning.textarea:focus, .is-warning.is-focused.input, .is-warning.is-focused.textarea, .is-warning.input:active, .is-warning.textarea:active, .is-warning.is-active.input, .is-warning.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); +} + +.is-danger.input, .is-danger.textarea { + border-color: #ff3860; +} + +.is-danger.input:focus, .is-danger.textarea:focus, .is-danger.is-focused.input, .is-danger.is-focused.textarea, .is-danger.input:active, .is-danger.textarea:active, .is-danger.is-active.input, .is-danger.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(255, 56, 96, 0.25); +} + +.is-small.input, .is-small.textarea { + border-radius: 2px; + font-size: 0.75rem; +} + +.is-medium.input, .is-medium.textarea { + font-size: 1.25rem; +} + +.is-large.input, .is-large.textarea { + font-size: 1.5rem; +} + +.is-fullwidth.input, .is-fullwidth.textarea { + display: block; + width: 100%; +} + +.is-inline.input, .is-inline.textarea { + display: inline; + width: auto; +} + +.input.is-rounded { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; +} + +.input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; +} + +.textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; +} + +.textarea:not([rows]) { + max-height: 600px; + min-height: 120px; +} + +.textarea[rows] { + height: initial; +} + +.textarea.has-fixed-size { + resize: none; +} + +.checkbox, .radio { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; +} + +.checkbox input, .radio input { + cursor: pointer; +} + +.checkbox:hover, .radio:hover { + color: #363636; +} + +.checkbox[disabled], .radio[disabled], +fieldset[disabled] .checkbox, +fieldset[disabled] .radio { + color: #7a7a7a; + cursor: not-allowed; +} + +.radio + .radio { + margin-left: 0.5em; +} + +.select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; +} + +.select:not(.is-multiple) { + height: 2.25em; +} + +.select:not(.is-multiple):not(.is-loading)::after { + border-color: #3273dc; + right: 1.125em; + z-index: 4; +} + +.select.is-rounded select { + border-radius: 290486px; + padding-left: 1em; +} + +.select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; +} + +.select select::-ms-expand { + display: none; +} + +.select select[disabled]:hover, +fieldset[disabled] .select select:hover { + border-color: whitesmoke; +} + +.select select:not([multiple]) { + padding-right: 2.5em; +} + +.select select[multiple] { + height: auto; + padding: 0; +} + +.select select[multiple] option { + padding: 0.5em 1em; +} + +.select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #363636; +} + +.select.is-white:not(:hover)::after { + border-color: white; +} + +.select.is-white select { + border-color: white; +} + +.select.is-white select:hover, .select.is-white select.is-hovered { + border-color: #f2f2f2; +} + +.select.is-white select:focus, .select.is-white select.is-focused, .select.is-white select:active, .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); +} + +.select.is-black:not(:hover)::after { + border-color: #0a0a0a; +} + +.select.is-black select { + border-color: #0a0a0a; +} + +.select.is-black select:hover, .select.is-black select.is-hovered { + border-color: black; +} + +.select.is-black select:focus, .select.is-black select.is-focused, .select.is-black select:active, .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); +} + +.select.is-light:not(:hover)::after { + border-color: whitesmoke; +} + +.select.is-light select { + border-color: whitesmoke; +} + +.select.is-light select:hover, .select.is-light select.is-hovered { + border-color: #e8e8e8; +} + +.select.is-light select:focus, .select.is-light select.is-focused, .select.is-light select:active, .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); +} + +.select.is-dark:not(:hover)::after { + border-color: #363636; +} + +.select.is-dark select { + border-color: #363636; +} + +.select.is-dark select:hover, .select.is-dark select.is-hovered { + border-color: #292929; +} + +.select.is-dark select:focus, .select.is-dark select.is-focused, .select.is-dark select:active, .select.is-dark select.is-active { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); +} + +.select.is-primary:not(:hover)::after { + border-color: #00d1b2; +} + +.select.is-primary select { + border-color: #00d1b2; +} + +.select.is-primary select:hover, .select.is-primary select.is-hovered { + border-color: #00b89c; +} + +.select.is-primary select:focus, .select.is-primary select.is-focused, .select.is-primary select:active, .select.is-primary select.is-active { + box-shadow: 0 0 0 0.125em rgba(0, 209, 178, 0.25); +} + +.select.is-link:not(:hover)::after { + border-color: #3273dc; +} + +.select.is-link select { + border-color: #3273dc; +} + +.select.is-link select:hover, .select.is-link select.is-hovered { + border-color: #2366d1; +} + +.select.is-link select:focus, .select.is-link select.is-focused, .select.is-link select:active, .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25); +} + +.select.is-info:not(:hover)::after { + border-color: #209cee; +} + +.select.is-info select { + border-color: #209cee; +} + +.select.is-info select:hover, .select.is-info select.is-hovered { + border-color: #118fe4; +} + +.select.is-info select:focus, .select.is-info select.is-focused, .select.is-info select:active, .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); +} + +.select.is-success:not(:hover)::after { + border-color: #23d160; +} + +.select.is-success select { + border-color: #23d160; +} + +.select.is-success select:hover, .select.is-success select.is-hovered { + border-color: #20bc56; +} + +.select.is-success select:focus, .select.is-success select.is-focused, .select.is-success select:active, .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(35, 209, 96, 0.25); +} + +.select.is-warning:not(:hover)::after { + border-color: #ffdd57; +} + +.select.is-warning select { + border-color: #ffdd57; +} + +.select.is-warning select:hover, .select.is-warning select.is-hovered { + border-color: #ffd83d; +} + +.select.is-warning select:focus, .select.is-warning select.is-focused, .select.is-warning select:active, .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); +} + +.select.is-danger:not(:hover)::after { + border-color: #ff3860; +} + +.select.is-danger select { + border-color: #ff3860; +} + +.select.is-danger select:hover, .select.is-danger select.is-hovered { + border-color: #ff1f4b; +} + +.select.is-danger select:focus, .select.is-danger select.is-focused, .select.is-danger select:active, .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 56, 96, 0.25); +} + +.select.is-small { + border-radius: 2px; + font-size: 0.75rem; +} + +.select.is-medium { + font-size: 1.25rem; +} + +.select.is-large { + font-size: 1.5rem; +} + +.select.is-disabled::after { + border-color: #7a7a7a; +} + +.select.is-fullwidth { + width: 100%; +} + +.select.is-fullwidth select { + width: 100%; +} + +.select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + -webkit-transform: none; + transform: none; +} + +.select.is-loading.is-small:after { + font-size: 0.75rem; +} + +.select.is-loading.is-medium:after { + font-size: 1.25rem; +} + +.select.is-loading.is-large:after { + font-size: 1.5rem; +} + +.file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; +} + +.file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; +} + +.file.is-white:hover .file-cta, .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; +} + +.file.is-white:focus .file-cta, .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; +} + +.file.is-white:active .file-cta, .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; +} + +.file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; +} + +.file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; +} + +.file.is-black:focus .file-cta, .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; +} + +.file.is-black:active .file-cta, .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; +} + +.file.is-light .file-cta { + background-color: whitesmoke; + border-color: transparent; + color: #363636; +} + +.file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta { + background-color: #eeeeee; + border-color: transparent; + color: #363636; +} + +.file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25); + color: #363636; +} + +.file.is-light:active .file-cta, .file.is-light.is-active .file-cta { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; +} + +.file.is-dark .file-cta { + background-color: #363636; + border-color: transparent; + color: whitesmoke; +} + +.file.is-dark:hover .file-cta, .file.is-dark.is-hovered .file-cta { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; +} + +.file.is-dark:focus .file-cta, .file.is-dark.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(54, 54, 54, 0.25); + color: whitesmoke; +} + +.file.is-dark:active .file-cta, .file.is-dark.is-active .file-cta { + background-color: #292929; + border-color: transparent; + color: whitesmoke; +} + +.file.is-primary .file-cta { + background-color: #00d1b2; + border-color: transparent; + color: #fff; +} + +.file.is-primary:hover .file-cta, .file.is-primary.is-hovered .file-cta { + background-color: #00c4a7; + border-color: transparent; + color: #fff; +} + +.file.is-primary:focus .file-cta, .file.is-primary.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(0, 209, 178, 0.25); + color: #fff; +} + +.file.is-primary:active .file-cta, .file.is-primary.is-active .file-cta { + background-color: #00b89c; + border-color: transparent; + color: #fff; +} + +.file.is-link .file-cta { + background-color: #3273dc; + border-color: transparent; + color: #fff; +} + +.file.is-link:hover .file-cta, .file.is-link.is-hovered .file-cta { + background-color: #276cda; + border-color: transparent; + color: #fff; +} + +.file.is-link:focus .file-cta, .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(50, 115, 220, 0.25); + color: #fff; +} + +.file.is-link:active .file-cta, .file.is-link.is-active .file-cta { + background-color: #2366d1; + border-color: transparent; + color: #fff; +} + +.file.is-info .file-cta { + background-color: #209cee; + border-color: transparent; + color: #fff; +} + +.file.is-info:hover .file-cta, .file.is-info.is-hovered .file-cta { + background-color: #1496ed; + border-color: transparent; + color: #fff; +} + +.file.is-info:focus .file-cta, .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(32, 156, 238, 0.25); + color: #fff; +} + +.file.is-info:active .file-cta, .file.is-info.is-active .file-cta { + background-color: #118fe4; + border-color: transparent; + color: #fff; +} + +.file.is-success .file-cta { + background-color: #23d160; + border-color: transparent; + color: #fff; +} + +.file.is-success:hover .file-cta, .file.is-success.is-hovered .file-cta { + background-color: #22c65b; + border-color: transparent; + color: #fff; +} + +.file.is-success:focus .file-cta, .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(35, 209, 96, 0.25); + color: #fff; +} + +.file.is-success:active .file-cta, .file.is-success.is-active .file-cta { + background-color: #20bc56; + border-color: transparent; + color: #fff; +} + +.file.is-warning .file-cta { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.file.is-warning:hover .file-cta, .file.is-warning.is-hovered .file-cta { + background-color: #ffdb4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.file.is-warning:focus .file-cta, .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 221, 87, 0.25); + color: rgba(0, 0, 0, 0.7); +} + +.file.is-warning:active .file-cta, .file.is-warning.is-active .file-cta { + background-color: #ffd83d; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.file.is-danger .file-cta { + background-color: #ff3860; + border-color: transparent; + color: #fff; +} + +.file.is-danger:hover .file-cta, .file.is-danger.is-hovered .file-cta { + background-color: #ff2b56; + border-color: transparent; + color: #fff; +} + +.file.is-danger:focus .file-cta, .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 56, 96, 0.25); + color: #fff; +} + +.file.is-danger:active .file-cta, .file.is-danger.is-active .file-cta { + background-color: #ff1f4b; + border-color: transparent; + color: #fff; +} + +.file.is-small { + font-size: 0.75rem; +} + +.file.is-medium { + font-size: 1.25rem; +} + +.file.is-medium .file-icon .fa { + font-size: 21px; +} + +.file.is-large { + font-size: 1.5rem; +} + +.file.is-large .file-icon .fa { + font-size: 28px; +} + +.file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} + +.file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.file.has-name.is-empty .file-cta { + border-radius: 4px; +} + +.file.has-name.is-empty .file-name { + display: none; +} + +.file.is-boxed .file-label { + flex-direction: column; +} + +.file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; +} + +.file.is-boxed .file-name { + border-width: 0 1px 1px; +} + +.file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; +} + +.file.is-boxed .file-icon .fa { + font-size: 21px; +} + +.file.is-boxed.is-small .file-icon .fa { + font-size: 14px; +} + +.file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; +} + +.file.is-boxed.is-large .file-icon .fa { + font-size: 35px; +} + +.file.is-boxed.has-name .file-cta { + border-radius: 4px 4px 0 0; +} + +.file.is-boxed.has-name .file-name { + border-radius: 0 0 4px 4px; + border-width: 0 1px 1px; +} + +.file.is-centered { + justify-content: center; +} + +.file.is-fullwidth .file-label { + width: 100%; +} + +.file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; +} + +.file.is-right { + justify-content: flex-end; +} + +.file.is-right .file-cta { + border-radius: 0 4px 4px 0; +} + +.file.is-right .file-name { + border-radius: 4px 0 0 4px; + border-width: 1px 0 1px 1px; + order: -1; +} + +.file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; +} + +.file-label:hover .file-cta { + background-color: #eeeeee; + color: #363636; +} + +.file-label:hover .file-name { + border-color: #d5d5d5; +} + +.file-label:active .file-cta { + background-color: #e8e8e8; + color: #363636; +} + +.file-label:active .file-name { + border-color: #cfcfcf; +} + +.file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; +} + +.file-cta, +.file-name { + border-color: #dbdbdb; + border-radius: 4px; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; +} + +.file-cta { + background-color: whitesmoke; + color: #4a4a4a; +} + +.file-name { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; +} + +.file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; +} + +.file-icon .fa { + font-size: 14px; +} + +.label { + color: #363636; + display: block; + font-size: 1rem; + font-weight: 700; +} + +.label:not(:last-child) { + margin-bottom: 0.5em; +} + +.label.is-small { + font-size: 0.75rem; +} + +.label.is-medium { + font-size: 1.25rem; +} + +.label.is-large { + font-size: 1.5rem; +} + +.help { + display: block; + font-size: 0.75rem; + margin-top: 0.25rem; +} + +.help.is-white { + color: white; +} + +.help.is-black { + color: #0a0a0a; +} + +.help.is-light { + color: whitesmoke; +} + +.help.is-dark { + color: #363636; +} + +.help.is-primary { + color: #00d1b2; +} + +.help.is-link { + color: #3273dc; +} + +.help.is-info { + color: #209cee; +} + +.help.is-success { + color: #23d160; +} + +.help.is-warning { + color: #ffdd57; +} + +.help.is-danger { + color: #ff3860; +} + +.field:not(:last-child) { + margin-bottom: 0.75rem; +} + +.field.has-addons { + display: flex; + justify-content: flex-start; +} + +.field.has-addons .control:not(:last-child) { + margin-right: -1px; +} + +.field.has-addons .control:not(:first-child):not(:last-child) .button, +.field.has-addons .control:not(:first-child):not(:last-child) .input, +.field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; +} + +.field.has-addons .control:first-child:not(:only-child) .button, +.field.has-addons .control:first-child:not(:only-child) .input, +.field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} + +.field.has-addons .control:last-child:not(:only-child) .button, +.field.has-addons .control:last-child:not(:only-child) .input, +.field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button:not([disabled]).is-hovered, +.field.has-addons .control .input:not([disabled]):hover, +.field.has-addons .control .input:not([disabled]).is-hovered, +.field.has-addons .control .select select:not([disabled]):hover, +.field.has-addons .control .select select:not([disabled]).is-hovered { + z-index: 2; +} + +.field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button:not([disabled]).is-focused, .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button:not([disabled]).is-active, +.field.has-addons .control .input:not([disabled]):focus, +.field.has-addons .control .input:not([disabled]).is-focused, +.field.has-addons .control .input:not([disabled]):active, +.field.has-addons .control .input:not([disabled]).is-active, +.field.has-addons .control .select select:not([disabled]):focus, +.field.has-addons .control .select select:not([disabled]).is-focused, +.field.has-addons .control .select select:not([disabled]):active, +.field.has-addons .control .select select:not([disabled]).is-active { + z-index: 3; +} + +.field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button:not([disabled]).is-focused:hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button:not([disabled]).is-active:hover, +.field.has-addons .control .input:not([disabled]):focus:hover, +.field.has-addons .control .input:not([disabled]).is-focused:hover, +.field.has-addons .control .input:not([disabled]):active:hover, +.field.has-addons .control .input:not([disabled]).is-active:hover, +.field.has-addons .control .select select:not([disabled]):focus:hover, +.field.has-addons .control .select select:not([disabled]).is-focused:hover, +.field.has-addons .control .select select:not([disabled]):active:hover, +.field.has-addons .control .select select:not([disabled]).is-active:hover { + z-index: 4; +} + +.field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; +} + +.field.has-addons.has-addons-centered { + justify-content: center; +} + +.field.has-addons.has-addons-right { + justify-content: flex-end; +} + +.field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; +} + +.field.is-grouped { + display: flex; + justify-content: flex-start; +} + +.field.is-grouped > .control { + flex-shrink: 0; +} + +.field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; +} + +.field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; +} + +.field.is-grouped.is-grouped-centered { + justify-content: center; +} + +.field.is-grouped.is-grouped-right { + justify-content: flex-end; +} + +.field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; +} + +.field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; +} + +.field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; +} + +.field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; +} + +@media screen and (min-width: 769px), print { + .field.is-horizontal { + display: flex; + } +} + +.field-label .label { + font-size: inherit; +} + +@media screen and (max-width: 768px) { + .field-label { + margin-bottom: 0.5rem; + } +} + +@media screen and (min-width: 769px), print { + .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; + } + .field-label.is-small { + font-size: 0.75rem; + padding-top: 0.375em; + } + .field-label.is-normal { + padding-top: 0.375em; + } + .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; + } + .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; + } +} + +.field-body .field .field { + margin-bottom: 0; +} + +@media screen and (min-width: 769px), print { + .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; + } + .field-body .field { + margin-bottom: 0; + } + .field-body > .field { + flex-shrink: 1; + } + .field-body > .field:not(.is-narrow) { + flex-grow: 1; + } + .field-body > .field:not(:last-child) { + margin-right: 0.75rem; + } +} + +.control { + box-sizing: border-box; + clear: both; + font-size: 1rem; + position: relative; + text-align: left; +} + +.control.has-icons-left .input:focus ~ .icon, +.control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, +.control.has-icons-right .select:focus ~ .icon { + color: #7a7a7a; +} + +.control.has-icons-left .input.is-small ~ .icon, +.control.has-icons-left .select.is-small ~ .icon, .control.has-icons-right .input.is-small ~ .icon, +.control.has-icons-right .select.is-small ~ .icon { + font-size: 0.75rem; +} + +.control.has-icons-left .input.is-medium ~ .icon, +.control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, +.control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; +} + +.control.has-icons-left .input.is-large ~ .icon, +.control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, +.control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; +} + +.control.has-icons-left .icon, .control.has-icons-right .icon { + color: #dbdbdb; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; +} + +.control.has-icons-left .input, +.control.has-icons-left .select select { + padding-left: 2.25em; +} + +.control.has-icons-left .icon.is-left { + left: 0; +} + +.control.has-icons-right .input, +.control.has-icons-right .select select { + padding-right: 2.25em; +} + +.control.has-icons-right .icon.is-right { + right: 0; +} + +.control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; +} + +.control.is-loading.is-small:after { + font-size: 0.75rem; +} + +.control.is-loading.is-medium:after { + font-size: 1.25rem; +} + +.control.is-loading.is-large:after { + font-size: 1.5rem; +} + +.breadcrumb { + font-size: 1rem; + white-space: nowrap; +} + +.breadcrumb a { + align-items: center; + color: #3273dc; + display: flex; + justify-content: center; + padding: 0 0.75em; +} + +.breadcrumb a:hover { + color: #363636; +} + +.breadcrumb li { + align-items: center; + display: flex; +} + +.breadcrumb li:first-child a { + padding-left: 0; +} + +.breadcrumb li.is-active a { + color: #363636; + cursor: default; + pointer-events: none; +} + +.breadcrumb li + li::before { + color: #b5b5b5; + content: "\0002f"; +} + +.breadcrumb ul, +.breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} + +.breadcrumb .icon:first-child { + margin-right: 0.5em; +} + +.breadcrumb .icon:last-child { + margin-left: 0.5em; +} + +.breadcrumb.is-centered ol, +.breadcrumb.is-centered ul { + justify-content: center; +} + +.breadcrumb.is-right ol, +.breadcrumb.is-right ul { + justify-content: flex-end; +} + +.breadcrumb.is-small { + font-size: 0.75rem; +} + +.breadcrumb.is-medium { + font-size: 1.25rem; +} + +.breadcrumb.is-large { + font-size: 1.5rem; +} + +.breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; +} + +.breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; +} + +.breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; +} + +.breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; +} + +.card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #4a4a4a; + max-width: 100%; + position: relative; +} + +.card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; +} + +.card-header-title { + align-items: center; + color: #363636; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; +} + +.card-header-title.is-centered { + justify-content: center; +} + +.card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; +} + +.card-image { + display: block; + position: relative; +} + +.card-content { + background-color: transparent; + padding: 1.5rem; +} + +.card-footer { + background-color: transparent; + border-top: 1px solid #dbdbdb; + align-items: stretch; + display: flex; +} + +.card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; +} + +.card-footer-item:not(:last-child) { + border-right: 1px solid #dbdbdb; +} + +.card .media:not(:last-child) { + margin-bottom: 1.5rem; +} + +.dropdown { + display: inline-flex; + position: relative; + vertical-align: top; +} + +.dropdown.is-active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu { + display: block; +} + +.dropdown.is-right .dropdown-menu { + left: auto; + right: 0; +} + +.dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; +} + +.dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; +} + +.dropdown-content { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; +} + +.dropdown-item { + color: #4a4a4a; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; +} + +a.dropdown-item, +button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; +} + +a.dropdown-item:hover, +button.dropdown-item:hover { + background-color: whitesmoke; + color: #0a0a0a; +} + +a.dropdown-item.is-active, +button.dropdown-item.is-active { + background-color: #3273dc; + color: #fff; +} + +.dropdown-divider { + background-color: #dbdbdb; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; +} + +.level { + align-items: center; + justify-content: space-between; +} + +.level code { + border-radius: 4px; +} + +.level img { + display: inline-block; + vertical-align: top; +} + +.level.is-mobile { + display: flex; +} + +.level.is-mobile .level-left, +.level.is-mobile .level-right { + display: flex; +} + +.level.is-mobile .level-left + .level-right { + margin-top: 0; +} + +.level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; +} + +.level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; +} + +@media screen and (min-width: 769px), print { + .level { + display: flex; + } + .level > .level-item:not(.is-narrow) { + flex-grow: 1; + } +} + +.level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; +} + +.level-item .title, +.level-item .subtitle { + margin-bottom: 0; +} + +@media screen and (max-width: 768px) { + .level-item:not(:last-child) { + margin-bottom: 0.75rem; + } +} + +.level-left, +.level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; +} + +.level-left .level-item.is-flexible, +.level-right .level-item.is-flexible { + flex-grow: 1; +} + +@media screen and (min-width: 769px), print { + .level-left .level-item:not(:last-child), + .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; + } +} + +.level-left { + align-items: center; + justify-content: flex-start; +} + +@media screen and (max-width: 768px) { + .level-left + .level-right { + margin-top: 1.5rem; + } +} + +@media screen and (min-width: 769px), print { + .level-left { + display: flex; + } +} + +.level-right { + align-items: center; + justify-content: flex-end; +} + +@media screen and (min-width: 769px), print { + .level-right { + display: flex; + } +} + +.list { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); +} + +.list-item { + display: block; + padding: 0.5em 1em; +} + +.list-item:not(a) { + color: #4a4a4a; +} + +.list-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +.list-item:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; +} + +.list-item:not(:last-child) { + border-bottom: 1px solid #dbdbdb; +} + +.list-item.is-active { + background-color: #3273dc; + color: #fff; +} + +a.list-item { + background-color: whitesmoke; + cursor: pointer; +} + +.media { + align-items: flex-start; + display: flex; + text-align: left; +} + +.media .content:not(:last-child) { + margin-bottom: 0.75rem; +} + +.media .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + display: flex; + padding-top: 0.75rem; +} + +.media .media .content:not(:last-child), +.media .media .control:not(:last-child) { + margin-bottom: 0.5rem; +} + +.media .media .media { + padding-top: 0.5rem; +} + +.media .media .media + .media { + margin-top: 0.5rem; +} + +.media + .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + margin-top: 1rem; + padding-top: 1rem; +} + +.media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; +} + +.media-left, +.media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; +} + +.media-left { + margin-right: 1rem; +} + +.media-right { + margin-left: 1rem; +} + +.media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; +} + +@media screen and (max-width: 768px) { + .media-content { + overflow-x: auto; + } +} + +.menu { + font-size: 1rem; +} + +.menu.is-small { + font-size: 0.75rem; +} + +.menu.is-medium { + font-size: 1.25rem; +} + +.menu.is-large { + font-size: 1.5rem; +} + +.menu-list { + line-height: 1.25; +} + +.menu-list a { + border-radius: 2px; + color: #4a4a4a; + display: block; + padding: 0.5em 0.75em; +} + +.menu-list a:hover { + background-color: whitesmoke; + color: #363636; +} + +.menu-list a.is-active { + background-color: #3273dc; + color: #fff; +} + +.menu-list li ul { + border-left: 1px solid #dbdbdb; + margin: 0.75em; + padding-left: 0.75em; +} + +.menu-label { + color: #7a7a7a; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; +} + +.menu-label:not(:first-child) { + margin-top: 1em; +} + +.menu-label:not(:last-child) { + margin-bottom: 1em; +} + +.message { + background-color: whitesmoke; + border-radius: 4px; + font-size: 1rem; +} + +.message strong { + color: currentColor; +} + +.message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; +} + +.message.is-small { + font-size: 0.75rem; +} + +.message.is-medium { + font-size: 1.25rem; +} + +.message.is-large { + font-size: 1.5rem; +} + +.message.is-white { + background-color: white; +} + +.message.is-white .message-header { + background-color: white; + color: #0a0a0a; +} + +.message.is-white .message-body { + border-color: white; + color: #4d4d4d; +} + +.message.is-black { + background-color: #fafafa; +} + +.message.is-black .message-header { + background-color: #0a0a0a; + color: white; +} + +.message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; +} + +.message.is-light { + background-color: #fafafa; +} + +.message.is-light .message-header { + background-color: whitesmoke; + color: #363636; +} + +.message.is-light .message-body { + border-color: whitesmoke; + color: #505050; +} + +.message.is-dark { + background-color: #fafafa; +} + +.message.is-dark .message-header { + background-color: #363636; + color: whitesmoke; +} + +.message.is-dark .message-body { + border-color: #363636; + color: #2a2a2a; +} + +.message.is-primary { + background-color: #f5fffd; +} + +.message.is-primary .message-header { + background-color: #00d1b2; + color: #fff; +} + +.message.is-primary .message-body { + border-color: #00d1b2; + color: #021310; +} + +.message.is-link { + background-color: #f6f9fe; +} + +.message.is-link .message-header { + background-color: #3273dc; + color: #fff; +} + +.message.is-link .message-body { + border-color: #3273dc; + color: #22509a; +} + +.message.is-info { + background-color: #f6fbfe; +} + +.message.is-info .message-header { + background-color: #209cee; + color: #fff; +} + +.message.is-info .message-body { + border-color: #209cee; + color: #12537e; +} + +.message.is-success { + background-color: #f6fef9; +} + +.message.is-success .message-header { + background-color: #23d160; + color: #fff; +} + +.message.is-success .message-body { + border-color: #23d160; + color: #0e301a; +} + +.message.is-warning { + background-color: #fffdf5; +} + +.message.is-warning .message-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); +} + +.message.is-warning .message-body { + border-color: #ffdd57; + color: #3b3108; +} + +.message.is-danger { + background-color: #fff5f7; +} + +.message.is-danger .message-header { + background-color: #ff3860; + color: #fff; +} + +.message.is-danger .message-body { + border-color: #ff3860; + color: #cd0930; +} + +.message-header { + align-items: center; + background-color: #4a4a4a; + border-radius: 4px 4px 0 0; + color: #fff; + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; +} + +.message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; +} + +.message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.message-body { + border-color: #dbdbdb; + border-radius: 4px; + border-style: solid; + border-width: 0 0 0 4px; + color: #4a4a4a; + padding: 1.25em 1.5em; +} + +.message-body code, +.message-body pre { + background-color: white; +} + +.message-body pre code { + background-color: transparent; +} + +.modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; +} + +.modal.is-active { + display: flex; +} + +.modal-background { + background-color: rgba(10, 10, 10, 0.86); +} + +.modal-content, +.modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; +} + +@media screen and (min-width: 769px), print { + .modal-content, + .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; + } +} + +.modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; +} + +.modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; +} + +.modal-card-head, +.modal-card-foot { + align-items: center; + background-color: whitesmoke; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; +} + +.modal-card-head { + border-bottom: 1px solid #dbdbdb; + border-top-left-radius: 6px; + border-top-right-radius: 6px; +} + +.modal-card-title { + color: #363636; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; +} + +.modal-card-foot { + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 1px solid #dbdbdb; +} + +.modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; +} + +.modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; +} + +.navbar { + background-color: white; + min-height: 3.25rem; + position: relative; + z-index: 30; +} + +.navbar.is-white { + background-color: white; + color: #0a0a0a; +} + +.navbar.is-white .navbar-brand > .navbar-item, +.navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; +} + +.navbar.is-white .navbar-brand > a.navbar-item:focus, .navbar.is-white .navbar-brand > a.navbar-item:hover, .navbar.is-white .navbar-brand > a.navbar-item.is-active, +.navbar.is-white .navbar-brand .navbar-link:focus, +.navbar.is-white .navbar-brand .navbar-link:hover, +.navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; +} + +.navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; +} + +.navbar.is-white .navbar-burger { + color: #0a0a0a; +} + +@media screen and (min-width: 1024px) { + .navbar.is-white .navbar-start > .navbar-item, + .navbar.is-white .navbar-start .navbar-link, + .navbar.is-white .navbar-end > .navbar-item, + .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; + } + .navbar.is-white .navbar-start > a.navbar-item:focus, .navbar.is-white .navbar-start > a.navbar-item:hover, .navbar.is-white .navbar-start > a.navbar-item.is-active, + .navbar.is-white .navbar-start .navbar-link:focus, + .navbar.is-white .navbar-start .navbar-link:hover, + .navbar.is-white .navbar-start .navbar-link.is-active, + .navbar.is-white .navbar-end > a.navbar-item:focus, + .navbar.is-white .navbar-end > a.navbar-item:hover, + .navbar.is-white .navbar-end > a.navbar-item.is-active, + .navbar.is-white .navbar-end .navbar-link:focus, + .navbar.is-white .navbar-end .navbar-link:hover, + .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; + } + .navbar.is-white .navbar-start .navbar-link::after, + .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; + } + .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; + } + .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; + } +} + +.navbar.is-black { + background-color: #0a0a0a; + color: white; +} + +.navbar.is-black .navbar-brand > .navbar-item, +.navbar.is-black .navbar-brand .navbar-link { + color: white; +} + +.navbar.is-black .navbar-brand > a.navbar-item:focus, .navbar.is-black .navbar-brand > a.navbar-item:hover, .navbar.is-black .navbar-brand > a.navbar-item.is-active, +.navbar.is-black .navbar-brand .navbar-link:focus, +.navbar.is-black .navbar-brand .navbar-link:hover, +.navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; +} + +.navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; +} + +.navbar.is-black .navbar-burger { + color: white; +} + +@media screen and (min-width: 1024px) { + .navbar.is-black .navbar-start > .navbar-item, + .navbar.is-black .navbar-start .navbar-link, + .navbar.is-black .navbar-end > .navbar-item, + .navbar.is-black .navbar-end .navbar-link { + color: white; + } + .navbar.is-black .navbar-start > a.navbar-item:focus, .navbar.is-black .navbar-start > a.navbar-item:hover, .navbar.is-black .navbar-start > a.navbar-item.is-active, + .navbar.is-black .navbar-start .navbar-link:focus, + .navbar.is-black .navbar-start .navbar-link:hover, + .navbar.is-black .navbar-start .navbar-link.is-active, + .navbar.is-black .navbar-end > a.navbar-item:focus, + .navbar.is-black .navbar-end > a.navbar-item:hover, + .navbar.is-black .navbar-end > a.navbar-item.is-active, + .navbar.is-black .navbar-end .navbar-link:focus, + .navbar.is-black .navbar-end .navbar-link:hover, + .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; + } + .navbar.is-black .navbar-start .navbar-link::after, + .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; + } + .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; + } + .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; + } +} + +.navbar.is-light { + background-color: whitesmoke; + color: #363636; +} + +.navbar.is-light .navbar-brand > .navbar-item, +.navbar.is-light .navbar-brand .navbar-link { + color: #363636; +} + +.navbar.is-light .navbar-brand > a.navbar-item:focus, .navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active, +.navbar.is-light .navbar-brand .navbar-link:focus, +.navbar.is-light .navbar-brand .navbar-link:hover, +.navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; +} + +.navbar.is-light .navbar-brand .navbar-link::after { + border-color: #363636; +} + +.navbar.is-light .navbar-burger { + color: #363636; +} + +@media screen and (min-width: 1024px) { + .navbar.is-light .navbar-start > .navbar-item, + .navbar.is-light .navbar-start .navbar-link, + .navbar.is-light .navbar-end > .navbar-item, + .navbar.is-light .navbar-end .navbar-link { + color: #363636; + } + .navbar.is-light .navbar-start > a.navbar-item:focus, .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active, + .navbar.is-light .navbar-start .navbar-link:focus, + .navbar.is-light .navbar-start .navbar-link:hover, + .navbar.is-light .navbar-start .navbar-link.is-active, + .navbar.is-light .navbar-end > a.navbar-item:focus, + .navbar.is-light .navbar-end > a.navbar-item:hover, + .navbar.is-light .navbar-end > a.navbar-item.is-active, + .navbar.is-light .navbar-end .navbar-link:focus, + .navbar.is-light .navbar-end .navbar-link:hover, + .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; + } + .navbar.is-light .navbar-start .navbar-link::after, + .navbar.is-light .navbar-end .navbar-link::after { + border-color: #363636; + } + .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #e8e8e8; + color: #363636; + } + .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #363636; + } +} + +.navbar.is-dark { + background-color: #363636; + color: whitesmoke; +} + +.navbar.is-dark .navbar-brand > .navbar-item, +.navbar.is-dark .navbar-brand .navbar-link { + color: whitesmoke; +} + +.navbar.is-dark .navbar-brand > a.navbar-item:focus, .navbar.is-dark .navbar-brand > a.navbar-item:hover, .navbar.is-dark .navbar-brand > a.navbar-item.is-active, +.navbar.is-dark .navbar-brand .navbar-link:focus, +.navbar.is-dark .navbar-brand .navbar-link:hover, +.navbar.is-dark .navbar-brand .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; +} + +.navbar.is-dark .navbar-brand .navbar-link::after { + border-color: whitesmoke; +} + +.navbar.is-dark .navbar-burger { + color: whitesmoke; +} + +@media screen and (min-width: 1024px) { + .navbar.is-dark .navbar-start > .navbar-item, + .navbar.is-dark .navbar-start .navbar-link, + .navbar.is-dark .navbar-end > .navbar-item, + .navbar.is-dark .navbar-end .navbar-link { + color: whitesmoke; + } + .navbar.is-dark .navbar-start > a.navbar-item:focus, .navbar.is-dark .navbar-start > a.navbar-item:hover, .navbar.is-dark .navbar-start > a.navbar-item.is-active, + .navbar.is-dark .navbar-start .navbar-link:focus, + .navbar.is-dark .navbar-start .navbar-link:hover, + .navbar.is-dark .navbar-start .navbar-link.is-active, + .navbar.is-dark .navbar-end > a.navbar-item:focus, + .navbar.is-dark .navbar-end > a.navbar-item:hover, + .navbar.is-dark .navbar-end > a.navbar-item.is-active, + .navbar.is-dark .navbar-end .navbar-link:focus, + .navbar.is-dark .navbar-end .navbar-link:hover, + .navbar.is-dark .navbar-end .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; + } + .navbar.is-dark .navbar-start .navbar-link::after, + .navbar.is-dark .navbar-end .navbar-link::after { + border-color: whitesmoke; + } + .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #292929; + color: whitesmoke; + } + .navbar.is-dark .navbar-dropdown a.navbar-item.is-active { + background-color: #363636; + color: whitesmoke; + } +} + +.navbar.is-primary { + background-color: #00d1b2; + color: #fff; +} + +.navbar.is-primary .navbar-brand > .navbar-item, +.navbar.is-primary .navbar-brand .navbar-link { + color: #fff; +} + +.navbar.is-primary .navbar-brand > a.navbar-item:focus, .navbar.is-primary .navbar-brand > a.navbar-item:hover, .navbar.is-primary .navbar-brand > a.navbar-item.is-active, +.navbar.is-primary .navbar-brand .navbar-link:focus, +.navbar.is-primary .navbar-brand .navbar-link:hover, +.navbar.is-primary .navbar-brand .navbar-link.is-active { + background-color: #00b89c; + color: #fff; +} + +.navbar.is-primary .navbar-brand .navbar-link::after { + border-color: #fff; +} + +.navbar.is-primary .navbar-burger { + color: #fff; +} + +@media screen and (min-width: 1024px) { + .navbar.is-primary .navbar-start > .navbar-item, + .navbar.is-primary .navbar-start .navbar-link, + .navbar.is-primary .navbar-end > .navbar-item, + .navbar.is-primary .navbar-end .navbar-link { + color: #fff; + } + .navbar.is-primary .navbar-start > a.navbar-item:focus, .navbar.is-primary .navbar-start > a.navbar-item:hover, .navbar.is-primary .navbar-start > a.navbar-item.is-active, + .navbar.is-primary .navbar-start .navbar-link:focus, + .navbar.is-primary .navbar-start .navbar-link:hover, + .navbar.is-primary .navbar-start .navbar-link.is-active, + .navbar.is-primary .navbar-end > a.navbar-item:focus, + .navbar.is-primary .navbar-end > a.navbar-item:hover, + .navbar.is-primary .navbar-end > a.navbar-item.is-active, + .navbar.is-primary .navbar-end .navbar-link:focus, + .navbar.is-primary .navbar-end .navbar-link:hover, + .navbar.is-primary .navbar-end .navbar-link.is-active { + background-color: #00b89c; + color: #fff; + } + .navbar.is-primary .navbar-start .navbar-link::after, + .navbar.is-primary .navbar-end .navbar-link::after { + border-color: #fff; + } + .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #00b89c; + color: #fff; + } + .navbar.is-primary .navbar-dropdown a.navbar-item.is-active { + background-color: #00d1b2; + color: #fff; + } +} + +.navbar.is-link { + background-color: #3273dc; + color: #fff; +} + +.navbar.is-link .navbar-brand > .navbar-item, +.navbar.is-link .navbar-brand .navbar-link { + color: #fff; +} + +.navbar.is-link .navbar-brand > a.navbar-item:focus, .navbar.is-link .navbar-brand > a.navbar-item:hover, .navbar.is-link .navbar-brand > a.navbar-item.is-active, +.navbar.is-link .navbar-brand .navbar-link:focus, +.navbar.is-link .navbar-brand .navbar-link:hover, +.navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #2366d1; + color: #fff; +} + +.navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; +} + +.navbar.is-link .navbar-burger { + color: #fff; +} + +@media screen and (min-width: 1024px) { + .navbar.is-link .navbar-start > .navbar-item, + .navbar.is-link .navbar-start .navbar-link, + .navbar.is-link .navbar-end > .navbar-item, + .navbar.is-link .navbar-end .navbar-link { + color: #fff; + } + .navbar.is-link .navbar-start > a.navbar-item:focus, .navbar.is-link .navbar-start > a.navbar-item:hover, .navbar.is-link .navbar-start > a.navbar-item.is-active, + .navbar.is-link .navbar-start .navbar-link:focus, + .navbar.is-link .navbar-start .navbar-link:hover, + .navbar.is-link .navbar-start .navbar-link.is-active, + .navbar.is-link .navbar-end > a.navbar-item:focus, + .navbar.is-link .navbar-end > a.navbar-item:hover, + .navbar.is-link .navbar-end > a.navbar-item.is-active, + .navbar.is-link .navbar-end .navbar-link:focus, + .navbar.is-link .navbar-end .navbar-link:hover, + .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #2366d1; + color: #fff; + } + .navbar.is-link .navbar-start .navbar-link::after, + .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; + } + .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2366d1; + color: #fff; + } + .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #3273dc; + color: #fff; + } +} + +.navbar.is-info { + background-color: #209cee; + color: #fff; +} + +.navbar.is-info .navbar-brand > .navbar-item, +.navbar.is-info .navbar-brand .navbar-link { + color: #fff; +} + +.navbar.is-info .navbar-brand > a.navbar-item:focus, .navbar.is-info .navbar-brand > a.navbar-item:hover, .navbar.is-info .navbar-brand > a.navbar-item.is-active, +.navbar.is-info .navbar-brand .navbar-link:focus, +.navbar.is-info .navbar-brand .navbar-link:hover, +.navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #118fe4; + color: #fff; +} + +.navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; +} + +.navbar.is-info .navbar-burger { + color: #fff; +} + +@media screen and (min-width: 1024px) { + .navbar.is-info .navbar-start > .navbar-item, + .navbar.is-info .navbar-start .navbar-link, + .navbar.is-info .navbar-end > .navbar-item, + .navbar.is-info .navbar-end .navbar-link { + color: #fff; + } + .navbar.is-info .navbar-start > a.navbar-item:focus, .navbar.is-info .navbar-start > a.navbar-item:hover, .navbar.is-info .navbar-start > a.navbar-item.is-active, + .navbar.is-info .navbar-start .navbar-link:focus, + .navbar.is-info .navbar-start .navbar-link:hover, + .navbar.is-info .navbar-start .navbar-link.is-active, + .navbar.is-info .navbar-end > a.navbar-item:focus, + .navbar.is-info .navbar-end > a.navbar-item:hover, + .navbar.is-info .navbar-end > a.navbar-item.is-active, + .navbar.is-info .navbar-end .navbar-link:focus, + .navbar.is-info .navbar-end .navbar-link:hover, + .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #118fe4; + color: #fff; + } + .navbar.is-info .navbar-start .navbar-link::after, + .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; + } + .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #118fe4; + color: #fff; + } + .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #209cee; + color: #fff; + } +} + +.navbar.is-success { + background-color: #23d160; + color: #fff; +} + +.navbar.is-success .navbar-brand > .navbar-item, +.navbar.is-success .navbar-brand .navbar-link { + color: #fff; +} + +.navbar.is-success .navbar-brand > a.navbar-item:focus, .navbar.is-success .navbar-brand > a.navbar-item:hover, .navbar.is-success .navbar-brand > a.navbar-item.is-active, +.navbar.is-success .navbar-brand .navbar-link:focus, +.navbar.is-success .navbar-brand .navbar-link:hover, +.navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #20bc56; + color: #fff; +} + +.navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; +} + +.navbar.is-success .navbar-burger { + color: #fff; +} + +@media screen and (min-width: 1024px) { + .navbar.is-success .navbar-start > .navbar-item, + .navbar.is-success .navbar-start .navbar-link, + .navbar.is-success .navbar-end > .navbar-item, + .navbar.is-success .navbar-end .navbar-link { + color: #fff; + } + .navbar.is-success .navbar-start > a.navbar-item:focus, .navbar.is-success .navbar-start > a.navbar-item:hover, .navbar.is-success .navbar-start > a.navbar-item.is-active, + .navbar.is-success .navbar-start .navbar-link:focus, + .navbar.is-success .navbar-start .navbar-link:hover, + .navbar.is-success .navbar-start .navbar-link.is-active, + .navbar.is-success .navbar-end > a.navbar-item:focus, + .navbar.is-success .navbar-end > a.navbar-item:hover, + .navbar.is-success .navbar-end > a.navbar-item.is-active, + .navbar.is-success .navbar-end .navbar-link:focus, + .navbar.is-success .navbar-end .navbar-link:hover, + .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #20bc56; + color: #fff; + } + .navbar.is-success .navbar-start .navbar-link::after, + .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; + } + .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #20bc56; + color: #fff; + } + .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #23d160; + color: #fff; + } +} + +.navbar.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); +} + +.navbar.is-warning .navbar-brand > .navbar-item, +.navbar.is-warning .navbar-brand .navbar-link { + color: rgba(0, 0, 0, 0.7); +} + +.navbar.is-warning .navbar-brand > a.navbar-item:focus, .navbar.is-warning .navbar-brand > a.navbar-item:hover, .navbar.is-warning .navbar-brand > a.navbar-item.is-active, +.navbar.is-warning .navbar-brand .navbar-link:focus, +.navbar.is-warning .navbar-brand .navbar-link:hover, +.navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #ffd83d; + color: rgba(0, 0, 0, 0.7); +} + +.navbar.is-warning .navbar-brand .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); +} + +.navbar.is-warning .navbar-burger { + color: rgba(0, 0, 0, 0.7); +} + +@media screen and (min-width: 1024px) { + .navbar.is-warning .navbar-start > .navbar-item, + .navbar.is-warning .navbar-start .navbar-link, + .navbar.is-warning .navbar-end > .navbar-item, + .navbar.is-warning .navbar-end .navbar-link { + color: rgba(0, 0, 0, 0.7); + } + .navbar.is-warning .navbar-start > a.navbar-item:focus, .navbar.is-warning .navbar-start > a.navbar-item:hover, .navbar.is-warning .navbar-start > a.navbar-item.is-active, + .navbar.is-warning .navbar-start .navbar-link:focus, + .navbar.is-warning .navbar-start .navbar-link:hover, + .navbar.is-warning .navbar-start .navbar-link.is-active, + .navbar.is-warning .navbar-end > a.navbar-item:focus, + .navbar.is-warning .navbar-end > a.navbar-item:hover, + .navbar.is-warning .navbar-end > a.navbar-item.is-active, + .navbar.is-warning .navbar-end .navbar-link:focus, + .navbar.is-warning .navbar-end .navbar-link:hover, + .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #ffd83d; + color: rgba(0, 0, 0, 0.7); + } + .navbar.is-warning .navbar-start .navbar-link::after, + .navbar.is-warning .navbar-end .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); + } + .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #ffd83d; + color: rgba(0, 0, 0, 0.7); + } + .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); + } +} + +.navbar.is-danger { + background-color: #ff3860; + color: #fff; +} + +.navbar.is-danger .navbar-brand > .navbar-item, +.navbar.is-danger .navbar-brand .navbar-link { + color: #fff; +} + +.navbar.is-danger .navbar-brand > a.navbar-item:focus, .navbar.is-danger .navbar-brand > a.navbar-item:hover, .navbar.is-danger .navbar-brand > a.navbar-item.is-active, +.navbar.is-danger .navbar-brand .navbar-link:focus, +.navbar.is-danger .navbar-brand .navbar-link:hover, +.navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #ff1f4b; + color: #fff; +} + +.navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; +} + +.navbar.is-danger .navbar-burger { + color: #fff; +} + +@media screen and (min-width: 1024px) { + .navbar.is-danger .navbar-start > .navbar-item, + .navbar.is-danger .navbar-start .navbar-link, + .navbar.is-danger .navbar-end > .navbar-item, + .navbar.is-danger .navbar-end .navbar-link { + color: #fff; + } + .navbar.is-danger .navbar-start > a.navbar-item:focus, .navbar.is-danger .navbar-start > a.navbar-item:hover, .navbar.is-danger .navbar-start > a.navbar-item.is-active, + .navbar.is-danger .navbar-start .navbar-link:focus, + .navbar.is-danger .navbar-start .navbar-link:hover, + .navbar.is-danger .navbar-start .navbar-link.is-active, + .navbar.is-danger .navbar-end > a.navbar-item:focus, + .navbar.is-danger .navbar-end > a.navbar-item:hover, + .navbar.is-danger .navbar-end > a.navbar-item.is-active, + .navbar.is-danger .navbar-end .navbar-link:focus, + .navbar.is-danger .navbar-end .navbar-link:hover, + .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #ff1f4b; + color: #fff; + } + .navbar.is-danger .navbar-start .navbar-link::after, + .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; + } + .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #ff1f4b; + color: #fff; + } + .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #ff3860; + color: #fff; + } +} + +.navbar > .container { + align-items: stretch; + display: flex; + min-height: 3.25rem; + width: 100%; +} + +.navbar.has-shadow { + box-shadow: 0 2px 0 0 whitesmoke; +} + +.navbar.is-fixed-bottom, .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; +} + +.navbar.is-fixed-bottom { + bottom: 0; +} + +.navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 whitesmoke; +} + +.navbar.is-fixed-top { + top: 0; +} + +html.has-navbar-fixed-top, +body.has-navbar-fixed-top { + padding-top: 3.25rem; +} + +html.has-navbar-fixed-bottom, +body.has-navbar-fixed-bottom { + padding-bottom: 3.25rem; +} + +.navbar-brand, +.navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 3.25rem; +} + +.navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover { + background-color: transparent; +} + +.navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; +} + +.navbar-burger { + color: #4a4a4a; + cursor: pointer; + display: block; + height: 3.25rem; + position: relative; + width: 3.25rem; + margin-left: auto; +} + +.navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + -webkit-transform-origin: center; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, -webkit-transform; + transition-property: background-color, opacity, transform; + transition-property: background-color, opacity, transform, -webkit-transform; + transition-timing-function: ease-out; + width: 16px; +} + +.navbar-burger span:nth-child(1) { + top: calc(50% - 6px); +} + +.navbar-burger span:nth-child(2) { + top: calc(50% - 1px); +} + +.navbar-burger span:nth-child(3) { + top: calc(50% + 4px); +} + +.navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); +} + +.navbar-burger.is-active span:nth-child(1) { + -webkit-transform: translateY(5px) rotate(45deg); + transform: translateY(5px) rotate(45deg); +} + +.navbar-burger.is-active span:nth-child(2) { + opacity: 0; +} + +.navbar-burger.is-active span:nth-child(3) { + -webkit-transform: translateY(-5px) rotate(-45deg); + transform: translateY(-5px) rotate(-45deg); +} + +.navbar-menu { + display: none; +} + +.navbar-item, +.navbar-link { + color: #4a4a4a; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; +} + +.navbar-item .icon:only-child, +.navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; +} + +a.navbar-item, +.navbar-link { + cursor: pointer; +} + +a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active, +.navbar-link:focus, +.navbar-link:focus-within, +.navbar-link:hover, +.navbar-link.is-active { + background-color: #fafafa; + color: #3273dc; +} + +.navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; +} + +.navbar-item img { + max-height: 1.75rem; +} + +.navbar-item.has-dropdown { + padding: 0; +} + +.navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; +} + +.navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 3.25rem; + padding-bottom: calc(0.5rem - 1px); +} + +.navbar-item.is-tab:focus, .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #3273dc; +} + +.navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #3273dc; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #3273dc; + padding-bottom: calc(0.5rem - 3px); +} + +.navbar-content { + flex-grow: 1; + flex-shrink: 1; +} + +.navbar-link:not(.is-arrowless) { + padding-right: 2.5em; +} + +.navbar-link:not(.is-arrowless)::after { + border-color: #3273dc; + margin-top: -0.375em; + right: 1.125em; +} + +.navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; +} + +.navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; +} + +.navbar-divider { + background-color: whitesmoke; + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; +} + +@media screen and (max-width: 1023px) { + .navbar > .container { + display: block; + } + .navbar-brand .navbar-item, + .navbar-tabs .navbar-item { + align-items: center; + display: flex; + } + .navbar-link::after { + display: none; + } + .navbar-menu { + background-color: white; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; + } + .navbar-menu.is-active { + display: block; + } + .navbar.is-fixed-bottom-touch, .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; + } + .navbar.is-fixed-bottom-touch { + bottom: 0; + } + .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); + } + .navbar.is-fixed-top-touch { + top: 0; + } + .navbar.is-fixed-top .navbar-menu, .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 3.25rem); + overflow: auto; + } + html.has-navbar-fixed-top-touch, + body.has-navbar-fixed-top-touch { + padding-top: 3.25rem; + } + html.has-navbar-fixed-bottom-touch, + body.has-navbar-fixed-bottom-touch { + padding-bottom: 3.25rem; + } +} + +@media screen and (min-width: 1024px) { + .navbar, + .navbar-menu, + .navbar-start, + .navbar-end { + align-items: stretch; + display: flex; + } + .navbar { + min-height: 3.25rem; + } + .navbar.is-spaced { + padding: 1rem 2rem; + } + .navbar.is-spaced .navbar-start, + .navbar.is-spaced .navbar-end { + align-items: center; + } + .navbar.is-spaced a.navbar-item, + .navbar.is-spaced .navbar-link { + border-radius: 4px; + } + .navbar.is-transparent a.navbar-item:focus, .navbar.is-transparent a.navbar-item:hover, .navbar.is-transparent a.navbar-item.is-active, + .navbar.is-transparent .navbar-link:focus, + .navbar.is-transparent .navbar-link:hover, + .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; + } + .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; + } + .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; + } + .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #3273dc; + } + .navbar-burger { + display: none; + } + .navbar-item, + .navbar-link { + align-items: center; + display: flex; + } + .navbar-item { + display: flex; + } + .navbar-item.has-dropdown { + align-items: stretch; + } + .navbar-item.has-dropdown-up .navbar-link::after { + -webkit-transform: rotate(135deg) translate(0.25em, -0.25em); + transform: rotate(135deg) translate(0.25em, -0.25em); + } + .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 2px solid #dbdbdb; + border-radius: 6px 6px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; + } + .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; + } + .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + -webkit-transform: translateY(0); + transform: translateY(0); + } + .navbar-menu { + flex-grow: 1; + flex-shrink: 0; + } + .navbar-start { + justify-content: flex-start; + margin-right: auto; + } + .navbar-end { + justify-content: flex-end; + margin-left: auto; + } + .navbar-dropdown { + background-color: white; + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 2px solid #dbdbdb; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; + } + .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; + } + .navbar-dropdown a.navbar-item { + padding-right: 3rem; + } + .navbar-dropdown a.navbar-item:focus, .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; + } + .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #3273dc; + } + .navbar.is-spaced .navbar-dropdown, .navbar-dropdown.is-boxed { + border-radius: 6px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + -webkit-transform: translateY(-5px); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, -webkit-transform; + transition-property: opacity, transform; + transition-property: opacity, transform, -webkit-transform; + } + .navbar-dropdown.is-right { + left: auto; + right: 0; + } + .navbar-divider { + display: block; + } + .navbar > .container .navbar-brand, + .container > .navbar .navbar-brand { + margin-left: -.75rem; + } + .navbar > .container .navbar-menu, + .container > .navbar .navbar-menu { + margin-right: -.75rem; + } + .navbar.is-fixed-bottom-desktop, .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; + } + .navbar.is-fixed-bottom-desktop { + bottom: 0; + } + .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); + } + .navbar.is-fixed-top-desktop { + top: 0; + } + html.has-navbar-fixed-top-desktop, + body.has-navbar-fixed-top-desktop { + padding-top: 3.25rem; + } + html.has-navbar-fixed-bottom-desktop, + body.has-navbar-fixed-bottom-desktop { + padding-bottom: 3.25rem; + } + html.has-spaced-navbar-fixed-top, + body.has-spaced-navbar-fixed-top { + padding-top: 5.25rem; + } + html.has-spaced-navbar-fixed-bottom, + body.has-spaced-navbar-fixed-bottom { + padding-bottom: 5.25rem; + } + a.navbar-item.is-active, + .navbar-link.is-active { + color: #0a0a0a; + } + a.navbar-item.is-active:not(:focus):not(:hover), + .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; + } + .navbar-item.has-dropdown:focus .navbar-link, .navbar-item.has-dropdown:hover .navbar-link, .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #fafafa; + } +} + +.hero.is-fullheight-with-navbar { + min-height: calc(100vh - 3.25rem); +} + +.pagination { + font-size: 1rem; + margin: -0.25rem; +} + +.pagination.is-small { + font-size: 0.75rem; +} + +.pagination.is-medium { + font-size: 1.25rem; +} + +.pagination.is-large { + font-size: 1.5rem; +} + +.pagination.is-rounded .pagination-previous, +.pagination.is-rounded .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; +} + +.pagination.is-rounded .pagination-link { + border-radius: 290486px; +} + +.pagination, +.pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; +} + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; +} + +.pagination-previous, +.pagination-next, +.pagination-link { + border-color: #dbdbdb; + color: #363636; + min-width: 2.25em; +} + +.pagination-previous:hover, +.pagination-next:hover, +.pagination-link:hover { + border-color: #b5b5b5; + color: #363636; +} + +.pagination-previous:focus, +.pagination-next:focus, +.pagination-link:focus { + border-color: #3273dc; +} + +.pagination-previous:active, +.pagination-next:active, +.pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); +} + +.pagination-previous[disabled], +.pagination-next[disabled], +.pagination-link[disabled] { + background-color: #dbdbdb; + border-color: #dbdbdb; + box-shadow: none; + color: #7a7a7a; + opacity: 0.5; +} + +.pagination-previous, +.pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; +} + +.pagination-link.is-current { + background-color: #3273dc; + border-color: #3273dc; + color: #fff; +} + +.pagination-ellipsis { + color: #b5b5b5; + pointer-events: none; +} + +.pagination-list { + flex-wrap: wrap; +} + +@media screen and (max-width: 768px) { + .pagination { + flex-wrap: wrap; + } + .pagination-previous, + .pagination-next { + flex-grow: 1; + flex-shrink: 1; + } + .pagination-list li { + flex-grow: 1; + flex-shrink: 1; + } +} + +@media screen and (min-width: 769px), print { + .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; + } + .pagination-previous { + order: 2; + } + .pagination-next { + order: 3; + } + .pagination { + justify-content: space-between; + } + .pagination.is-centered .pagination-previous { + order: 1; + } + .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; + } + .pagination.is-centered .pagination-next { + order: 3; + } + .pagination.is-right .pagination-previous { + order: 1; + } + .pagination.is-right .pagination-next { + order: 2; + } + .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; + } +} + +.panel { + font-size: 1rem; +} + +.panel:not(:last-child) { + margin-bottom: 1.5rem; +} + +.panel-heading, +.panel-tabs, +.panel-block { + border-bottom: 1px solid #dbdbdb; + border-left: 1px solid #dbdbdb; + border-right: 1px solid #dbdbdb; +} + +.panel-heading:first-child, +.panel-tabs:first-child, +.panel-block:first-child { + border-top: 1px solid #dbdbdb; +} + +.panel-heading { + background-color: whitesmoke; + border-radius: 4px 4px 0 0; + color: #363636; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; +} + +.panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; +} + +.panel-tabs a { + border-bottom: 1px solid #dbdbdb; + margin-bottom: -1px; + padding: 0.5em; +} + +.panel-tabs a.is-active { + border-bottom-color: #4a4a4a; + color: #363636; +} + +.panel-list a { + color: #4a4a4a; +} + +.panel-list a:hover { + color: #3273dc; +} + +.panel-block { + align-items: center; + color: #363636; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; +} + +.panel-block input[type="checkbox"] { + margin-right: 0.75em; +} + +.panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; +} + +.panel-block.is-wrapped { + flex-wrap: wrap; +} + +.panel-block.is-active { + border-left-color: #3273dc; + color: #363636; +} + +.panel-block.is-active .panel-icon { + color: #3273dc; +} + +a.panel-block, +label.panel-block { + cursor: pointer; +} + +a.panel-block:hover, +label.panel-block:hover { + background-color: whitesmoke; +} + +.panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: #7a7a7a; + margin-right: 0.75em; +} + +.panel-icon .fa { + font-size: inherit; + line-height: inherit; +} + +.tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 1rem; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; +} + +.tabs a { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #4a4a4a; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; +} + +.tabs a:hover { + border-bottom-color: #363636; + color: #363636; +} + +.tabs li { + display: block; +} + +.tabs li.is-active a { + border-bottom-color: #3273dc; + color: #3273dc; +} + +.tabs ul { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; +} + +.tabs ul.is-left { + padding-right: 0.75em; +} + +.tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; +} + +.tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; +} + +.tabs .icon:first-child { + margin-right: 0.5em; +} + +.tabs .icon:last-child { + margin-left: 0.5em; +} + +.tabs.is-centered ul { + justify-content: center; +} + +.tabs.is-right ul { + justify-content: flex-end; +} + +.tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 4px 4px 0 0; +} + +.tabs.is-boxed a:hover { + background-color: whitesmoke; + border-bottom-color: #dbdbdb; +} + +.tabs.is-boxed li.is-active a { + background-color: white; + border-color: #dbdbdb; + border-bottom-color: transparent !important; +} + +.tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; +} + +.tabs.is-toggle a { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; +} + +.tabs.is-toggle a:hover { + background-color: whitesmoke; + border-color: #b5b5b5; + z-index: 2; +} + +.tabs.is-toggle li + li { + margin-left: -1px; +} + +.tabs.is-toggle li:first-child a { + border-radius: 4px 0 0 4px; +} + +.tabs.is-toggle li:last-child a { + border-radius: 0 4px 4px 0; +} + +.tabs.is-toggle li.is-active a { + background-color: #3273dc; + border-color: #3273dc; + color: #fff; + z-index: 1; +} + +.tabs.is-toggle ul { + border-bottom: none; +} + +.tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; +} + +.tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; +} + +.tabs.is-small { + font-size: 0.75rem; +} + +.tabs.is-medium { + font-size: 1.25rem; +} + +.tabs.is-large { + font-size: 1.5rem; +} + +.column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; +} + +.columns.is-mobile > .column.is-narrow { + flex: none; +} + +.columns.is-mobile > .column.is-full { + flex: none; + width: 100%; +} + +.columns.is-mobile > .column.is-three-quarters { + flex: none; + width: 75%; +} + +.columns.is-mobile > .column.is-two-thirds { + flex: none; + width: 66.6666%; +} + +.columns.is-mobile > .column.is-half { + flex: none; + width: 50%; +} + +.columns.is-mobile > .column.is-one-third { + flex: none; + width: 33.3333%; +} + +.columns.is-mobile > .column.is-one-quarter { + flex: none; + width: 25%; +} + +.columns.is-mobile > .column.is-one-fifth { + flex: none; + width: 20%; +} + +.columns.is-mobile > .column.is-two-fifths { + flex: none; + width: 40%; +} + +.columns.is-mobile > .column.is-three-fifths { + flex: none; + width: 60%; +} + +.columns.is-mobile > .column.is-four-fifths { + flex: none; + width: 80%; +} + +.columns.is-mobile > .column.is-offset-three-quarters { + margin-left: 75%; +} + +.columns.is-mobile > .column.is-offset-two-thirds { + margin-left: 66.6666%; +} + +.columns.is-mobile > .column.is-offset-half { + margin-left: 50%; +} + +.columns.is-mobile > .column.is-offset-one-third { + margin-left: 33.3333%; +} + +.columns.is-mobile > .column.is-offset-one-quarter { + margin-left: 25%; +} + +.columns.is-mobile > .column.is-offset-one-fifth { + margin-left: 20%; +} + +.columns.is-mobile > .column.is-offset-two-fifths { + margin-left: 40%; +} + +.columns.is-mobile > .column.is-offset-three-fifths { + margin-left: 60%; +} + +.columns.is-mobile > .column.is-offset-four-fifths { + margin-left: 80%; +} + +.columns.is-mobile > .column.is-0 { + flex: none; + width: 0%; +} + +.columns.is-mobile > .column.is-offset-0 { + margin-left: 0%; +} + +.columns.is-mobile > .column.is-1 { + flex: none; + width: 8.33333%; +} + +.columns.is-mobile > .column.is-offset-1 { + margin-left: 8.33333%; +} + +.columns.is-mobile > .column.is-2 { + flex: none; + width: 16.66667%; +} + +.columns.is-mobile > .column.is-offset-2 { + margin-left: 16.66667%; +} + +.columns.is-mobile > .column.is-3 { + flex: none; + width: 25%; +} + +.columns.is-mobile > .column.is-offset-3 { + margin-left: 25%; +} + +.columns.is-mobile > .column.is-4 { + flex: none; + width: 33.33333%; +} + +.columns.is-mobile > .column.is-offset-4 { + margin-left: 33.33333%; +} + +.columns.is-mobile > .column.is-5 { + flex: none; + width: 41.66667%; +} + +.columns.is-mobile > .column.is-offset-5 { + margin-left: 41.66667%; +} + +.columns.is-mobile > .column.is-6 { + flex: none; + width: 50%; +} + +.columns.is-mobile > .column.is-offset-6 { + margin-left: 50%; +} + +.columns.is-mobile > .column.is-7 { + flex: none; + width: 58.33333%; +} + +.columns.is-mobile > .column.is-offset-7 { + margin-left: 58.33333%; +} + +.columns.is-mobile > .column.is-8 { + flex: none; + width: 66.66667%; +} + +.columns.is-mobile > .column.is-offset-8 { + margin-left: 66.66667%; +} + +.columns.is-mobile > .column.is-9 { + flex: none; + width: 75%; +} + +.columns.is-mobile > .column.is-offset-9 { + margin-left: 75%; +} + +.columns.is-mobile > .column.is-10 { + flex: none; + width: 83.33333%; +} + +.columns.is-mobile > .column.is-offset-10 { + margin-left: 83.33333%; +} + +.columns.is-mobile > .column.is-11 { + flex: none; + width: 91.66667%; +} + +.columns.is-mobile > .column.is-offset-11 { + margin-left: 91.66667%; +} + +.columns.is-mobile > .column.is-12 { + flex: none; + width: 100%; +} + +.columns.is-mobile > .column.is-offset-12 { + margin-left: 100%; +} + +@media screen and (max-width: 768px) { + .column.is-narrow-mobile { + flex: none; + } + .column.is-full-mobile { + flex: none; + width: 100%; + } + .column.is-three-quarters-mobile { + flex: none; + width: 75%; + } + .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; + } + .column.is-half-mobile { + flex: none; + width: 50%; + } + .column.is-one-third-mobile { + flex: none; + width: 33.3333%; + } + .column.is-one-quarter-mobile { + flex: none; + width: 25%; + } + .column.is-one-fifth-mobile { + flex: none; + width: 20%; + } + .column.is-two-fifths-mobile { + flex: none; + width: 40%; + } + .column.is-three-fifths-mobile { + flex: none; + width: 60%; + } + .column.is-four-fifths-mobile { + flex: none; + width: 80%; + } + .column.is-offset-three-quarters-mobile { + margin-left: 75%; + } + .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; + } + .column.is-offset-half-mobile { + margin-left: 50%; + } + .column.is-offset-one-third-mobile { + margin-left: 33.3333%; + } + .column.is-offset-one-quarter-mobile { + margin-left: 25%; + } + .column.is-offset-one-fifth-mobile { + margin-left: 20%; + } + .column.is-offset-two-fifths-mobile { + margin-left: 40%; + } + .column.is-offset-three-fifths-mobile { + margin-left: 60%; + } + .column.is-offset-four-fifths-mobile { + margin-left: 80%; + } + .column.is-0-mobile { + flex: none; + width: 0%; + } + .column.is-offset-0-mobile { + margin-left: 0%; + } + .column.is-1-mobile { + flex: none; + width: 8.33333%; + } + .column.is-offset-1-mobile { + margin-left: 8.33333%; + } + .column.is-2-mobile { + flex: none; + width: 16.66667%; + } + .column.is-offset-2-mobile { + margin-left: 16.66667%; + } + .column.is-3-mobile { + flex: none; + width: 25%; + } + .column.is-offset-3-mobile { + margin-left: 25%; + } + .column.is-4-mobile { + flex: none; + width: 33.33333%; + } + .column.is-offset-4-mobile { + margin-left: 33.33333%; + } + .column.is-5-mobile { + flex: none; + width: 41.66667%; + } + .column.is-offset-5-mobile { + margin-left: 41.66667%; + } + .column.is-6-mobile { + flex: none; + width: 50%; + } + .column.is-offset-6-mobile { + margin-left: 50%; + } + .column.is-7-mobile { + flex: none; + width: 58.33333%; + } + .column.is-offset-7-mobile { + margin-left: 58.33333%; + } + .column.is-8-mobile { + flex: none; + width: 66.66667%; + } + .column.is-offset-8-mobile { + margin-left: 66.66667%; + } + .column.is-9-mobile { + flex: none; + width: 75%; + } + .column.is-offset-9-mobile { + margin-left: 75%; + } + .column.is-10-mobile { + flex: none; + width: 83.33333%; + } + .column.is-offset-10-mobile { + margin-left: 83.33333%; + } + .column.is-11-mobile { + flex: none; + width: 91.66667%; + } + .column.is-offset-11-mobile { + margin-left: 91.66667%; + } + .column.is-12-mobile { + flex: none; + width: 100%; + } + .column.is-offset-12-mobile { + margin-left: 100%; + } +} + +@media screen and (min-width: 769px), print { + .column.is-narrow, .column.is-narrow-tablet { + flex: none; + } + .column.is-full, .column.is-full-tablet { + flex: none; + width: 100%; + } + .column.is-three-quarters, .column.is-three-quarters-tablet { + flex: none; + width: 75%; + } + .column.is-two-thirds, .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; + } + .column.is-half, .column.is-half-tablet { + flex: none; + width: 50%; + } + .column.is-one-third, .column.is-one-third-tablet { + flex: none; + width: 33.3333%; + } + .column.is-one-quarter, .column.is-one-quarter-tablet { + flex: none; + width: 25%; + } + .column.is-one-fifth, .column.is-one-fifth-tablet { + flex: none; + width: 20%; + } + .column.is-two-fifths, .column.is-two-fifths-tablet { + flex: none; + width: 40%; + } + .column.is-three-fifths, .column.is-three-fifths-tablet { + flex: none; + width: 60%; + } + .column.is-four-fifths, .column.is-four-fifths-tablet { + flex: none; + width: 80%; + } + .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet { + margin-left: 75%; + } + .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; + } + .column.is-offset-half, .column.is-offset-half-tablet { + margin-left: 50%; + } + .column.is-offset-one-third, .column.is-offset-one-third-tablet { + margin-left: 33.3333%; + } + .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet { + margin-left: 25%; + } + .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet { + margin-left: 20%; + } + .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet { + margin-left: 40%; + } + .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet { + margin-left: 60%; + } + .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet { + margin-left: 80%; + } + .column.is-0, .column.is-0-tablet { + flex: none; + width: 0%; + } + .column.is-offset-0, .column.is-offset-0-tablet { + margin-left: 0%; + } + .column.is-1, .column.is-1-tablet { + flex: none; + width: 8.33333%; + } + .column.is-offset-1, .column.is-offset-1-tablet { + margin-left: 8.33333%; + } + .column.is-2, .column.is-2-tablet { + flex: none; + width: 16.66667%; + } + .column.is-offset-2, .column.is-offset-2-tablet { + margin-left: 16.66667%; + } + .column.is-3, .column.is-3-tablet { + flex: none; + width: 25%; + } + .column.is-offset-3, .column.is-offset-3-tablet { + margin-left: 25%; + } + .column.is-4, .column.is-4-tablet { + flex: none; + width: 33.33333%; + } + .column.is-offset-4, .column.is-offset-4-tablet { + margin-left: 33.33333%; + } + .column.is-5, .column.is-5-tablet { + flex: none; + width: 41.66667%; + } + .column.is-offset-5, .column.is-offset-5-tablet { + margin-left: 41.66667%; + } + .column.is-6, .column.is-6-tablet { + flex: none; + width: 50%; + } + .column.is-offset-6, .column.is-offset-6-tablet { + margin-left: 50%; + } + .column.is-7, .column.is-7-tablet { + flex: none; + width: 58.33333%; + } + .column.is-offset-7, .column.is-offset-7-tablet { + margin-left: 58.33333%; + } + .column.is-8, .column.is-8-tablet { + flex: none; + width: 66.66667%; + } + .column.is-offset-8, .column.is-offset-8-tablet { + margin-left: 66.66667%; + } + .column.is-9, .column.is-9-tablet { + flex: none; + width: 75%; + } + .column.is-offset-9, .column.is-offset-9-tablet { + margin-left: 75%; + } + .column.is-10, .column.is-10-tablet { + flex: none; + width: 83.33333%; + } + .column.is-offset-10, .column.is-offset-10-tablet { + margin-left: 83.33333%; + } + .column.is-11, .column.is-11-tablet { + flex: none; + width: 91.66667%; + } + .column.is-offset-11, .column.is-offset-11-tablet { + margin-left: 91.66667%; + } + .column.is-12, .column.is-12-tablet { + flex: none; + width: 100%; + } + .column.is-offset-12, .column.is-offset-12-tablet { + margin-left: 100%; + } +} + +@media screen and (max-width: 1023px) { + .column.is-narrow-touch { + flex: none; + } + .column.is-full-touch { + flex: none; + width: 100%; + } + .column.is-three-quarters-touch { + flex: none; + width: 75%; + } + .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; + } + .column.is-half-touch { + flex: none; + width: 50%; + } + .column.is-one-third-touch { + flex: none; + width: 33.3333%; + } + .column.is-one-quarter-touch { + flex: none; + width: 25%; + } + .column.is-one-fifth-touch { + flex: none; + width: 20%; + } + .column.is-two-fifths-touch { + flex: none; + width: 40%; + } + .column.is-three-fifths-touch { + flex: none; + width: 60%; + } + .column.is-four-fifths-touch { + flex: none; + width: 80%; + } + .column.is-offset-three-quarters-touch { + margin-left: 75%; + } + .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; + } + .column.is-offset-half-touch { + margin-left: 50%; + } + .column.is-offset-one-third-touch { + margin-left: 33.3333%; + } + .column.is-offset-one-quarter-touch { + margin-left: 25%; + } + .column.is-offset-one-fifth-touch { + margin-left: 20%; + } + .column.is-offset-two-fifths-touch { + margin-left: 40%; + } + .column.is-offset-three-fifths-touch { + margin-left: 60%; + } + .column.is-offset-four-fifths-touch { + margin-left: 80%; + } + .column.is-0-touch { + flex: none; + width: 0%; + } + .column.is-offset-0-touch { + margin-left: 0%; + } + .column.is-1-touch { + flex: none; + width: 8.33333%; + } + .column.is-offset-1-touch { + margin-left: 8.33333%; + } + .column.is-2-touch { + flex: none; + width: 16.66667%; + } + .column.is-offset-2-touch { + margin-left: 16.66667%; + } + .column.is-3-touch { + flex: none; + width: 25%; + } + .column.is-offset-3-touch { + margin-left: 25%; + } + .column.is-4-touch { + flex: none; + width: 33.33333%; + } + .column.is-offset-4-touch { + margin-left: 33.33333%; + } + .column.is-5-touch { + flex: none; + width: 41.66667%; + } + .column.is-offset-5-touch { + margin-left: 41.66667%; + } + .column.is-6-touch { + flex: none; + width: 50%; + } + .column.is-offset-6-touch { + margin-left: 50%; + } + .column.is-7-touch { + flex: none; + width: 58.33333%; + } + .column.is-offset-7-touch { + margin-left: 58.33333%; + } + .column.is-8-touch { + flex: none; + width: 66.66667%; + } + .column.is-offset-8-touch { + margin-left: 66.66667%; + } + .column.is-9-touch { + flex: none; + width: 75%; + } + .column.is-offset-9-touch { + margin-left: 75%; + } + .column.is-10-touch { + flex: none; + width: 83.33333%; + } + .column.is-offset-10-touch { + margin-left: 83.33333%; + } + .column.is-11-touch { + flex: none; + width: 91.66667%; + } + .column.is-offset-11-touch { + margin-left: 91.66667%; + } + .column.is-12-touch { + flex: none; + width: 100%; + } + .column.is-offset-12-touch { + margin-left: 100%; + } +} + +@media screen and (min-width: 1024px) { + .column.is-narrow-desktop { + flex: none; + } + .column.is-full-desktop { + flex: none; + width: 100%; + } + .column.is-three-quarters-desktop { + flex: none; + width: 75%; + } + .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; + } + .column.is-half-desktop { + flex: none; + width: 50%; + } + .column.is-one-third-desktop { + flex: none; + width: 33.3333%; + } + .column.is-one-quarter-desktop { + flex: none; + width: 25%; + } + .column.is-one-fifth-desktop { + flex: none; + width: 20%; + } + .column.is-two-fifths-desktop { + flex: none; + width: 40%; + } + .column.is-three-fifths-desktop { + flex: none; + width: 60%; + } + .column.is-four-fifths-desktop { + flex: none; + width: 80%; + } + .column.is-offset-three-quarters-desktop { + margin-left: 75%; + } + .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; + } + .column.is-offset-half-desktop { + margin-left: 50%; + } + .column.is-offset-one-third-desktop { + margin-left: 33.3333%; + } + .column.is-offset-one-quarter-desktop { + margin-left: 25%; + } + .column.is-offset-one-fifth-desktop { + margin-left: 20%; + } + .column.is-offset-two-fifths-desktop { + margin-left: 40%; + } + .column.is-offset-three-fifths-desktop { + margin-left: 60%; + } + .column.is-offset-four-fifths-desktop { + margin-left: 80%; + } + .column.is-0-desktop { + flex: none; + width: 0%; + } + .column.is-offset-0-desktop { + margin-left: 0%; + } + .column.is-1-desktop { + flex: none; + width: 8.33333%; + } + .column.is-offset-1-desktop { + margin-left: 8.33333%; + } + .column.is-2-desktop { + flex: none; + width: 16.66667%; + } + .column.is-offset-2-desktop { + margin-left: 16.66667%; + } + .column.is-3-desktop { + flex: none; + width: 25%; + } + .column.is-offset-3-desktop { + margin-left: 25%; + } + .column.is-4-desktop { + flex: none; + width: 33.33333%; + } + .column.is-offset-4-desktop { + margin-left: 33.33333%; + } + .column.is-5-desktop { + flex: none; + width: 41.66667%; + } + .column.is-offset-5-desktop { + margin-left: 41.66667%; + } + .column.is-6-desktop { + flex: none; + width: 50%; + } + .column.is-offset-6-desktop { + margin-left: 50%; + } + .column.is-7-desktop { + flex: none; + width: 58.33333%; + } + .column.is-offset-7-desktop { + margin-left: 58.33333%; + } + .column.is-8-desktop { + flex: none; + width: 66.66667%; + } + .column.is-offset-8-desktop { + margin-left: 66.66667%; + } + .column.is-9-desktop { + flex: none; + width: 75%; + } + .column.is-offset-9-desktop { + margin-left: 75%; + } + .column.is-10-desktop { + flex: none; + width: 83.33333%; + } + .column.is-offset-10-desktop { + margin-left: 83.33333%; + } + .column.is-11-desktop { + flex: none; + width: 91.66667%; + } + .column.is-offset-11-desktop { + margin-left: 91.66667%; + } + .column.is-12-desktop { + flex: none; + width: 100%; + } + .column.is-offset-12-desktop { + margin-left: 100%; + } +} + +@media screen and (min-width: 1216px) { + .column.is-narrow-widescreen { + flex: none; + } + .column.is-full-widescreen { + flex: none; + width: 100%; + } + .column.is-three-quarters-widescreen { + flex: none; + width: 75%; + } + .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; + } + .column.is-half-widescreen { + flex: none; + width: 50%; + } + .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; + } + .column.is-one-quarter-widescreen { + flex: none; + width: 25%; + } + .column.is-one-fifth-widescreen { + flex: none; + width: 20%; + } + .column.is-two-fifths-widescreen { + flex: none; + width: 40%; + } + .column.is-three-fifths-widescreen { + flex: none; + width: 60%; + } + .column.is-four-fifths-widescreen { + flex: none; + width: 80%; + } + .column.is-offset-three-quarters-widescreen { + margin-left: 75%; + } + .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; + } + .column.is-offset-half-widescreen { + margin-left: 50%; + } + .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; + } + .column.is-offset-one-quarter-widescreen { + margin-left: 25%; + } + .column.is-offset-one-fifth-widescreen { + margin-left: 20%; + } + .column.is-offset-two-fifths-widescreen { + margin-left: 40%; + } + .column.is-offset-three-fifths-widescreen { + margin-left: 60%; + } + .column.is-offset-four-fifths-widescreen { + margin-left: 80%; + } + .column.is-0-widescreen { + flex: none; + width: 0%; + } + .column.is-offset-0-widescreen { + margin-left: 0%; + } + .column.is-1-widescreen { + flex: none; + width: 8.33333%; + } + .column.is-offset-1-widescreen { + margin-left: 8.33333%; + } + .column.is-2-widescreen { + flex: none; + width: 16.66667%; + } + .column.is-offset-2-widescreen { + margin-left: 16.66667%; + } + .column.is-3-widescreen { + flex: none; + width: 25%; + } + .column.is-offset-3-widescreen { + margin-left: 25%; + } + .column.is-4-widescreen { + flex: none; + width: 33.33333%; + } + .column.is-offset-4-widescreen { + margin-left: 33.33333%; + } + .column.is-5-widescreen { + flex: none; + width: 41.66667%; + } + .column.is-offset-5-widescreen { + margin-left: 41.66667%; + } + .column.is-6-widescreen { + flex: none; + width: 50%; + } + .column.is-offset-6-widescreen { + margin-left: 50%; + } + .column.is-7-widescreen { + flex: none; + width: 58.33333%; + } + .column.is-offset-7-widescreen { + margin-left: 58.33333%; + } + .column.is-8-widescreen { + flex: none; + width: 66.66667%; + } + .column.is-offset-8-widescreen { + margin-left: 66.66667%; + } + .column.is-9-widescreen { + flex: none; + width: 75%; + } + .column.is-offset-9-widescreen { + margin-left: 75%; + } + .column.is-10-widescreen { + flex: none; + width: 83.33333%; + } + .column.is-offset-10-widescreen { + margin-left: 83.33333%; + } + .column.is-11-widescreen { + flex: none; + width: 91.66667%; + } + .column.is-offset-11-widescreen { + margin-left: 91.66667%; + } + .column.is-12-widescreen { + flex: none; + width: 100%; + } + .column.is-offset-12-widescreen { + margin-left: 100%; + } +} + +@media screen and (min-width: 1408px) { + .column.is-narrow-fullhd { + flex: none; + } + .column.is-full-fullhd { + flex: none; + width: 100%; + } + .column.is-three-quarters-fullhd { + flex: none; + width: 75%; + } + .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; + } + .column.is-half-fullhd { + flex: none; + width: 50%; + } + .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; + } + .column.is-one-quarter-fullhd { + flex: none; + width: 25%; + } + .column.is-one-fifth-fullhd { + flex: none; + width: 20%; + } + .column.is-two-fifths-fullhd { + flex: none; + width: 40%; + } + .column.is-three-fifths-fullhd { + flex: none; + width: 60%; + } + .column.is-four-fifths-fullhd { + flex: none; + width: 80%; + } + .column.is-offset-three-quarters-fullhd { + margin-left: 75%; + } + .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; + } + .column.is-offset-half-fullhd { + margin-left: 50%; + } + .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; + } + .column.is-offset-one-quarter-fullhd { + margin-left: 25%; + } + .column.is-offset-one-fifth-fullhd { + margin-left: 20%; + } + .column.is-offset-two-fifths-fullhd { + margin-left: 40%; + } + .column.is-offset-three-fifths-fullhd { + margin-left: 60%; + } + .column.is-offset-four-fifths-fullhd { + margin-left: 80%; + } + .column.is-0-fullhd { + flex: none; + width: 0%; + } + .column.is-offset-0-fullhd { + margin-left: 0%; + } + .column.is-1-fullhd { + flex: none; + width: 8.33333%; + } + .column.is-offset-1-fullhd { + margin-left: 8.33333%; + } + .column.is-2-fullhd { + flex: none; + width: 16.66667%; + } + .column.is-offset-2-fullhd { + margin-left: 16.66667%; + } + .column.is-3-fullhd { + flex: none; + width: 25%; + } + .column.is-offset-3-fullhd { + margin-left: 25%; + } + .column.is-4-fullhd { + flex: none; + width: 33.33333%; + } + .column.is-offset-4-fullhd { + margin-left: 33.33333%; + } + .column.is-5-fullhd { + flex: none; + width: 41.66667%; + } + .column.is-offset-5-fullhd { + margin-left: 41.66667%; + } + .column.is-6-fullhd { + flex: none; + width: 50%; + } + .column.is-offset-6-fullhd { + margin-left: 50%; + } + .column.is-7-fullhd { + flex: none; + width: 58.33333%; + } + .column.is-offset-7-fullhd { + margin-left: 58.33333%; + } + .column.is-8-fullhd { + flex: none; + width: 66.66667%; + } + .column.is-offset-8-fullhd { + margin-left: 66.66667%; + } + .column.is-9-fullhd { + flex: none; + width: 75%; + } + .column.is-offset-9-fullhd { + margin-left: 75%; + } + .column.is-10-fullhd { + flex: none; + width: 83.33333%; + } + .column.is-offset-10-fullhd { + margin-left: 83.33333%; + } + .column.is-11-fullhd { + flex: none; + width: 91.66667%; + } + .column.is-offset-11-fullhd { + margin-left: 91.66667%; + } + .column.is-12-fullhd { + flex: none; + width: 100%; + } + .column.is-offset-12-fullhd { + margin-left: 100%; + } +} + +.columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; +} + +.columns:last-child { + margin-bottom: -0.75rem; +} + +.columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); +} + +.columns.is-centered { + justify-content: center; +} + +.columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; +} + +.columns.is-gapless > .column { + margin: 0; + padding: 0 !important; +} + +.columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; +} + +.columns.is-gapless:last-child { + margin-bottom: 0; +} + +.columns.is-mobile { + display: flex; +} + +.columns.is-multiline { + flex-wrap: wrap; +} + +.columns.is-vcentered { + align-items: center; +} + +@media screen and (min-width: 769px), print { + .columns:not(.is-desktop) { + display: flex; + } +} + +@media screen and (min-width: 1024px) { + .columns.is-desktop { + display: flex; + } +} + +.columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); +} + +.columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); +} + +.columns.is-variable.is-0 { + --columnGap: 0rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-0-mobile { + --columnGap: 0rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-0-tablet { + --columnGap: 0rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; + } +} + +@media screen and (max-width: 1023px) { + .columns.is-variable.is-0-touch { + --columnGap: 0rem; + } +} + +@media screen and (min-width: 1024px) { + .columns.is-variable.is-0-desktop { + --columnGap: 0rem; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; + } +} + +@media screen and (min-width: 1216px) { + .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; + } +} + +@media screen and (min-width: 1408px) { + .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; + } +} + +.columns.is-variable.is-1 { + --columnGap: 0.25rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; + } +} + +@media screen and (max-width: 1023px) { + .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; + } +} + +@media screen and (min-width: 1024px) { + .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; + } +} + +@media screen and (min-width: 1216px) { + .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; + } +} + +@media screen and (min-width: 1408px) { + .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; + } +} + +.columns.is-variable.is-2 { + --columnGap: 0.5rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; + } +} + +@media screen and (max-width: 1023px) { + .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; + } +} + +@media screen and (min-width: 1024px) { + .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; + } +} + +@media screen and (min-width: 1216px) { + .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; + } +} + +@media screen and (min-width: 1408px) { + .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; + } +} + +.columns.is-variable.is-3 { + --columnGap: 0.75rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; + } +} + +@media screen and (max-width: 1023px) { + .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; + } +} + +@media screen and (min-width: 1024px) { + .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; + } +} + +@media screen and (min-width: 1216px) { + .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; + } +} + +@media screen and (min-width: 1408px) { + .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; + } +} + +.columns.is-variable.is-4 { + --columnGap: 1rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-4-mobile { + --columnGap: 1rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-4-tablet { + --columnGap: 1rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; + } +} + +@media screen and (max-width: 1023px) { + .columns.is-variable.is-4-touch { + --columnGap: 1rem; + } +} + +@media screen and (min-width: 1024px) { + .columns.is-variable.is-4-desktop { + --columnGap: 1rem; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; + } +} + +@media screen and (min-width: 1216px) { + .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; + } +} + +@media screen and (min-width: 1408px) { + .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; + } +} + +.columns.is-variable.is-5 { + --columnGap: 1.25rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; + } +} + +@media screen and (max-width: 1023px) { + .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; + } +} + +@media screen and (min-width: 1024px) { + .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; + } +} + +@media screen and (min-width: 1216px) { + .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; + } +} + +@media screen and (min-width: 1408px) { + .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; + } +} + +.columns.is-variable.is-6 { + --columnGap: 1.5rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; + } +} + +@media screen and (max-width: 1023px) { + .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; + } +} + +@media screen and (min-width: 1024px) { + .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; + } +} + +@media screen and (min-width: 1216px) { + .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; + } +} + +@media screen and (min-width: 1408px) { + .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; + } +} + +.columns.is-variable.is-7 { + --columnGap: 1.75rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; + } +} + +@media screen and (max-width: 1023px) { + .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; + } +} + +@media screen and (min-width: 1024px) { + .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; + } +} + +@media screen and (min-width: 1216px) { + .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; + } +} + +@media screen and (min-width: 1408px) { + .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; + } +} + +.columns.is-variable.is-8 { + --columnGap: 2rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-8-mobile { + --columnGap: 2rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-8-tablet { + --columnGap: 2rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; + } +} + +@media screen and (max-width: 1023px) { + .columns.is-variable.is-8-touch { + --columnGap: 2rem; + } +} + +@media screen and (min-width: 1024px) { + .columns.is-variable.is-8-desktop { + --columnGap: 2rem; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; + } +} + +@media screen and (min-width: 1216px) { + .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; + } +} + +@media screen and (min-width: 1408px) { + .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; + } +} + +.tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: -webkit-min-content; + min-height: -moz-min-content; + min-height: min-content; +} + +.tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; +} + +.tile.is-ancestor:last-child { + margin-bottom: -0.75rem; +} + +.tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; +} + +.tile.is-child { + margin: 0 !important; +} + +.tile.is-parent { + padding: 0.75rem; +} + +.tile.is-vertical { + flex-direction: column; +} + +.tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; +} + +@media screen and (min-width: 769px), print { + .tile:not(.is-child) { + display: flex; + } + .tile.is-1 { + flex: none; + width: 8.33333%; + } + .tile.is-2 { + flex: none; + width: 16.66667%; + } + .tile.is-3 { + flex: none; + width: 25%; + } + .tile.is-4 { + flex: none; + width: 33.33333%; + } + .tile.is-5 { + flex: none; + width: 41.66667%; + } + .tile.is-6 { + flex: none; + width: 50%; + } + .tile.is-7 { + flex: none; + width: 58.33333%; + } + .tile.is-8 { + flex: none; + width: 66.66667%; + } + .tile.is-9 { + flex: none; + width: 75%; + } + .tile.is-10 { + flex: none; + width: 83.33333%; + } + .tile.is-11 { + flex: none; + width: 91.66667%; + } + .tile.is-12 { + flex: none; + width: 100%; + } +} + +.hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; +} + +.hero .navbar { + background: none; +} + +.hero .tabs ul { + border-bottom: none; +} + +.hero.is-white { + background-color: white; + color: #0a0a0a; +} + +.hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), +.hero.is-white strong { + color: inherit; +} + +.hero.is-white .title { + color: #0a0a0a; +} + +.hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); +} + +.hero.is-white .subtitle a:not(.button), +.hero.is-white .subtitle strong { + color: #0a0a0a; +} + +@media screen and (max-width: 1023px) { + .hero.is-white .navbar-menu { + background-color: white; + } +} + +.hero.is-white .navbar-item, +.hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); +} + +.hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active, +.hero.is-white .navbar-link:hover, +.hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; +} + +.hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; +} + +.hero.is-white .tabs a:hover { + opacity: 1; +} + +.hero.is-white .tabs li.is-active a { + opacity: 1; +} + +.hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; +} + +.hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; +} + +.hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); + } +} + +.hero.is-black { + background-color: #0a0a0a; + color: white; +} + +.hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), +.hero.is-black strong { + color: inherit; +} + +.hero.is-black .title { + color: white; +} + +.hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); +} + +.hero.is-black .subtitle a:not(.button), +.hero.is-black .subtitle strong { + color: white; +} + +@media screen and (max-width: 1023px) { + .hero.is-black .navbar-menu { + background-color: #0a0a0a; + } +} + +.hero.is-black .navbar-item, +.hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); +} + +.hero.is-black a.navbar-item:hover, .hero.is-black a.navbar-item.is-active, +.hero.is-black .navbar-link:hover, +.hero.is-black .navbar-link.is-active { + background-color: black; + color: white; +} + +.hero.is-black .tabs a { + color: white; + opacity: 0.9; +} + +.hero.is-black .tabs a:hover { + opacity: 1; +} + +.hero.is-black .tabs li.is-active a { + opacity: 1; +} + +.hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a { + color: white; +} + +.hero.is-black .tabs.is-boxed a:hover, .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-black .tabs.is-boxed li.is-active a, .hero.is-black .tabs.is-boxed li.is-active a:hover, .hero.is-black .tabs.is-toggle li.is-active a, .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; +} + +.hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); + } +} + +.hero.is-light { + background-color: whitesmoke; + color: #363636; +} + +.hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), +.hero.is-light strong { + color: inherit; +} + +.hero.is-light .title { + color: #363636; +} + +.hero.is-light .subtitle { + color: rgba(54, 54, 54, 0.9); +} + +.hero.is-light .subtitle a:not(.button), +.hero.is-light .subtitle strong { + color: #363636; +} + +@media screen and (max-width: 1023px) { + .hero.is-light .navbar-menu { + background-color: whitesmoke; + } +} + +.hero.is-light .navbar-item, +.hero.is-light .navbar-link { + color: rgba(54, 54, 54, 0.7); +} + +.hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active, +.hero.is-light .navbar-link:hover, +.hero.is-light .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; +} + +.hero.is-light .tabs a { + color: #363636; + opacity: 0.9; +} + +.hero.is-light .tabs a:hover { + opacity: 1; +} + +.hero.is-light .tabs li.is-active a { + opacity: 1; +} + +.hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a { + color: #363636; +} + +.hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #363636; + border-color: #363636; + color: whitesmoke; +} + +.hero.is-light.is-bold { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); + } +} + +.hero.is-dark { + background-color: #363636; + color: whitesmoke; +} + +.hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), +.hero.is-dark strong { + color: inherit; +} + +.hero.is-dark .title { + color: whitesmoke; +} + +.hero.is-dark .subtitle { + color: rgba(245, 245, 245, 0.9); +} + +.hero.is-dark .subtitle a:not(.button), +.hero.is-dark .subtitle strong { + color: whitesmoke; +} + +@media screen and (max-width: 1023px) { + .hero.is-dark .navbar-menu { + background-color: #363636; + } +} + +.hero.is-dark .navbar-item, +.hero.is-dark .navbar-link { + color: rgba(245, 245, 245, 0.7); +} + +.hero.is-dark a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, +.hero.is-dark .navbar-link:hover, +.hero.is-dark .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; +} + +.hero.is-dark .tabs a { + color: whitesmoke; + opacity: 0.9; +} + +.hero.is-dark .tabs a:hover { + opacity: 1; +} + +.hero.is-dark .tabs li.is-active a { + opacity: 1; +} + +.hero.is-dark .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a { + color: whitesmoke; +} + +.hero.is-dark .tabs.is-boxed a:hover, .hero.is-dark .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-dark .tabs.is-boxed li.is-active a, .hero.is-dark .tabs.is-boxed li.is-active a:hover, .hero.is-dark .tabs.is-toggle li.is-active a, .hero.is-dark .tabs.is-toggle li.is-active a:hover { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; +} + +.hero.is-dark.is-bold { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-dark.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); + } +} + +.hero.is-primary { + background-color: #00d1b2; + color: #fff; +} + +.hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), +.hero.is-primary strong { + color: inherit; +} + +.hero.is-primary .title { + color: #fff; +} + +.hero.is-primary .subtitle { + color: rgba(255, 255, 255, 0.9); +} + +.hero.is-primary .subtitle a:not(.button), +.hero.is-primary .subtitle strong { + color: #fff; +} + +@media screen and (max-width: 1023px) { + .hero.is-primary .navbar-menu { + background-color: #00d1b2; + } +} + +.hero.is-primary .navbar-item, +.hero.is-primary .navbar-link { + color: rgba(255, 255, 255, 0.7); +} + +.hero.is-primary a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, +.hero.is-primary .navbar-link:hover, +.hero.is-primary .navbar-link.is-active { + background-color: #00b89c; + color: #fff; +} + +.hero.is-primary .tabs a { + color: #fff; + opacity: 0.9; +} + +.hero.is-primary .tabs a:hover { + opacity: 1; +} + +.hero.is-primary .tabs li.is-active a { + opacity: 1; +} + +.hero.is-primary .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a { + color: #fff; +} + +.hero.is-primary .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-primary .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #00d1b2; +} + +.hero.is-primary.is-bold { + background-image: linear-gradient(141deg, #009e6c 0%, #00d1b2 71%, #00e7eb 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-primary.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #009e6c 0%, #00d1b2 71%, #00e7eb 100%); + } +} + +.hero.is-link { + background-color: #3273dc; + color: #fff; +} + +.hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), +.hero.is-link strong { + color: inherit; +} + +.hero.is-link .title { + color: #fff; +} + +.hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); +} + +.hero.is-link .subtitle a:not(.button), +.hero.is-link .subtitle strong { + color: #fff; +} + +@media screen and (max-width: 1023px) { + .hero.is-link .navbar-menu { + background-color: #3273dc; + } +} + +.hero.is-link .navbar-item, +.hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); +} + +.hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active, +.hero.is-link .navbar-link:hover, +.hero.is-link .navbar-link.is-active { + background-color: #2366d1; + color: #fff; +} + +.hero.is-link .tabs a { + color: #fff; + opacity: 0.9; +} + +.hero.is-link .tabs a:hover { + opacity: 1; +} + +.hero.is-link .tabs li.is-active a { + opacity: 1; +} + +.hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a { + color: #fff; +} + +.hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #3273dc; +} + +.hero.is-link.is-bold { + background-image: linear-gradient(141deg, #1577c6 0%, #3273dc 71%, #4366e5 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1577c6 0%, #3273dc 71%, #4366e5 100%); + } +} + +.hero.is-info { + background-color: #209cee; + color: #fff; +} + +.hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), +.hero.is-info strong { + color: inherit; +} + +.hero.is-info .title { + color: #fff; +} + +.hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); +} + +.hero.is-info .subtitle a:not(.button), +.hero.is-info .subtitle strong { + color: #fff; +} + +@media screen and (max-width: 1023px) { + .hero.is-info .navbar-menu { + background-color: #209cee; + } +} + +.hero.is-info .navbar-item, +.hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); +} + +.hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active, +.hero.is-info .navbar-link:hover, +.hero.is-info .navbar-link.is-active { + background-color: #118fe4; + color: #fff; +} + +.hero.is-info .tabs a { + color: #fff; + opacity: 0.9; +} + +.hero.is-info .tabs a:hover { + opacity: 1; +} + +.hero.is-info .tabs li.is-active a { + opacity: 1; +} + +.hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a { + color: #fff; +} + +.hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #209cee; +} + +.hero.is-info.is-bold { + background-image: linear-gradient(141deg, #04a6d7 0%, #209cee 71%, #3287f5 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #04a6d7 0%, #209cee 71%, #3287f5 100%); + } +} + +.hero.is-success { + background-color: #23d160; + color: #fff; +} + +.hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), +.hero.is-success strong { + color: inherit; +} + +.hero.is-success .title { + color: #fff; +} + +.hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); +} + +.hero.is-success .subtitle a:not(.button), +.hero.is-success .subtitle strong { + color: #fff; +} + +@media screen and (max-width: 1023px) { + .hero.is-success .navbar-menu { + background-color: #23d160; + } +} + +.hero.is-success .navbar-item, +.hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); +} + +.hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active, +.hero.is-success .navbar-link:hover, +.hero.is-success .navbar-link.is-active { + background-color: #20bc56; + color: #fff; +} + +.hero.is-success .tabs a { + color: #fff; + opacity: 0.9; +} + +.hero.is-success .tabs a:hover { + opacity: 1; +} + +.hero.is-success .tabs li.is-active a { + opacity: 1; +} + +.hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a { + color: #fff; +} + +.hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #23d160; +} + +.hero.is-success.is-bold { + background-image: linear-gradient(141deg, #12af2f 0%, #23d160 71%, #2ce28a 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #12af2f 0%, #23d160 71%, #2ce28a 100%); + } +} + +.hero.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); +} + +.hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), +.hero.is-warning strong { + color: inherit; +} + +.hero.is-warning .title { + color: rgba(0, 0, 0, 0.7); +} + +.hero.is-warning .subtitle { + color: rgba(0, 0, 0, 0.9); +} + +.hero.is-warning .subtitle a:not(.button), +.hero.is-warning .subtitle strong { + color: rgba(0, 0, 0, 0.7); +} + +@media screen and (max-width: 1023px) { + .hero.is-warning .navbar-menu { + background-color: #ffdd57; + } +} + +.hero.is-warning .navbar-item, +.hero.is-warning .navbar-link { + color: rgba(0, 0, 0, 0.7); +} + +.hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active, +.hero.is-warning .navbar-link:hover, +.hero.is-warning .navbar-link.is-active { + background-color: #ffd83d; + color: rgba(0, 0, 0, 0.7); +} + +.hero.is-warning .tabs a { + color: rgba(0, 0, 0, 0.7); + opacity: 0.9; +} + +.hero.is-warning .tabs a:hover { + opacity: 1; +} + +.hero.is-warning .tabs li.is-active a { + opacity: 1; +} + +.hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a { + color: rgba(0, 0, 0, 0.7); +} + +.hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: rgba(0, 0, 0, 0.7); + border-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; +} + +.hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #ffaf24 0%, #ffdd57 71%, #fffa70 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #ffaf24 0%, #ffdd57 71%, #fffa70 100%); + } +} + +.hero.is-danger { + background-color: #ff3860; + color: #fff; +} + +.hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), +.hero.is-danger strong { + color: inherit; +} + +.hero.is-danger .title { + color: #fff; +} + +.hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); +} + +.hero.is-danger .subtitle a:not(.button), +.hero.is-danger .subtitle strong { + color: #fff; +} + +@media screen and (max-width: 1023px) { + .hero.is-danger .navbar-menu { + background-color: #ff3860; + } +} + +.hero.is-danger .navbar-item, +.hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); +} + +.hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active, +.hero.is-danger .navbar-link:hover, +.hero.is-danger .navbar-link.is-active { + background-color: #ff1f4b; + color: #fff; +} + +.hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; +} + +.hero.is-danger .tabs a:hover { + opacity: 1; +} + +.hero.is-danger .tabs li.is-active a { + opacity: 1; +} + +.hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a { + color: #fff; +} + +.hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #ff3860; +} + +.hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #ff0561 0%, #ff3860 71%, #ff5257 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #ff0561 0%, #ff3860 71%, #ff5257 100%); + } +} + +.hero.is-small .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; +} + +@media screen and (min-width: 769px), print { + .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; + } +} + +@media screen and (min-width: 769px), print { + .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; + } +} + +.hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; +} + +.hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; +} + +.hero.is-halfheight { + min-height: 50vh; +} + +.hero.is-fullheight { + min-height: 100vh; +} + +.hero-video { + overflow: hidden; +} + +.hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + -webkit-transform: translate3d(-50%, -50%, 0); + transform: translate3d(-50%, -50%, 0); +} + +.hero-video.is-transparent { + opacity: 0.3; +} + +@media screen and (max-width: 768px) { + .hero-video { + display: none; + } +} + +.hero-buttons { + margin-top: 1.5rem; +} + +@media screen and (max-width: 768px) { + .hero-buttons .button { + display: flex; + } + .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; + } +} + +@media screen and (min-width: 769px), print { + .hero-buttons { + display: flex; + justify-content: center; + } + .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; + } +} + +.hero-head, +.hero-foot { + flex-grow: 0; + flex-shrink: 0; +} + +.hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; +} + +.section { + padding: 3rem 1.5rem; +} + +@media screen and (min-width: 1024px) { + .section.is-medium { + padding: 9rem 1.5rem; + } + .section.is-large { + padding: 18rem 1.5rem; + } +} + +.footer { + background-color: #fafafa; + padding: 3rem 1.5rem 6rem; +} +/*# sourceMappingURL=bulma.css.map */ \ No newline at end of file diff --git a/WebContent/assets/bulma.css.map b/WebContent/assets/bulma.css.map new file mode 100755 index 00000000..33bb0c77 --- /dev/null +++ b/WebContent/assets/bulma.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../bulma.sass","../sass/utilities/animations.sass","bulma.css","../sass/utilities/mixins.sass","../sass/utilities/initial-variables.sass","../sass/utilities/controls.sass","../sass/base/minireset.sass","../sass/base/generic.sass","../sass/base/helpers.sass","../sass/elements/box.sass","../sass/elements/button.sass","../sass/utilities/functions.sass","../sass/elements/container.sass","../sass/elements/content.sass","../sass/elements/icon.sass","../sass/elements/image.sass","../sass/elements/notification.sass","../sass/elements/progress.sass","../sass/elements/table.sass","../sass/elements/tag.sass","../sass/elements/title.sass","../sass/elements/other.sass","../sass/form/shared.sass","../sass/form/input-textarea.sass","../sass/form/checkbox-radio.sass","../sass/form/select.sass","../sass/form/file.sass","../sass/form/tools.sass","../sass/components/breadcrumb.sass","../sass/components/card.sass","../sass/components/dropdown.sass","../sass/components/level.sass","../sass/components/list.sass","../sass/components/media.sass","../sass/components/menu.sass","../sass/components/message.sass","../sass/components/modal.sass","../sass/components/navbar.sass","../sass/components/pagination.sass","../sass/components/panel.sass","../sass/components/tabs.sass","../sass/grid/columns.sass","../sass/grid/tiles.sass","../sass/layout/hero.sass","../sass/layout/section.sass","../sass/layout/footer.sass"],"names":[],"mappings":"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;IACE,4BAA2B;ENsd/B;EMvdE;IACE,0BAA2B;ENyd/B;EM1dE;IACE,4BAA2B;EN4d/B;EM7dE;IACE,6BAA2B;EN+d/B;EMheE;IACE,0BAA2B;ENke/B;EMneE;IACE,6BAA2B;ENqe/B;AACF;;AC5aE;EK3DE;IACE,0BAA2B;EN2e/B;EM5eE;IACE,4BAA2B;EN8e/B;EM/eE;IACE,0BAA2B;ENif/B;EMlfE;IACE,4BAA2B;ENof/B;EMrfE;IACE,6BAA2B;ENuf/B;EMxfE;IACE,0BAA2B;EN0f/B;EM3fE;IACE,6BAA2B;EN6f/B;AACF;;AC5bE;EKnEE;IACE,0BAA2B;ENmgB/B;EMpgBE;IACE,4BAA2B;ENsgB/B;EMvgBE;IACE,0BAA2B;ENygB/B;EM1gBE;IACE,4BAA2B;EN4gB/B;EM7gBE;IACE,6BAA2B;EN+gB/B;EMhhBE;IACE,0BAA2B;ENkhB/B;EMnhBE;IACE,6BAA2B;ENqhB/B;AACF;;AChdE;EKvEE;IACE,0BAA2B;EN2hB/B;EM5hBE;IACE,4BAA2B;EN8hB/B;EM/hBE;IACE,0BAA2B;ENiiB/B;EMliBE;IACE,4BAA2B;ENoiB/B;EMriBE;IACE,6BAA2B;ENuiB/B;EMxiBE;IACE,0BAA2B;EN0iB/B;EM3iBE;IACE,6BAA2B;EN6iB/B;AACF;;ACzdI;EKtFA;IACE,0BAA2B;ENmjB/B;EMpjBE;IACE,4BAA2B;ENsjB/B;EMvjBE;IACE,0BAA2B;ENyjB/B;EM1jBE;IACE,4BAA2B;EN4jB/B;EM7jBE;IACE,6BAA2B;EN+jB/B;EMhkBE;IACE,0BAA2B;ENkkB/B;EMnkBE;IACE,6BAA2B;ENqkB/B;AACF;;ACleI;EKrGA;IACE,0BAA2B;EN2kB/B;EM5kBE;IACE,4BAA2B;EN8kB/B;EM/kBE;IACE,0BAA2B;ENilB/B;EMllBE;IACE,4BAA2B;ENolB/B;EMrlBE;IACE,6BAA2B;ENulB/B;EMxlBE;IACE,0BAA2B;EN0lB/B;EM3lBE;IACE,6BAA2B;EN6lB/B;AACF;;AMrkBE;EACE,6BAAqC;ANwkBzC;;AMzkBE;EACE,8BAAqC;AN4kBzC;;AM7kBE;EACE,2BAAqC;ANglBzC;;AMjlBE;EACE,4BAAqC;ANolBzC;;ACxjBE;EKxBE;IACE,6BAAqC;ENolBzC;AACF;;AC1jBE;EKzBE;IACE,6BAAqC;ENulBzC;AACF;;AC5jBE;EK1BE;IACE,6BAAqC;EN0lBzC;AACF;;AC9jBE;EK3BE;IACE,6BAAqC;EN6lBzC;AACF;;AChkBE;EK5BE;IACE,6BAAqC;ENgmBzC;AACF;;ACjkBI;EK9BA;IACE,6BAAqC;ENmmBzC;AACF;;AC7jBI;EKrCA;IACE,6BAAqC;ENsmBzC;AACF;;AC9jBI;EKvCA;IACE,6BAAqC;ENymBzC;AACF;;AC1jBI;EK9CA;IACE,6BAAqC;EN4mBzC;AACF;;AC9mBE;EKxBE;IACE,8BAAqC;EN0oBzC;AACF;;AChnBE;EKzBE;IACE,8BAAqC;EN6oBzC;AACF;;AClnBE;EK1BE;IACE,8BAAqC;ENgpBzC;AACF;;ACpnBE;EK3BE;IACE,8BAAqC;ENmpBzC;AACF;;ACtnBE;EK5BE;IACE,8BAAqC;ENspBzC;AACF;;ACvnBI;EK9BA;IACE,8BAAqC;ENypBzC;AACF;;ACnnBI;EKrCA;IACE,8BAAqC;EN4pBzC;AACF;;ACpnBI;EKvCA;IACE,8BAAqC;EN+pBzC;AACF;;AChnBI;EK9CA;IACE,8BAAqC;ENkqBzC;AACF;;ACpqBE;EKxBE;IACE,2BAAqC;ENgsBzC;AACF;;ACtqBE;EKzBE;IACE,2BAAqC;ENmsBzC;AACF;;ACxqBE;EK1BE;IACE,2BAAqC;ENssBzC;AACF;;AC1qBE;EK3BE;IACE,2BAAqC;ENysBzC;AACF;;AC5qBE;EK5BE;IACE,2BAAqC;EN4sBzC;AACF;;AC7qBI;EK9BA;IACE,2BAAqC;EN+sBzC;AACF;;ACzqBI;EKrCA;IACE,2BAAqC;ENktBzC;AACF;;AC1qBI;EKvCA;IACE,2BAAqC;ENqtBzC;AACF;;ACtqBI;EK9CA;IACE,2BAAqC;ENwtBzC;AACF;;AC1tBE;EKxBE;IACE,4BAAqC;ENsvBzC;AACF;;AC5tBE;EKzBE;IACE,4BAAqC;ENyvBzC;AACF;;AC9tBE;EK1BE;IACE,4BAAqC;EN4vBzC;AACF;;AChuBE;EK3BE;IACE,4BAAqC;EN+vBzC;AACF;;ACluBE;EK5BE;IACE,4BAAqC;ENkwBzC;AACF;;ACnuBI;EK9BA;IACE,4BAAqC;ENqwBzC;AACF;;AC/tBI;EKrCA;IACE,4BAAqC;ENwwBzC;AACF;;AChuBI;EKvCA;IACE,4BAAqC;EN2wBzC;AACF;;AC5tBI;EK9CA;IACE,4BAAqC;EN8wBzC;AACF;;AM7wBA;EACE,qCAAqC;ANgxBvC;;AM9wBA;EACE,oCAAoC;ANixBtC;;AM/wBA;EACE,oCAAoC;ANkxBtC;;AMhxBA;EACE,6BAA6B;ANmxB/B;;AM/wBE;EACE,uBAAwB;ANkxB5B;;AMjxBE;EAGI,yBAAqC;ANkxB3C;;AMjxBE;EACE,kCAAmC;ANoxBvC;;AM3xBE;EACE,yBAAwB;AN8xB5B;;AM7xBE;EAGI,uBAAqC;AN8xB3C;;AM7xBE;EACE,oCAAmC;ANgyBvC;;AMvyBE;EACE,4BAAwB;AN0yB5B;;AMzyBE;EAGI,yBAAqC;AN0yB3C;;AMzyBE;EACE,uCAAmC;AN4yBvC;;AMnzBE;EACE,yBAAwB;ANszB5B;;AMrzBE;EAGI,yBAAqC;ANszB3C;;AMrzBE;EACE,oCAAmC;ANwzBvC;;AM/zBE;EACE,yBAAwB;ANk0B5B;;AMj0BE;EAGI,yBAAqC;ANk0B3C;;AMj0BE;EACE,oCAAmC;ANo0BvC;;AM30BE;EACE,yBAAwB;AN80B5B;;AM70BE;EAGI,yBAAqC;AN80B3C;;AM70BE;EACE,oCAAmC;ANg1BvC;;AMv1BE;EACE,yBAAwB;AN01B5B;;AMz1BE;EAGI,yBAAqC;AN01B3C;;AMz1BE;EACE,oCAAmC;AN41BvC;;AMn2BE;EACE,yBAAwB;ANs2B5B;;AMr2BE;EAGI,yBAAqC;ANs2B3C;;AMr2BE;EACE,oCAAmC;ANw2BvC;;AM/2BE;EACE,yBAAwB;ANk3B5B;;AMj3BE;EAGI,yBAAqC;ANk3B3C;;AMj3BE;EACE,oCAAmC;ANo3BvC;;AM33BE;EACE,yBAAwB;AN83B5B;;AM73BE;EAGI,yBAAqC;AN83B3C;;AM73BE;EACE,oCAAmC;ANg4BvC;;AM73BE;EACE,yBAAwB;ANg4B5B;;AM/3BE;EACE,oCAAmC;ANk4BvC;;AMr4BE;EACE,yBAAwB;ANw4B5B;;AMv4BE;EACE,oCAAmC;AN04BvC;;AM74BE;EACE,yBAAwB;ANg5B5B;;AM/4BE;EACE,oCAAmC;ANk5BvC;;AMr5BE;EACE,yBAAwB;ANw5B5B;;AMv5BE;EACE,oCAAmC;AN05BvC;;AM75BE;EACE,yBAAwB;ANg6B5B;;AM/5BE;EACE,oCAAmC;ANk6BvC;;AMr6BE;EACE,yBAAwB;ANw6B5B;;AMv6BE;EACE,oCAAmC;AN06BvC;;AM76BE;EACE,yBAAwB;ANg7B5B;;AM/6BE;EACE,oCAAmC;ANk7BvC;;AMr7BE;EACE,4BAAwB;ANw7B5B;;AMv7BE;EACE,uCAAmC;AN07BvC;;AM77BE;EACE,yBAAwB;ANg8B5B;;AM/7BE;EACE,oCAAmC;ANk8BvC;;AMh8BA;EACE,2BAAqC;ANm8BvC;;AMl8BA;EACE,2BAAsC;ANq8BxC;;AMp8BA;EACE,2BAAsC;ANu8BxC;;AMt8BA;EACE,2BAAwC;ANy8B1C;;AMx8BA;EACE,2BAAoC;AN28BtC;;AMz8BA;EACE,+LAAuC;AN48BzC;;AM18BA;EACE,+LAAyC;AN68B3C;;AM38BA;EACE,+LAA0C;AN88B5C;;AM58BA;EACE,iCAAyC;AN+8B3C;;AM78BA;EACE,iCAAoC;ANg9BtC;;AMz8BE;EACE,yBAA+B;AN48BnC;;AC5gCE;EKkEE;IACE,yBAA+B;EN88BnC;AACF;;AC9gCE;EKiEE;IACE,yBAA+B;ENi9BnC;AACF;;AChhCE;EKgEE;IACE,yBAA+B;ENo9BnC;AACF;;AClhCE;EK+DE;IACE,yBAA+B;ENu9BnC;AACF;;ACphCE;EK8DE;IACE,yBAA+B;EN09BnC;AACF;;ACrhCI;EK4DA;IACE,yBAA+B;EN69BnC;AACF;;ACjhCI;EKqDA;IACE,yBAA+B;ENg+BnC;AACF;;AClhCI;EKmDA;IACE,yBAA+B;ENm+BnC;AACF;;AC9gCI;EK4CA;IACE,yBAA+B;ENs+BnC;AACF;;AMngCE;EACE,wBAA+B;ANsgCnC;;ACtkCE;EKkEE;IACE,wBAA+B;ENwgCnC;AACF;;ACxkCE;EKiEE;IACE,wBAA+B;EN2gCnC;AACF;;AC1kCE;EKgEE;IACE,wBAA+B;EN8gCnC;AACF;;AC5kCE;EK+DE;IACE,wBAA+B;ENihCnC;AACF;;AC9kCE;EK8DE;IACE,wBAA+B;ENohCnC;AACF;;AC/kCI;EK4DA;IACE,wBAA+B;ENuhCnC;AACF;;AC3kCI;EKqDA;IACE,wBAA+B;EN0hCnC;AACF;;AC5kCI;EKmDA;IACE,wBAA+B;EN6hCnC;AACF;;ACxkCI;EK4CA;IACE,wBAA+B;ENgiCnC;AACF;;AM7jCE;EACE,0BAA+B;ANgkCnC;;AChoCE;EKkEE;IACE,0BAA+B;ENkkCnC;AACF;;ACloCE;EKiEE;IACE,0BAA+B;ENqkCnC;AACF;;ACpoCE;EKgEE;IACE,0BAA+B;ENwkCnC;AACF;;ACtoCE;EK+DE;IACE,0BAA+B;EN2kCnC;AACF;;ACxoCE;EK8DE;IACE,0BAA+B;EN8kCnC;AACF;;ACzoCI;EK4DA;IACE,0BAA+B;ENilCnC;AACF;;ACroCI;EKqDA;IACE,0BAA+B;ENolCnC;AACF;;ACtoCI;EKmDA;IACE,0BAA+B;ENulCnC;AACF;;ACloCI;EK4CA;IACE,0BAA+B;EN0lCnC;AACF;;AMvnCE;EACE,gCAA+B;AN0nCnC;;AC1rCE;EKkEE;IACE,gCAA+B;EN4nCnC;AACF;;AC5rCE;EKiEE;IACE,gCAA+B;EN+nCnC;AACF;;AC9rCE;EKgEE;IACE,gCAA+B;ENkoCnC;AACF;;AChsCE;EK+DE;IACE,gCAA+B;ENqoCnC;AACF;;AClsCE;EK8DE;IACE,gCAA+B;ENwoCnC;AACF;;ACnsCI;EK4DA;IACE,gCAA+B;EN2oCnC;AACF;;AC/rCI;EKqDA;IACE,gCAA+B;EN8oCnC;AACF;;AChsCI;EKmDA;IACE,gCAA+B;ENipCnC;AACF;;AC5rCI;EK4CA;IACE,gCAA+B;ENopCnC;AACF;;AMjrCE;EACE,+BAA+B;ANorCnC;;ACpvCE;EKkEE;IACE,+BAA+B;ENsrCnC;AACF;;ACtvCE;EKiEE;IACE,+BAA+B;ENyrCnC;AACF;;ACxvCE;EKgEE;IACE,+BAA+B;EN4rCnC;AACF;;AC1vCE;EK+DE;IACE,+BAA+B;EN+rCnC;AACF;;AC5vCE;EK8DE;IACE,+BAA+B;ENksCnC;AACF;;AC7vCI;EK4DA;IACE,+BAA+B;ENqsCnC;AACF;;ACzvCI;EKqDA;IACE,+BAA+B;ENwsCnC;AACF;;AC1vCI;EKmDA;IACE,+BAA+B;EN2sCnC;AACF;;ACtvCI;EK4CA;IACE,+BAA+B;EN8sCnC;AACF;;AM7sCA;EACE,wBAAwB;ANgtC1B;;AM9sCA;EACE,uBAAuB;EACvB,iCAAiC;EACjC,yBAAyB;EACzB,2BAA2B;EAC3B,qBAAqB;EACrB,6BAA6B;EAC7B,8BAA8B;EAC9B,wBAAwB;ANitC1B;;ACzzCE;EK2GA;IACE,wBAAwB;ENktC1B;AACF;;AC3zCE;EK2GA;IACE,wBAAwB;ENotC1B;AACF;;AC7zCE;EK2GA;IACE,wBAAwB;ENstC1B;AACF;;AC/zCE;EK2GA;IACE,wBAAwB;ENwtC1B;AACF;;ACj0CE;EK2GA;IACE,wBAAwB;EN0tC1B;AACF;;ACl0CI;EK0GF;IACE,wBAAwB;EN4tC1B;AACF;;AC9zCI;EKoGF;IACE,wBAAwB;EN8tC1B;AACF;;AC/zCI;EKmGF;IACE,wBAAwB;ENguC1B;AACF;;AC3zCI;EK6FF;IACE,wBAAwB;ENkuC1B;AACF;;AMjuCA;EACE,6BAA6B;ANouC/B;;ACn3CE;EKkJA;IACE,6BAA6B;ENquC/B;AACF;;ACr3CE;EKkJA;IACE,6BAA6B;ENuuC/B;AACF;;ACv3CE;EKkJA;IACE,6BAA6B;ENyuC/B;AACF;;ACz3CE;EKkJA;IACE,6BAA6B;EN2uC/B;AACF;;AC33CE;EKkJA;IACE,6BAA6B;EN6uC/B;AACF;;AC53CI;EKiJF;IACE,6BAA6B;EN+uC/B;AACF;;ACx3CI;EK2IF;IACE,6BAA6B;ENivC/B;AACF;;ACz3CI;EK0IF;IACE,6BAA6B;ENmvC/B;AACF;;ACr3CI;EKoIF;IACE,6BAA6B;ENqvC/B;AACF;;AMlvCA;EACE,oBAAoB;ANqvCtB;;AMnvCA;EACE,qBAAqB;ANsvCvB;;AMpvCA;EACE,2BAA2B;ANuvC7B;;AMrvCA;EACE,2BAA2B;ANwvC7B;;AMnvCA;EACE,6BAA6B;ANsvC/B;;AOrgDA;EAEE,uBLG6B;EKF7B,kBLyDgB;EKxDhB,4ELX2B;EKY3B,cLP4B;EKQ5B,cAAc;EACd,gBAZmB;APmhDrB;;AOrgDA;EAGI,8DLA8B;AFsgDlC;;AOzgDA;EAKI,oELF8B;AF0gDlC;;AQl/CA;EAGE,uBNlC6B;EMmC7B,qBNvC4B;EMwC5B,iBL/CwB;EKgDxB,cN7C4B;EM8C5B,eAAe;EAGf,uBAAuB;EACvB,mCAjD+D;EAkD/D,oBAjDgC;EAkDhC,qBAlDgC;EAmDhC,gCApD+D;EAqD/D,kBAAkB;EAClB,mBAAmB;ARi/CrB;;AQjgDA;EAkBI,cAAc;ARm/ClB;;AQrgDA;EAwBM,aAAa;EACb,YAAY;ARi/ClB;;AQ1gDA;EA2BM,iCAAqD;EACrD,sBAAsB;ARm/C5B;;AQ/gDA;EA8BM,qBAAqB;EACrB,kCAAsD;ARq/C5D;;AQphDA;EAiCM,iCAAqD;EACrD,kCAAsD;ARu/C5D;;AQzhDA;EAsCI,qBN1E0B;EM2E1B,cN9E0B;AFqkD9B;;AQ9hDA;EA0CI,qBNlE8B;EMmE9B,cNlF0B;AF0kD9B;;AQniDA;EA6CM,kDNrE4B;AF+jDlC;;AQviDA;EAgDI,qBNtF0B;EMuF1B,cNxF0B;AFmlD9B;;AQ5iDA;EAoDI,6BAA6B;EAC7B,yBAAyB;EACzB,cN5F0B;EM6F1B,0BAA0B;AR4/C9B;;AQnjDA;EA4DM,4BN7FwB;EM8FxB,cNpGwB;AF+lD9B;;AQxjDA;EAgEM,yBAAiE;EACjE,cNxGwB;AFomD9B;;AQ7jDA;;EAoEM,6BAA6B;EAC7B,yBAAyB;EACzB,gBAAgB;AR8/CtB;;AQpkDA;EA2EM,uBN1GyB;EM2GzB,yBAAyB;EACzB,cNxHuB;AFqnD7B;;AQ1kDA;EAgFQ,yBAAsC;EACtC,yBAAyB;EACzB,cN7HqB;AF2nD7B;;AQhlDA;EAqFQ,yBAAyB;EACzB,cNjIqB;AFgoD7B;;AQrlDA;EAwFU,mDNvHqB;AFwnD/B;;AQzlDA;EA2FQ,yBAAoC;EACpC,yBAAyB;EACzB,cNxIqB;AF0oD7B;;AQ/lDA;;EAgGQ,uBN/HuB;EMgIvB,yBAAyB;EACzB,gBAAgB;ARogDxB;;AQtmDA;EAoGQ,yBN/IqB;EMgJrB,YNpIuB;AF0oD/B;;AQ3mDA;EAwGU,uBAA2C;ARugDrD;;AQ/mDA;;EA2GU,yBNtJmB;EMuJnB,yBAAyB;EACzB,gBAAgB;EAChB,YN7IqB;AFspD/B;;AQvnDA;EAiHU,gEAA4E;AR0gDtF;;AQ3nDA;EAmHQ,6BAA6B;EAC7B,mBNnJuB;EMoJvB,YNpJuB;AFgqD/B;;AQjoDA;EA0HU,uBNzJqB;EM0JrB,mBN1JqB;EM2JrB,cNvKmB;AFkrD7B;;AQvoDA;EA+HY,4DAA8D;AR4gD1E;;AQ3oDA;EAqIc,gEAA4E;AR0gD1F;;AQ/oDA;;EAwIU,6BAA6B;EAC7B,mBNxKqB;EMyKrB,gBAAgB;EAChB,YN1KqB;AFsrD/B;;AQvpDA;EA6IQ,6BAA6B;EAC7B,qBNzLqB;EM0LrB,cN1LqB;AFwsD7B;;AQ7pDA;EAoJU,yBN/LmB;EMgMnB,YNpLqB;AFisD/B;;AQlqDA;EA4Jc,4DAA8D;AR0gD5E;;AQtqDA;;EA+JU,6BAA6B;EAC7B,qBN3MmB;EM4MnB,gBAAgB;EAChB,cN7MmB;AFytD7B;;AQ9qDA;EA2EM,yBNtHuB;EMuHvB,yBAAyB;EACzB,YN5GyB;AFmtD/B;;AQprDA;EAgFQ,yBAAsC;EACtC,yBAAyB;EACzB,YNjHuB;AFytD/B;;AQ1rDA;EAqFQ,yBAAyB;EACzB,YNrHuB;AF8tD/B;;AQ/rDA;EAwFU,gDNnImB;AF8uD7B;;AQnsDA;EA2FQ,uBAAoC;EACpC,yBAAyB;EACzB,YN5HuB;AFwuD/B;;AQzsDA;;EAgGQ,yBN3IqB;EM4IrB,yBAAyB;EACzB,gBAAgB;AR8mDxB;;AQhtDA;EAoGQ,uBNnIuB;EMoIvB,cNhJqB;AFgwD7B;;AQrtDA;EAwGU,yBAA2C;ARinDrD;;AQztDA;;EA2GU,uBN1IqB;EM2IrB,yBAAyB;EACzB,gBAAgB;EAChB,cNzJmB;AF4wD7B;;AQjuDA;EAiHU,4DAA4E;ARonDtF;;AQruDA;EAmHQ,6BAA6B;EAC7B,qBN/JqB;EMgKrB,cNhKqB;AFsxD7B;;AQ3uDA;EA0HU,yBNrKmB;EMsKnB,qBNtKmB;EMuKnB,YN3JqB;AFgxD/B;;AQjvDA;EA+HY,gEAA8D;ARsnD1E;;AQrvDA;EAqIc,4DAA4E;ARonD1F;;AQzvDA;;EAwIU,6BAA6B;EAC7B,qBNpLmB;EMqLnB,gBAAgB;EAChB,cNtLmB;AF4yD7B;;AQjwDA;EA6IQ,6BAA6B;EAC7B,mBN7KuB;EM8KvB,YN9KuB;AFsyD/B;;AQvwDA;EAoJU,uBNnLqB;EMoLrB,cNhMmB;AFuzD7B;;AQ5wDA;EA4Jc,gEAA8D;ARonD5E;;AQhxDA;;EA+JU,6BAA6B;EAC7B,mBN/LqB;EMgMrB,gBAAgB;EAChB,YNjMqB;AFuzD/B;;AQxxDA;EA2EM,4BN5GwB;EM6GxB,yBAAyB;EACzB,cNpHwB;AFq0D9B;;AQ9xDA;EAgFQ,yBAAsC;EACtC,yBAAyB;EACzB,cNzHsB;AF20D9B;;AQpyDA;EAqFQ,yBAAyB;EACzB,cN7HsB;AFg1D9B;;AQzyDA;EAwFU,mDNzHoB;AF80D9B;;AQ7yDA;EA2FQ,yBAAoC;EACpC,yBAAyB;EACzB,cNpIsB;AF01D9B;;AQnzDA;;EAgGQ,4BNjIsB;EMkItB,yBAAyB;EACzB,gBAAgB;ARwtDxB;;AQ1zDA;EAoGQ,yBN3IsB;EM4ItB,iBNtIsB;AFg2D9B;;AQ/zDA;EAwGU,yBAA2C;AR2tDrD;;AQn0DA;;EA2GU,yBNlJoB;EMmJpB,yBAAyB;EACzB,gBAAgB;EAChB,iBN/IoB;AF42D9B;;AQ30DA;EAiHU,gEAA4E;AR8tDtF;;AQ/0DA;EAmHQ,6BAA6B;EAC7B,wBNrJsB;EMsJtB,iBNtJsB;AFs3D9B;;AQr1DA;EA0HU,4BN3JoB;EM4JpB,wBN5JoB;EM6JpB,cNnKoB;AFk4D9B;;AQ31DA;EA+HY,sEAA8D;ARguD1E;;AQ/1DA;EAqIc,gEAA4E;AR8tD1F;;AQn2DA;;EAwIU,6BAA6B;EAC7B,wBN1KoB;EM2KpB,gBAAgB;EAChB,iBN5KoB;AF44D9B;;AQ32DA;EA6IQ,6BAA6B;EAC7B,qBNrLsB;EMsLtB,cNtLsB;AFw5D9B;;AQj3DA;EAoJU,yBN3LoB;EM4LpB,iBNtLoB;AFu5D9B;;AQt3DA;EA4Jc,sEAA8D;AR8tD5E;;AQ13DA;;EA+JU,6BAA6B;EAC7B,qBNvMoB;EMwMpB,gBAAgB;EAChB,cNzMoB;AFy6D9B;;AQl4DA;EA2EM,yBNlHwB;EMmHxB,yBAAyB;EACzB,iBN9GwB;AFy6D9B;;AQx4DA;EAgFQ,yBAAsC;EACtC,yBAAyB;EACzB,iBNnHsB;AF+6D9B;;AQ94DA;EAqFQ,yBAAyB;EACzB,iBNvHsB;AFo7D9B;;AQn5DA;EAwFU,gDN/HoB;AF87D9B;;AQv5DA;EA2FQ,yBAAoC;EACpC,yBAAyB;EACzB,iBN9HsB;AF87D9B;;AQ75DA;;EAgGQ,yBNvIsB;EMwItB,yBAAyB;EACzB,gBAAgB;ARk0DxB;;AQp6DA;EAoGQ,4BNrIsB;EMsItB,cN5IsB;AFg9D9B;;AQz6DA;EAwGU,yBAA2C;ARq0DrD;;AQ76DA;;EA2GU,4BN5IoB;EM6IpB,yBAAyB;EACzB,gBAAgB;EAChB,cNrJoB;AF49D9B;;AQr7DA;EAiHU,sEAA4E;ARw0DtF;;AQz7DA;EAmHQ,6BAA6B;EAC7B,qBN3JsB;EM4JtB,cN5JsB;AFs+D9B;;AQ/7DA;EA0HU,yBNjKoB;EMkKpB,qBNlKoB;EMmKpB,iBN7JoB;AFs+D9B;;AQr8DA;EA+HY,gEAA8D;AR00D1E;;AQz8DA;EAqIc,sEAA4E;ARw0D1F;;AQ78DA;;EAwIU,6BAA6B;EAC7B,qBNhLoB;EMiLpB,gBAAgB;EAChB,cNlLoB;AF4/D9B;;AQr9DA;EA6IQ,6BAA6B;EAC7B,wBN/KsB;EMgLtB,iBNhLsB;AF4/D9B;;AQ39DA;EAoJU,4BNrLoB;EMsLpB,cN5LoB;AFugE9B;;AQh+DA;EA4Jc,gEAA8D;ARw0D5E;;AQp+DA;;EA+JU,6BAA6B;EAC7B,wBNjMoB;EMkMpB,gBAAgB;EAChB,iBNnMoB;AF6gE9B;;AQ5+DA;EA2EM,yBNrG4B;EMsG5B,yBAAyB;EACzB,WC7DU;ATk+DhB;;AQl/DA;EAgFQ,yBAAsC;EACtC,yBAAyB;EACzB,WClEQ;ATw+DhB;;AQx/DA;EAqFQ,yBAAyB;EACzB,WCtEQ;AT6+DhB;;AQ7/DA;EAwFU,iDNlHwB;AF2hElC;;AQjgEA;EA2FQ,yBAAoC;EACpC,yBAAyB;EACzB,WC7EQ;ATu/DhB;;AQvgEA;;EAgGQ,yBN1H0B;EM2H1B,yBAAyB;EACzB,gBAAgB;AR46DxB;;AQ9gEA;EAoGQ,sBCpFQ;EDqFR,cN/H0B;AF6iElC;;AQnhEA;EAwGU,yBAA2C;AR+6DrD;;AQvhEA;;EA2GU,sBC3FM;ED4FN,yBAAyB;EACzB,gBAAgB;EAChB,cNxIwB;AFyjElC;;AQ/hEA;EAiHU,0DAA4E;ARk7DtF;;AQniEA;EAmHQ,6BAA6B;EAC7B,qBN9I0B;EM+I1B,cN/I0B;AFmkElC;;AQziEA;EA0HU,yBNpJwB;EMqJxB,qBNrJwB;EMsJxB,WC5GM;AT+hEhB;;AQ/iEA;EA+HY,gEAA8D;ARo7D1E;;AQnjEA;EAqIc,0DAA4E;ARk7D1F;;AQvjEA;;EAwIU,6BAA6B;EAC7B,qBNnKwB;EMoKxB,gBAAgB;EAChB,cNrKwB;AFylElC;;AQ/jEA;EA6IQ,6BAA6B;EAC7B,kBC9HQ;ED+HR,WC/HQ;ATqjEhB;;AQrkEA;EAoJU,sBCpIM;EDqIN,cN/KwB;AFomElC;;AQ1kEA;EA4Jc,gEAA8D;ARk7D5E;;AQ9kEA;;EA+JU,6BAA6B;EAC7B,kBChJM;EDiJN,gBAAgB;EAChB,WClJM;ATskEhB;;AQtlEA;EA2EM,yBNnG4B;EMoG5B,yBAAyB;EACzB,WC7DU;AT4kEhB;;AQ5lEA;EAgFQ,yBAAsC;EACtC,yBAAyB;EACzB,WClEQ;ATklEhB;;AQlmEA;EAqFQ,yBAAyB;EACzB,WCtEQ;ATulEhB;;AQvmEA;EAwFU,kDNhHwB;AFmoElC;;AQ3mEA;EA2FQ,yBAAoC;EACpC,yBAAyB;EACzB,WC7EQ;ATimEhB;;AQjnEA;;EAgGQ,yBNxH0B;EMyH1B,yBAAyB;EACzB,gBAAgB;ARshExB;;AQxnEA;EAoGQ,sBCpFQ;EDqFR,cN7H0B;AFqpElC;;AQ7nEA;EAwGU,yBAA2C;ARyhErD;;AQjoEA;;EA2GU,sBC3FM;ED4FN,yBAAyB;EACzB,gBAAgB;EAChB,cNtIwB;AFiqElC;;AQzoEA;EAiHU,0DAA4E;AR4hEtF;;AQ7oEA;EAmHQ,6BAA6B;EAC7B,qBN5I0B;EM6I1B,cN7I0B;AF2qElC;;AQnpEA;EA0HU,yBNlJwB;EMmJxB,qBNnJwB;EMoJxB,WC5GM;ATyoEhB;;AQzpEA;EA+HY,gEAA8D;AR8hE1E;;AQ7pEA;EAqIc,0DAA4E;AR4hE1F;;AQjqEA;;EAwIU,6BAA6B;EAC7B,qBNjKwB;EMkKxB,gBAAgB;EAChB,cNnKwB;AFisElC;;AQzqEA;EA6IQ,6BAA6B;EAC7B,kBC9HQ;ED+HR,WC/HQ;AT+pEhB;;AQ/qEA;EAoJU,sBCpIM;EDqIN,cN7KwB;AF4sElC;;AQprEA;EA4Jc,gEAA8D;AR4hE5E;;AQxrEA;;EA+JU,6BAA6B;EAC7B,kBChJM;EDiJN,gBAAgB;EAChB,WClJM;ATgrEhB;;AQhsEA;EA2EM,yBNpG4B;EMqG5B,yBAAyB;EACzB,WC7DU;ATsrEhB;;AQtsEA;EAgFQ,yBAAsC;EACtC,yBAAyB;EACzB,WClEQ;AT4rEhB;;AQ5sEA;EAqFQ,yBAAyB;EACzB,WCtEQ;ATisEhB;;AQjtEA;EAwFU,kDNjHwB;AF8uElC;;AQrtEA;EA2FQ,yBAAoC;EACpC,yBAAyB;EACzB,WC7EQ;AT2sEhB;;AQ3tEA;;EAgGQ,yBNzH0B;EM0H1B,yBAAyB;EACzB,gBAAgB;ARgoExB;;AQluEA;EAoGQ,sBCpFQ;EDqFR,cN9H0B;AFgwElC;;AQvuEA;EAwGU,yBAA2C;ARmoErD;;AQ3uEA;;EA2GU,sBC3FM;ED4FN,yBAAyB;EACzB,gBAAgB;EAChB,cNvIwB;AF4wElC;;AQnvEA;EAiHU,0DAA4E;ARsoEtF;;AQvvEA;EAmHQ,6BAA6B;EAC7B,qBN7I0B;EM8I1B,cN9I0B;AFsxElC;;AQ7vEA;EA0HU,yBNnJwB;EMoJxB,qBNpJwB;EMqJxB,WC5GM;ATmvEhB;;AQnwEA;EA+HY,gEAA8D;ARwoE1E;;AQvwEA;EAqIc,0DAA4E;ARsoE1F;;AQ3wEA;;EAwIU,6BAA6B;EAC7B,qBNlKwB;EMmKxB,gBAAgB;EAChB,cNpKwB;AF4yElC;;AQnxEA;EA6IQ,6BAA6B;EAC7B,kBC9HQ;ED+HR,WC/HQ;ATywEhB;;AQzxEA;EAoJU,sBCpIM;EDqIN,cN9KwB;AFuzElC;;AQ9xEA;EA4Jc,gEAA8D;ARsoE5E;;AQlyEA;;EA+JU,6BAA6B;EAC7B,kBChJM;EDiJN,gBAAgB;EAChB,WClJM;AT0xEhB;;AQ1yEA;EA2EM,yBNtG4B;EMuG5B,yBAAyB;EACzB,WC7DU;ATgyEhB;;AQhzEA;EAgFQ,yBAAsC;EACtC,yBAAyB;EACzB,WClEQ;ATsyEhB;;AQtzEA;EAqFQ,yBAAyB;EACzB,WCtEQ;AT2yEhB;;AQ3zEA;EAwFU,iDNnHwB;AF01ElC;;AQ/zEA;EA2FQ,yBAAoC;EACpC,yBAAyB;EACzB,WC7EQ;ATqzEhB;;AQr0EA;;EAgGQ,yBN3H0B;EM4H1B,yBAAyB;EACzB,gBAAgB;AR0uExB;;AQ50EA;EAoGQ,sBCpFQ;EDqFR,cNhI0B;AF42ElC;;AQj1EA;EAwGU,yBAA2C;AR6uErD;;AQr1EA;;EA2GU,sBC3FM;ED4FN,yBAAyB;EACzB,gBAAgB;EAChB,cNzIwB;AFw3ElC;;AQ71EA;EAiHU,0DAA4E;ARgvEtF;;AQj2EA;EAmHQ,6BAA6B;EAC7B,qBN/I0B;EMgJ1B,cNhJ0B;AFk4ElC;;AQv2EA;EA0HU,yBNrJwB;EMsJxB,qBNtJwB;EMuJxB,WC5GM;AT61EhB;;AQ72EA;EA+HY,gEAA8D;ARkvE1E;;AQj3EA;EAqIc,0DAA4E;ARgvE1F;;AQr3EA;;EAwIU,6BAA6B;EAC7B,qBNpKwB;EMqKxB,gBAAgB;EAChB,cNtKwB;AFw5ElC;;AQ73EA;EA6IQ,6BAA6B;EAC7B,kBC9HQ;ED+HR,WC/HQ;ATm3EhB;;AQn4EA;EAoJU,sBCpIM;EDqIN,cNhLwB;AFm6ElC;;AQx4EA;EA4Jc,gEAA8D;ARgvE5E;;AQ54EA;;EA+JU,6BAA6B;EAC7B,kBChJM;EDiJN,gBAAgB;EAChB,WClJM;ATo4EhB;;AQp5EA;EA2EM,yBNvG4B;EMwG5B,yBAAyB;EACzB,yBC/De;AT44ErB;;AQ15EA;EAgFQ,yBAAsC;EACtC,yBAAyB;EACzB,yBCpEa;ATk5ErB;;AQh6EA;EAqFQ,yBAAyB;EACzB,yBCxEa;ATu5ErB;;AQr6EA;EAwFU,kDNpHwB;AFq8ElC;;AQz6EA;EA2FQ,yBAAoC;EACpC,yBAAyB;EACzB,yBC/Ea;ATi6ErB;;AQ/6EA;;EAgGQ,yBN5H0B;EM6H1B,yBAAyB;EACzB,gBAAgB;ARo1ExB;;AQt7EA;EAoGQ,oCCtFa;EDuFb,cNjI0B;AFu9ElC;;AQ37EA;EAwGU,oCAA2C;ARu1ErD;;AQ/7EA;;EA2GU,oCC7FW;ED8FX,yBAAyB;EACzB,gBAAgB;EAChB,cN1IwB;AFm+ElC;;AQv8EA;EAiHU,sFAA4E;AR01EtF;;AQ38EA;EAmHQ,6BAA6B;EAC7B,qBNhJ0B;EMiJ1B,cNjJ0B;AF6+ElC;;AQj9EA;EA0HU,yBNtJwB;EMuJxB,qBNvJwB;EMwJxB,yBC9GW;ATy8ErB;;AQv9EA;EA+HY,gEAA8D;AR41E1E;;AQ39EA;EAqIc,sFAA4E;AR01E1F;;AQ/9EA;;EAwIU,6BAA6B;EAC7B,qBNrKwB;EMsKxB,gBAAgB;EAChB,cNvKwB;AFmgFlC;;AQv+EA;EA6IQ,6BAA6B;EAC7B,gCChIa;EDiIb,yBCjIa;AT+9ErB;;AQ7+EA;EAoJU,oCCtIW;EDuIX,cNjLwB;AF8gFlC;;AQl/EA;EA4Jc,gEAA8D;AR01E5E;;AQt/EA;;EA+JU,6BAA6B;EAC7B,gCClJW;EDmJX,gBAAgB;EAChB,yBCpJW;ATg/ErB;;AQ9/EA;EA2EM,yBNjG4B;EMkG5B,yBAAyB;EACzB,WC7DU;ATo/EhB;;AQpgFA;EAgFQ,yBAAsC;EACtC,yBAAyB;EACzB,WClEQ;AT0/EhB;;AQ1gFA;EAqFQ,yBAAyB;EACzB,WCtEQ;AT+/EhB;;AQ/gFA;EAwFU,iDN9GwB;AFyiFlC;;AQnhFA;EA2FQ,yBAAoC;EACpC,yBAAyB;EACzB,WC7EQ;ATygFhB;;AQzhFA;;EAgGQ,yBNtH0B;EMuH1B,yBAAyB;EACzB,gBAAgB;AR87ExB;;AQhiFA;EAoGQ,sBCpFQ;EDqFR,cN3H0B;AF2jFlC;;AQriFA;EAwGU,yBAA2C;ARi8ErD;;AQziFA;;EA2GU,sBC3FM;ED4FN,yBAAyB;EACzB,gBAAgB;EAChB,cNpIwB;AFukFlC;;AQjjFA;EAiHU,0DAA4E;ARo8EtF;;AQrjFA;EAmHQ,6BAA6B;EAC7B,qBN1I0B;EM2I1B,cN3I0B;AFilFlC;;AQ3jFA;EA0HU,yBNhJwB;EMiJxB,qBNjJwB;EMkJxB,WC5GM;ATijFhB;;AQjkFA;EA+HY,gEAA8D;ARs8E1E;;AQrkFA;EAqIc,0DAA4E;ARo8E1F;;AQzkFA;;EAwIU,6BAA6B;EAC7B,qBN/JwB;EMgKxB,gBAAgB;EAChB,cNjKwB;AFumFlC;;AQjlFA;EA6IQ,6BAA6B;EAC7B,kBC9HQ;ED+HR,WC/HQ;ATukFhB;;AQvlFA;EAoJU,sBCpIM;EDqIN,cN3KwB;AFknFlC;;AQ5lFA;EA4Jc,gEAA8D;ARo8E5E;;AQhmFA;;EA+JU,6BAA6B;EAC7B,kBChJM;EDiJN,gBAAgB;EAChB,WClJM;ATwlFhB;;AQxmFA;EATE,kBN+BgB;EM9BhB,kBNAc;AFqnFhB;;AQ7mFA;EANE,eNHW;AF0nFb;;AQjnFA;EAJE,kBNNc;AF+nFhB;;AQrnFA;EAFE,iBNTa;AFooFf;;AQznFA;;EA+KI,uBN9M2B;EM+M3B,qBNnN0B;EMoN1B,gBAnMyB;EAoMzB,YAnMyB;ARkpF7B;;AQjoFA;EAoLI,aAAa;EACb,WAAW;ARi9Ef;;AQtoFA;EAuLI,6BAA6B;EAC7B,oBAAoB;ARm9ExB;;AQ3oFA;EPpCE,kBAAkB;EAKhB,2BAAiC;EACjC,0BAAgC;EO0N9B,6BAA6B;ARs9EnC;;AQlpFA;EA8LI,4BN/N0B;EMgO1B,qBNlO0B;EMmO1B,cNrO0B;EMsO1B,gBAAgB;EAChB,oBAAoB;ARw9ExB;;AQ1pFA;EAoMI,uBN3KqB;EM4KrB,iBAAiB;EACjB,kBAAkB;AR09EtB;;AQx9EA;EACE,mBAAmB;EACnB,aAAa;EACb,eAAe;EACf,2BAA2B;AR29E7B;;AQ/9EA;EAMI,qBAAqB;AR69EzB;;AQn+EA;EAQM,oBAAoB;AR+9E1B;;AQv+EA;EAUI,sBAAsB;ARi+E1B;;AQ3+EA;EAYI,mBAAmB;ARm+EvB;;AQ/+EA;EAjNE,kBN+BgB;EM9BhB,kBNAc;AFosFhB;;AQp/EA;EA5ME,kBNNc;AF0sFhB;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Ad+rGvB;;ActtGA;EA6BM,uBZnByB;EYoBzB,cZhCuB;AF6tG7B;;Ac3tGA;EA6BM,yBZ/BuB;EYgCvB,YZpByB;AFstG/B;;AchuGA;EA6BM,4BZrBwB;EYsBxB,cZ5BwB;AFmuG9B;;AcruGA;EA6BM,yBZ3BwB;EY4BxB,iBZtBwB;AFkuG9B;;Ac1uGA;EA6BM,yBZd4B;EYe5B,WL2BU;ATsrGhB;;Ac/uGA;EA6BM,yBZZ4B;EYa5B,WL2BU;AT2rGhB;;AcpvGA;EA6BM,yBZb4B;EYc5B,WL2BU;ATgsGhB;;AczvGA;EA6BM,yBZf4B;EYgB5B,WL2BU;ATqsGhB;;Ac9vGA;EA6BM,yBZhB4B;EYiB5B,yBLyBe;AT4sGrB;;AcnwGA;EA6BM,yBZV4B;EYW5B,WL2BU;AT+sGhB;;AetwGA;EAEE,qBAAqB;EACrB,wBAAwB;EACxB,YAAY;EACZ,uBb2DuB;Ea1DvB,cAAc;EACd,YbuBW;EatBX,gBAAgB;EAChB,UAAU;EACV,WAAW;AfwwGb;;AelxGA;EAYI,yBbR0B;AFkxG9B;;AetxGA;EAcI,yBbb0B;AFyxG9B;;Ae1xGA;EAgBI,yBbf0B;AF6xG9B;;Ae9xGA;EAkBI,yBbjB0B;EakB1B,YAAY;AfgxGhB;;AenyGA;EAyBQ,uBbjBuB;AF+xG/B;;AevyGA;EA2BQ,uBbnBuB;AFmyG/B;;Ae3yGA;EA6BQ,uBbrBuB;AFuyG/B;;Ae/yGA;EA+BQ,mEAA2F;AfoxGnG;;AenzGA;EAyBQ,yBb7BqB;AF2zG7B;;AevzGA;EA2BQ,yBb/BqB;AF+zG7B;;Ae3zGA;EA6BQ,yBbjCqB;AFm0G7B;;Ae/zGA;EA+BQ,qEAA2F;AfoyGnG;;Aen0GA;EAyBQ,4BbnBsB;AFi0G9B;;Aev0GA;EA2BQ,4BbrBsB;AFq0G9B;;Ae30GA;EA6BQ,4BbvBsB;AFy0G9B;;Ae/0GA;EA+BQ,wEAA2F;AfozGnG;;Aen1GA;EAyBQ,yBbzBsB;AFu1G9B;;Aev1GA;EA2BQ,yBb3BsB;AF21G9B;;Ae31GA;EA6BQ,yBb7BsB;AF+1G9B;;Ae/1GA;EA+BQ,qEAA2F;Afo0GnG;;Aen2GA;EAyBQ,yBbZ0B;AF01GlC;;Aev2GA;EA2BQ,yBbd0B;AF81GlC;;Ae32GA;EA6BQ,yBbhB0B;AFk2GlC;;Ae/2GA;EA+BQ,qEAA2F;Afo1GnG;;Aen3GA;EAyBQ,yBbV0B;AFw2GlC;;Aev3GA;EA2BQ,yBbZ0B;AF42GlC;;Ae33GA;EA6BQ,yBbd0B;AFg3GlC;;Ae/3GA;EA+BQ,qEAA2F;Afo2GnG;;Aen4GA;EAyBQ,yBbX0B;AFy3GlC;;Aev4GA;EA2BQ,yBbb0B;AF63GlC;;Ae34GA;EA6BQ,yBbf0B;AFi4GlC;;Ae/4GA;EA+BQ,qEAA2F;Afo3GnG;;Aen5GA;EAyBQ,yBbb0B;AF24GlC;;Aev5GA;EA2BQ,yBbf0B;AF+4GlC;;Ae35GA;EA6BQ,yBbjB0B;AFm5GlC;;Ae/5GA;EA+BQ,qEAA2F;Afo4GnG;;Aen6GA;EAyBQ,yBbd0B;AF45GlC;;Aev6GA;EA2BQ,yBbhB0B;AFg6GlC;;Ae36GA;EA6BQ,yBblB0B;AFo6GlC;;Ae/6GA;EA+BQ,qEAA2F;Afo5GnG;;Aen7GA;EAyBQ,yBbR0B;AFs6GlC;;Aev7GA;EA2BQ,yBbV0B;AF06GlC;;Ae37GA;EA6BQ,yBbZ0B;AF86GlC;;Ae/7GA;EA+BQ,qEAA2F;Afo6GnG;;Aen8GA;EAkCI,gCApCkC;UAoClC,wBApCkC;EAqClC,2CAAmC;UAAnC,mCAAmC;EACnC,yCAAiC;UAAjC,iCAAiC;EACjC,yCAAiC;UAAjC,iCAAiC;EACjC,yBblC0B;EamC1B,qEAA0F;EAC1F,6BAA6B;EAC7B,4BAA4B;EAC5B,0BAA0B;Afq6G9B;;Ae/8GA;EA4CM,6BAA6B;Afu6GnC;;Aen9GA;EA8CM,6BAA6B;Afy6GnC;;Aev9GA;EAkDI,ebnBY;AF47GhB;;Ae39GA;EAoDI,ebvBY;AFk8GhB;;Ae/9GA;EAsDI,cb1BW;AFu8Gf;;Ae36GA;EACE;IACE,2BAA2B;Ef86G7B;Ee76GA;IACE,4BAA4B;Ef+6G9B;AACF;;Aep7GA;EACE;IACE,2BAA2B;Ef86G7B;Ee76GA;IACE,4BAA4B;Ef+6G9B;AACF;;AgBz9GA;EAEE,uBdb6B;Ecc7B,cdtB4B;AFi/G9B;;AgB99GA;;EAMI,yBdrB0B;EcsB1B,qBA5B6B;EA6B7B,qBA5B6B;EA6B7B,mBAAmB;AhB69GvB;;AgBt+GA;;EAeQ,uBd1BuB;Ec2BvB,mBd3BuB;Ec4BvB,cdxCqB;AFogH7B;;AgB7+GA;;EAeQ,yBdtCqB;EcuCrB,qBdvCqB;EcwCrB,Yd5BuB;AF+/G/B;;AgBp/GA;;EAeQ,4Bd5BsB;Ec6BtB,wBd7BsB;Ec8BtB,cdpCsB;AF8gH9B;;AgB3/GA;;EAeQ,yBdlCsB;EcmCtB,qBdnCsB;EcoCtB,iBd9BsB;AF+gH9B;;AgBlgHA;;EAeQ,yBdrB0B;EcsB1B,qBdtB0B;EcuB1B,WPmBQ;ATq+GhB;;AgBzgHA;;EAeQ,yBdnB0B;EcoB1B,qBdpB0B;EcqB1B,WPmBQ;AT4+GhB;;AgBhhHA;;EAeQ,yBdpB0B;EcqB1B,qBdrB0B;EcsB1B,WPmBQ;ATm/GhB;;AgBvhHA;;EAeQ,yBdtB0B;EcuB1B,qBdvB0B;EcwB1B,WPmBQ;AT0/GhB;;AgB9hHA;;EAeQ,yBdvB0B;EcwB1B,qBdxB0B;EcyB1B,yBPiBa;ATmgHrB;;AgBriHA;;EAeQ,yBdjB0B;EckB1B,qBdlB0B;EcmB1B,WPmBQ;ATwgHhB;;AgB5iHA;;EAoBM,mBAAmB;EACnB,SAAS;AhB6hHf;;AgBljHA;;EAuBM,yBd7B4B;Ec8B5B,WPYU;ATohHhB;;AgBxjHA;;;;EA2BQ,mBAAmB;AhBoiH3B;;AgB/jHA;EA6BI,cdhD0B;AFslH9B;;AgBnkHA;EA+BM,gBAAgB;AhBwiHtB;;AgBvkHA;EAkCM,yBdxC4B;EcyC5B,WPCU;ATwiHhB;;AgB5kHA;;EAsCQ,mBAAmB;AhB2iH3B;;AgBjlHA;;EAyCQ,kBPLQ;EOMR,mBAAmB;AhB6iH3B;;AgBvlHA;EA4CI,6BAxDqC;AhBumHzC;;AgB3lHA;;EA+CM,qBAhEgC;EAiEhC,cdnEwB;AFonH9B;;AgBjmHA;EAkDI,6BA5DqC;AhB+mHzC;;AgBrmHA;;EAqDM,qBApEgC;EAqEhC,cdzEwB;AF8nH9B;;AgB3mHA;EAwDI,6BAnEqC;AhB0nHzC;;AgB/mHA;;EA6DU,sBAAsB;AhBujHhC;;AgBpnHA;;EAkEM,iBAAiB;AhBujHvB;;AgBznHA;;EAuEU,wBAAwB;AhBujHlC;;AgB9nHA;EAyEI,WAAW;AhByjHf;;AgBloHA;EA8EU,yBd1FoB;AFkpH9B;;AgBtoHA;EAmFY,yBd/FkB;AFspH9B;;AgB1oHA;EAqFc,4BdlGgB;AF2pH9B;;AgB9oHA;;EAyFM,qBAAqB;AhB0jH3B;;AgBnpHA;EA8FU,yBd1GoB;AFmqH9B;;AgBvjHA;Ef3DE,iCAAiC;Ee8DjC,cAAc;EACd,kBAAkB;EAClB,eAAe;AhByjHjB;;AiBlrHA;EACE,mBAAmB;EACnB,aAAa;EACb,eAAe;EACf,2BAA2B;AjBqrH7B;;AiBzrHA;EAMI,qBAAqB;AjBurHzB;;AiB7rHA;EAQM,oBAAoB;AjByrH1B;;AiBjsHA;EAUI,sBAAsB;AjB2rH1B;;AiBrsHA;EAYI,mBAAmB;AjB6rHvB;;AiBzsHA;EAgBM,efeO;AF8qHb;;AiB7sHA;EAmBM,kBfWU;AFmrHhB;;AiBjtHA;EAqBI,uBAAuB;AjBgsH3B;;AiBrtHA;EAuBM,qBAAqB;EACrB,oBAAoB;AjBksH1B;;AiB1tHA;EA0BI,yBAAyB;AjBosH7B;;AiB9tHA;EA6BQ,mBAAmB;AjBqsH3B;;AiBluHA;EA+BQ,eAAe;AjBusHvB;;AiBtuHA;EAkCM,eAAe;AjBwsHrB;;AiB1uHA;EAoCQ,cAAc;EACd,4BAA4B;EAC5B,yBAAyB;AjB0sHjC;;AiBhvHA;EAwCQ,6BAA6B;EAC7B,0BAA0B;AjB4sHlC;;AiB1sHA;EACE,mBAAmB;EACnB,4BftC4B;EeuC5B,kBfiBU;EehBV,cf7C4B;Ee8C5B,oBAAoB;EACpB,kBfjBc;EekBd,WAAW;EACX,uBAAuB;EACvB,gBAAgB;EAChB,oBAAoB;EACpB,qBAAqB;EACrB,mBAAmB;AjB6sHrB;;AiBztHA;EAcI,oBAAoB;EACpB,uBAAuB;AjB+sH3B;;AiB9tHA;EAqBM,uBfvDyB;EewDzB,cfpEuB;AFixH7B;;AiBnuHA;EAqBM,yBfnEuB;EeoEvB,YfxDyB;AF0wH/B;;AiBxuHA;EAqBM,4BfzDwB;Ee0DxB,cfhEwB;AFuxH9B;;AiB7uHA;EAqBM,yBf/DwB;EegExB,iBf1DwB;AFsxH9B;;AiBlvHA;EAqBM,yBflD4B;EemD5B,WRTU;AT0uHhB;;AiBvvHA;EAqBM,yBfhD4B;EeiD5B,WRTU;AT+uHhB;;AiB5vHA;EAqBM,yBfjD4B;EekD5B,WRTU;ATovHhB;;AiBjwHA;EAqBM,yBfnD4B;EeoD5B,WRTU;ATyvHhB;;AiBtwHA;EAqBM,yBfpD4B;EeqD5B,yBRXe;ATgwHrB;;AiB3wHA;EAqBM,yBf9C4B;Ee+C5B,WRTU;ATmwHhB;;AiBhxHA;EAyBI,kBfpCY;AF+xHhB;;AiBpxHA;EA2BI,efvCS;AFoyHb;;AiBxxHA;EA6BI,kBf1CY;AFyyHhB;;AiB5xHA;EAgCM,qBAAqB;EACrB,sBAAsB;AjBgwH5B;;AiBjyHA;EAmCM,qBAAqB;EACrB,sBAAsB;AjBkwH5B;;AiBtyHA;EAsCM,qBAAqB;EACrB,sBAAsB;AjBowH5B;;AiB3yHA;EA0CI,gBAvFmB;EAwFnB,UAAU;EACV,kBAAkB;EAClB,UAAU;AjBqwHd;;AiBlzHA;EAgDM,8BAA8B;EAC9B,WAAW;EACX,cAAc;EACd,SAAS;EACT,kBAAkB;EAClB,QAAQ;EACR,kEAA0D;UAA1D,0DAA0D;EAC1D,uCAA+B;UAA/B,+BAA+B;AjBswHrC;;AiB7zHA;EAyDM,WAAW;EACX,UAAU;AjBwwHhB;;AiBl0HA;EA4DM,WAAW;EACX,UAAU;AjB0wHhB;;AiBv0HA;EAgEM,yBAAmD;AjB2wHzD;;AiB30HA;EAkEM,yBAAoD;AjB6wH1D;;AiB/0HA;EAoEI,uBf9CqB;AF6zHzB;;AiB7wHA;EAEI,0BAA0B;AjB+wH9B;;AkBp3HA;;EAGE,sBAAsB;AlBs3HxB;;AkBz3HA;;;;EAMI,oBAAoB;AlB03HxB;;AkBh4HA;;EAQI,iBApBmB;AlBi5HvB;;AkBr4HA;;EAUI,iBArBmB;AlBq5HvB;;AkB14HA;;EAYI,sBAAsB;AlBm4H1B;;AkBj4HA;EACE,chB5B4B;EgB+B5B,ehBJW;EgBKX,gBhBImB;EgBHnB,kBAnCuB;AlBq6HzB;;AkBx4HA;EAQI,cApCwB;EAqCxB,oBApCyB;AlBw6H7B;;AkB74HA;EAWI,oBAAoB;AlBs4HxB;;AkBj5HA;EAaI,oBA7B+B;AlBq6HnC;;AkBr5HA;EAkBM,ehBpBO;AF25Hb;;AkBz5HA;EAkBM,iBhBnBS;AF85Hf;;AkB75HA;EAkBM,ehBlBO;AFi6Hb;;AkBj6HA;EAkBM,iBhBjBS;AFo6Hf;;AkBr6HA;EAkBM,kBhBhBU;AFu6HhB;;AkBz6HA;EAkBM,ehBfO;AF06Hb;;AkB76HA;EAkBM,kBhBdU;AF66HhB;;AkB75HA;EACE,chB/C4B;EgBkD5B,kBhBtBc;EgBuBd,gBhBlBiB;EgBmBjB,iBA7CyB;AlB28H3B;;AkBp6HA;EAQI,chBvD0B;EgBwD1B,gBhBpBiB;AFo7HrB;;AkBz6HA;EAWI,oBA/C+B;AlBi9HnC;;AkB76HA;EAgBM,ehBtCO;AFu8Hb;;AkBj7HA;EAgBM,iBhBrCS;AF08Hf;;AkBr7HA;EAgBM,ehBpCO;AF68Hb;;AkBz7HA;EAgBM,iBhBnCS;AFg9Hf;;AkB77HA;EAgBM,kBhBlCU;AFm9HhB;;AkBj8HA;EAgBM,ehBjCO;AFs9Hb;;AkBr8HA;EAgBM,kBhBhCU;AFy9HhB;;AmBx/HA;EACE,cAAc;EACd,eAAe;EACf,mBAAmB;EACnB,kBAAkB;EAClB,yBAAyB;AnB2/H3B;;AmBz/HA;EAEE,gBjByBiB;EiBxBjB,eAAe;EACf,gBAAgB;EAChB,UAAU;AnB2/HZ;;AmBhgIA;EAOI,cAAc;EACd,eAAe;AnB6/HnB;;AmBx/HA;EACE,mBAAmB;EACnB,4BjBhB4B;EiBiB5B,uBjByCuB;EiBxCvB,oBAAoB;EACpB,kBjBIc;EiBHd,WAAW;EACX,uBAAuB;EACvB,oBAAoB;EACpB,gBAAgB;EAChB,uBAAuB;EACvB,kBAAkB;EAClB,mBAAmB;AnB2/HrB;;AoB5+HA;EAxBE,uBlBf6B;EkBgB7B,qBlBpB4B;EkBqB5B,kBlBqCU;EkBpCV,clB1B4B;AFkiI9B;;ACr+HI;EmBjCA,4BlB5B0B;AFsiI9B;;ACz+HI;EmBjCA,4BlB5B0B;AF0iI9B;;AC7+HI;EmBjCA,4BlB5B0B;AF8iI9B;;ACj/HI;EmBjCA,4BlB5B0B;AFkjI9B;;AoBrhIE;EAEE,qBlB5B0B;AFmjI9B;;AoBthIE;EAIE,qBlBrB8B;EkBsB9B,kDlBtB8B;AF4iIlC;;AoBrhIE;;;;;EAEE,4BlBlC0B;EkBmC1B,wBlBnC0B;EkBoC1B,gBAAgB;EAChB,clBzC0B;AFokI9B;;ACzgII;;;;;EmBhBE,+BlB3CwB;AF4kI9B;;ACjhII;;;;;EmBhBE,+BlB3CwB;AFolI9B;;ACzhII;;;;;EmBhBE,+BlB3CwB;AF4lI9B;;ACjiII;;;;;EmBhBE,+BlB3CwB;AFomI9B;;AqB5mIA;EAEE,iDnBA2B;EmBC3B,eAAe;EACf,WAAW;ArB8mIb;;AqB7mIE;EACE,gBAAgB;ArBgnIpB;;AqB5mII;EACE,mBnBGyB;AF4mI/B;;AqBhnIK;EAMG,mDnBFuB;AFgnI/B;;AqBpnII;EACE,qBnBTuB;AFgoI7B;;AqBxnIK;EAMG,gDnBdqB;AFooI7B;;AqB5nII;EACE,wBnBCwB;AF8nI9B;;AqBhoIK;EAMG,mDnBJsB;AFkoI9B;;AqBpoII;EACE,qBnBLwB;AF4oI9B;;AqBxoIK;EAMG,gDnBVsB;AFgpI9B;;AqB5oII;EACE,qBnBQ4B;AFuoIlC;;AqBhpIK;EAMG,iDnBG0B;AF2oIlC;;AqBppII;EACE,qBnBU4B;AF6oIlC;;AqBxpIK;EAMG,kDnBK0B;AFipIlC;;AqB5pII;EACE,qBnBS4B;AFspIlC;;AqBhqIK;EAMG,kDnBI0B;AF0pIlC;;AqBpqII;EACE,qBnBO4B;AFgqIlC;;AqBxqIK;EAMG,iDnBE0B;AFoqIlC;;AqB5qII;EACE,qBnBM4B;AFyqIlC;;AqBhrIK;EAMG,kDnBC0B;AF6qIlC;;AqBprII;EACE,qBnBY4B;AF2qIlC;;AqBxrIK;EAMG,iDnBO0B;AF+qIlC;;AqBprIE;ElB0BA,kBDuBgB;ECtBhB,kBDRc;AFsqIhB;;AqBvrIE;ElB2BA,kBDZc;AF4qIhB;;AqBzrIE;ElB2BA,iBDfa;AFirIf;;AqB1rIE;EACE,cAAc;EACd,WAAW;ArB6rIf;;AqB5rIE;EACE,eAAe;EACf,WAAW;ArB+rIf;;AqB7rIA;EAGI,uBnBmCqB;EmBlCrB,iBAAiB;EACjB,kBAAkB;ArB8rItB;;AqBnsIA;EAOI,6BAA6B;EAC7B,yBAAyB;EACzB,gBAAgB;EAChB,eAAe;EACf,gBAAgB;ArBgsIpB;;AqB9rIA;EAEE,cAAc;EACd,eAAe;EACf,eAAe;EACf,gBAAgB;EAChB,gBAAgB;ArBgsIlB;;AqBtsIA;EAQI,iBAAiB;EACjB,iBAAiB;ArBksIrB;;AqB3sIA;EAWI,eAAe;ArBosInB;;AqB/sIA;EAcI,YAAY;ArBqsIhB;;AsBhwIA;EACE,eAAe;EACf,qBAAqB;EACrB,iBAAiB;EACjB,kBAAkB;AtBmwIpB;;AsBlwIE;EACE,eAAe;AtBqwInB;;AsBpwIE;EACE,cpBF0B;AFywI9B;;AsBtwIE;;;EAEE,cpBH0B;EoBI1B,mBAAmB;AtB0wIvB;;AsBrwIA;EAGI,kBAAkB;AtBswItB;;AuB1xIA;EACE,qBAAqB;EACrB,eAAe;EACf,kBAAkB;EAClB,mBAAmB;AvB6xIrB;;AuBjyIA;EAMI,cpBDmB;AHgyIvB;;AuBryIA;EAUM,qBrBW4B;EqBV5B,cAAc;EACd,UAAU;AvB+xIhB;;AuB3yIA;EAeM,uBrBuDmB;EqBtDnB,iBAAiB;AvBgyIvB;;AuBhzIA;EAmBI,eAAe;EACf,cAAc;EACd,cAAc;EACd,eAAe;EACf,aAAa;AvBiyIjB;;AuBxzIA;EAyBM,aAAa;AvBmyInB;;AuB5zIA;;EA4BM,wBrBhBwB;AFqzI9B;;AuBj0IA;EA8BM,oBAAoB;AvBuyI1B;;AuBr0IA;EAgCM,YAAY;EACZ,UAAU;AvByyIhB;;AuB10IA;EAmCQ,kBAAkB;AvB2yI1B;;AuB90IA;EAuCM,qBrBjCwB;AF40I9B;;AuBl1IA;EA6CQ,mBrB/BuB;AFw0I/B;;AuBt1IA;EA+CQ,mBrBjCuB;AF40I/B;;AuB11IA;EAkDU,qBAAgC;AvB4yI1C;;AuB91IA;EAuDU,mDrBzCqB;AFo1I/B;;AuBl2IA;EA6CQ,qBrB3CqB;AFo2I7B;;AuBt2IA;EA+CQ,qBrB7CqB;AFw2I7B;;AuB12IA;EAkDU,mBAAgC;AvB4zI1C;;AuB92IA;EAuDU,gDrBrDmB;AFg3I7B;;AuBl3IA;EA6CQ,wBrBjCsB;AF02I9B;;AuBt3IA;EA+CQ,wBrBnCsB;AF82I9B;;AuB13IA;EAkDU,qBAAgC;AvB40I1C;;AuB93IA;EAuDU,mDrB3CoB;AFs3I9B;;AuBl4IA;EA6CQ,qBrBvCsB;AFg4I9B;;AuBt4IA;EA+CQ,qBrBzCsB;AFo4I9B;;AuB14IA;EAkDU,qBAAgC;AvB41I1C;;AuB94IA;EAuDU,gDrBjDoB;AF44I9B;;AuBl5IA;EA6CQ,qBrB1B0B;AFm4IlC;;AuBt5IA;EA+CQ,qBrB5B0B;AFu4IlC;;AuB15IA;EAkDU,qBAAgC;AvB42I1C;;AuB95IA;EAuDU,iDrBpCwB;AF+4IlC;;AuBl6IA;EA6CQ,qBrBxB0B;AFi5IlC;;AuBt6IA;EA+CQ,qBrB1B0B;AFq5IlC;;AuB16IA;EAkDU,qBAAgC;AvB43I1C;;AuB96IA;EAuDU,kDrBlCwB;AF65IlC;;AuBl7IA;EA6CQ,qBrBzB0B;AFk6IlC;;AuBt7IA;EA+CQ,qBrB3B0B;AFs6IlC;;AuB17IA;EAkDU,qBAAgC;AvB44I1C;;AuB97IA;EAuDU,kDrBnCwB;AF86IlC;;AuBl8IA;EA6CQ,qBrB3B0B;AFo7IlC;;AuBt8IA;EA+CQ,qBrB7B0B;AFw7IlC;;AuB18IA;EAkDU,qBAAgC;AvB45I1C;;AuB98IA;EAuDU,iDrBrCwB;AFg8IlC;;AuBl9IA;EA6CQ,qBrB5B0B;AFq8IlC;;AuBt9IA;EA+CQ,qBrB9B0B;AFy8IlC;;AuB19IA;EAkDU,qBAAgC;AvB46I1C;;AuB99IA;EAuDU,kDrBtCwB;AFi9IlC;;AuBl+IA;EA6CQ,qBrBtB0B;AF+8IlC;;AuBt+IA;EA+CQ,qBrBxB0B;AFm9IlC;;AuB1+IA;EAkDU,qBAAgC;AvB47I1C;;AuB9+IA;EAuDU,iDrBhCwB;AF29IlC;;AuBl/IA;EpB4CE,kBDuBgB;ECtBhB,kBDRc;AFk9IhB;;AuBv/IA;EpB+CE,kBDZc;AFw9IhB;;AuB3/IA;EpBiDE,iBDfa;AF69If;;AuB//IA;EAkEM,qBrB1DwB;AF2/I9B;;AuBngJA;EAoEI,WAAW;AvBm8If;;AuBvgJA;EAsEM,WAAW;AvBq8IjB;;AuB3gJA;EA0EM,aAAa;EACb,kBAAkB;EAClB,cAAc;EACd,YAAY;EACZ,uBAAe;UAAf,eAAe;AvBq8IrB;;AuBnhJA;EAgFM,kBrB3CU;AFk/IhB;;AuBvhJA;EAkFM,kBrB/CU;AFw/IhB;;AuB3hJA;EAoFM,iBrBlDS;AF6/If;;AwBlhJA;EAEE,oBAAoB;EACpB,aAAa;EACb,2BAA2B;EAC3B,kBAAkB;AxBohJpB;;AwBzhJA;EAYQ,uBtBXuB;EsBYvB,yBAAyB;EACzB,ctBzBqB;AF0iJ7B;;AwB/hJA;EAkBU,yBAAsC;EACtC,yBAAyB;EACzB,ctB/BmB;AFgjJ7B;;AwBriJA;EAwBU,yBAAyB;EACzB,+CtBxBqB;EsByBrB,ctBrCmB;AFsjJ7B;;AwB3iJA;EA8BU,yBAAoC;EACpC,yBAAyB;EACzB,ctB3CmB;AF4jJ7B;;AwBjjJA;EAYQ,yBtBvBqB;EsBwBrB,yBAAyB;EACzB,YtBbuB;AFsjJ/B;;AwBvjJA;EAkBU,yBAAsC;EACtC,yBAAyB;EACzB,YtBnBqB;AF4jJ/B;;AwB7jJA;EAwBU,yBAAyB;EACzB,4CtBpCmB;EsBqCnB,YtBzBqB;AFkkJ/B;;AwBnkJA;EA8BU,uBAAoC;EACpC,yBAAyB;EACzB,YtB/BqB;AFwkJ/B;;AwBzkJA;EAYQ,4BtBbsB;EsBctB,yBAAyB;EACzB,ctBrBsB;AFslJ9B;;AwB/kJA;EAkBU,yBAAsC;EACtC,yBAAyB;EACzB,ctB3BoB;AF4lJ9B;;AwBrlJA;EAwBU,yBAAyB;EACzB,+CtB1BoB;EsB2BpB,ctBjCoB;AFkmJ9B;;AwB3lJA;EA8BU,yBAAoC;EACpC,yBAAyB;EACzB,ctBvCoB;AFwmJ9B;;AwBjmJA;EAYQ,yBtBnBsB;EsBoBtB,yBAAyB;EACzB,iBtBfsB;AFwmJ9B;;AwBvmJA;EAkBU,yBAAsC;EACtC,yBAAyB;EACzB,iBtBrBoB;AF8mJ9B;;AwB7mJA;EAwBU,yBAAyB;EACzB,4CtBhCoB;EsBiCpB,iBtB3BoB;AFonJ9B;;AwBnnJA;EA8BU,yBAAoC;EACpC,yBAAyB;EACzB,iBtBjCoB;AF0nJ9B;;AwBznJA;EAYQ,yBtBN0B;EsBO1B,yBAAyB;EACzB,WfkCQ;AT+kJhB;;AwB/nJA;EAk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CX,evBvHW;EuBwHX,kBAAkB;EAClB,gBAAgB;AzB+jKlB;;AyBpkKA;;;EAaU,cvB7JoB;AF0tK9B;;AyB1kKA;;;EAeQ,kBvBlIQ;AFmsKhB;;AyBhlKA;;;EAiBQ,kBvBtIQ;AF2sKhB;;AyBtlKA;;;EAmBQ,iBvBzIO;AFktKf;;AyB5lKA;EAqBM,cvBnKwB;EuBoKxB,ctBzKiB;EsB0KjB,oBAAoB;EACpB,kBAAkB;EAClB,MAAM;EACN,atB7KiB;EsB8KjB,UAAU;AzB2kKhB;;AyBtmKA;;EA+BM,oBtBlLiB;AH8vKvB;;AyB3mKA;EAiCM,OAAO;AzB8kKb;;AyB/mKA;;EAqCM,qBtBxLiB;AHuwKvB;;AyBpnKA;EAuCM,QAAQ;AzBilKd;;AyBxnKA;EA2CM,6BAA6B;EAC7B,cAAc;EACd,YAAY;EACZ,UAAU;AzBilKhB;;AyB/nKA;EAgDM,kBvBnKU;AFsvKhB;;AyBnoKA;EAkDM,kBvBvKU;AF4vKhB;;AyBvoKA;EAoDM,iBvB1KS;AFiwKf;;A0B1xKA;EAGE,exBwBW;EwBvBX,mBAAmB;A1B2xKrB;;A0B/xKA;EAMI,mBAAmB;EACnB,cxBK8B;EwBJ9B,aAAa;EACb,uBAAuB;EACvB,iBAduC;A1B2yK3C;;A0BvyKA;EAYM,cxBfwB;AF8yK9B;;A0B3yKA;EAcI,mBAAmB;EACnB,aAAa;A1BiyKjB;;A0BhzKA;EAiBM,eAAe;A1BmyKrB;;A0BpzKA;EAoBQ,cxBvBsB;EwBwBtB,eAAe;EACf,oBAAoB;A1BoyK5B;;A0B1zKA;EAwBM,cxBxBwB;EwByBxB,iBAAiB;A1BsyKvB;;A0B/zKA;;EA4BI,uBAAuB;EACvB,aAAa;EACb,eAAe;EACf,2BAA2B;A1BwyK/B;;A0Bv0KA;EAkCM,mBAAmB;A1ByyKzB;;A0B30KA;EAoCM,kBAAkB;A1B2yKxB;;A0B/0KA;;EAyCM,uBAAuB;A1B2yK7B;;A0Bp1KA;;EA6CM,yBAAyB;A1B4yK/B;;A0Bz1KA;EAgDI,kBxBpBY;AFi0KhB;;A0B71KA;EAkDI,kBxBxBY;AFu0KhB;;A0Bj2KA;EAoDI,iBxB3BW;AF40Kf;;A0Br2KA;EAwDM,iBAAiB;A1BizKvB;;A0Bz2KA;EA2DM,iBAAiB;A1BkzKvB;;A0B72KA;EA8DM,iBAAiB;A1BmzKvB;;A0Bj3KA;EAiEM,iBAAiB;A1BozKvB;;A2B32KA;EACE,uBzBN6B;EyBO7B,4EzBnB2B;EyBoB3B,czBf4B;EyBgB5B,eAAe;EACf,kBAAkB;A3B82KpB;;A2B52KA;EACE,6BAvBwC;EAwBxC,oBAAoB;EACpB,2CzB3B2B;EyB4B3B,aAAa;A3B+2Kf;;A2B72KA;EACE,mBAAmB;EACnB,czB5B4B;EyB6B5B,aAAa;EACb,YAAY;EACZ,gBzBMe;EyBLf,gBAhC2B;A3Bg5K7B;;A2Bt3KA;EAQI,uBAAuB;A3Bk3K3B;;A2Bh3KA;EACE,mBAAmB;EACnB,eAAe;EACf,aAAa;EACb,uBAAuB;EACvB,gBAzC2B;A3B45K7B;;A2Bj3KA;EACE,cAAc;EACd,kBAAkB;A3Bo3KpB;;A2Bl3KA;EACE,6BA5CyC;EA6CzC,eA5C2B;A3Bi6K7B;;A2Bn3KA;EACE,6BA7CwC;EA8CxC,6BzBjD4B;EyBkD5B,oBAAoB;EACpB,aAAa;A3Bs3Kf;;A2Bp3KA;EACE,mBAAmB;EACnB,aAAa;EACb,aAAa;EACb,YAAY;EACZ,cAAc;EACd,uBAAuB;EACvB,gBAvD2B;A3B86K7B;;A2B93KA;EASI,+BzB9D0B;AFu7K9B;;A2Br3KA;EAEI,qBzB/BkB;AFs5KtB;;A4Bl7KA;EACE,oBAAoB;EACpB,kBAAkB;EAClB,mBAAmB;A5Bq7KrB;;A4Bx7KA;EAOM,cAAc;A5Bq7KpB;;A4B57KA;EAUM,UAAU;EACV,QAAQ;A5Bs7Kd;;A4Bj8KA;EAcM,YAAY;EACZ,mBA9BuB;EA+BvB,oBAAoB;EACpB,SAAS;A5Bu7Kf;;A4Br7KA;EACE,aAAa;EACb,OAAO;EACP,gBAzC6B;EA0C7B,gBAtC2B;EAuC3B,kBAAkB;EAClB,SAAS;EACT,WApCqB;A5B49KvB;;A4Bt7KA;EACE,uB1BlC6B;E0BmC7B,kB1BmBU;E0BlBV,4E1BhD2B;E0BiD3B,sBA9CsC;EA+CtC,mBA9CmC;A5Bu+KrC;;Acn+KgB;Ec6Cd,c1BhD4B;E0BiD5B,cAAc;EACd,mBAAmB;EACnB,gBAAgB;EAChB,sBAAsB;EACtB,kBAAkB;A5B07KpB;;A4Bx7KA;;EAEE,mBAAmB;EACnB,gBAAgB;EAChB,mBAAmB;EACnB,WAAW;A5B27Kb;;A4Bh8KA;;EAOI,4B1BzD0B;E0B0D1B,c1BpEyB;AFkgL7B;;A4Bt8KA;;EAUI,yB1BnD8B;E0BoD9B,WnBZY;AT68KhB;;A4B/7KA;EACE,yB1BlE4B;E0BmE5B,YAAY;EACZ,cAAc;EACd,WAAW;EACX,gBAAgB;A5Bk8KlB;;A6BhhLA;EAEE,mBAAmB;EACnB,8BAA8B;A7BkhLhC;;A6BrhLA;EAKI,kB3B6DQ;AFu9KZ;;A6BzhLA;EAOI,qBAAqB;EACrB,mBAAmB;A7BshLvB;;A6B9hLA;EAWI,aAAa;A7BuhLjB;;A6BliLA;;EAcM,aAAa;A7ByhLnB;;A6BviLA;EAgBM,aAAa;A7B2hLnB;;A6B3iLA;EAmBQ,gBAAgB;EAChB,qBAtBiC;A7BkjLzC;;A6BhjLA;EAsBQ,YAAY;A7B8hLpB;;ACj+KE;E4BnFF;IAyBI,aAAa;E7BgiLf;E6BzjLF;IA4BQ,YAAY;E7BgiLlB;AACF;;A6B/hLA;EACE,mBAAmB;EACnB,aAAa;EACb,gBAAgB;EAChB,YAAY;EACZ,cAAc;EACd,uBAAuB;A7BkiLzB;;A6BxiLA;;EASI,gBAAgB;A7BoiLpB;;AC5/KE;E4BjDF;IAaM,sBA7CmC;E7BklLvC;AACF;;A6BpiLA;;EAEE,gBAAgB;EAChB,YAAY;EACZ,cAAc;A7BuiLhB;;A6B3iLA;;EAQM,YAAY;A7BwiLlB;;AC1gLE;E4BtCF;;IAYQ,qBA3DiC;E7BqmLvC;AACF;;A6BziLA;EACE,mBAAmB;EACnB,2BAA2B;A7B4iL7B;;AC1hLE;E4BpBF;IAMM,kBAAkB;E7B6iLtB;AACF;;AC5hLE;E4BxBF;IAQI,aAAa;E7BijLf;AACF;;A6BhjLA;EACE,mBAAmB;EACnB,yBAAyB;A7BmjL3B;;ACviLE;E4BdF;IAKI,aAAa;E7BqjLf;AACF;;A8BxnLA;EAEE,uB5BE6B;E4BD7B,kB5BuDU;E4BtDV,4E5BZ2B;AFsoL7B;;A8BrnLA;EACE,cAAc;EACd,kBAAkB;A9BwnLpB;;A8B1nLA;EAII,c5BhB0B;AF0oL9B;;A8B9nLA;EAMI,2B5B2CQ;E4B1CR,4B5B0CQ;AFklLZ;;A8BnoLA;EASI,8B5BwCQ;E4BvCR,+B5BuCQ;AFulLZ;;A8BxoLA;EAYI,gC5BrB0B;AFqpL9B;;A8B5oLA;EAcI,yB5BZ8B;E4Ba9B,WrB2BY;ATumLhB;;A8BhoLA;EACE,4B5BzB4B;E4B0B5B,eAAe;A9BmoLjB;;A+BzqLA;EACE,uBAAuB;EACvB,aAAa;EACb,gBAAgB;A/B4qLlB;;A+B/qLA;EAKI,sBAAsB;A/B8qL1B;;A+BnrLA;EAOI,8C7BG0B;E6BF1B,aAAa;EACb,oBAAoB;A/BgrLxB;;A+BzrLA;;EAYM,qBAAqB;A/BkrL3B;;A+B9rLA;EAcM,mBAAmB;A/BorLzB;;A+BlsLA;EAgBQ,kBAAkB;A/BsrL1B;;A+BtsLA;EAkBI,8C7BR0B;E6BS1B,gBAAgB;EAChB,iBAAiB;A/BwrLrB;;A+B5sLA;EAwBM,kBAAkB;EAClB,mBAAmB;A/BwrLzB;;A+BtrLA;;EAEE,gBAAgB;EAChB,YAAY;EACZ,cAAc;A/ByrLhB;;A+BvrLA;EACE,kBAAkB;A/B0rLpB;;A+BxrLA;EACE,iBAAiB;A/B2rLnB;;A+BzrLA;EACE,gBAAgB;EAChB,YAAY;EACZ,cAAc;EACd,gBAAgB;A/B4rLlB;;ACtpLE;E8B1CF;IAQI,gBAAgB;E/B6rLlB;AACF;;AgC3tLA;EACE,e9BiBW;AF6sLb;;AgC/tLA;EAII,kB9BeY;AFgtLhB;;AgCnuLA;EAMI,kB9BWY;AFstLhB;;AgCvuLA;EAQI,iB9BQW;AF2tLf;;AgCjuLA;EACE,iBArB0B;AhCyvL5B;;AgCruLA;EAGI,kB9BoCc;E8BnCd,c9BzB0B;E8B0B1B,cAAc;EACd,qBAzBiC;AhC+vLrC;;AgC5uLA;EAQM,4B9BxBwB;E8ByBxB,c9B/BwB;AFuwL9B;;AgCjvLA;EAYM,yB9BnB4B;E8BoB5B,WvBoBU;ATqtLhB;;AgCtvLA;EAgBM,8B9BlCwB;E8BmCxB,cAnC0B;EAoC1B,oBAnCgC;AhC6wLtC;;AgCxuLA;EACE,c9BzC4B;E8B0C5B,iBApC2B;EAqC3B,qBApC+B;EAqC/B,yBAAyB;AhC2uL3B;;AgC/uLA;EAMI,eAtCoB;AhCmxLxB;;AgCnvLA;EAQI,kBAxCoB;AhCuxLxB;;AiClxLA;EAEE,4B/BX4B;E+BY5B,kB/B4CU;E+B3CV,e/BWW;AFywLb;;AiCxxLA;EAMI,mBAAmB;AjCsxLvB;;AiC5xLA;EAQI,mBAAmB;EACnB,0BAA0B;AjCwxL9B;;AiCjyLA;EAYI,kB/BIY;AFqxLhB;;AiCryLA;EAcI,kB/BAY;AF2xLhB;;AiCzyLA;EAgBI,iB/BHW;AFgyLf;;AiC7yLA;EA0BM,uBAAmD;AjCuxLzD;;AiCjzLA;EA4BQ,uB/BnCuB;E+BoCvB,c/BhDqB;AFy0L7B;;AiCtzLA;EA+BQ,mB/BtCuB;E+BuCvB,cAA6E;AjC2xLrF;;AiC3zLA;EA0BM,yBAAmD;AjCqyLzD;;AiC/zLA;EA4BQ,yB/B/CqB;E+BgDrB,Y/BpCuB;AF20L/B;;AiCp0LA;EA+BQ,qB/BlDqB;E+BmDrB,cAA6E;AjCyyLrF;;AiCz0LA;EA0BM,yBAAmD;AjCmzLzD;;AiC70LA;EA4BQ,4B/BrCsB;E+BsCtB,c/B5CsB;AFi2L9B;;AiCl1LA;EA+BQ,wB/BxCsB;E+ByCtB,cAA6E;AjCuzLrF;;AiCv1LA;EA0BM,yBAAmD;AjCi0LzD;;AiC31LA;EA4BQ,yB/B3CsB;E+B4CtB,iB/BtCsB;AFy2L9B;;AiCh2LA;EA+BQ,qB/B9CsB;E+B+CtB,cAA6E;AjCq0LrF;;AiCr2LA;EA0BM,yBAAmD;AjC+0LzD;;AiCz2LA;EA4BQ,yB/B9B0B;E+B+B1B,WxBWQ;ATs0LhB;;AiC92LA;EA+BQ,qB/BjC0B;E+BkC1B,cAA6E;AjCm1LrF;;AiCn3LA;EA0BM,yBAAmD;AjC61LzD;;AiCv3LA;EA4BQ,yB/B5B0B;E+B6B1B,WxBWQ;ATo1LhB;;AiC53LA;EA+BQ,qB/B/B0B;E+BgC1B,cAA6E;AjCi2LrF;;AiCj4LA;EA0BM,yBAAmD;AjC22LzD;;AiCr4LA;EA4BQ,yB/B7B0B;E+B8B1B,WxBWQ;ATk2LhB;;AiC14LA;EA+BQ,qB/BhC0B;E+BiC1B,cAA6E;AjC+2LrF;;AiC/4LA;EA0BM,yBAAmD;AjCy3LzD;;AiCn5LA;EA4BQ,yB/B/B0B;E+BgC1B,WxBWQ;ATg3LhB;;AiCx5LA;EA+BQ,qB/BlC0B;E+BmC1B,cAA6E;AjC63LrF;;AiC75LA;EA0BM,yBAAmD;AjCu4LzD;;AiCj6LA;EA4BQ,yB/BhC0B;E+BiC1B,yBxBSa;ATg4LrB;;AiCt6LA;EA+BQ,qB/BnC0B;E+BoC1B,cAA6E;AjC24LrF;;AiC36LA;EA0BM,yBAAmD;AjCq5LzD;;AiC/6LA;EA4BQ,yB/B1B0B;E+B2B1B,WxBWQ;AT44LhB;;AiCp7LA;EA+BQ,qB/B7B0B;E+B8B1B,cAA6E;AjCy5LrF;;AiCv5LA;EACE,mBAAmB;EACnB,yB/BlD4B;E+BmD5B,0BAAgE;EAChE,WxBEc;EwBDd,aAAa;EACb,gB/BlBe;E+BmBf,8BAA8B;EAC9B,iBAAiB;EACjB,mBA1DiC;EA2DjC,kBAAkB;AjC05LpB;;AiCp6LA;EAYI,YAAY;EACZ,cAAc;EACd,mBAAmB;AjC45LvB;;AiC16LA;EAgBI,eArDgC;EAsDhC,yBAAyB;EACzB,0BAA0B;AjC85L9B;;AiC55LA;EACE,qB/BlE4B;E+BmE5B,kB/BTU;E+BUV,mBAAmB;EACnB,uBArEmC;EAsEnC,c/BzE4B;E+B0E5B,qBArEiC;AjCo+LnC;;AiCr6LA;;EASI,uB/BtE2B;AFu+L/B;;AiC16LA;EAWI,6BAtEgD;AjCy+LpD;;AkC39LA;EAEE,mBAAmB;EACnB,aAAa;EACb,sBAAsB;EACtB,uBAAuB;EACvB,gBAAgB;EAChB,eAAe;EACf,WAtCU;AlCmgMZ;;AkCr+LA;EAWI,aAAa;AlC89LjB;;AkC59LA;EAEE,wChC3C2B;AFygM7B;;AkC59LA;;EAEE,cA5CgC;EA6ChC,+BAA0D;EAC1D,cAAc;EACd,kBAAkB;EAClB,WAAW;AlC+9Lb;;AC/7LE;EiCtCF;;IASI,cAAc;IACd,8BAA0D;IAC1D,YAtDuB;ElCwhMzB;AACF;;AkCj+LA;EAEE,gBAAgB;EAChB,YAtD2B;EAuD3B,eAAe;EACf,WAvDsB;EAwDtB,SAvDoB;EAwDpB,WA1D2B;AlC6hM7B;;AkCj+LA;EACE,aAAa;EACb,sBAAsB;EACtB,8BAAgD;EAChD,gBAAgB;EAChB,uBAAuB;AlCo+LzB;;AkCl+LA;;EAEE,mBAAmB;EACnB,4BhCnE4B;EgCoE5B,aAAa;EACb,cAAc;EACd,2BAA2B;EAC3B,aAlE4B;EAmE5B,kBAAkB;AlCq+LpB;;AkCn+LA;EACE,gChC7E4B;EgC8E5B,2BhCnBgB;EgCoBhB,4BhCpBgB;AF0/LlB;;AkCp+LA;EACE,chCtF4B;EgCuF5B,YAAY;EACZ,cAAc;EACd,iBhC7Da;EgC8Db,cA3E8B;AlCkjMhC;;AkCr+LA;EACE,8BhC9BgB;EgC+BhB,+BhC/BgB;EgCgChB,6BhC3F4B;AFmkM9B;;AkC3+LA;EAMM,mBAAmB;AlCy+LzB;;AkCv+LA;EjC5CE,iCAAiC;EiC8CjC,uBhC9F6B;EgC+F7B,YAAY;EACZ,cAAc;EACd,cAAc;EACd,aApF4B;AlC8jM9B;;AmCpiMA;EACE,uBjCzC6B;EiC0C7B,mBArDqB;EAsDrB,kBAAkB;EAClB,WApDW;AnC2lMb;;AmC3iMA;EASM,uBjCjDyB;EiCkDzB,cjC9DuB;AFomM7B;;AmChjMA;;EAcU,cjClEmB;AFymM7B;;AmCrjMA;;;;EAoBY,yBAAoC;EACpC,cjCzEiB;AFinM7B;;AmC7jMA;EAwBY,qBjC5EiB;AFqnM7B;;AmCjkMA;EA0BQ,cjC9EqB;AFynM7B;;ACljME;EkCnBF;;;;IAgCY,cjCpFiB;EFioM3B;EmC7kMF;;;;;;;;;;IAsCc,yBAAoC;IACpC,cjC3Fe;EF8oM3B;EmC1lMF;;IA0Cc,qBjC9Fe;EFkpM3B;EmC9lMF;;;IA8CU,yBAAoC;IACpC,cjCnGmB;EFwpM3B;EmCpmMF;IAmDc,uBjC3FiB;IiC4FjB,cjCxGe;EF4pM3B;AACF;;AmCzmMA;EASM,yBjC7DuB;EiC8DvB,YjClDyB;AFspM/B;;AmC9mMA;;EAcU,YjCtDqB;AF2pM/B;;AmCnnMA;;;;EAoBY,uBAAoC;EACpC,YjC7DmB;AFmqM/B;;AmC3nMA;EAwBY,mBjChEmB;AFuqM/B;;AmC/nMA;EA0BQ,YjClEuB;AF2qM/B;;AChnME;EkCnBF;;;;IAgCY,YjCxEmB;EFmrM7B;EmC3oMF;;;;;;;;;;IAsCc,uBAAoC;IACpC,YjC/EiB;EFgsM7B;EmCxpMF;;IA0Cc,mBjClFiB;EFosM7B;EmC5pMF;;;IA8CU,uBAAoC;IACpC,YjCvFqB;EF0sM7B;EmClqMF;IAmDc,yBjCvGe;IiCwGf,YjC5FiB;EF8sM7B;AACF;;AmCvqMA;EASM,4BjCnDwB;EiCoDxB,cjC1DwB;AF4tM9B;;AmC5qMA;;EAcU,cjC9DoB;AFiuM9B;;AmCjrMA;;;;EAoBY,yBAAoC;EACpC,cjCrEkB;AFyuM9B;;AmCzrMA;EAwBY,qBjCxEkB;AF6uM9B;;AmC7rMA;EA0BQ,cjC1EsB;AFivM9B;;AC9qME;EkCnBF;;;;IAgCY,cjChFkB;EFyvM5B;EmCzsMF;;;;;;;;;;IAsCc,yBAAoC;IACpC,cjCvFgB;EFswM5B;EmCttMF;;IA0Cc,qBjC1FgB;EF0wM5B;EmC1tMF;;;IA8CU,yBAAoC;IACpC,cjC/FoB;EFgxM5B;EmChuMF;IAmDc,4BjC7FgB;IiC8FhB,cjCpGgB;EFoxM5B;AACF;;AmCruMA;EASM,yBjCzDwB;EiC0DxB,iBjCpDwB;AFoxM9B;;AmC1uMA;;EAcU,iBjCxDoB;AFyxM9B;;AmC/uMA;;;;EAoBY,yBAAoC;EACpC,iBjC/DkB;AFiyM9B;;AmCvvMA;EAwBY,wBjClEkB;AFqyM9B;;AmC3vMA;EA0BQ,iBjCpEsB;AFyyM9B;;AC5uME;EkCnBF;;;;IAgCY,iBjC1EkB;EFizM5B;EmCvwMF;;;;;;;;;;IAsCc,yBAAoC;IACpC,iBjCjFgB;EF8zM5B;EmCpxMF;;IA0Cc,wBjCpFgB;EFk0M5B;EmCxxMF;;;IA8CU,yBAAoC;IACpC,iBjCzFoB;EFw0M5B;EmC9xMF;IAmDc,yBjCnGgB;IiCoGhB,iBjC9FgB;EF40M5B;AACF;;AmCnyMA;EASM,yBjC5C4B;EiC6C5B,W1BHU;ATiyMhB;;AmCxyMA;;EAcU,W1BPM;ATsyMhB;;AmC7yMA;;;;EAoBY,yBAAoC;EACpC,W1BdI;AT8yMhB;;AmCrzMA;EAwBY,kB1BjBI;ATkzMhB;;AmCzzMA;EA0BQ,W1BnBQ;ATszMhB;;AC1yME;EkCnBF;;;;IAgCY,W1BzBI;ET8zMd;EmCr0MF;;;;;;;;;;IAsCc,yBAAoC;IACpC,W1BhCE;ET20Md;EmCl1MF;;IA0Cc,kB1BnCE;ET+0Md;EmCt1MF;;;IA8CU,yBAAoC;IACpC,W1BxCM;ETq1Md;EmC51MF;IAmDc,yBjCtFoB;IiCuFpB,W1B7CE;ETy1Md;AACF;;AmCj2MA;EASM,yBjC1C4B;EiC2C5B,W1BHU;AT+1MhB;;AmCt2MA;;EAcU,W1BPM;ATo2MhB;;AmC32MA;;;;EAoBY,yBAAoC;EACpC,W1BdI;AT42MhB;;AmCn3MA;EAwBY,kB1BjBI;ATg3MhB;;AmCv3MA;EA0BQ,W1BnBQ;ATo3MhB;;ACx2ME;EkCnBF;;;;IAgCY,W1BzBI;ET43Md;EmCn4MF;;;;;;;;;;IAsCc,yBAAoC;IACpC,W1BhCE;ETy4Md;EmCh5MF;;IA0Cc,kB1BnCE;ET64Md;EmCp5MF;;;IA8CU,yBAAoC;IACpC,W1BxCM;ETm5Md;EmC15MF;IAmDc,yBjCpFoB;IiCqFpB,W1B7CE;ETu5Md;AACF;;AmC/5MA;EASM,yBjC3C4B;EiC4C5B,W1BHU;AT65MhB;;AmCp6MA;;EAcU,W1BPM;ATk6MhB;;AmCz6MA;;;;EAoBY,yBAAoC;EACpC,W1BdI;AT06MhB;;AmCj7MA;EAwBY,kB1BjBI;AT86MhB;;AmCr7MA;EA0BQ,W1BnBQ;ATk7MhB;;ACt6ME;EkCnBF;;;;IAgCY,W1BzBI;ET07Md;EmCj8MF;;;;;;;;;;IAsCc,yBAAoC;IACpC,W1BhCE;ETu8Md;EmC98MF;;IA0Cc,kB1BnCE;ET28Md;EmCl9MF;;;IA8CU,yBAAoC;IACpC,W1BxCM;ETi9Md;EmCx9MF;IAmDc,yBjCrFoB;IiCsFpB,W1B7CE;ETq9Md;AACF;;AmC79MA;EASM,yBjC7C4B;EiC8C5B,W1BHU;AT29MhB;;AmCl+MA;;EAcU,W1BPM;ATg+MhB;;AmCv+MA;;;;EAoBY,yBAAoC;EACpC,W1BdI;ATw+MhB;;AmC/+MA;EAwBY,kB1BjBI;AT4+MhB;;AmCn/MA;EA0BQ,W1BnBQ;ATg/MhB;;ACp+ME;EkCnBF;;;;IAgCY,W1BzBI;ETw/Md;EmC//MF;;;;;;;;;;IAsCc,yBAAoC;IACpC,W1BhCE;ETqgNd;EmC5gNF;;IA0Cc,kB1BnCE;ETygNd;EmChhNF;;;IA8CU,yBAAoC;IACpC,W1BxCM;ET+gNd;EmCthNF;IAmDc,yBjCvFoB;IiCwFpB,W1B7CE;ETmhNd;AACF;;AmC3hNA;EASM,yBjC9C4B;EiC+C5B,yB1BLe;AT2hNrB;;AmChiNA;;EAcU,yB1BTW;ATgiNrB;;AmCriNA;;;;EAoBY,yBAAoC;EACpC,yB1BhBS;ATwiNrB;;AmC7iNA;EAwBY,gC1BnBS;AT4iNrB;;AmCjjNA;EA0BQ,yB1BrBa;ATgjNrB;;ACliNE;EkCnBF;;;;IAgCY,yB1B3BS;ETwjNnB;EmC7jNF;;;;;;;;;;IAsCc,yBAAoC;IACpC,yB1BlCO;ETqkNnB;EmC1kNF;;IA0Cc,gC1BrCO;ETykNnB;EmC9kNF;;;IA8CU,yBAAoC;IACpC,yB1B1CW;ET+kNnB;EmCplNF;IAmDc,yBjCxFoB;IiCyFpB,yB1B/CO;ETmlNnB;AACF;;AmCzlNA;EASM,yBjCxC4B;EiCyC5B,W1BHU;ATulNhB;;AmC9lNA;;EAcU,W1BPM;AT4lNhB;;AmCnmNA;;;;EAoBY,yBAAoC;EACpC,W1BdI;ATomNhB;;AmC3mNA;EAwBY,kB1BjBI;ATwmNhB;;AmC/mNA;EA0BQ,W1BnBQ;AT4mNhB;;AChmNE;EkCnBF;;;;IAgCY,W1BzBI;ETonNd;EmC3nNF;;;;;;;;;;IAsCc,yBAAoC;IACpC,W1BhCE;ETioNd;EmCxoNF;;IA0Cc,kB1BnCE;ETqoNd;EmC5oNF;;;IA8CU,yBAAoC;IACpC,W1BxCM;ET2oNd;EmClpNF;IAmDc,yBjClFoB;IiCmFpB,W1B7CE;ET+oNd;AACF;;AmCvpNA;EAsDI,oBAAoB;EACpB,aAAa;EACb,mBA3GmB;EA4GnB,WAAW;AnCqmNf;;AmC9pNA;EA2DI,gCjCrG0B;AF4sN9B;;AmClqNA;EALE,OAAO;EACP,eAAe;EACf,QAAQ;EACR,WA7CiB;AnCwtNnB;;AmCzqNA;EAgEI,SAAS;AnC6mNb;;AmC7qNA;EAkEM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EmChtNA;IAnWA,OAAO;IACP,eAAe;IACf,QAAQ;IACR,WA7CiB;EnCmmOjB;EmCttNA;IAKI,SAAS;EnCotNb;EmCztNA;IAOM,4CjCzZqB;EF8mO3B;EmC5tNA;IASI,MAAM;EnCstNV;EmCrtNA;;IAGI,oBA9ZiB;EnConOrB;EmCztNA;;IAKI,uBAhaiB;EnCwnOrB;EmC7tNA;;IAOI,oBAA4D;EnC0tNhE;EmCjuNA;;IASI,uBAA+D;EnC4tNnE;EmC1tNA;;IAGI,cjC1auB;EFqoO3B;EmC9tNA;;IAKI,6BAja2C;EnC8nO/C;EmC5tNA;IAKM,yBjCvasB;EFioO5B;AACF;;AmCvtNA;EAEI,iCAA2C;AnCytN/C;;AoCpnOA;EACE,elCIW;EkCHX,gBA/B0B;ApCspO5B;;AoCznOA;EAKI,kBlCCY;AFunOhB;;AoC7nOA;EAOI,kBlCHY;AF6nOhB;;AoCjoOA;EASI,iBlCNW;AFkoOf;;AoCroOA;;EAaM,iBAAiB;EACjB,kBAAkB;EAClB,uBlCwBmB;AFqmOzB;;AoC5oOA;EAiBM,uBlCsBmB;AFymOzB;;AoC7nOA;;EAEE,mBAAmB;EACnB,aAAa;EACb,uBAAuB;EACvB,kBAAkB;ApCgoOpB;;AoC9nOA;;;;EAME,cA1D6B;EA2D7B,uBAAuB;EACvB,eA3D8B;EA4D9B,mBA3DkC;EA4DlC,oBA3DmC;EA4DnC,kBAAkB;ApC+nOpB;;AoC7nOA;;;EAGE,qBlC/D4B;EkCgE5B,clCpE4B;EkCqE5B,iBjCtEqB;AHssOvB;;AoCroOA;;;EAOI,qBlCpE0B;EkCqE1B,clCxE0B;AF4sO9B;;AoC5oOA;;;EAUI,qBlC3D8B;AFmsOlC;;AoClpOA;;;EAYI,iDlChFyB;AF4tO7B;;AoCxpOA;;;EAcI,yBlC1E0B;EkC2E1B,qBlC3E0B;EkC4E1B,gBAAgB;EAChB,clC/E0B;EkCgF1B,YAAY;ApCgpOhB;;AoC9oOA;;EAEE,oBAAoB;EACpB,qBAAqB;EACrB,mBAAmB;ApCipOrB;;AoC/oOA;EAEI,yBlC7E8B;EkC8E9B,qBlC9E8B;EkC+E9B,W3BvCY;ATwrOhB;;AoC/oOA;EACE,clC9F4B;EkC+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+QE;EASM,mBAAY;AvC69QpB;;ACx2RE;EsCkYA;IAYQ,mBAAY;EvC+9QpB;AACF;;AC12RE;EsC8XA;IAeQ,mBAAY;EvCk+QpB;AACF;;AC52RE;EsC0XA;IAkBQ,mBAAY;EvCq+QpB;AACF;;AC92RE;EsCsXA;IAqBQ,mBAAY;EvCw+QpB;AACF;;ACh3RE;EsCkXA;IAwBQ,mBAAY;EvC2+QpB;AACF;;ACj3RI;EsC6WF;IA2BQ,mBAAY;EvC8+QpB;AACF;;AC72RI;EsCmWF;IA8BQ,mBAAY;EvCi/QpB;AACF;;AC92RI;EsC8VF;IAiCQ,mBAAY;EvCo/QpB;AACF;;AC12RI;EsCoVF;IAoCQ,mBAAY;EvCu/QpB;AACF;;AuC5hRE;EASM,oBAAY;AvCuhRpB;;ACl6RE;EsCkYA;IAYQ,oBAAY;EvCyhRpB;AACF;;ACp6RE;EsC8XA;IAeQ,oBAAY;EvC4hRpB;AACF;;ACt6RE;EsC0XA;IAkBQ,oBAAY;EvC+hRpB;AACF;;ACx6RE;EsCsXA;IAqBQ,oBAAY;EvCkiRpB;AACF;;AC16RE;EsCkXA;IAwBQ,oBAAY;EvCqiRpB;AACF;;AC36RI;EsC6WF;IA2BQ,oBAAY;EvCwiRpB;AACF;;ACv6RI;EsCmWF;IA8BQ,oBAAY;EvC2iRpB;AACF;;ACx6RI;EsC8VF;IAiCQ,oBAAY;EvC8iRpB;AACF;;ACp6RI;EsCoVF;IAoCQ,oBAAY;EvCijRpB;AACF;;AuCtlRE;EASM,iBAAY;AvCilRpB;;AC59RE;EsCkYA;IAYQ,iBAAY;EvCmlRpB;AACF;;AC99RE;EsC8XA;IAeQ,iBAAY;EvCslRpB;AACF;;ACh+RE;EsC0XA;IAkBQ,iBAAY;EvCylRpB;AACF;;ACl+RE;EsCsXA;IAqBQ,iBAAY;EvC4lRpB;AACF;;ACp+RE;EsCkXA;IAwBQ,iBAAY;EvC+lRpB;AACF;;ACr+RI;EsC6WF;IA2BQ,iBAAY;EvCkmRpB;AACF;;ACj+RI;EsCmWF;IA8BQ,iBAAY;EvCqmRpB;AACF;;ACl+RI;EsC8VF;IAiCQ,iBAAY;EvCwmRpB;AACF;;AC99RI;EsCoVF;IAoCQ,iBAAY;EvC2mRpB;AACF;;AuChpRE;EASM,oBAAY;AvC2oRpB;;ACthSE;EsCkYA;IAYQ,oBAAY;EvC6oRpB;AACF;;ACxhSE;EsC8XA;IAeQ,oBAAY;EvCgpRpB;AACF;;AC1hSE;EsC0XA;IAkBQ,oBAAY;EvCmpRpB;AACF;;AC5hSE;EsCsXA;IAqBQ,oBAAY;EvCspRpB;AACF;;AC9hSE;EsCkXA;IAwBQ,oBAAY;EvCypRpB;AACF;;AC/hSI;EsC6WF;IA2BQ,oBAAY;EvC4pRpB;AACF;;AC3hSI;EsCmWF;IA8BQ,oBAAY;EvC+pRpB;AACF;;AC5hSI;EsC8VF;IAiCQ,oBAAY;EvCkqRpB;AACF;;ACxhSI;EsCoVF;IAoCQ,oBAAY;EvCqqRpB;AACF;;AuC1sRE;EASM,mBAAY;AvCqsRpB;;AChlSE;EsCkYA;IAYQ,mBAAY;EvCusRpB;AACF;;ACllSE;EsC8XA;IAeQ,mBAAY;EvC0sRpB;AACF;;ACplSE;EsC0XA;IAkBQ,mBAAY;EvC6sRpB;AACF;;ACtlSE;EsCsXA;IAqBQ,mBAAY;EvCgtRpB;AACF;;ACxlSE;EsCkXA;IAwBQ,mBAAY;EvCmtRpB;AACF;;ACzlSI;EsC6WF;IA2BQ,mBAAY;EvCstRpB;AACF;;ACrlSI;EsCmWF;IA8BQ,mBAAY;EvCytRpB;AACF;;ACtlSI;EsC8VF;IAiCQ,mBAAY;EvC4tRpB;AACF;;ACllSI;EsCoVF;IAoCQ,mBAAY;EvC+tRpB;AACF;;AuCpwRE;EASM,oBAAY;AvC+vRpB;;AC1oSE;EsCkYA;IAYQ,oBAAY;EvCiwRpB;AACF;;AC5oSE;EsC8XA;IAeQ,oBAAY;EvCowRpB;AACF;;AC9oSE;EsC0XA;IAkBQ,oBAAY;EvCuwRpB;AACF;;AChpSE;EsCsXA;IAqBQ,oBAAY;EvC0wRpB;AACF;;AClpSE;EsCkXA;IAwBQ,oBAAY;EvC6wRpB;AACF;;ACnpSI;EsC6WF;IA2BQ,oBAAY;EvCgxRpB;AACF;;AC/oSI;EsCmWF;IA8BQ,oBAAY;EvCmxRpB;AACF;;AChpSI;EsC8VF;IAiCQ,oBAAY;EvCsxRpB;AACF;;AC5oSI;EsCoVF;IAoCQ,oBAAY;EvCyxRpB;AACF;;AuC9zRE;EASM,iBAAY;AvCyzRpB;;ACpsSE;EsCkYA;IAYQ,iBAAY;EvC2zRpB;AACF;;ACtsSE;EsC8XA;IAeQ,iBAAY;EvC8zRpB;AACF;;ACxsSE;EsC0XA;IAkBQ,iBAAY;EvCi0RpB;AACF;;AC1sSE;EsCsXA;IAqBQ,iBAAY;EvCo0RpB;AACF;;AC5sSE;EsCkXA;IAwBQ,iBAAY;EvCu0RpB;AACF;;AC7sSI;EsC6WF;IA2BQ,iBAAY;EvC00RpB;AACF;;ACzsSI;EsCmWF;IA8BQ,iBAAY;EvC60RpB;AACF;;AC1sSI;EsC8VF;IAiCQ,iBAAY;EvCg1RpB;AACF;;ACtsSI;EsCoVF;IAoCQ,iBAAY;EvCm1RpB;AACF;;AwCz0SA;EACE,oBAAoB;EACpB,cAAc;EACd,aAAa;EACb,YAAY;EACZ,cAAc;EACd,+BAAuB;EAAvB,4BAAuB;EAAvB,uBAAuB;AxC40SzB;;AwCl1SA;EASI,qBAA+B;EAC/B,sBAAgC;EAChC,oBAA8B;AxC60SlC;;AwCx1SA;EAaM,uBAAiC;AxC+0SvC;;AwC51SA;EAeM,sBAjBgB;AxCk2StB;;AwCh2SA;EAiBI,oBAAoB;AxCm1SxB;;AwCp2SA;EAmBI,gBArBkB;AxC02StB;;AwCx2SA;EAqBI,sBAAsB;AxCu1S1B;;AwC52SA;EAuBM,gCAAgC;AxCy1StC;;AC7xSE;EuCnFF;IA2BM,aAAa;ExC01SjB;EwCr3SF;IA8BQ,UAAU;IACV,eAAuB;ExC01S7B;EwCz3SF;IA8BQ,UAAU;IACV,gBAAuB;ExC81S7B;EwC73SF;IA8BQ,UAAU;IACV,UAAuB;ExCk2S7B;EwCj4SF;IA8BQ,UAAU;IACV,gBAAuB;ExCs2S7B;EwCr4SF;IA8BQ,UAAU;IACV,gBAAuB;ExC02S7B;EwCz4SF;IA8BQ,UAAU;IACV,UAAuB;ExC82S7B;EwC74SF;IA8BQ,UAAU;IACV,gBAAuB;ExCk3S7B;EwCj5SF;IA8BQ,UAAU;IACV,gBAAuB;ExCs3S7B;EwCr5SF;IA8BQ,UAAU;IACV,UAAuB;ExC03S7B;EwCz5SF;IA8BQ,UAAU;IACV,gBAAuB;ExC83S7B;EwC75SF;IA8BQ,UAAU;IACV,gBAAuB;ExCk4S7B;EwCj6SF;IA8BQ,UAAU;IACV,WAAuB;ExCs4S7B;AACF;;AyCt6SA;EACE,oBAAoB;EACpB,aAAa;EACb,sBAAsB;EACtB,8BAA8B;AzCy6ShC;;AyC76SA;EAMI,gBAAgB;AzC26SpB;;AyCj7SA;EASM,mBAAmB;AzC46SzB;;AyCr7SA;EAeM,uBvCHyB;EuCIzB,cvChBuB;AF07S7B;;AyC17SA;;EAmBQ,cAAc;AzC46StB;;AyC/7SA;EAqBQ,cvCrBqB;AFm8S7B;;AyCn8SA;EAuBQ,4BvCvBqB;AFu8S7B;;AyCv8SA;;EA0BU,cvC1BmB;AF48S7B;;ACj3SE;EwC3FF;IA6BU,uBvCjBqB;EFq8S7B;AACF;;AyCl9SA;;EAgCQ,4BvChCqB;AFu9S7B;;AyCv9SA;;;EAqCU,yBAAoC;EACpC,cvCtCmB;AF89S7B;;AyC99SA;EAyCU,cvCzCmB;EuC0CnB,YAAY;AzCy7StB;;AyCn+SA;EA4CY,UAAU;AzC27StB;;AyCv+SA;EA+CY,UAAU;AzC47StB;;AyC3+SA;EAmDY,cvCnDiB;AF++S7B;;AyC/+SA;EAqDc,uCvCrDe;AFm/S7B;;AyCn/SA;EAyDc,yBvCzDe;EuC0Df,qBvC1De;EuC2Df,YvC/CiB;AF6+S/B;;AyCz/SA;EAgEQ,4EAAyG;AzC67SjH;;AC96SE;EwC/EF;IAmEY,4EAAyG;EzC+7SnH;AACF;;AyCngTA;EAeM,yBvCfuB;EuCgBvB,YvCJyB;AF4/S/B;;AyCxgTA;;EAmBQ,cAAc;AzC0/StB;;AyC7gTA;EAqBQ,YvCTuB;AFqgT/B;;AyCjhTA;EAuBQ,+BvCXuB;AFygT/B;;AyCrhTA;;EA0BU,YvCdqB;AF8gT/B;;AC/7SE;EwC3FF;IA6BU,yBvC7BmB;EF+hT3B;AACF;;AyChiTA;;EAgCQ,+BvCpBuB;AFyhT/B;;AyCriTA;;;EAqCU,uBAAoC;EACpC,YvC1BqB;AFgiT/B;;AyC5iTA;EAyCU,YvC7BqB;EuC8BrB,YAAY;AzCugTtB;;AyCjjTA;EA4CY,UAAU;AzCygTtB;;AyCrjTA;EA+CY,UAAU;AzC0gTtB;;AyCzjTA;EAmDY,YvCvCmB;AFijT/B;;AyC7jTA;EAqDc,uCvCrDe;AFikT7B;;AyCjkTA;EAyDc,uBvC7CiB;EuC8CjB,mBvC9CiB;EuC+CjB,cvC3De;AFukT7B;;AyCvkTA;EAgEQ,8EAAyG;AzC2gTjH;;AC5/SE;EwC/EF;IAmEY,8EAAyG;EzC6gTnH;AACF;;AyCjlTA;EAeM,4BvCLwB;EuCMxB,cvCZwB;AFklT9B;;AyCtlTA;;EAmBQ,cAAc;AzCwkTtB;;AyC3lTA;EAqBQ,cvCjBsB;AF2lT9B;;AyC/lTA;EAuBQ,4BvCnBsB;AF+lT9B;;AyCnmTA;;EA0BU,cvCtBoB;AFomT9B;;AC7gTE;EwC3FF;IA6BU,4BvCnBoB;EFmmT5B;AACF;;AyC9mTA;;EAgCQ,4BvC5BsB;AF+mT9B;;AyCnnTA;;;EAqCU,yBAAoC;EACpC,cvClCoB;AFsnT9B;;AyC1nTA;EAyCU,cvCrCoB;EuCsCpB,YAAY;AzCqlTtB;;AyC/nTA;EA4CY,UAAU;AzCulTtB;;AyCnoTA;EA+CY,UAAU;AzCwlTtB;;AyCvoTA;EAmDY,cvC/CkB;AFuoT9B;;AyC3oTA;EAqDc,uCvCrDe;AF+oT7B;;AyC/oTA;EAyDc,yBvCrDgB;EuCsDhB,qBvCtDgB;EuCuDhB,iBvCjDgB;AF2oT9B;;AyCrpTA;EAgEQ,iFAAyG;AzCylTjH;;AC1kTE;EwC/EF;IAmEY,iFAAyG;EzC2lTnH;AACF;;AyC/pTA;EAeM,yBvCXwB;EuCYxB,iBvCNwB;AF0pT9B;;AyCpqTA;;EAmBQ,cAAc;AzCspTtB;;AyCzqTA;EAqBQ,iBvCXsB;AFmqT9B;;AyC7qTA;EAuBQ,+BvCbsB;AFuqT9B;;AyCjrTA;;EA0BU,iBvChBoB;AF4qT9B;;AC3lTE;EwC3FF;IA6BU,yBvCzBoB;EFurT5B;AACF;;AyC5rTA;;EAgCQ,+BvCtBsB;AFurT9B;;AyCjsTA;;;EAqCU,yBAAoC;EACpC,iBvC5BoB;AF8rT9B;;AyCxsTA;EAyCU,iBvC/BoB;EuCgCpB,YAAY;AzCmqTtB;;AyC7sTA;EA4CY,UAAU;AzCqqTtB;;AyCjtTA;EA+CY,UAAU;AzCsqTtB;;AyCrtTA;EAmDY,iBvCzCkB;AF+sT9B;;AyCztTA;EAqDc,uCvCrDe;AF6tT7B;;AyC7tTA;EAyDc,4BvC/CgB;EuCgDhB,wBvChDgB;EuCiDhB,cvCvDgB;AF+tT9B;;AyCnuTA;EAgEQ,gFAAyG;AzCuqTjH;;ACxpTE;EwC/EF;IAmEY,gFAAyG;EzCyqTnH;AACF;;AyC7uTA;EAeM,yBvCE4B;EuCD5B,WhC2CU;ATurThB;;AyClvTA;;EAmBQ,cAAc;AzCouTtB;;AyCvvTA;EAqBQ,WhCsCQ;ATgsThB;;AyC3vTA;EAuBQ,+BhCoCQ;ATosThB;;AyC/vTA;;EA0BU,WhCiCM;ATysThB;;ACzqTE;EwC3FF;IA6BU,yBvCZwB;EFwvThC;AACF;;AyC1wTA;;EAgCQ,+BhC2BQ;ATotThB;;AyC/wTA;;;EAqCU,yBAAoC;EACpC,WhCqBM;AT2tThB;;AyCtxTA;EAyCU,WhCkBM;EgCjBN,YAAY;AzCivTtB;;AyC3xTA;EA4CY,UAAU;AzCmvTtB;;AyC/xTA;EA+CY,UAAU;AzCovTtB;;AyCnyTA;EAmDY,WhCQI;AT4uThB;;AyCvyTA;EAqDc,uCvCrDe;AF2yT7B;;AyC3yTA;EAyDc,sBhCEE;EgCDF,kBhCCE;EgCAF,cvC1CoB;AFgyTlC;;AyCjzTA;EAgEQ,gFAAyG;AzCqvTjH;;ACtuTE;EwC/EF;IAmEY,gFAAyG;EzCuvTnH;AACF;;AyC3zTA;EAeM,yBvCI4B;EuCH5B,WhC2CU;ATqwThB;;AyCh0TA;;EAmBQ,cAAc;AzCkzTtB;;AyCr0TA;EAqBQ,WhCsCQ;AT8wThB;;AyCz0TA;EAuBQ,+BhCoCQ;ATkxThB;;AyC70TA;;EA0BU,WhCiCM;ATuxThB;;ACvvTE;EwC3FF;IA6BU,yBvCVwB;EFo0ThC;AACF;;AyCx1TA;;EAgCQ,+BhC2BQ;ATkyThB;;AyC71TA;;;EAqCU,yBAAoC;EACpC,WhCqBM;ATyyThB;;AyCp2TA;EAyCU,WhCkBM;EgCjBN,YAAY;AzC+zTtB;;AyCz2TA;EA4CY,UAAU;AzCi0TtB;;AyC72TA;EA+CY,UAAU;AzCk0TtB;;AyCj3TA;EAmDY,WhCQI;AT0zThB;;AyCr3TA;EAqDc,uCvCrDe;AFy3T7B;;AyCz3TA;EAyDc,sBhCEE;EgCDF,kBhCCE;EgCAF,cvCxCoB;AF42TlC;;AyC/3TA;EAgEQ,gFAAyG;AzCm0TjH;;ACpzTE;EwC/EF;IAmEY,gFAAyG;EzCq0TnH;AACF;;AyCz4TA;EAeM,yBvCG4B;EuCF5B,WhC2CU;ATm1ThB;;AyC94TA;;EAmBQ,cAAc;AzCg4TtB;;AyCn5TA;EAqBQ,WhCsCQ;AT41ThB;;AyCv5TA;EAuBQ,+BhCoCQ;ATg2ThB;;AyC35TA;;EA0BU,WhCiCM;ATq2ThB;;ACr0TE;EwC3FF;IA6BU,yBvCXwB;EFm5ThC;AACF;;AyCt6TA;;EAgCQ,+BhC2BQ;ATg3ThB;;AyC36TA;;;EAqCU,yBAAoC;EACpC,WhCqBM;ATu3ThB;;AyCl7TA;EAyCU,WhCkBM;EgCjBN,YAAY;AzC64TtB;;AyCv7TA;EA4CY,UAAU;AzC+4TtB;;AyC37TA;EA+CY,UAAU;AzCg5TtB;;AyC/7TA;EAmDY,WhCQI;ATw4ThB;;AyCn8TA;EAqDc,uCvCrDe;AFu8T7B;;AyCv8TA;EAyDc,sBhCEE;EgCDF,kBhCCE;EgCAF,cvCzCoB;AF27TlC;;AyC78TA;EAgEQ,gFAAyG;AzCi5TjH;;ACl4TE;EwC/EF;IAmEY,gFAAyG;EzCm5TnH;AACF;;AyCv9TA;EAeM,yBvCC4B;EuCA5B,WhC2CU;ATi6ThB;;AyC59TA;;EAmBQ,cAAc;AzC88TtB;;AyCj+TA;EAqBQ,WhCsCQ;AT06ThB;;AyCr+TA;EAuBQ,+BhCoCQ;AT86ThB;;AyCz+TA;;EA0BU,WhCiCM;ATm7ThB;;ACn5TE;EwC3FF;IA6BU,yBvCbwB;EFm+ThC;AACF;;AyCp/TA;;EAgCQ,+BhC2BQ;AT87ThB;;AyCz/TA;;;EAqCU,yBAAoC;EACpC,WhCqBM;ATq8ThB;;AyChgUA;EAyCU,WhCkBM;EgCjBN,YAAY;AzC29TtB;;AyCrgUA;EA4CY,UAAU;AzC69TtB;;AyCzgUA;EA+CY,UAAU;AzC89TtB;;AyC7gUA;EAmDY,WhCQI;ATs9ThB;;AyCjhUA;EAqDc,uCvCrDe;AFqhU7B;;AyCrhUA;EAyDc,sBhCEE;EgCDF,kBhCCE;EgCAF,cvC3CoB;AF2gUlC;;AyC3hUA;EAgEQ,gFAAyG;AzC+9TjH;;ACh9TE;EwC/EF;IAmEY,gFAAyG;EzCi+TnH;AACF;;AyCriUA;EAeM,yBvCA4B;EuCC5B,yBhCyCe;ATi/TrB;;AyC1iUA;;EAmBQ,cAAc;AzC4hUtB;;AyC/iUA;EAqBQ,yBhCoCa;AT0/TrB;;AyCnjUA;EAuBQ,yBhCkCa;AT8/TrB;;AyCvjUA;;EA0BU,yBhC+BW;ATmgUrB;;ACj+TE;EwC3FF;IA6BU,yBvCdwB;EFkjUhC;AACF;;AyClkUA;;EAgCQ,yBhCyBa;AT8gUrB;;AyCvkUA;;;EAqCU,yBAAoC;EACpC,yBhCmBW;ATqhUrB;;AyC9kUA;EAyCU,yBhCgBW;EgCfX,YAAY;AzCyiUtB;;AyCnlUA;EA4CY,UAAU;AzC2iUtB;;AyCvlUA;EA+CY,UAAU;AzC4iUtB;;AyC3lUA;EAmDY,yBhCMS;ATsiUrB;;AyC/lUA;EAqDc,uCvCrDe;AFmmU7B;;AyCnmUA;EAyDc,oChCAO;EgCCP,gChCDO;EgCEP,cvC5CoB;AF0lUlC;;AyCzmUA;EAgEQ,gFAAyG;AzC6iUjH;;AC9hUE;EwC/EF;IAmEY,gFAAyG;EzC+iUnH;AACF;;AyCnnUA;EAeM,yBvCM4B;EuCL5B,WhC2CU;AT6jUhB;;AyCxnUA;;EAmBQ,cAAc;AzC0mUtB;;AyC7nUA;EAqBQ,WhCsCQ;ATskUhB;;AyCjoUA;EAuBQ,+BhCoCQ;AT0kUhB;;AyCroUA;;EA0BU,WhCiCM;AT+kUhB;;AC/iUE;EwC3FF;IA6BU,yBvCRwB;EF0nUhC;AACF;;AyChpUA;;EAgCQ,+BhC2BQ;AT0lUhB;;AyCrpUA;;;EAqCU,yBAAoC;EACpC,WhCqBM;ATimUhB;;AyC5pUA;EAyCU,WhCkBM;EgCjBN,YAAY;AzCunUtB;;AyCjqUA;EA4CY,UAAU;AzCynUtB;;AyCrqUA;EA+CY,UAAU;AzC0nUtB;;AyCzqUA;EAmDY,WhCQI;ATknUhB;;AyC7qUA;EAqDc,uCvCrDe;AFirU7B;;AyCjrUA;EAyDc,sBhCEE;EgCDF,kBhCCE;EgCAF,cvCtCoB;AFkqUlC;;AyCvrUA;EAgEQ,gFAAyG;AzC2nUjH;;AC5mUE;EwC/EF;IAmEY,gFAAyG;EzC6nUnH;AACF;;AyCjsUA;EAuEM,sBAAsB;EACtB,mBAAmB;AzC8nUzB;;ACnnUE;EwCnFF;IA4EQ,oBAAoB;IACpB,iBAAiB;EzC+nUvB;AACF;;AC1nUE;EwCnFF;IAiFQ,qBAAqB;IACrB,kBAAkB;EzCioUxB;AACF;;AyCptUA;EAuFM,mBAAmB;EACnB,aAAa;AzCioUnB;;AyCztUA;EA0FQ,YAAY;EACZ,cAAc;AzCmoUtB;;AyC9tUA;EA6FI,gBAAgB;AzCqoUpB;;AyCluUA;EA+FI,iBAAiB;AzCuoUrB;;AyCnoUA;EAEE,gBAAgB;AzCqoUlB;;AyCvoUA;EAII,SAAS;EACT,gBAAgB;EAChB,eAAe;EACf,kBAAkB;EAClB,QAAQ;EACR,6CAAqC;UAArC,qCAAqC;AzCuoUzC;;AyChpUA;EAYI,YAAY;AzCwoUhB;;ACxqUE;EwCoBF;IAeI,aAAa;EzC0oUf;AACF;;AyCzoUA;EACE,kBAAkB;AzC4oUpB;;AClrUE;EwCqCF;IAKM,aAAa;EzC6oUjB;EyClpUF;IAOQ,sBAAsB;EzC8oU5B;AACF;;ACvrUE;EwCiCF;IASI,aAAa;IACb,uBAAuB;EzCkpUzB;EyC5pUF;IAYM,oBAAoB;EzCmpUxB;AACF;;AyChpUA;;EAEE,YAAY;EACZ,cAAc;AzCmpUhB;;AyCjpUA;EACE,YAAY;EACZ,cAAc;EACd,oBAAoB;AzCopUtB;;A0C9xUA;EACE,oBAL2B;A1CsyU7B;;ACrsUE;EyC7FF;IAMM,oBAT8B;E1C0yUlC;E0CvyUF;IAQM,qBAV8B;E1C4yUlC;AACF;;A2C3yUA;EACE,yBzCQ4B;EyCP5B,yBAJ+B;A3CkzUjC","file":"bulma.css"} \ No newline at end of file diff --git a/WebContent/assets/script.js b/WebContent/assets/script.js new file mode 100755 index 00000000..b40ddd08 --- /dev/null +++ b/WebContent/assets/script.js @@ -0,0 +1,5 @@ +function setActive(page){ + $("#"+page).parent().children().removeClass("is-active"); + $("#"+page).addClass("is-active"); + +} \ No newline at end of file diff --git a/WebContent/assets/style.css b/WebContent/assets/style.css new file mode 100755 index 00000000..beffef19 --- /dev/null +++ b/WebContent/assets/style.css @@ -0,0 +1,61 @@ +html, body { + font-family: 'Open Sans'; +} + +.latest { + margin: 20px !important; +} + +.underline { + text-decoration: underline; +} +.error{ + color:red!important; +} + + +.notification > button.delete { + border: none; +} + + +#notification{ + display:none; + position:fixed; + top:0; + right:0; +} +/* .port{ + min-width:250px; + overflow:hidden; +} +.port .card{ + height:300px; +} */ +#portals{ + width:100%; + overflow:scroll; +} +.green{ + background: #00d1b2; + color:#ffffff!important; +} +#tabnav{ + background:#00d1b2; + padding:20px; +} +#tabnav.is-active{ + background: #ffffff; + + color:#000000; +} +.tabcont{ + border:2px solid #00d1b2!important; +} +#map{ + height:300px; +} +.fullwidth{ + width:95%; + margin:0 auto; +} \ No newline at end of file diff --git a/src/com/zeemonsters/disman/auth/AppUtils.java b/src/com/zeemonsters/disman/auth/AppUtils.java new file mode 100755 index 00000000..68efd06a --- /dev/null +++ b/src/com/zeemonsters/disman/auth/AppUtils.java @@ -0,0 +1,55 @@ +package com.zeemonsters.disman.auth; + +import java.util.HashMap; +import java.util.Map; + +import javax.servlet.http.HttpSession; + + + +public class AppUtils { + + private static int REDIRECT_ID = 0; + + private static final Map id_uri_map = new HashMap(); + private static final Map uri_id_map = new HashMap(); + + // Store user info in Session. + public static void storeLoginedUser(HttpSession session, + UserAccount loginedUser) { + // On the JSP can access via ${loginedUser} + session.setAttribute("loginedUser", loginedUser); + } + + // Get the user information stored in the session. + public static UserAccount getLoginedUser(HttpSession session) { + UserAccount loginedUser = (UserAccount) session + .getAttribute("loginedUser"); + return loginedUser; + } + + public static int storeRedirectAfterLoginUrl(HttpSession session, + String requestUri) { + Integer id = uri_id_map.get(requestUri); + + if (id == null) { + id = REDIRECT_ID++; + + uri_id_map.put(requestUri, id); + id_uri_map.put(id, requestUri); + return id; + } + + return id; + } + + public static String getRedirectAfterLoginUrl(HttpSession session, + int redirectId) { + String url = id_uri_map.get(redirectId); + if (url != null) { + return url; + } + return null; + } + +} \ No newline at end of file diff --git a/src/com/zeemonsters/disman/auth/DataDAO.java b/src/com/zeemonsters/disman/auth/DataDAO.java new file mode 100755 index 00000000..aeaa968b --- /dev/null +++ b/src/com/zeemonsters/disman/auth/DataDAO.java @@ -0,0 +1,12 @@ +package com.zeemonsters.disman.auth; + +import com.zeemonsters.disman.db.Users; + +public class DataDAO { + + public static UserAccount findUser(String userName, String password) { + UserAccount u = Users.checkUser(userName, password); + return u; + } + +} \ No newline at end of file diff --git a/src/com/zeemonsters/disman/auth/SecurityConfig.java b/src/com/zeemonsters/disman/auth/SecurityConfig.java new file mode 100755 index 00000000..fa80a0d4 --- /dev/null +++ b/src/com/zeemonsters/disman/auth/SecurityConfig.java @@ -0,0 +1,44 @@ +package com.zeemonsters.disman.auth; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +public class SecurityConfig { + + public static final String ROLE_VOLUNTEER = "VOLUNTEER"; +// public static final String ROLE_ADMIN = "ADMIN"; + + private static final Map> mapConfig = new HashMap>(); + + static { + init(); + } + + private static void init() { +// List urlPatterns = new ArrayList(); +// +// urlPatterns.add("/createPortal"); +// urlPatterns.add("/profile"); +// mapConfig.put(ROLE_ADMIN, urlPatterns); + + List urlPatterns2 = new ArrayList(); + + urlPatterns2.add("/profile"); + urlPatterns2.add("/createPortal"); + + + mapConfig.put(ROLE_VOLUNTEER, urlPatterns2); + } + + public static Set getAllAppRoles() { + return mapConfig.keySet(); + } + + public static List getUrlPatternsForRole(String role) { + return mapConfig.get(role); + } + +} \ No newline at end of file diff --git a/src/com/zeemonsters/disman/auth/SecurityFilter.java b/src/com/zeemonsters/disman/auth/SecurityFilter.java new file mode 100755 index 00000000..b3a8a0d4 --- /dev/null +++ b/src/com/zeemonsters/disman/auth/SecurityFilter.java @@ -0,0 +1,163 @@ +package com.zeemonsters.disman.auth; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStreamReader; +import java.sql.SQLException; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.logging.LogManager; + +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.annotation.WebFilter; +import javax.servlet.annotation.WebInitParam; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import com.zeemonsters.disman.db.DBUtils; +import com.zeemonsters.disman.db.Pincode; + +@WebFilter(urlPatterns = { "/*" }, initParams = { + @WebInitParam(name = "excludedExt", value = "jpeg jpg png pdf js css") }) +public class SecurityFilter implements Filter { + + private static Set excluded; + + public SecurityFilter() { + } + + @Override + public void destroy() { + } + + @Override + public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) + throws IOException, ServletException { + HttpServletRequest request = (HttpServletRequest) req; + HttpServletResponse response = (HttpServletResponse) resp; + + String servletPath = request.getServletPath(); + + // User information stored in the Session. + // (After successful login). + UserAccount loginedUser = AppUtils.getLoginedUser(request.getSession()); + + if (isExcluded(request)) { + chain.doFilter(request, response); + return; + } + if (servletPath.equals("/login")) { + chain.doFilter(request, response); + return; + } + HttpServletRequest wrapRequest = request; + if (loginedUser != null) { + // User Name + String userName = loginedUser.getUserName(); + + // Roles + List roles = loginedUser.getRoles(); + + // Wrap old request by a new Request with userName and Roles + // information. + wrapRequest = new UserRoleRequestWrapper(userName, roles, request); + } + // Pages must be signed in. + if (SecurityUtils.isSecurityPage(request)) { + + // If the user is not logged in, + // Redirect to the login page. + if (loginedUser == null) { + + String requestUri = request.getRequestURI(); + + // Store the current page to redirect to after successful login. + int redirectId = AppUtils.storeRedirectAfterLoginUrl(request.getSession(), requestUri); + + response.sendRedirect(wrapRequest.getContextPath() + "/login?redirectId=" + redirectId); + return; + } + + // Check if the user has a valid role? + boolean hasPermission = SecurityUtils.hasPermission(wrapRequest); + if (!hasPermission) { + + RequestDispatcher dispatcher // + = request.getServletContext().getRequestDispatcher("/WEB-INF/views/accessDeniedView.jsp"); + + dispatcher.forward(request, response); + return; + } + } + + chain.doFilter(wrapRequest, response); + } + + private boolean isExcluded(HttpServletRequest request) { + String path = request.getRequestURI(); + if (path.endsWith("idea") || path.endsWith("team")) { + return true; + } + String extension = path.substring(path.lastIndexOf('.') + 1, path.length()).toLowerCase(); + return excluded.contains(extension); + } + + @Override + public void init(FilterConfig fConfig) throws ServletException { + + LogManager.getLogManager().reset(); + try { + // DBUtils.drop(); + + DBUtils.initialize(); + String path = fConfig.getServletContext().getRealPath("WEB-INF/in.csv"); + insertIntoPincode(path); + } catch (ClassNotFoundException | SQLException e) { + e.printStackTrace(); + } + String excludedString = fConfig.getInitParameter("excludedExt"); + if (excludedString != null) { + excluded = Collections.unmodifiableSet(new HashSet<>(Arrays.asList(excludedString.split(" ", 0)))); + } else { + excluded = Collections.emptySet(); + } + } + + private void insertIntoPincode(String path) { + try { + if (DBUtils.count(Pincode.TABLENAME, Pincode.ID) == 0) { + System.out.println("count is 0"); + BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(new File(path)))); + String line; + while ((line = br.readLine()) != null) { + String split[] = line.split(","); + Pincode.insert(new String[] { "'" + split[0] + "','" + split[1] + "','" + split[2] + "'" }); + } + } + } catch (ClassNotFoundException e) { + + } catch (SQLException e) { + + e.printStackTrace(); + } catch (FileNotFoundException e) { + + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + + } + +} \ No newline at end of file diff --git a/src/com/zeemonsters/disman/auth/SecurityUtils.java b/src/com/zeemonsters/disman/auth/SecurityUtils.java new file mode 100755 index 00000000..172c0121 --- /dev/null +++ b/src/com/zeemonsters/disman/auth/SecurityUtils.java @@ -0,0 +1,43 @@ +package com.zeemonsters.disman.auth; +import java.util.List; +import java.util.Set; + +import javax.servlet.http.HttpServletRequest; + +public class SecurityUtils { + + // Check whether this 'request' is required to login or not. + public static boolean isSecurityPage(HttpServletRequest request) { + String urlPattern = UrlPatternUtils.getUrlPattern(request); + + Set roles = SecurityConfig.getAllAppRoles(); + + for (String role : roles) { + List urlPatterns = SecurityConfig + .getUrlPatternsForRole(role); + if (urlPatterns != null && urlPatterns.contains(urlPattern)) { + return true; + } + } + return false; + } + + // Check if this 'request' has a 'valid role'? + public static boolean hasPermission(HttpServletRequest request) { + String urlPattern = UrlPatternUtils.getUrlPattern(request); + + Set allRoles = SecurityConfig.getAllAppRoles(); + + for (String role : allRoles) { + if (!request.isUserInRole(role)) { + continue; + } + List urlPatterns = SecurityConfig + .getUrlPatternsForRole(role); + if (urlPatterns != null && urlPatterns.contains(urlPattern)) { + return true; + } + } + return false; + } +} \ No newline at end of file diff --git a/src/com/zeemonsters/disman/auth/UrlPatternUtils.java b/src/com/zeemonsters/disman/auth/UrlPatternUtils.java new file mode 100755 index 00000000..a701e7ad --- /dev/null +++ b/src/com/zeemonsters/disman/auth/UrlPatternUtils.java @@ -0,0 +1,56 @@ +package com.zeemonsters.disman.auth; + +import java.util.Collection; +import java.util.Map; + +import javax.servlet.ServletContext; +import javax.servlet.ServletRegistration; +import javax.servlet.http.HttpServletRequest; + +public class UrlPatternUtils { + + private static boolean hasUrlPattern(ServletContext servletContext, String urlPattern) { + + Map map = servletContext.getServletRegistrations(); + + for (String servletName : map.keySet()) { + ServletRegistration sr = map.get(servletName); + + Collection mappings = sr.getMappings(); + if (mappings.contains(urlPattern)) { + return true; + } + + } + return false; + } + + public static String getUrlPattern(HttpServletRequest request) { + ServletContext servletContext = request.getServletContext(); + String servletPath = request.getServletPath(); + String pathInfo = request.getPathInfo(); + + String urlPattern = null; + if (pathInfo != null) { + urlPattern = servletPath + "/*"; + return urlPattern; + } + urlPattern = servletPath; + + boolean has = hasUrlPattern(servletContext, urlPattern); + if (has) { + return urlPattern; + } + int i = servletPath.lastIndexOf('.'); + if (i != -1) { + String ext = servletPath.substring(i + 1); + urlPattern = "*." + ext; + has = hasUrlPattern(servletContext, urlPattern); + + if (has) { + return urlPattern; + } + } + return "/"; + } +} \ No newline at end of file diff --git a/src/com/zeemonsters/disman/auth/UserAccount.java b/src/com/zeemonsters/disman/auth/UserAccount.java new file mode 100755 index 00000000..28a5a4fa --- /dev/null +++ b/src/com/zeemonsters/disman/auth/UserAccount.java @@ -0,0 +1,43 @@ +package com.zeemonsters.disman.auth; + + +import java.util.ArrayList; +import java.util.List; + +public class UserAccount { + + private String userName; + + private List roles; + + public UserAccount() { + + } + + public UserAccount(String userName, String... roles) { + this.userName = userName; + + this.roles = new ArrayList(); + if (roles != null) { + for (String r : roles) { + this.roles.add(r); + } + } + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public List getRoles() { + return roles; + } + + public void setRoles(List roles) { + this.roles = roles; + } +} \ No newline at end of file diff --git a/src/com/zeemonsters/disman/auth/UserRoleRequestWrapper.java b/src/com/zeemonsters/disman/auth/UserRoleRequestWrapper.java new file mode 100755 index 00000000..54298f6c --- /dev/null +++ b/src/com/zeemonsters/disman/auth/UserRoleRequestWrapper.java @@ -0,0 +1,57 @@ +package com.zeemonsters.disman.auth +; +import java.security.Principal; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletRequestWrapper; + +/** + * An extension for the HTTPServletRequest that overrides the getUserPrincipal() + * and isUserInRole(). We supply these implementations here, where they are not + * normally populated unless we are going through the facility provided by the + * container. + *

+ * If he user or roles are null on this wrapper, the parent request is consulted + * to try to fetch what ever the container has set for us. This is intended to + * be created and used by the UserRoleFilter. + * + * @author thein + * + */ +public class UserRoleRequestWrapper extends HttpServletRequestWrapper { + + private String user; + private List roles = null; + private HttpServletRequest realRequest; + + public UserRoleRequestWrapper(String user, List roles, + HttpServletRequest request) { + super(request); + this.user = user; + this.roles = roles; + this.realRequest = request; + } + + @Override + public boolean isUserInRole(String role) { + if (roles == null) { + return this.realRequest.isUserInRole(role); + } + return roles.contains(role); + } + + @Override + public Principal getUserPrincipal() { + if (this.user == null) { + return realRequest.getUserPrincipal(); + } + + return new Principal() { + @Override + public String getName() { + return user; + } + }; + } +} \ No newline at end of file diff --git a/src/com/zeemonsters/disman/auth/servlet/Login.java b/src/com/zeemonsters/disman/auth/servlet/Login.java new file mode 100755 index 00000000..e92fba32 --- /dev/null +++ b/src/com/zeemonsters/disman/auth/servlet/Login.java @@ -0,0 +1,75 @@ +package com.zeemonsters.disman.auth.servlet; + +import java.io.IOException; + +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import com.zeemonsters.disman.auth.AppUtils; +import com.zeemonsters.disman.auth.DataDAO; +import com.zeemonsters.disman.auth.SecurityConfig; +import com.zeemonsters.disman.auth.UserAccount; + +@WebServlet("/login") +public class Login extends HttpServlet { + private static final long serialVersionUID = 1L; + + public Login() { + super(); + } + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + UserAccount userAccount = AppUtils.getLoginedUser(request.getSession()); + if (userAccount != null) { + if (userAccount.getRoles().get(0).equals(SecurityConfig.ROLE_VOLUNTEER)) { + response.sendRedirect(request.getContextPath() + "/welcome"); + } + } else { + RequestDispatcher dispatcher // + = this.getServletContext().getRequestDispatcher("/WEB-INF/views/login.jsp"); + dispatcher.forward(request, response); + } + } + + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + String userName = request.getParameter("username"); + String password = request.getParameter("password"); + UserAccount userAccount = DataDAO.findUser(userName, password); + if (userAccount == null) { + String errorMessage = "Invalid Username or Password"; + request.setAttribute("errorMessage", errorMessage); + RequestDispatcher dispatcher // + = this.getServletContext().getRequestDispatcher("/WEB-INF/views/login.jsp"); + dispatcher.forward(request, response); + return; + } + AppUtils.storeLoginedUser(request.getSession(), userAccount); + + // + int redirectId = -1; + try { + redirectId = Integer.parseInt(request.getParameter("redirectId")); + } catch (Exception e) { + } + String requestUri = AppUtils.getRedirectAfterLoginUrl(request.getSession(), redirectId); + if (requestUri != null) { + response.sendRedirect(requestUri); + } else { + if (AppUtils.getLoginedUser(request.getSession()).getRoles().get(0).equals(SecurityConfig.ROLE_VOLUNTEER)) { + response.sendRedirect(request.getContextPath() + "/welcome"); + } + + } + + } + +} \ No newline at end of file diff --git a/src/com/zeemonsters/disman/auth/servlet/Logout.java b/src/com/zeemonsters/disman/auth/servlet/Logout.java new file mode 100755 index 00000000..d1b243c7 --- /dev/null +++ b/src/com/zeemonsters/disman/auth/servlet/Logout.java @@ -0,0 +1,33 @@ +package com.zeemonsters.disman.auth.servlet; + +import java.io.IOException; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +@WebServlet("/logout") +public class Logout extends HttpServlet { + private static final long serialVersionUID = 1L; + + public Logout() { + super(); + } + + @Override + protected void doGet(HttpServletRequest request, + HttpServletResponse response) throws ServletException, IOException { + request.getSession().invalidate(); + response.sendRedirect(request.getContextPath() + "/"); + + } + + @Override + protected void doPost(HttpServletRequest request, + HttpServletResponse response) throws ServletException, IOException { + this.doGet(request, response); + } + +} \ No newline at end of file diff --git a/src/com/zeemonsters/disman/auth/servlet/PortalForum.java b/src/com/zeemonsters/disman/auth/servlet/PortalForum.java new file mode 100755 index 00000000..eb145d60 --- /dev/null +++ b/src/com/zeemonsters/disman/auth/servlet/PortalForum.java @@ -0,0 +1,30 @@ +package com.zeemonsters.disman.auth.servlet; + +import java.io.IOException; + +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +@WebServlet("/portal") +public class PortalForum extends HttpServlet { + private static final long serialVersionUID = 1L; + + public PortalForum() { + super(); + } + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + RequestDispatcher dispatcher // + = this.getServletContext().getRequestDispatcher("/WEB-INF/views/portal.jsp"); + dispatcher.forward(request, response); + + } + +} \ No newline at end of file diff --git a/src/com/zeemonsters/disman/auth/servlet/Portals.java b/src/com/zeemonsters/disman/auth/servlet/Portals.java new file mode 100755 index 00000000..0a145155 --- /dev/null +++ b/src/com/zeemonsters/disman/auth/servlet/Portals.java @@ -0,0 +1,30 @@ +package com.zeemonsters.disman.auth.servlet; + +import java.io.IOException; + +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +@WebServlet("/portals") +public class Portals extends HttpServlet { + private static final long serialVersionUID = 1L; + + public Portals() { + super(); + } + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + RequestDispatcher dispatcher // + = this.getServletContext().getRequestDispatcher("/WEB-INF/views/portals.jsp"); + dispatcher.forward(request, response); + + } + +} \ No newline at end of file diff --git a/src/com/zeemonsters/disman/auth/servlet/Profile.java b/src/com/zeemonsters/disman/auth/servlet/Profile.java new file mode 100755 index 00000000..c9b9a892 --- /dev/null +++ b/src/com/zeemonsters/disman/auth/servlet/Profile.java @@ -0,0 +1,43 @@ +package com.zeemonsters.disman.auth.servlet; + +import java.io.IOException; + +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import com.zeemonsters.disman.auth.AppUtils; +import com.zeemonsters.disman.auth.SecurityConfig; +import com.zeemonsters.disman.auth.UserAccount; + +@WebServlet("/profile") +public class Profile extends HttpServlet { + private static final long serialVersionUID = 1L; + + public Profile() { + super(); + } + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + UserAccount userAccount = AppUtils.getLoginedUser(request.getSession()); + if (userAccount != null) { + if (userAccount.getRoles().get(0).equals(SecurityConfig.ROLE_VOLUNTEER)) { + RequestDispatcher dispatcher // + = this.getServletContext().getRequestDispatcher("/WEB-INF/views/profile.jsp"); + dispatcher.forward(request, response); + } + } else { + RequestDispatcher dispatcher // + = this.getServletContext().getRequestDispatcher("/WEB-INF/views/login.jsp"); + dispatcher.forward(request, response); + } + + } + +} \ No newline at end of file diff --git a/src/com/zeemonsters/disman/auth/servlet/Requests.java b/src/com/zeemonsters/disman/auth/servlet/Requests.java new file mode 100755 index 00000000..327442b0 --- /dev/null +++ b/src/com/zeemonsters/disman/auth/servlet/Requests.java @@ -0,0 +1,41 @@ +package com.zeemonsters.disman.auth.servlet; + +import java.io.IOException; + +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import com.zeemonsters.disman.auth.AppUtils; +import com.zeemonsters.disman.auth.SecurityConfig; +import com.zeemonsters.disman.auth.UserAccount; + +@WebServlet("/requests") +public class Requests extends HttpServlet { + private static final long serialVersionUID = 1L; + + public Requests() { + super(); + } + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + UserAccount userAccount = AppUtils.getLoginedUser(request.getSession()); + if (userAccount != null) { + if (userAccount.getRoles().get(0).equals(SecurityConfig.ROLE_VOLUNTEER)) { + RequestDispatcher dispatcher // + = this.getServletContext().getRequestDispatcher("/WEB-INF/views/requests.jsp"); + dispatcher.forward(request, response); + } + } else { + RequestDispatcher dispatcher // + = this.getServletContext().getRequestDispatcher("/WEB-INF/views/login.jsp"); + dispatcher.forward(request, response); + } + } + +} \ No newline at end of file diff --git a/src/com/zeemonsters/disman/auth/servlet/Signup.java b/src/com/zeemonsters/disman/auth/servlet/Signup.java new file mode 100755 index 00000000..0c455f6f --- /dev/null +++ b/src/com/zeemonsters/disman/auth/servlet/Signup.java @@ -0,0 +1,68 @@ +package com.zeemonsters.disman.auth.servlet; + +import java.io.IOException; + +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import com.zeemonsters.disman.auth.AppUtils; +import com.zeemonsters.disman.auth.DataDAO; +import com.zeemonsters.disman.auth.SecurityConfig; +import com.zeemonsters.disman.auth.UserAccount; +import com.zeemonsters.disman.db.DBUtils; +import com.zeemonsters.disman.db.Users; +import com.zeemonsters.disman.db.Utils; + +@WebServlet("/signup") +public class Signup extends HttpServlet { + private static final long serialVersionUID = 1L; + + public Signup() { + super(); + } + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + UserAccount userAccount = AppUtils.getLoginedUser(request.getSession()); + if (userAccount != null) { + if (userAccount.getRoles().get(0).equals(SecurityConfig.ROLE_VOLUNTEER)) { + response.sendRedirect(request.getContextPath() + "/welcome"); + } + } else { + RequestDispatcher dispatcher // + = this.getServletContext().getRequestDispatcher("/WEB-INF/views/signup.jsp"); + dispatcher.forward(request, response); + } + } + + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + String email = request.getParameter("email"); + String userName = request.getParameter("username"); + String password = request.getParameter("password"); + String mobile = request.getParameter("mobile"); + + if (Utils.checkNotEmptyOrNull(email) && Utils.checkNotEmptyOrNull(userName) + && Utils.checkNotEmptyOrNull(password) && Utils.checkNotEmptyOrNull(mobile)) { + if (Users.insert(new String[] { "'" + userName + "','" + DBUtils.getMd5(password) + "','" + email + "','" + + mobile + "', '" + SecurityConfig.ROLE_VOLUNTEER + "'" })) { + request.setAttribute("message", "Signed up successfully"); + } else { + request.setAttribute("message", "Username or email already exists"); + } + } else { + request.setAttribute("message", "Please fill the fields properly"); + } + RequestDispatcher dispatcher // + = this.getServletContext().getRequestDispatcher("/WEB-INF/views/signup.jsp"); + dispatcher.forward(request, response); + + } + +} \ No newline at end of file diff --git a/src/com/zeemonsters/disman/auth/servlet/Welcome.java b/src/com/zeemonsters/disman/auth/servlet/Welcome.java new file mode 100755 index 00000000..34d025f5 --- /dev/null +++ b/src/com/zeemonsters/disman/auth/servlet/Welcome.java @@ -0,0 +1,48 @@ +package com.zeemonsters.disman.auth.servlet; + +import java.io.IOException; + +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * Servlet implementation class Welcome + */ +@WebServlet("/welcome") +public class Welcome extends HttpServlet { + private static final long serialVersionUID = 1L; + + /** + * @see HttpServlet#HttpServlet() + */ + public Welcome() { + super(); + } + + /** + * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse + * response) + */ + protected void doGet(HttpServletRequest request, + HttpServletResponse response) throws ServletException, IOException { + RequestDispatcher dispatcher // + = this.getServletContext() + .getRequestDispatcher("/WEB-INF/views/index.jsp"); + + dispatcher.forward(request, response); + } + + /** + * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse + * response) + */ + protected void doPost(HttpServletRequest request, + HttpServletResponse response) throws ServletException, IOException { + doGet(request, response); + } + +} diff --git a/src/com/zeemonsters/disman/auth/servlet/user/AddSlot.java b/src/com/zeemonsters/disman/auth/servlet/user/AddSlot.java new file mode 100755 index 00000000..bb84d279 --- /dev/null +++ b/src/com/zeemonsters/disman/auth/servlet/user/AddSlot.java @@ -0,0 +1,60 @@ +package com.zeemonsters.disman.auth.servlet.user; + +import java.io.IOException; + +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import com.zeemonsters.disman.auth.AppUtils; +import com.zeemonsters.disman.auth.SecurityConfig; +import com.zeemonsters.disman.auth.UserAccount; + +@WebServlet("/user/bookslot") +public class AddSlot extends HttpServlet { + + private static final long serialVersionUID = 205242440643911308L; + + @Override + public void init() throws ServletException { + super.init(); + } + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + UserAccount account = AppUtils.getLoginedUser(request.getSession()); + if (account != null) { + if (account.getRoles().contains(SecurityConfig.ROLE_VOLUNTEER)) { + RequestDispatcher dispatcher // + = this.getServletContext().getRequestDispatcher("/WEB-INF/views/userHome.jsp"); + + dispatcher.forward(request, response); + } else { + response.sendRedirect(request.getServletContext().getContextPath() + "/login"); + } + } else { + response.sendRedirect(request.getServletContext().getContextPath() + "/login"); + } + } + + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + String title = request.getParameter("title"); + String category = request.getParameter("category"); + String desc = request.getParameter("desc"); + String date = request.getParameter("date"); + + UserAccount userAccount = AppUtils.getLoginedUser(request.getSession()); + + String username = userAccount.getUserName(); + String value = "'" + username + "','" + date + "','" + title + "','" + desc + "','" + category + "'"; +// Booking.insert(new String[] { value }); + response.sendRedirect(request.getServletContext().getContextPath() + "/user/home"); + + } +} diff --git a/src/com/zeemonsters/disman/db/Announcement.java b/src/com/zeemonsters/disman/db/Announcement.java new file mode 100755 index 00000000..596af50d --- /dev/null +++ b/src/com/zeemonsters/disman/db/Announcement.java @@ -0,0 +1,54 @@ +package com.zeemonsters.disman.db; + +import java.sql.SQLException; + +import org.json.JSONArray; +import org.json.JSONObject; + +public class Announcement { + public static final String TABLENAME = "announcement"; + public static final String ID = "id"; + public static final String TITLE = "title"; + public static final String NAME = "username"; + public static final String TAG = "tag"; + public static final String DESCRIPTION = "description"; + public static final String DATETIME = "eventdate"; + public static final String PORTALID = "portalid"; + + public static JSONArray getAnnouncements() { + try { + JSONObject result = DBUtils.select(TABLENAME, + ID + "," + NAME + "," + TITLE+ "," + TAG + "," + DESCRIPTION + "," + DATETIME+ "," + PORTALID, null, null, null); + if (result.has("result")) { + return result.getJSONArray("result"); + } + } catch (ClassNotFoundException | SQLException e) { + e.printStackTrace(); + } + return null; + } + + public static boolean insert(String[] values) { + try { + return DBUtils.insert(TABLENAME, NAME+ "," + TITLE + "," + TAG + "," + DESCRIPTION + "," + DATETIME+ "," + PORTALID, values); + } catch (ClassNotFoundException | SQLException e) { + e.printStackTrace(); + } + return true; + } + + public static JSONArray getAnnouncements(String wherecol, String whereVal) { + try { + JSONObject result = DBUtils.select(TABLENAME, + ID + "," + NAME + "," + TITLE+ "," + TAG + "," + DESCRIPTION + "," + DATETIME+ "," + PORTALID, wherecol, whereVal, null); + + if (result.has("result")) { + return result.getJSONArray("result"); + } + } catch (ClassNotFoundException | SQLException e) { + e.printStackTrace(); + } + return null; + } + +} diff --git a/src/com/zeemonsters/disman/db/DBUtils.java b/src/com/zeemonsters/disman/db/DBUtils.java new file mode 100755 index 00000000..6d285c6e --- /dev/null +++ b/src/com/zeemonsters/disman/db/DBUtils.java @@ -0,0 +1,281 @@ +package com.zeemonsters.disman.db; + +import java.math.BigInteger; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.sql.Connection; +import java.sql.DatabaseMetaData; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.HashSet; +import java.util.Set; + +import javax.sound.midi.Track; + +import org.json.JSONArray; +import org.json.JSONObject; + +import com.zeemonsters.disman.auth.Constants; +import com.zeemonsters.disman.auth.SecurityConfig; + +public class DBUtils { + + static { + try { + initialize(); + } catch (ClassNotFoundException | SQLException e) { + e.printStackTrace(); + } + } + + public static Connection getConnection() throws ClassNotFoundException, SQLException { + Class.forName("org.postgresql.Driver"); + Connection conn = DriverManager.getConnection("jdbc:postgresql://localhost:5555/zeemonsters", "postgres", + "root"); + return conn; + } + + public static boolean initialize() throws ClassNotFoundException, SQLException { + Connection conn = getConnection(); + Statement stmt = conn.createStatement(); + Set set = getDBTables(conn); + if (!set.contains(Users.TABLENAME)) { + + String query = "CREATE TABLE " + Users.TABLENAME + "( " + Users.ID + " serial PRIMARY KEY, " + + Users.USERNAME + " VARCHAR(255) UNIQUE NOT NULL, " + Users.PASSWORD + " VARCHAR(255) NOT NULL, " + + Users.ROLE + " VARCHAR(255) NOT NULL, " + Users.EMAIL + " VARCHAR(255) NOT NULL, " + Users.MOBILE + + " VARCHAR(255) NOT NULL);"; + stmt.execute(query); + query = "INSERT INTO " + Users.TABLENAME + "(" + Users.USERNAME + "," + Users.PASSWORD + "," + Users.ROLE + + "," + Users.EMAIL + "," + Users.MOBILE + ") VALUES " + + "('balachandar', 'ee11cbb19052e40b07aac0ca060c23ee', '" + SecurityConfig.ROLE_VOLUNTEER + "','" + + Constants.FROM_EMAIL + "','" + Constants.ADMIN_MOBILE + "'), " + + "('sujatha', 'ee11cbb19052e40b07aac0ca060c23ee', '" + SecurityConfig.ROLE_VOLUNTEER + "','" + + Constants.FROM_EMAIL + "','" + Constants.ADMIN_MOBILE + "') "; + stmt.execute(query); + + } + if (!set.contains(Portals.TABLENAME)) { + String query = "CREATE TABLE " + Portals.TABLENAME + "( " + Portals.ID + " serial PRIMARY KEY, " + + Portals.NAME + " VARCHAR(255) UNIQUE NOT NULL, " + Portals.REGION + " VARCHAR(255) NOT NULL, " + + Portals.DESCRIPTION + " VARCHAR(255) NOT NULL, " + Portals.DATETIME + " DATE, " + Portals.URL + + " VARCHAR(255) UNIQUE NOT NULL);"; + + stmt.execute(query); + } + + if (!set.contains(Issues.TABLENAME)) { + String query = "CREATE TABLE " + Issues.TABLENAME + "( " + Issues.ID + " serial PRIMARY KEY, " + Issues.USER + + " VARCHAR(255) NOT NULL, " + Issues.ASSIGNED + " VARCHAR(255) NULL, " + Issues.PINCODE + + " VARCHAR(255) NOT NULL, " + Issues.MESSAGEID + " serial, " + Issues.LATITUDE + + " VARCHAR(255) NOT NULL, " + Issues.LONGITUDE + " VARCHAR(255) NOT NULL, " + Issues.REPLYTO + + " VARCHAR(255) NOT NULL, " + Issues.TAGS + " VARCHAR(255) NOT NULL, " + Issues.MESSAGE + + " VARCHAR(255) NOT NULL, " + Issues.DATETIME + " DATE);"; + + stmt.execute(query); + } + if (!set.contains(Announcement.TABLENAME)) { + String query = "CREATE TABLE " + Announcement.TABLENAME + "( " + Announcement.ID + " serial PRIMARY KEY, " + + Announcement.PORTALID + " VARCHAR(255) NOT NULL," + Announcement.TITLE + " VARCHAR(255) NOT NULL," + + Announcement.NAME + " VARCHAR(255) NOT NULL, " + Announcement.DESCRIPTION + + " VARCHAR(255) NOT NULL, " + Announcement.TAG + " VARCHAR(255) NOT NULL, " + Announcement.DATETIME + + " DATE);"; + + stmt.execute(query); + } + + if (!set.contains(Pincode.TABLENAME)) { + String query = "CREATE TABLE " + Pincode.TABLENAME + "( " + Pincode.ID + " serial PRIMARY KEY, " + + Pincode.PINCODE + " VARCHAR(255) NOT NULL, " + Pincode.LATITUDE + " VARCHAR(255) NOT NULL, " + + Pincode.LONGITUDE + " VARCHAR(255) NOT NULL);"; + + stmt.execute(query); + } + + if (!set.contains(Profile.TABLENAME)) { + String query = "CREATE TABLE " + Profile.TABLENAME + "( " + Profile.ID + " serial PRIMARY KEY, " + + Profile.REGION + " VARCHAR(255) NOT NULL, " + Profile.USERNAME + " VARCHAR(255) NOT NULL, " + + Profile.AVAILABLE + " VARCHAR(255) NOT NULL, " + Profile.PINCODE + " VARCHAR(255) NOT NULL);"; + + stmt.execute(query); + } + + return true; + } + + public static boolean drop() throws ClassNotFoundException, SQLException { + Connection conn = getConnection(); + Statement stmt = conn.createStatement(); + Set tables = getDBTables(conn); + for (String string : tables) { + String query = "DROP TABLE " + string; + stmt.execute(query); + } + return true; + } + + public static boolean insert(String tablename, String columns, String[] values) + throws ClassNotFoundException, SQLException { + Connection conn = getConnection(); + Statement stmt = conn.createStatement(); + String query = "INSERT INTO " + tablename + "(" + columns + ") VALUES "; + for (int i = 0; i < values.length; i++) { + query += "(" + values[i] + ")"; + if (i < values.length - 1) { + query += ","; + } + } + try { + stmt.execute(query); + } catch (Exception e) { + return false; + } + return true; + } + + public static int count(String tablename, String col) throws ClassNotFoundException, SQLException { + Connection conn = getConnection(); + Statement stmt = conn.createStatement(); + String query = "SELECT count(" + col + ") as count FROM " + tablename; + ResultSet rs = stmt.executeQuery(query); + int count = 0; + while (rs.next()) { + count = rs.getInt(1); + } + return count; + } + + public static JSONObject select(String tablename, String columns, String whereCol, String whereVal, String groupBY) + throws ClassNotFoundException, SQLException { + Connection conn = getConnection(); + Statement stmt = conn.createStatement(); + String query = "SELECT " + columns + " FROM " + tablename; + if (whereCol != null) { + query += " WHERE " + whereCol + " = " + whereVal; + } + ResultSet rs = stmt.executeQuery(query); + JSONObject jsonresult = new JSONObject(); + JSONArray result = new JSONArray(); + String col[] = columns.split("[,]"); + int count = col.length; + while (rs.next()) { + + JSONObject json = new JSONObject(); + for (int i = 0; i < col.length; i++) { + json.put(col[i], rs.getString(col[i])); + } + result.put(json); + } + jsonresult.put("tablename", tablename); + jsonresult.put("result", result); + return jsonresult; + } + + public static JSONObject selectM(String tablename, String columns, String whereCol[], String whereVal[], + String groupBY) throws ClassNotFoundException, SQLException { + Connection conn = getConnection(); + Statement stmt = conn.createStatement(); + String query = "SELECT " + columns + " FROM " + tablename; + if (whereCol != null && whereVal != null && whereCol.length == whereVal.length) { + query += " WHERE "; + for (int i = 0; i < whereVal.length; i++) { + query += whereCol[i] + " LIKE " + whereVal[i]; + if (i < whereVal.length - 1) { + query += " AND "; + } + } + + } + ResultSet rs = stmt.executeQuery(query); + JSONObject jsonresult = new JSONObject(); + JSONArray result = new JSONArray(); + String col[] = columns.split("[,]"); + int count = col.length; + while (rs.next()) { + + JSONObject json = new JSONObject(); + for (int i = 0; i < col.length; i++) { + json.put(col[i], rs.getString(col[i])); + } + result.put(json); + } + jsonresult.put("tablename", tablename); + jsonresult.put("result", result); + return jsonresult; + } + + public static boolean update(String tablename, String columns, String values, String whereCol, String whereVal) + throws ClassNotFoundException, SQLException { + Connection conn = getConnection(); + Statement stmt = conn.createStatement(); + String query = "UPDATE " + tablename + " SET " + columns + " = " + values; + if (whereCol != null) { + query += " WHERE " + whereCol + " = " + whereVal; + } + + if (stmt.executeUpdate(query) <= 0) { + return false; + } + return true; + + } + + public static boolean delete(String tablename, String whereCol, String whereVal) + throws ClassNotFoundException, SQLException { + Connection conn = getConnection(); + Statement stmt = conn.createStatement(); + String query = "DELETE FROM " + tablename; + if (whereCol != null) { + query += " WHERE " + whereCol + " = " + whereVal; + } + if (stmt.executeUpdate(query) <= 0) { + return false; + } + return true; + } + + public static String getMd5(String input) { + try { + + // Static getInstance method is called with hashing MD5 + MessageDigest md = MessageDigest.getInstance("MD5"); + + // digest() method is called to calculate message digest + // of an input digest() return array of byte + byte[] messageDigest = md.digest(input.getBytes()); + + // Convert byte array into signum representation + BigInteger no = new BigInteger(1, messageDigest); + + // Convert message digest into hex value + String hashtext = no.toString(16); + while (hashtext.length() < 32) { + hashtext = "0" + hashtext; + } + return hashtext; + } + + // For specifying wrong message digest algorithms + catch (NoSuchAlgorithmException e) { + throw new RuntimeException(e); + } + } + + private static Set getDBTables(Connection targetDBConn) throws SQLException { + Set set = new HashSet(); + DatabaseMetaData dbmeta = targetDBConn.getMetaData(); + readDBTable(set, dbmeta, "TABLE", null); + readDBTable(set, dbmeta, "VIEW", null); + return set; + } + + private static void readDBTable(Set set, DatabaseMetaData dbmeta, String searchCriteria, String schema) + throws SQLException { + ResultSet rs = dbmeta.getTables(null, schema, null, new String[] { searchCriteria }); + while (rs.next()) { + set.add(rs.getString("TABLE_NAME").toLowerCase()); + } + } +} diff --git a/src/com/zeemonsters/disman/db/Issues.java b/src/com/zeemonsters/disman/db/Issues.java new file mode 100755 index 00000000..ee579636 --- /dev/null +++ b/src/com/zeemonsters/disman/db/Issues.java @@ -0,0 +1,95 @@ +package com.zeemonsters.disman.db; + +import java.sql.SQLException; + +import org.json.JSONArray; +import org.json.JSONObject; + +public class Issues { + public static final String TABLENAME = "issues"; + public static final String ID = "id"; + public static final String USER = "userid"; + public static final String DATETIME = "datetime"; + public static final String MESSAGE = "message"; + public static final String LATITUDE = "lat"; + public static final String PINCODE = "pincode"; + public static final String LONGITUDE = "long"; + public static final String MESSAGEID = "msgid"; + public static final String REPLYTO = "replyto"; + public static final String TAGS = "tags"; + public static final String ASSIGNED = "assigned"; + + public static JSONArray getIssues() { + try { + JSONObject result = DBUtils.select(TABLENAME, + USER + "," + DATETIME + "," + MESSAGE + "," + LATITUDE + "," + LONGITUDE + "," + ID + "," + + MESSAGEID + "," + REPLYTO + "," + TAGS + "," + PINCODE + "," + ASSIGNED, + null, null, null); + if (result.has("result")) { + return result.getJSONArray("result"); + } + } catch (ClassNotFoundException | SQLException e) { + e.printStackTrace(); + } + return null; + } + + public static JSONArray getIssues(String whereCols[], String whereVals[]) { + try { + JSONObject result = DBUtils.selectM(TABLENAME, + USER + "," + DATETIME + "," + MESSAGE + "," + LATITUDE + "," + LONGITUDE + "," + ID + "," + + MESSAGEID + "," + REPLYTO + "," + TAGS + "," + PINCODE + "," + ASSIGNED, + whereCols, whereVals, null); + if (result.has("result")) { + return result.getJSONArray("result"); + } + } catch (ClassNotFoundException | SQLException e) { + e.printStackTrace(); + } + return null; + } + + public static JSONArray getIssues(String whereCols, String whereVals) { + try { + JSONObject result = DBUtils.select(TABLENAME, + USER + "," + DATETIME + "," + MESSAGE + "," + LATITUDE + "," + LONGITUDE + "," + ID + "," + + MESSAGEID + "," + REPLYTO + "," + TAGS + "," + PINCODE + "," + ASSIGNED, + whereCols, whereVals, null); + if (result.has("result")) { + return result.getJSONArray("result"); + } + } catch (ClassNotFoundException | SQLException e) { + e.printStackTrace(); + } + return null; + } + + public static boolean insert(String[] values) { + try { + return DBUtils.insert(TABLENAME, USER + "," + DATETIME + "," + MESSAGE + "," + REPLYTO + "," + TAGS + "," + + LATITUDE + "," + LONGITUDE + "," + PINCODE + "," + ASSIGNED, values); + } catch (ClassNotFoundException | SQLException e) { + e.printStackTrace(); + return false; + } + } + + public static boolean update(String cols, String values, String whereCol, String whereVal) { + try { + return DBUtils.update(Issues.TABLENAME, cols, values, whereCol, whereVal); + + } catch (ClassNotFoundException | SQLException e) { + return false; + } + } + + public static boolean delete(String id) { + try { + return DBUtils.delete(Issues.TABLENAME, Issues.ID, "'" + id + "'"); + } catch (ClassNotFoundException | SQLException e) { + e.printStackTrace(); + return false; + } + + } +} diff --git a/src/com/zeemonsters/disman/db/Pincode.java b/src/com/zeemonsters/disman/db/Pincode.java new file mode 100755 index 00000000..153ca96f --- /dev/null +++ b/src/com/zeemonsters/disman/db/Pincode.java @@ -0,0 +1,36 @@ +package com.zeemonsters.disman.db; + +import java.sql.SQLException; + +import org.json.JSONArray; +import org.json.JSONObject; + +public class Pincode { + public static final String TABLENAME = "pincode"; + public static final String ID = "id"; + public static final String PINCODE = "pincode"; + public static final String LATITUDE = "lat"; + public static final String LONGITUDE = "long"; + + public static boolean insert(String[] values) { + try { + return DBUtils.insert(TABLENAME, PINCODE + "," + LATITUDE + "," + LONGITUDE, values); + } catch (ClassNotFoundException | SQLException e) { + return false; + } + } + + public static JSONArray getLatLong(String wherecol, String whereVal) { + try { + JSONObject result = DBUtils.select(TABLENAME, ID + "," + LATITUDE + "," + LONGITUDE, wherecol, whereVal, + null); + if (result.has("result")) { + return result.getJSONArray("result"); + } + } catch (ClassNotFoundException | SQLException e) { + e.printStackTrace(); + } + return null; + } + +} diff --git a/src/com/zeemonsters/disman/db/Portals.java b/src/com/zeemonsters/disman/db/Portals.java new file mode 100755 index 00000000..8eb85ad7 --- /dev/null +++ b/src/com/zeemonsters/disman/db/Portals.java @@ -0,0 +1,55 @@ +package com.zeemonsters.disman.db; + +import java.sql.SQLException; + +import org.json.JSONArray; +import org.json.JSONObject; + +public class Portals { + public static final String TABLENAME = "portals"; + public static final String ID = "id"; + public static final String NAME = "name"; + public static final String URL = "url"; + public static final String REGION = "region"; + public static final String DESCRIPTION = "description"; + public static final String DATETIME = "eventdate"; + + public static JSONArray getPortals() { + try { + JSONObject result = DBUtils.select(TABLENAME, + ID + "," + NAME + "," + URL + "," + REGION + "," + DESCRIPTION + "," + DATETIME, null, null, null); + if (result.has("result")) { + return result.getJSONArray("result"); + } + } catch (ClassNotFoundException | SQLException e) { + e.printStackTrace(); + } + return null; + } + + public static boolean insert(String[] values) { + try { + return DBUtils.insert(TABLENAME, NAME + "," + URL + "," + REGION + "," + DESCRIPTION + "," + DATETIME, + values); + } catch (ClassNotFoundException | SQLException e) { + e.printStackTrace(); + } + return true; + } + + public static JSONArray getPortals(String wherecol, String whereVal) { + try { + JSONObject result = DBUtils.select(TABLENAME, + ID + "," + NAME + "," + URL + "," + REGION + "," + DESCRIPTION + "," + DATETIME, wherecol, whereVal, + null); + + if (result.has("result")) { + return result.getJSONArray("result"); + } + } catch (ClassNotFoundException | SQLException e) { + e.printStackTrace(); + } + return null; + } + +} diff --git a/src/com/zeemonsters/disman/db/Profile.java b/src/com/zeemonsters/disman/db/Profile.java new file mode 100755 index 00000000..9c92202e --- /dev/null +++ b/src/com/zeemonsters/disman/db/Profile.java @@ -0,0 +1,49 @@ +package com.zeemonsters.disman.db; + +import java.sql.SQLException; + +import org.json.JSONArray; +import org.json.JSONObject; + +public class Profile { + public static final String TABLENAME = "profile"; + public static final String ID = "id"; + public static final String USERNAME = "username"; + public static final String PINCODE = "pincode"; + public static final String REGION = "region"; + public static final String AVAILABLE = "available"; + + public static boolean insert(String[] values) { + try { + + return DBUtils.insert(TABLENAME, PINCODE + "," + USERNAME + "," + REGION + "," + AVAILABLE, values); + } catch (ClassNotFoundException | SQLException e) { + return false; + } + } + + public static JSONArray getProfile(String wherecol, String whereVal) { + try { + + JSONObject result = DBUtils.select(TABLENAME, + ID + "," + PINCODE + "," + USERNAME + "," + REGION + "," + AVAILABLE, wherecol, whereVal, null); + if (result.has("result")) { + return result.getJSONArray("result"); + } + } catch (ClassNotFoundException | SQLException e) { + } + return new JSONArray(); + } + + public static boolean update(String[] values, String whereCol, String whereVal) { + try { + DBUtils.delete(TABLENAME, whereCol, whereVal); + return DBUtils.insert(TABLENAME, PINCODE + "," + USERNAME + "," + REGION + "," + AVAILABLE, values); + } catch (ClassNotFoundException | SQLException e) { + + return false; + } + + } + +} diff --git a/src/com/zeemonsters/disman/db/Users.java b/src/com/zeemonsters/disman/db/Users.java new file mode 100755 index 00000000..49f4a3e2 --- /dev/null +++ b/src/com/zeemonsters/disman/db/Users.java @@ -0,0 +1,82 @@ +package com.zeemonsters.disman.db; + +import java.sql.SQLException; + +import org.json.JSONArray; +import org.json.JSONObject; + +import com.zeemonsters.disman.auth.UserAccount; + + +public class Users { + public static final String TABLENAME = "users"; + public static final String ID = "id"; + public static final String USERNAME = "username"; + public static final String PASSWORD = "password"; + public static final String EMAIL = "email"; + public static final String MOBILE = "mobile"; + public static final String ROLE = "role"; + + public static JSONArray getUsers() { + try { + JSONObject result = DBUtils.select(TABLENAME, + USERNAME + "," + ROLE + "," + EMAIL + "," + MOBILE, null, + null, null); + + if (result.has("result")) { + return result.getJSONArray("result"); + } + } catch (ClassNotFoundException | SQLException e) { + e.printStackTrace(); + } + return null; + } + + public static boolean insert(String[] values) { + try { + return DBUtils.insert(TABLENAME, USERNAME + "," + PASSWORD + "," + + EMAIL + "," + MOBILE + "," + ROLE, values); + } catch (ClassNotFoundException | SQLException e) { + e.printStackTrace(); + } + return true; + } + + public static JSONArray getUsers(String wherecol, String whereVal) { + try { + JSONObject result = DBUtils.select(TABLENAME, + USERNAME + "," + ROLE + "," + EMAIL + "," + MOBILE, + wherecol, whereVal, null); + + if (result.has("result")) { + return result.getJSONArray("result"); + } + } catch (ClassNotFoundException | SQLException e) { + e.printStackTrace(); + } + return null; + } + + public static UserAccount checkUser(String username, String password) { + try { + JSONObject result = DBUtils.select(TABLENAME, PASSWORD + "," + ROLE, + USERNAME, "'" + username + "'", null); + if (result.has("result")) { + JSONArray array = result.getJSONArray("result"); + for (int i = 0; i < array.length(); i++) { + JSONObject obj = array.getJSONObject(i); + String pass = obj.getString(PASSWORD); + if (DBUtils.getMd5(password).equals(pass)) { + UserAccount userAccount = new UserAccount(username, + obj.getString(ROLE)); + return userAccount; + } + } + } + } catch (ClassNotFoundException | SQLException e) { + e.printStackTrace(); + } + return null; + } + +} diff --git a/src/com/zeemonsters/disman/db/Utils.java b/src/com/zeemonsters/disman/db/Utils.java new file mode 100755 index 00000000..552a79c5 --- /dev/null +++ b/src/com/zeemonsters/disman/db/Utils.java @@ -0,0 +1,7 @@ +package com.zeemonsters.disman.db; + +public class Utils { + public static boolean checkNotEmptyOrNull(String text) { + return text != null && !text.isEmpty(); + } +} diff --git a/src/com/zeemonsters/disman/servlet/Announcement.java b/src/com/zeemonsters/disman/servlet/Announcement.java new file mode 100755 index 00000000..5fed2eb4 --- /dev/null +++ b/src/com/zeemonsters/disman/servlet/Announcement.java @@ -0,0 +1,92 @@ +package com.zeemonsters.disman.servlet; + +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.Consumes; +import javax.ws.rs.FormParam; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; + +import org.json.JSONArray; +import org.json.JSONObject; + +import com.zeemonsters.disman.auth.AppUtils; +import com.zeemonsters.disman.auth.SecurityConfig; +import com.zeemonsters.disman.auth.UserAccount; +import com.zeemonsters.disman.db.Portals; +import com.zeemonsters.disman.db.Utils; + +@Path("/announcement") +public class Announcement extends HttpServlet { + private static final long serialVersionUID = 1L; + + @Context + HttpServletRequest request; + HttpServletResponse response; + + @POST + @Produces(MediaType.APPLICATION_JSON) + @Consumes({ MediaType.APPLICATION_FORM_URLENCODED }) + public Response makeAnnouncement(@FormParam("title") String title, @FormParam("tag") String tag, + @FormParam("description") String description,@FormParam("portal") String portal) + throws ServletException, IOException { + JSONObject responseObj = new JSONObject(); + UserAccount userAccount = AppUtils.getLoginedUser(request.getSession()); + if (userAccount != null) { + Date date = Calendar.getInstance().getTime(); + SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); + String strDate = formatter.format(date); + if (userAccount.getRoles().get(0).equals(SecurityConfig.ROLE_VOLUNTEER)) { + if (Utils.checkNotEmptyOrNull(portal)&&Utils.checkNotEmptyOrNull(description) + && Utils.checkNotEmptyOrNull(title) && Utils.checkNotEmptyOrNull(tag) + && com.zeemonsters.disman.db.Announcement.insert(new String[] { "'"+ userAccount.getUserName() + "','" + title + "','" + tag + "','" + description + + "',TO_DATE('" + strDate + "', 'DD/MM/YYYY'),'"+portal+"'" })) { + responseObj.put("message", "Successfully created the announcement"); + responseObj.put("status", "SUCCESS"); + return Response.status(201).entity(responseObj.toString()).build(); + } else { + String errorMessage = "Please check the fields"; + responseObj.put("message", errorMessage); + responseObj.put("status", "FAILED"); + return Response.status(400).entity(responseObj.toString()).build(); + } + + } else { + String errorMessage = "You cannot make announcements"; + responseObj.put("message", errorMessage); + responseObj.put("status", "FAILED"); + return Response.status(400).entity(responseObj.toString()).build(); + } + } else { + String errorMessage = "You cannot make announcements"; + responseObj.put("message", errorMessage); + responseObj.put("status", "FAILED"); + return Response.status(400).entity(responseObj.toString()).build(); + } + + } + + @GET + @Path("{id}") + @Produces(MediaType.APPLICATION_JSON) + public Response getForumDetails(@PathParam("id") String id) { + + JSONArray array = com.zeemonsters.disman.db.Announcement.getAnnouncements(com.zeemonsters.disman.db.Announcement.PORTALID, "'" + id + "'"); + + return Response.status(200).entity(array.toString()).build(); + } + +} diff --git a/src/com/zeemonsters/disman/servlet/Portal.java b/src/com/zeemonsters/disman/servlet/Portal.java new file mode 100755 index 00000000..05ffd2ea --- /dev/null +++ b/src/com/zeemonsters/disman/servlet/Portal.java @@ -0,0 +1,98 @@ +package com.zeemonsters.disman.servlet; + +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.Consumes; +import javax.ws.rs.FormParam; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; + +import org.json.JSONArray; +import org.json.JSONObject; + +import com.zeemonsters.disman.auth.AppUtils; +import com.zeemonsters.disman.auth.SecurityConfig; +import com.zeemonsters.disman.auth.UserAccount; +import com.zeemonsters.disman.db.Portals; +import com.zeemonsters.disman.db.Utils; + +@Path("/portal") +public class Portal extends HttpServlet { + private static final long serialVersionUID = 1L; + + @Context + HttpServletRequest request; + HttpServletResponse response; + + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response getPortals() { + return Response.status(200).entity(Portals.getPortals().toString()).build(); + } + + @POST + @Produces(MediaType.APPLICATION_JSON) + @Consumes({ MediaType.APPLICATION_FORM_URLENCODED }) + public Response createPortal(@FormParam("name") String name, @FormParam("url") String url, + @FormParam("region") String region, @FormParam("description") String description) + throws ServletException, IOException { + JSONObject responseObj = new JSONObject(); + UserAccount userAccount = AppUtils.getLoginedUser(request.getSession()); + if (userAccount != null) { + Date date = Calendar.getInstance().getTime(); + SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); + String strDate = formatter.format(date); + if (userAccount.getRoles().get(0).equals(SecurityConfig.ROLE_VOLUNTEER)) { + if (Utils.checkNotEmptyOrNull(region) && Utils.checkNotEmptyOrNull(description) + && Utils.checkNotEmptyOrNull(name) && Utils.checkNotEmptyOrNull(url) + && Portals.insert(new String[] { "'" + name + "','" + url + "','" + region + "','" + description + + "',TO_DATE('" + strDate + "', 'DD/MM/YYYY')" })) { + responseObj.put("message", "Successfully Created the portal"); + responseObj.put("status", "SUCCESS"); + return Response.status(201).entity(responseObj.toString()).build(); + } else { + String errorMessage = "Please check the fields"; + responseObj.put("message", errorMessage); + responseObj.put("status", "FAILED"); + return Response.status(400).entity(responseObj.toString()).build(); + } + + } else { + String errorMessage = "You cannot create portals"; + responseObj.put("message", errorMessage); + responseObj.put("status", "FAILED"); + return Response.status(400).entity(responseObj.toString()).build(); + } + } else { + String errorMessage = "You cannot create portals"; + responseObj.put("message", errorMessage); + responseObj.put("status", "FAILED"); + return Response.status(400).entity(responseObj.toString()).build(); + } + + } + + @GET + @Path("{url}") + @Produces(MediaType.APPLICATION_JSON) + public Response getForumDetails(@PathParam("url") String url) { + + JSONArray array= Portals.getPortals(Portals.URL, "'" + url + "'"); + JSONObject json = array.getJSONObject(0); + return Response.status(201).entity(json.toString()).build(); + } + +} diff --git a/src/com/zeemonsters/disman/servlet/Profile.java b/src/com/zeemonsters/disman/servlet/Profile.java new file mode 100755 index 00000000..5f9bf872 --- /dev/null +++ b/src/com/zeemonsters/disman/servlet/Profile.java @@ -0,0 +1,120 @@ +package com.zeemonsters.disman.servlet; + +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.Consumes; +import javax.ws.rs.FormParam; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; + +import org.json.JSONArray; +import org.json.JSONObject; + +import com.zeemonsters.disman.auth.AppUtils; +import com.zeemonsters.disman.auth.SecurityConfig; +import com.zeemonsters.disman.auth.UserAccount; +import com.zeemonsters.disman.db.Portals; +import com.zeemonsters.disman.db.Utils; + +@Path("/profile") +public class Profile extends HttpServlet { + private static final long serialVersionUID = 1L; + + @Context + HttpServletRequest request; + HttpServletResponse response; + + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response getProfile() { + UserAccount userAccount = AppUtils.getLoginedUser(request.getSession()); + if (userAccount != null) { + JSONArray arr = com.zeemonsters.disman.db.Profile.getProfile(com.zeemonsters.disman.db.Profile.USERNAME, + "'"+userAccount.getUserName()+"'"); + if (arr.length() > 0) { + return Response.status(200).entity(arr.get(0).toString()).build(); + } else { + String errorMessage = "Profile not updated"; + JSONObject responseObj = new JSONObject(); + responseObj.put("message", errorMessage); + responseObj.put("status", "FAILED"); + return Response.status(400).entity(responseObj.toString()).build(); + } + + } else { + String errorMessage = "You cannot access profiles"; + JSONObject responseObj = new JSONObject(); + responseObj.put("message", errorMessage); + responseObj.put("status", "FAILED"); + return Response.status(400).entity(responseObj.toString()).build(); + } + } + + @POST + @Produces(MediaType.APPLICATION_JSON) + @Consumes({ MediaType.APPLICATION_FORM_URLENCODED }) + public Response updateProfile(@FormParam("pincode") String pincode, @FormParam("region") String region, + @FormParam("available") String available) throws ServletException, IOException { + JSONObject responseObj = new JSONObject(); + UserAccount userAccount = AppUtils.getLoginedUser(request.getSession()); + if (userAccount != null) { + Date date = Calendar.getInstance().getTime(); + SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); + String strDate = formatter.format(date); + if (userAccount.getRoles().get(0).equals(SecurityConfig.ROLE_VOLUNTEER)) { + if (Utils.checkNotEmptyOrNull(region) && Utils.checkNotEmptyOrNull(available) + && Utils.checkNotEmptyOrNull(pincode)) { + JSONArray arry = com.zeemonsters.disman.db.Profile.getProfile( + com.zeemonsters.disman.db.Profile.USERNAME, "'" + userAccount.getUserName() + "'"); + if (arry.length() == 0) { + + com.zeemonsters.disman.db.Profile.insert( + + new String[] { "'" + pincode + "','" + userAccount.getUserName() + "','" + region + + "','" + available + "'" }); + } else { + + com.zeemonsters.disman.db.Profile.update( + new String[] { "'" + pincode + "','" + userAccount.getUserName() + "','" + region + + "','" + available + "'" }, + com.zeemonsters.disman.db.Profile.USERNAME, "'"+userAccount.getUserName()+"'"); + } + responseObj.put("message", "Successfully updated the profile"); + responseObj.put("status", "SUCCESS"); + return Response.status(201).entity(responseObj.toString()).build(); + } else { + String errorMessage = "Please check the fields"; + responseObj.put("message", errorMessage); + responseObj.put("status", "FAILED"); + return Response.status(400).entity(responseObj.toString()).build(); + } + + } else { + String errorMessage = "You cannot update profile"; + responseObj.put("message", errorMessage); + responseObj.put("status", "FAILED"); + return Response.status(400).entity(responseObj.toString()).build(); + } + } else { + String errorMessage = "You cannot update profile"; + responseObj.put("message", errorMessage); + responseObj.put("status", "FAILED"); + return Response.status(400).entity(responseObj.toString()).build(); + } + + } + +} diff --git a/src/com/zeemonsters/disman/servlet/Requests.java b/src/com/zeemonsters/disman/servlet/Requests.java new file mode 100755 index 00000000..637c9a42 --- /dev/null +++ b/src/com/zeemonsters/disman/servlet/Requests.java @@ -0,0 +1,208 @@ +package com.zeemonsters.disman.servlet; + +import java.io.IOException; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.Consumes; +import javax.ws.rs.FormParam; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; + +import org.json.JSONArray; +import org.json.JSONObject; + +import com.zeemonsters.disman.auth.AppUtils; +import com.zeemonsters.disman.auth.UserAccount; +import com.zeemonsters.disman.db.Issues; +import com.zeemonsters.disman.db.Pincode; +import com.zeemonsters.disman.db.Utils; + +@Path("/requests") +public class Requests extends HttpServlet { + private static final long serialVersionUID = 1L; + + @Context + HttpServletRequest request; + HttpServletResponse response; + + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response getRequest() { + UserAccount userAccount = AppUtils.getLoginedUser(request.getSession()); + if (userAccount != null) { + JSONArray arr = com.zeemonsters.disman.db.Profile.getProfile(com.zeemonsters.disman.db.Profile.USERNAME, + "'" + userAccount.getUserName() + "'"); + if (arr.length() > 0) { + String pin = arr.getJSONObject(0).getString("pincode"); + JSONArray array = Pincode.getLatLong(Pincode.PINCODE, "'" + pin + "'"); + JSONObject obj = array.getJSONObject(0); + + String lat = obj.getString("lat"); + String longi = obj.getString("long"); + BigDecimal bd = BigDecimal.valueOf(Double.parseDouble(lat)); + bd = bd.setScale(2, RoundingMode.DOWN); + lat = String.format("%.2f", bd); + bd = BigDecimal.valueOf(Double.parseDouble(longi)); + bd = bd.setScale(3, RoundingMode.DOWN); + longi = String.format("%.3f", bd); + JSONArray respArray = Issues.getIssues(new String[] { Issues.LATITUDE, Issues.LONGITUDE }, + new String[] { "'" + lat + "%'", "'" + longi + "%'" }); + + JSONObject respObj = new JSONObject(); + respObj.put("latlong", respArray); + + JSONArray pinArray = Issues.getIssues(Issues.PINCODE, "'" + pin + "'"); + respObj.put("pin", pinArray); + + + JSONArray allArray = Issues.getIssues(); + respObj.put("all", allArray); + + + return Response.status(200).entity(respObj.toString()).build(); + } else { + JSONObject respObj = new JSONObject(); + JSONArray allArray = Issues.getIssues(); + respObj.put("all", allArray); + return Response.status(200).entity(respObj.toString()).build(); + } + + } else { + JSONObject respObj = new JSONObject(); + JSONArray allArray = Issues.getIssues(); + respObj.put("all", allArray); + return Response.status(200).entity(respObj.toString()).build(); + } + } + + @POST + @Produces(MediaType.APPLICATION_JSON) + @Consumes({ MediaType.APPLICATION_FORM_URLENCODED }) + public Response updateProfile(@FormParam("user") String userid, @FormParam("message") String message, + @FormParam("pincode") String pincode, @FormParam("lat") String lat, @FormParam("longi") String longi, + @FormParam("replyto") String replyto, @FormParam("tags") String tags, + @FormParam("assigned") String assigned) throws ServletException, IOException { + JSONObject responseObj = new JSONObject(); + + Date date = Calendar.getInstance().getTime(); + SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy"); + String strDate = formatter.format(date); + + if (Utils.checkNotEmptyOrNull(message) && Utils.checkNotEmptyOrNull(userid) + && Utils.checkNotEmptyOrNull(pincode)) { + replyto = (replyto == null) ? "" : replyto; + tags = (tags == null) ? "" : tags; + lat = (lat == null) ? "" : lat; + longi = (longi == null) ? "" : longi; + pincode = (pincode == null) ? "" : pincode; + assigned = (assigned == null) ? "" : assigned; + +// USER + "," + DATETIME + "," + MESSAGE + + "," + REPLYTO +// + "," + TAGS + "," + LATITUDE + "," + LONGITUDE + "," + PINCODE + if (Issues.insert(new String[] { "'" + userid + "','" + strDate + "','" + message + "','" + replyto + "','" + + tags + "','" + lat + "','" + longi + "','" + pincode + "','" + assigned + "'" })) { + responseObj.put("message", "Successfully added the issue"); + responseObj.put("status", "SUCCESS"); + return Response.status(201).entity(responseObj.toString()).build(); + } else { + String errorMessage = "Please check the fields"; + responseObj.put("message", errorMessage); + responseObj.put("status", "FAILED"); + return Response.status(400).entity(responseObj.toString()).build(); + } + + } else { + String errorMessage = "Please check the fields"; + responseObj.put("message", errorMessage); + responseObj.put("status", "FAILED"); + return Response.status(400).entity(responseObj.toString()).build(); + } + + } + + @Path("{id}") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response getRequestId(@PathParam("id") String id) { + UserAccount userAccount = AppUtils.getLoginedUser(request.getSession()); + if (userAccount != null) { + JSONArray array = Issues.getIssues(Issues.ID, "'" + id + "'"); + if (array.length() > 0) { + JSONObject object = array.getJSONObject(0); + return Response.status(200).entity(object.toString()).build(); + } else { + String errorMessage = "Invalid Request"; + JSONObject responseObj = new JSONObject(); + responseObj.put("message", errorMessage); + responseObj.put("status", "FAILED"); + return Response.status(400).entity(responseObj.toString()).build(); + } + + } else { + String errorMessage = "You cannot access profiles"; + JSONObject responseObj = new JSONObject(); + responseObj.put("message", errorMessage); + responseObj.put("status", "FAILED"); + return Response.status(400).entity(responseObj.toString()).build(); + } + } + + @Path("{id}") + @POST + @Produces(MediaType.APPLICATION_JSON) + @Consumes({ MediaType.APPLICATION_FORM_URLENCODED }) + public Response updateRequest(@PathParam("id") String id,@FormParam("user") String userid, @FormParam("message") String message, + @FormParam("pincode") String pincode, @FormParam("lat") String lat, @FormParam("longi") String longi, + @FormParam("replyto") String replyto, @FormParam("tags") String tags, + @FormParam("assigned") String assigned) throws ServletException, IOException { + JSONObject responseObj = new JSONObject(); + + Date date = Calendar.getInstance().getTime(); + SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy"); + String strDate = formatter.format(date); + + if (Utils.checkNotEmptyOrNull(message) && Utils.checkNotEmptyOrNull(userid)) { + + replyto = (replyto == null) ? "" : replyto; + tags = (tags == null) ? "" : tags; + lat = (lat == null) ? "" : lat; + longi = (longi == null) ? "" : longi; + pincode = (pincode == null) ? "" : pincode; + assigned = (assigned == null) ? "" : assigned; + + boolean test = Issues.delete(id); + if (Issues.insert(new String[] { "'" + userid + "','" + strDate + "','" + message + "','" + replyto + "','" + + tags + "','" + lat + "','" + longi + "','" + pincode + "','" + assigned + "'" })) { + responseObj.put("message", "Successfully updated the issue"); + responseObj.put("status", "SUCCESS"); + return Response.status(200).entity(responseObj.toString()).build(); + } else { + String errorMessage = "Please check the fields"; + responseObj.put("message", errorMessage); + responseObj.put("status", "FAILED"); + return Response.status(400).entity(responseObj.toString()).build(); + } + + } else { + String errorMessage = "Please check the fields"; + responseObj.put("message", errorMessage); + responseObj.put("status", "FAILED"); + return Response.status(400).entity(responseObj.toString()).build(); + } + + } +} diff --git a/src/com/zeemonsters/disman/servlet/SMS.java b/src/com/zeemonsters/disman/servlet/SMS.java new file mode 100755 index 00000000..402ae821 --- /dev/null +++ b/src/com/zeemonsters/disman/servlet/SMS.java @@ -0,0 +1,71 @@ +package com.zeemonsters.disman.servlet; + +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.Consumes; +import javax.ws.rs.FormParam; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; + +import org.json.JSONObject; + +import com.zeemonsters.disman.db.Issues; + +@Path("/sms") +public class SMS extends HttpServlet { + private static final long serialVersionUID = 1L; + + @Context + HttpServletRequest request; + HttpServletResponse response; + + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response getPortals() { + return Response.status(200).build(); + } + + @POST + @Produces(MediaType.APPLICATION_JSON) + @Consumes({ MediaType.APPLICATION_FORM_URLENCODED }) + public Response updateProfile(@FormParam("SmsMessageSid") String SmsMessageSid, + @FormParam("NumMedia") String NumMedia, @FormParam("SmsSid") String SmsSid, + @FormParam("SmsStatus") String SmsStatus, @FormParam("Body") String Body, @FormParam("To") String To, + @FormParam("NumSegments") String NumSegments, @FormParam("MessageSid") String MessageSid, + @FormParam("AccountSid") String AccountSid, @FormParam("From") String From, + @FormParam("ApiVersion") String ApiVersion) throws ServletException, IOException { + JSONObject responseObj = new JSONObject(); + Date date = Calendar.getInstance().getTime(); + SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy"); + String strDate = formatter.format(date); + String replyto = ""; + String tags = ""; + String lat = ""; + String longi = ""; + String pincode = ""; + String assigned = ""; + + if (Issues.insert(new String[] { "'" + From + "','" + strDate + "','" + Body + "','" + replyto + "','" + + tags + "','" + lat + "','" + longi + "','" + pincode + "','" + assigned + "'" })) { + responseObj.put("message", "Successfully updated the profile"); + responseObj.put("status", "SUCCESS"); + return Response.status(200).entity(responseObj.toString()).build(); + } + System.out.println(From); + System.out.println(Body); + return Response.ok().entity(responseObj.toString()).build(); + } + +}