From 381858c76940e9248d19af80b2c0e24144d68092 Mon Sep 17 00:00:00 2001 From: "Zhou, Cheng" Date: Wed, 3 Apr 2019 22:47:00 +0800 Subject: [PATCH] First release Signed-off-by: Zhou, Cheng --- CMakeLists.txt | 14 + LICENSE | 319 + README.md | 14 + cdn-server/.dockerignore | 4 + cdn-server/CMakeLists.txt | 2 + cdn-server/Dockerfile | 73 + cdn-server/build.sh | 6 + cdn-server/config.ini | 7 + cdn-server/main.py | 19 + cdn-server/messaging.py | 91 + cdn-server/nginx.conf | 151 + cdn-server/playlist.py | 40 + cdn-server/schedule.py | 30 + cdn-server/shell.sh | 7 + cdn-server/stat.xsl | 318 + client/killvlc.bat | 1 + client/vlc_playback.bat | 21 + deployment/CMakeLists.txt | 1 + deployment/docker-swarm/CMakeLists.txt | 6 + deployment/docker-swarm/Dockerfile | 3 + deployment/docker-swarm/build.sh | 6 + deployment/docker-swarm/docker-compose.yml | 111 + deployment/docker-swarm/self-sign.sh | 27 + deployment/docker-swarm/start.sh | 40 + deployment/docker-swarm/stop.sh | 27 + ..._Transcode_Sample_Getting_Started_Guide.md | 283 + doc/CDN_Transcode_Sample_RA.md | 159 + script/README.md | 0 script/build.sh | 20 + script/cadvisor.sh | 11 + script/deployment.cmake | 3 + script/scan-all.cmake | 6 + script/service.cmake | 3 + script/shell.sh | 20 + streaming-server/.dockerignore | 4 + streaming-server/CMakeLists.txt | 3 + streaming-server/Dockerfile | 69 + streaming-server/build.sh | 6 + streaming-server/nginx.conf | 97 + streaming-server/shell.sh | 6 + volume/html/css/app.css | 22 + volume/html/css/foundation.css | 5608 +++++++++++++++++ volume/html/css/foundation.min.css | 1 + volume/html/favicon.ico | Bin 0 -> 101383 bytes volume/html/header.shtml | 31 + volume/html/icon/foundation-icons.css | 594 ++ volume/html/icon/foundation-icons.eot | Bin 0 -> 54568 bytes volume/html/icon/foundation-icons.svg | 970 +++ volume/html/icon/foundation-icons.ttf | Bin 0 -> 56976 bytes volume/html/icon/foundation-icons.woff | Bin 0 -> 32020 bytes volume/html/image/intel-logo-white-100.png | Bin 0 -> 8743 bytes volume/html/image/placeholder.jpg | Bin 0 -> 14783 bytes volume/html/index.html | 29 + volume/html/js/app-api.js | 16 + volume/html/js/app-header.js | 23 + volume/html/js/app-player.js | 86 + volume/html/js/app.js | 7 + volume/html/js/vendor/dash.all.min.js | 32 + volume/html/js/vendor/foundation.min.js | 5 + volume/html/js/vendor/hls.min.js | 2 + volume/html/js/vendor/jquery-3.2.1.min.js | 4 + volume/html/js/vendor/what-input.js | 363 ++ volume/html/player.shtml | 23 + xcode-server/CMakeLists.txt | 1 + xcode-server/ffmpeg-hw/.dockerignore | 4 + xcode-server/ffmpeg-hw/CMakeLists.txt | 2 + xcode-server/ffmpeg-hw/Dockerfile | 278 + xcode-server/ffmpeg-hw/abr_hls_dash.py | 120 + xcode-server/ffmpeg-hw/build.sh | 23 + xcode-server/ffmpeg-hw/config.ini | 7 + xcode-server/ffmpeg-hw/main.py | 97 + xcode-server/ffmpeg-hw/messaging.py | 91 + xcode-server/ffmpeg-hw/shell.sh | 7 + xcode-server/ffmpeg-hw/zkstate.py | 42 + xcode-server/ffmpeg-sw/.dockerignore | 4 + xcode-server/ffmpeg-sw/CMakeLists.txt | 2 + xcode-server/ffmpeg-sw/Dockerfile | 225 + xcode-server/ffmpeg-sw/abr_hls_dash.py | 120 + xcode-server/ffmpeg-sw/build.sh | 23 + xcode-server/ffmpeg-sw/config.ini | 7 + xcode-server/ffmpeg-sw/main.py | 97 + xcode-server/ffmpeg-sw/messaging.py | 91 + xcode-server/ffmpeg-sw/shell.sh | 7 + xcode-server/ffmpeg-sw/zkstate.py | 42 + 84 files changed, 11134 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 LICENSE create mode 100644 README.md create mode 100644 cdn-server/.dockerignore create mode 100644 cdn-server/CMakeLists.txt create mode 100644 cdn-server/Dockerfile create mode 100755 cdn-server/build.sh create mode 100644 cdn-server/config.ini create mode 100755 cdn-server/main.py create mode 100755 cdn-server/messaging.py create mode 100644 cdn-server/nginx.conf create mode 100755 cdn-server/playlist.py create mode 100755 cdn-server/schedule.py create mode 100755 cdn-server/shell.sh create mode 100644 cdn-server/stat.xsl create mode 100644 client/killvlc.bat create mode 100644 client/vlc_playback.bat create mode 100644 deployment/CMakeLists.txt create mode 100644 deployment/docker-swarm/CMakeLists.txt create mode 100644 deployment/docker-swarm/Dockerfile create mode 100755 deployment/docker-swarm/build.sh create mode 100644 deployment/docker-swarm/docker-compose.yml create mode 100755 deployment/docker-swarm/self-sign.sh create mode 100755 deployment/docker-swarm/start.sh create mode 100755 deployment/docker-swarm/stop.sh create mode 100644 doc/CDN_Transcode_Sample_Getting_Started_Guide.md create mode 100644 doc/CDN_Transcode_Sample_RA.md create mode 100644 script/README.md create mode 100644 script/build.sh create mode 100755 script/cadvisor.sh create mode 100644 script/deployment.cmake create mode 100644 script/scan-all.cmake create mode 100644 script/service.cmake create mode 100644 script/shell.sh create mode 100644 streaming-server/.dockerignore create mode 100644 streaming-server/CMakeLists.txt create mode 100644 streaming-server/Dockerfile create mode 100755 streaming-server/build.sh create mode 100644 streaming-server/nginx.conf create mode 100755 streaming-server/shell.sh create mode 100644 volume/html/css/app.css create mode 100644 volume/html/css/foundation.css create mode 100644 volume/html/css/foundation.min.css create mode 100644 volume/html/favicon.ico create mode 100644 volume/html/header.shtml create mode 100644 volume/html/icon/foundation-icons.css create mode 100644 volume/html/icon/foundation-icons.eot create mode 100644 volume/html/icon/foundation-icons.svg create mode 100644 volume/html/icon/foundation-icons.ttf create mode 100644 volume/html/icon/foundation-icons.woff create mode 100644 volume/html/image/intel-logo-white-100.png create mode 100644 volume/html/image/placeholder.jpg create mode 100644 volume/html/index.html create mode 100644 volume/html/js/app-api.js create mode 100644 volume/html/js/app-header.js create mode 100644 volume/html/js/app-player.js create mode 100644 volume/html/js/app.js create mode 100644 volume/html/js/vendor/dash.all.min.js create mode 100644 volume/html/js/vendor/foundation.min.js create mode 100644 volume/html/js/vendor/hls.min.js create mode 100644 volume/html/js/vendor/jquery-3.2.1.min.js create mode 100644 volume/html/js/vendor/what-input.js create mode 100644 volume/html/player.shtml create mode 100644 xcode-server/CMakeLists.txt create mode 100644 xcode-server/ffmpeg-hw/.dockerignore create mode 100644 xcode-server/ffmpeg-hw/CMakeLists.txt create mode 100644 xcode-server/ffmpeg-hw/Dockerfile create mode 100755 xcode-server/ffmpeg-hw/abr_hls_dash.py create mode 100755 xcode-server/ffmpeg-hw/build.sh create mode 100644 xcode-server/ffmpeg-hw/config.ini create mode 100755 xcode-server/ffmpeg-hw/main.py create mode 100755 xcode-server/ffmpeg-hw/messaging.py create mode 100755 xcode-server/ffmpeg-hw/shell.sh create mode 100755 xcode-server/ffmpeg-hw/zkstate.py create mode 100644 xcode-server/ffmpeg-sw/.dockerignore create mode 100644 xcode-server/ffmpeg-sw/CMakeLists.txt create mode 100644 xcode-server/ffmpeg-sw/Dockerfile create mode 100755 xcode-server/ffmpeg-sw/abr_hls_dash.py create mode 100755 xcode-server/ffmpeg-sw/build.sh create mode 100644 xcode-server/ffmpeg-sw/config.ini create mode 100755 xcode-server/ffmpeg-sw/main.py create mode 100755 xcode-server/ffmpeg-sw/messaging.py create mode 100755 xcode-server/ffmpeg-sw/shell.sh create mode 100755 xcode-server/ffmpeg-sw/zkstate.py diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..3765883 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,14 @@ +cmake_minimum_required (VERSION 2.8) + +Project(OVC NONE) + +file(GLOB dirs "deployment" "*") +list(REMOVE_DUPLICATES dirs) +foreach(dir ${dirs}) + if(EXISTS ${dir}/CMakeLists.txt) + add_subdirectory(${dir}) + endif() +endforeach() + +# legal message +execute_process(COMMAND printf "\nThis script will build third party components licensed under various open source licenses into your container images. The terms under which those components may be used and distributed can be found with the license document that is provided with those components. Please familiarize yourself with those terms to ensure your distribution of those components complies with the terms of those licenses.\n\n") diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..f4bf64b --- /dev/null +++ b/LICENSE @@ -0,0 +1,319 @@ + +BSD 3-Clause License + +Copyright (c) 2019,Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +============================================================================== +Nginx License +============================================================================== + +Copyright (C) 2002-2019 Igor Sysoev +Copyright (C) 2011-2019 Nginx, Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +============================================================================== +psutil License +============================================================================== + +psutil is distributed under BSD license reproduced below. + +Copyright (c) 2009, Jay Loden, Dave Daeschler, Giampaolo Rodola' +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of the psutil authors nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +============================================================================== +Beautiful Soup License +============================================================================== + +Beautiful Soup is made available under the MIT license: + + Copyright (c) 2004-2019 Leonard Richardson + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + +Beautiful Soup incorporates code from the html5lib library, which is +also made available under the MIT license. Copyright (c) 2006-2013 +James Graham and other contributors + +Beautiful Soup depends on the soupsieve library, which is also made +available under the MIT license. Copyright (c) 2018 Isaac Muse + +============================================================================== +nginx-rtmp-module License +============================================================================== + +Copyright (c) 2012-2014, Roman Arutyunyan +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +============================================================================== + dash.js License +============================================================================== + +The copyright in this software is being made available under the BSD License, +included below. This software may be subject to other third party and contributor +rights, including patent rights, and no such rights are granted under this license. + +**Copyright (c) 2015, Dash Industry Forum. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or + other materials provided with the distribution. +Neither the name of the Dash Industry Forum nor the names of its contributors may +be used to endorse or promote products derived from this software without specific +prior written permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, +OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. + +============================================================================== +foundation License +============================================================================== + +Copyright © 2011-2019 ZURB, Inc. + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +============================================================================== +jquery License +============================================================================== + +Copyright JS Foundation and other contributors, https://js.foundation/ + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +============================================================================== +what-input License +============================================================================== + +The MIT License (MIT) + +Copyright (c) 2016 Jeremy Fields + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +============================================================================== +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: + +You must give any other recipients of the Work or Derivative Works a copy of this License; and +You must cause any modified files to carry prominent notices stating that You changed the files; and +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 +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 diff --git a/README.md b/README.md new file mode 100644 index 0000000..f1e7471 --- /dev/null +++ b/README.md @@ -0,0 +1,14 @@ +This project is for Open Visual Cloud CDN Transcode E2E Sample. + +## Key ingredients in this repo +- Dockerfiles +- CMakefiles +- Configuration files +- Helper scripts +- Reference Architecture document +- User Guide (Getting Started Guide) document + +## How to get started? +- Refer to "doc/CDN_Transcode_Sample_RA.md" to understand the design. +- Refer to "doc/CDN_Transcode_Sample_Getting_Started_Guide.md" to setup and run the sample. + diff --git a/cdn-server/.dockerignore b/cdn-server/.dockerignore new file mode 100644 index 0000000..1cb8a04 --- /dev/null +++ b/cdn-server/.dockerignore @@ -0,0 +1,4 @@ +CMakeLists.txt +*.sh +*.m4 +test/* diff --git a/cdn-server/CMakeLists.txt b/cdn-server/CMakeLists.txt new file mode 100644 index 0000000..0fd8b9e --- /dev/null +++ b/cdn-server/CMakeLists.txt @@ -0,0 +1,2 @@ +set(service "ovc_cdn_service") +include("${CMAKE_SOURCE_DIR}/script/service.cmake") diff --git a/cdn-server/Dockerfile b/cdn-server/Dockerfile new file mode 100644 index 0000000..bb2daac --- /dev/null +++ b/cdn-server/Dockerfile @@ -0,0 +1,73 @@ + +FROM ubuntu:18.04 AS build +WORKDIR /home + +# COMMON BUILD TOOLS +RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y -q --no-install-recommends build-essential autoconf make git wget pciutils cpio libtool lsb-release ca-certificates pkg-config bison flex + +# Install cmake +ARG CMAKE_VER=3.13.1 +ARG CMAKE_REPO=https://cmake.org/files +RUN wget -O - ${CMAKE_REPO}/v${CMAKE_VER%.*}/cmake-${CMAKE_VER}.tar.gz | tar xz && \ + cd cmake-${CMAKE_VER} && \ + ./bootstrap --prefix="/usr" && \ + make -j8 && \ + make install + +# Install automake, use version 1.14 on CentOS +ARG AUTOMAKE_VER=1.14 +ARG AUTOMAKE_REPO=https://ftp.gnu.org/pub/gnu/automake/automake-${AUTOMAKE_VER}.tar.xz + RUN apt-get install -y -q automake + +# Build nginx-rtmp +ARG NGINX_RTMP_VER=v1.2.1 +ARG NGINX_RTMP_REPO=https://github.com/arut/nginx-rtmp-module/archive/${NGINX_RTMP_VER}.tar.gz +ARG NGINX_RTMP_PATCH_HLS=https://raw.githubusercontent.com/VCDP/CDN/master/0001-add-hevc-support-for-rtmp-and-hls.patch +ARG NGINX_RTMP_PATCH_DASH=https://raw.githubusercontent.com/VCDP/CDN/master/0002-add-HEVC-support-for-dash.patch + +RUN wget -O - ${NGINX_RTMP_REPO} | tar xz && mv nginx-rtmp-module-${NGINX_RTMP_VER#v} nginx-rtmp-module && \ + cd nginx-rtmp-module && \ + wget -O - ${NGINX_RTMP_PATCH_HLS} | patch -p1 && \ + wget -O - ${NGINX_RTMP_PATCH_DASH} | patch -p1 + + +# Build nginx & nginx-rtmp +ARG NGINX_VER=1.14.2 +ARG NGINX_REPO=https://nginx.org/download/nginx-${NGINX_VER}.tar.gz + +RUN apt-get update && apt-get install -y -q --no-install-recommends libssl-dev libpcre3-dev zlib1g-dev libxslt1-dev + +RUN wget -O - ${NGINX_REPO} | tar xz && \ + cd nginx-${NGINX_VER} && \ + ./configure --prefix=/var/www --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/x86_64-linux-gnu/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/www/log/error.log --pid-path=/var/www/nginx.pid --lock-path=/var/www/nginx.lock --http-log-path=/var/www/log/access.log --http-client-body-temp-path=/var/www/tmp/client_body --http-proxy-temp-path=/var/www/tmp/proxy --http-fastcgi-temp-path=/var/www/tmp/fastcgi --http-uwsgi-temp-path=/var/www/tmp/uwsgi --http-scgi-temp-path=/var/www/tmp/scgi --user=www-data --group=www-data --with-select_module --with-poll_module --with-threads --with-file-aio --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_slice_module --with-http_stub_status_module --with-stream --with-stream_ssl_module --with-stream_realip_module --with-stream_ssl_preread_module --with-pcre --add-module=../nginx-rtmp-module && \ + make -j8 && \ + make install DESTDIR=/home/build + +# NGINX Setup +RUN mkdir -p /home/build/var/www/tmp/client_body && \ + mkdir -p /home/build/var/www/tmp/proxy && \ + mkdir -p /home/build/var/www/tmp/fastcgi && \ + mkdir -p /home/build/var/www/tmp/uwsgi && \ + mkdir -p /home/build/var/www/tmp/scgi && \ + mkdir -p /home/build/var/www/cache && \ + mkdir -p /home/build/var/www/html + + +FROM ubuntu:18.04 +LABEL Description="This is the base image for a NGINX+RTMP service" +LABEL Vendor="Intel Corporation" +WORKDIR /home + +# Prerequisites +RUN ln -sf /usr/share/zoneinfo/UTC /etc/localtime && \ + DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y -q --no-install-recommends libxml2 libssl-dev libpcre3 zlib1g libxslt1.1 python3-tornado python3-kafka python3-bs4 python3-kazoo vim && \ + rm -rf /var/lib/apt/lists/* +# Install +COPY --from=build /home/build / +COPY *.xsl /etc/nginx/ +COPY *.conf /etc/nginx/ +COPY *.ini /home/ +COPY *.py /home/ +CMD ["/bin/bash","-c","/home/main.py&/usr/sbin/nginx"] +VOLUME /etc/nginx /var/www/html /var/www/tmp/client_body /var/www/tmp/proxy /var/www/tmp/fastcgi /var/www/tmp/uwsgi /var/www/tmp/scgi /var/www/cache /var/www/dash /var/www/hls +EXPOSE 8080 diff --git a/cdn-server/build.sh b/cdn-server/build.sh new file mode 100755 index 0000000..edf72d2 --- /dev/null +++ b/cdn-server/build.sh @@ -0,0 +1,6 @@ +#!/bin/bash -e + +IMAGE="ovc_cdn_service" +DIR=$(dirname $(readlink -f "$0")) + +. "${DIR}/../script/build.sh" diff --git a/cdn-server/config.ini b/cdn-server/config.ini new file mode 100644 index 0000000..9d2bb25 --- /dev/null +++ b/cdn-server/config.ini @@ -0,0 +1,7 @@ +[run] +timeSpan=20000 +[mode] +srcMode=local +[path] +srcPath=/var/www/archive + diff --git a/cdn-server/main.py b/cdn-server/main.py new file mode 100755 index 0000000..f5856a9 --- /dev/null +++ b/cdn-server/main.py @@ -0,0 +1,19 @@ +#!/usr/bin/python3 + +from tornado import ioloop, web +from tornado.options import define, options, parse_command_line +from playlist import PlayListHandler +from schedule import ScheduleHandler + +APP = web.Application([ + (r'/playlist', PlayListHandler), + (r'/schedule/.*', ScheduleHandler), +]) + +if __name__ == "__main__": + define("port", default=2222, help="the binding port", type=int) + define("ip", default="127.0.0.1", help="the binding ip") + parse_command_line() + print("Listening to " + options.ip + ":" + str(options.port)) + APP.listen(options.port, address=options.ip) + ioloop.IOLoop.instance().start() diff --git a/cdn-server/messaging.py b/cdn-server/messaging.py new file mode 100755 index 0000000..6c506ce --- /dev/null +++ b/cdn-server/messaging.py @@ -0,0 +1,91 @@ +#!/usr/bin/python3 + +import socket +from kafka import KafkaProducer, KafkaConsumer, TopicPartition + +KAFKA_HOSTS = ["kafka:9092"] + +class Producer(): + def __init__(self): + super(Producer, self).__init__() + self._client_id = socket.gethostname() + self._producer = None + + def send(self, topic, message): + if not self._producer: + try: + self._producer = KafkaProducer(bootstrap_servers=KAFKA_HOSTS, + client_id=self._client_id, + api_version=(0, 10), retries=1) + except Exception as e: + print(str(e)) + self._producer = None + + if self._producer: + try: + self._producer.send(topic, message.encode('utf-8')) + print("send "+topic+": ") + print(message) + except Exception as e: + print(str(e)) + else: + print("producer not available") + + def flush(self): + if self._producer: + self._producer.flush() + + def close(self): + if self._producer: + self.flush() + self._producer.close() + +class Consumer(): + def __init__(self, group=None): + super(Consumer, self).__init__() + self._client_id = socket.gethostname() + self._group = group + + def messages(self, topic, timeout=None): + c = KafkaConsumer(topic, bootstrap_servers=KAFKA_HOSTS, client_id=self._client_id, + group_id=self._group, api_version=(0, 10)) + + partitions = c.partitions_for_topic(topic) + if not partitions: + raise Exception("Topic "+topic+" not exist") + + timeout1 = 100 if timeout is None else timeout + while True: + partitions = c.poll(timeout1) + if partitions: + for p in partitions: + for msg in partitions[p]: + yield msg.value.decode('utf-8') + if timeout is not None: + yield "" + + c.close() + + def debug(self, topic): + c = KafkaConsumer(bootstrap_servers=KAFKA_HOSTS, client_id=self._client_id, + group_id=None, api_version=(0, 10)) + + # assign/subscribe topic + partitions = c.partitions_for_topic(topic) + if not partitions: + raise Exception("Topic "+topic+" not exist") + c.assign([TopicPartition(topic, p) for p in partitions]) + + # seek to beginning if needed + c.seek_to_beginning() + + # fetch messages + while True: + partitions = c.poll(100) + if partitions: + for p in partitions: + for msg in partitions[p]: + yield msg.value.decode('utf-8') + yield "" + + c.close() diff --git a/cdn-server/nginx.conf b/cdn-server/nginx.conf new file mode 100644 index 0000000..97db0d2 --- /dev/null +++ b/cdn-server/nginx.conf @@ -0,0 +1,151 @@ + +worker_processes auto; +worker_rlimit_nofile 8192; +daemon off; + +events { + worker_connections 4096; +} + +rtmp { + server { + listen 1935; + chunk_size 4000; + + application stream { + live on; + } + + application hls { + live on; + hls on; + hls_path /var/www/hls; + hls_nested on; + hls_fragment 3; + hls_playlist_length 60; + } + + application dash { + live on; + dash on; + dash_path /var/www/dash; + dash_fragment 3; + dash_playlist_length 60; + dash_nested on; + } + } +} + +http { + include mime.types; + default_type application/octet-stream; + proxy_cache_path /var/www/cache levels=1:2 keys_zone=one:10m use_temp_path=off; + + server { + listen 8080 ssl; + server_name _; + client_body_timeout 5s; + client_header_timeout 5s; + + ssl_certificate /run/secrets/self.crt; + ssl_certificate_key /run/secrets/self.key; + ssl_dhparam /run/secrets/dhparam.pem; + + ssl_protocols TLSv1.2; + ssl_prefer_server_ciphers on; + ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH"; + ssl_ecdh_curve secp384r1; + ssl_session_cache shared:SSL:10m; + ssl_session_tickets off; + ssl_stapling off; + ssl_stapling_verify off; + + location / { + root /var/www/html; + sendfile on; + + # proxy cache settings + proxy_cache one; + proxy_no_cache $http_pragma $http_authorization; + proxy_cache_bypass $cookie_nocache $arg_nocache$arg_comment; + proxy_cache_valid 200 302 10m; + proxy_cache_valid 303 1m; + + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'X-Frame-Options' 'deny' always; + add_header 'X-XSS-Protection' '1' always; + add_header 'X-Content-Type-Options' 'nosniff' always; + ssi on; + } + + location /api/playlist { + add_header Cache-Control no-cache; + rewrite ^/api(/playlist.*) $1 break; + proxy_pass http://localhost:2222; + } + + location /hls/ { + alias /var/www/hls/; + add_header Cache-Control no-cache; + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + types { + application/vnd.apple.mpegurl m3u8; + video/mp2t ts; + } + } + + location /dash/ { + alias /var/www/dash/; + add_header Cache-Control no-cache; + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + types { + application/dash+xml mpd; + } + } + + location ~* /dash/.*/index.mpd$ { + alias /var/www; + add_header Cache-Control no-cache; + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + types { + application/dash+xml mpd; + } + try_files $uri @dashls; + } + + location ~* /hls/.*/index.m3u8$ { + alias /var/www; + add_header Cache-Control no-cache; + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + types { + application/vnd.apple.mpegurl m3u8; + } + try_files $uri @dashls; + } + + location @dashls { + add_header Cache-Control no-cache; + rewrite ^/(dash|hls)/(.*) /schedule/$1/$2 break; + proxy_pass http://localhost:2222; + } + + location ~* /thumbnail/.*.png$ { + root /var/www/archive; + add_header Cache-Control no-cache; + rewrite ^/thumbnail(/.*) $1 break; + } + + location /stat { + rtmp_stat all; + rtmp_stat_stylesheet stat.xsl; + } + + location /stat.xsl { + root /etc/nginx/; + } + } +} diff --git a/cdn-server/playlist.py b/cdn-server/playlist.py new file mode 100755 index 0000000..744c2b3 --- /dev/null +++ b/cdn-server/playlist.py @@ -0,0 +1,40 @@ +#!/usr/bin/python3 + + +from os import listdir +from urllib.request import urlopen +import configparser +import json +from bs4 import BeautifulSoup +from tornado import web, gen + +class PlayListHandler(web.RequestHandler): + def __init__(self, app, request, **kwargs): + super(PlayListHandler, self).__init__(app, request, **kwargs) + self._cache = {} + + @gen.coroutine + def get(self): + try: + streams = [] + config = configparser.ConfigParser() + config.read('config.ini') + src_mode = config.get('mode', 'srcMode') + src_path = config.get('path', 'srcPath') + if src_mode == "local": + streams = [s for s in listdir(src_path) if s.endswith((".mp4", ".avi"))] + else: + html = urlopen("http://"+src_path) + soup = BeautifulSoup(html, 'html.parser') + for item in soup.findAll('a')[1:]: + if item.get('href').endswith((".mp4", ".avi")): + streams.append(item.get('href')) + except: + self.set_status(404, "VIDEO NOT FOUND") + return + + self.set_status(200, "OK") + self.set_header("Content-Type", "application/json") + types = [("hls", ".m3u8"), ("dash", ".mpd")] + self.write(json.dumps([{"name":t[0]+"-"+s, "url":t[0]+"/"+s+"/index"+t[1], + "img":"thumbnail/"+s+".png"} for t in types for s in streams])) diff --git a/cdn-server/schedule.py b/cdn-server/schedule.py new file mode 100755 index 0000000..fc9b527 --- /dev/null +++ b/cdn-server/schedule.py @@ -0,0 +1,30 @@ +#!/usr/bin/python3 + +from os.path import isfile +from tornado import web, gen +from messaging import Producer + +KAFKA_TOPIC = "content_provider_sched" +DASHLS_ROOT = "/var/www" + +class ScheduleHandler(web.RequestHandler): + @gen.coroutine + def get(self): + stream = self.request.uri.replace("/schedule/", "") + + # schedule producing the stream + print("request received to process stream: "+stream, flush=True) + producer = Producer() + producer.send(KAFKA_TOPIC, stream) + producer.close() + + # wait until file is available, return it + for t in range(50): + if isfile(DASHLS_ROOT+"/"+stream): + self.set_header('X-Accel-Redirect', '/'+stream) + self.set_status(200, "OK") + return + yield gen.sleep(0.1) + + # wait too long, skip this REST API + self.set_status(503, "Request scheduled") diff --git a/cdn-server/shell.sh b/cdn-server/shell.sh new file mode 100755 index 0000000..777de8b --- /dev/null +++ b/cdn-server/shell.sh @@ -0,0 +1,7 @@ +#!/bin/bash -e + +IMAGE="ovc_cdn_service" +DIR=$(dirname $(readlink -f "$0")) +OPTIONS=("--volume=${DIR}/../../volume/video/archive:/var/www/archive:ro" "--volume=${DIR}/../../volume/video/dash:/var/www/dash:ro" "--volume=${DIR}/../../volume/video/hls:/var/www/hls:ro") + +. "${DIR}/../script/shell.sh" diff --git a/cdn-server/stat.xsl b/cdn-server/stat.xsl new file mode 100644 index 0000000..cbcaac1 --- /dev/null +++ b/cdn-server/stat.xsl @@ -0,0 +1,318 @@ + + + + + + + + + + + + + RTMP statistics + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + +
RTMP#clientsVideoIn bits/sOut bits/sStateTechnology
Accepted: codecbits/ssizefps + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + live streams + + + + + + + + + + + + vod streams + + + + + + + + + + + + + #cccccc + #dddddd + + + + + + var d=document.getElementById('-'); + d.style.display=d.style.display=='none'?'':'none'; + return false + + + + [EMPTY] + + + + + +    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + E5/X264/FFMPEG + + + E5/SVT-HEVC/FFMPEG + + + VCA2/Vaapi/FFMPEG + + + + + - + + + + + + + + + + + + + + + + +
IdStateAddressFlash versionPage URLSWF URLDroppedTimestampA-VTime
+ + +
+ + + + + + + + + + + d + + + + h + + + + m + + + s + + + + + + + + + + + + + T + + + G + + + M + + K + + + + b + B + + /s + + + + + + active + idle + + + + + + + publishing + playing + + + + + + + + + #cccccc + #eeeeee + + + + + + + + http://apps.db.ripe.net/search/query.html?searchtext= + + whois + + + + + + + + + + + + + + + + + + + + + + + + + + publishing + + + + active + + + + x + + +
diff --git a/client/killvlc.bat b/client/killvlc.bat new file mode 100644 index 0000000..e69c120 --- /dev/null +++ b/client/killvlc.bat @@ -0,0 +1 @@ +taskkill /IM vlc.exe /F /T \ No newline at end of file diff --git a/client/vlc_playback.bat b/client/vlc_playback.bat new file mode 100644 index 0000000..9e27779 --- /dev/null +++ b/client/vlc_playback.bat @@ -0,0 +1,21 @@ +rem +rem This is an example to playback 4 channels of video streams with 2x2 layout on Windows using VLC. +rem + +C: +cd "C:\Program Files (x86)\VideoLAN\VLC" + +set VM1=192.168.1.107 + +start vlc http://%VM1%:80/hls/big_buck_bunny_2560x1440/index.m3u8 --no-video-deco --no-embedded-video --video-x=1 --video-y=1 --qt-start-minimized --zoom=0.375 -L +timeout /t 3 /NOBREAK + +start vlc http://%VM1%:80/hls/big_buck_bunny_1920x1080/index.m3u8 --no-video-deco --no-embedded-video --video-x=960 --video-y=1 --qt-start-minimized --zoom=0.5 -L +timeout /t 3 /NOBREAK + +start vlc http://%VM1%:80/hls/big_buck_bunny_1280x720/index.m3u8 --no-video-deco --no-embedded-video --video-x=1 --video-y=540 --qt-start-minimized --zoom=0.75 -L +timeout /t 3 /NOBREAK + +start vlc http://%VM1%:80/hls/big_buck_bunny_854x480/index.m3u8 --no-video-deco --no-embedded-video --video-x=960 --video-y=540 --qt-start-minimized --zoom=1.12 -L +timeout /t 3 /NOBREAK + diff --git a/deployment/CMakeLists.txt b/deployment/CMakeLists.txt new file mode 100644 index 0000000..162c01f --- /dev/null +++ b/deployment/CMakeLists.txt @@ -0,0 +1 @@ +include("${CMAKE_SOURCE_DIR}/script/scan-all.cmake") diff --git a/deployment/docker-swarm/CMakeLists.txt b/deployment/docker-swarm/CMakeLists.txt new file mode 100644 index 0000000..0b50126 --- /dev/null +++ b/deployment/docker-swarm/CMakeLists.txt @@ -0,0 +1,6 @@ +set(service "docker_swarm") +include("${CMAKE_SOURCE_DIR}/script/service.cmake") +include("${CMAKE_SOURCE_DIR}/script/deployment.cmake") +set(service "docker_compose") +include("${CMAKE_SOURCE_DIR}/script/service.cmake") +include("${CMAKE_SOURCE_DIR}/script/deployment.cmake") diff --git a/deployment/docker-swarm/Dockerfile b/deployment/docker-swarm/Dockerfile new file mode 100644 index 0000000..8d5adcd --- /dev/null +++ b/deployment/docker-swarm/Dockerfile @@ -0,0 +1,3 @@ + +FROM ubuntu:18.04 +RUN apt-get update && apt-get install -y openssh-server diff --git a/deployment/docker-swarm/build.sh b/deployment/docker-swarm/build.sh new file mode 100755 index 0000000..e57c154 --- /dev/null +++ b/deployment/docker-swarm/build.sh @@ -0,0 +1,6 @@ +#!/bin/bash -e + +IMAGE="ovc_self_certificate" +DIR=$(dirname $(readlink -f "$0")) + +. "$DIR/../../script/build.sh" diff --git a/deployment/docker-swarm/docker-compose.yml b/deployment/docker-swarm/docker-compose.yml new file mode 100644 index 0000000..99a9082 --- /dev/null +++ b/deployment/docker-swarm/docker-compose.yml @@ -0,0 +1,111 @@ +version: '3.1' + +services: + + zookeeper: + image: confluentinc/cp-zookeeper:latest + environment: + ZOOKEEPER_SERVER_ID: 1 + ZOOKEEPER_CLIENT_PORT: '2181' + ZOOKEEPER_TICK_TIME: '2000' + ZOOKEEPER_HEAP_OPTS: '-Xmx2048m -Xms2048m' + ZOOKEEPER_MAX_CLIENT_CNXNS: '20000' + ZOOKEEPER_LOG4J_LOGGERS: 'zookeepr=ERROR' + ZOOKEEPER_LOG4J_ROOT_LOGLEVEL: 'ERROR' + restart: always + deploy: + replicas: 1 + + kafka: + image: confluentinc/cp-kafka:latest + depends_on: + - zookeeper + environment: + KAFKA_BROKER_ID: 1 + KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 + KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092 + KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT + KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT + KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 + KAFKA_DEFAULT_REPLICATION_FACTOR: 1 + KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'true' + KAFKA_NUM_PARTITIONS: 16 + KAFKA_LOG_RETENTION_HOURS: 8 + KAFKA_HEAP_OPTS: '-Xmx1024m -Xms1024m' + KAFKA_LOG4J_LOGGERS: 'kafka=ERROR,kafka.controller=ERROR,state.change.logger=ERROR,org.apache.kafka=ERROR' + KAFKA_LOG4J_ROOT_LOGLEVEL: 'ERROR' + CONFLUENT_SUPPORT_METRICS_ENABLE: 0 + restart: always + deploy: + replicas: 1 + + kafka-init: + image: confluentinc/cp-kafka:latest + depends_on: + - kafka + command: | + bash -c 'cub kafka-ready -b kafka:9092 1 20 && \ + kafka-topics --create --topic content_provider_sched --partitions 16 --replication-factor 1 --if-not-exists --zookeeper zookeeper:2181 && \ + sleep infinity' + environment: + KAFKA_BROKER_ID: ignored + KAFKA_ZOOKEEPER_CONNECT: ignored + + cdn: + image: ovc_cdn_service:latest + ports: + - "443:8080" + volumes: + - ${HTML_VOLUME}:/var/www/html:ro + - ${VIDEO_ARCHIVE_VOLUME}:/var/www/archive:ro + - ${VIDEO_DASH_VOLUME}:/var/www/dash:rw + - ${VIDEO_HLS_VOLUME}:/var/www/hls:rw + depends_on: + - kafka + deploy: + replicas: 1 + secrets: + - source: self_crt + target: self.crt + uid: ${USER_ID} + gid: ${GROUP_ID} + mode: 0444 + - source: self_key + target: self.key + uid: ${USER_ID} + gid: ${GROUP_ID} + mode: 0440 + - source: dhparam_pem + target: dhparam.pem + uid: ${USER_ID} + gid: ${GROUP_ID} + mode: 0444 + + vod-transcode: + image: ovc_transcode_sw:latest + volumes: + - ${VIDEO_ARCHIVE_VOLUME}:/var/www/archive:ro + - ${VIDEO_DASH_VOLUME}:/var/www/dash:rw + - ${VIDEO_HLS_VOLUME}:/var/www/hls:rw + deploy: + replicas: 2 + depends_on: + - kafka + - zookeeper + + live-transcode: + image: ovc_transcode_sw:latest + volumes: + - ${VIDEO_ARCHIVE_VOLUME}:/var/www/archive:ro + depends_on: + - cdn + command: | + bash -c 'ffmpeg -re -stream_loop -1 -i /var/www/archive/bbb_sunflower_1080p_30fps_normal.mp4 -vf scale=2560:1440 -c:v libsvt_hevc -b:v 15M -f flv rtmp://cdn/hls/big_buck_bunny_2560x1440 -vf scale=1920:1080 -c:v libsvt_hevc -b:v 10M -f flv rtmp://cdn/hls/big_buck_bunny_1920x1080 -vf scale=1280:720 -c:v libx264 -b:v 8M -f flv rtmp://cdn/hls/big_buck_bunny_1280x720 -vf scale=854:480 -c:v libx264 -b:v 6M -f flv rtmp://cdn/hls/big_buck_bunny_854x480 -abr_pipeline' + +secrets: + self_key: + file: self.key + self_crt: + file: self.crt + dhparam_pem: + file: dhparam.pem diff --git a/deployment/docker-swarm/self-sign.sh b/deployment/docker-swarm/self-sign.sh new file mode 100755 index 0000000..a5bb4c3 --- /dev/null +++ b/deployment/docker-swarm/self-sign.sh @@ -0,0 +1,27 @@ +#!/bin/bash -e + +IMAGE="ovc_self_certificate" +DIR=$(dirname $(readlink -f "$0")) + +case "$(cat /proc/1/sched | head -n 1)" in +*self-sign*) + openssl req -x509 -nodes -days 30 -newkey rsa:4096 -keyout /home/self.key -out /home/self.crt << EOL +SH +SH +Shanghai +Zizhu +Data Center Group +Intel Corporation +$1 +nobody@intel.com +EOL + chmod 640 "/home/self.key" + chmod 644 "/home/self.crt" + openssl dhparam -dsaparam -out /home/dhparam.pem 4096 + chmod 644 "/home/dhparam.pem" + ;; +*) + OPTIONS=("--volume=$DIR:/home:rw") + . "$DIR/../../script/shell.sh" /home/self-sign.sh $(hostname -f) + ;; +esac diff --git a/deployment/docker-swarm/start.sh b/deployment/docker-swarm/start.sh new file mode 100755 index 0000000..f00afeb --- /dev/null +++ b/deployment/docker-swarm/start.sh @@ -0,0 +1,40 @@ +#!/bin/bash -e + +DIR=$(dirname $(readlink -f "$0")) +export VIDEO_ARCHIVE_VOLUME=$(readlink -f "$DIR/../../volume/video/archive") +export VIDEO_DASH_VOLUME=$(readlink -f "$DIR/../../volume/video/dash") +export VIDEO_HLS_VOLUME=$(readlink -f "$DIR/../../volume/video/hls") +export HTML_VOLUME=$(readlink -f "$DIR/../../volume/html") + +sudo docker container prune -f +sudo docker volume prune -f +sudo docker network prune -f +sudo rm -rf "${VIDEO_DASH_VOLUME}" "${VIDEO_HLS_VOLUME}" +sudo mkdir -p "${VIDEO_DASH_VOLUME}" "${VIDEO_HLS_VOLUME}" + +yml="$DIR/docker-compose.$(hostname).yml" +test -f "$yml" || yml="$DIR/docker-compose.yml" + +case "$1" in +docker_compose) + dcv="$(docker-compose --version | cut -f3 -d' ' | cut -f1 -d',')" + mdcv="$(printf '%s\n' $dcv 1.20 | sort -r -V | head -n 1)" + if test "$mdcv" = "1.20"; then + echo "" + echo "docker-compose >=1.20 is required." + echo "Please upgrade docker-compose at https://docs.docker.com/compose/install." + echo "" + exit 0 + fi + . "$DIR/self-sign.sh" + export USER_ID=$(id -u) + export GROUP_ID=$(id -g) + sudo -E docker-compose -f "$yml" -p ovc --compatibility up + ;; +*) + . "$DIR/self-sign.sh" + export USER_ID=$(id -u) + export GROUP_ID=$(id -g) + sudo -E docker stack deploy -c "$yml" ovc + ;; +esac diff --git a/deployment/docker-swarm/stop.sh b/deployment/docker-swarm/stop.sh new file mode 100755 index 0000000..d3f4b54 --- /dev/null +++ b/deployment/docker-swarm/stop.sh @@ -0,0 +1,27 @@ +#!/bin/bash -e + +DIR=$(dirname $(readlink -f "$0")) + +yml="$DIR/docker-compose.$(hostname).yml" +test -f "$yml" || yml="$DIR/docker-compose.yml" +case "$1" in +docker_compose) + dcv="$(docker-compose --version | cut -f3 -d' ' | cut -f1 -d',')" + mdcv="$(printf '%s\n' $dcv 1.10 | sort -r -V | head -n 1)" + if test "$mdcv" = "1.10"; then + echo "" + echo "docker-compose >=1.10 is required." + echo "Please upgrade docker-compose at https://docs.docker.com/compose/install." + echo "" + exit 0 + fi + sudo docker-compose -f "$yml" -p ovc --compatibility down + ;; +*) + sudo docker stack rm ovc + ;; +esac + +sudo docker container prune -f +sudo docker volume prune -f +sudo docker network prune -f diff --git a/doc/CDN_Transcode_Sample_Getting_Started_Guide.md b/doc/CDN_Transcode_Sample_Getting_Started_Guide.md new file mode 100644 index 0000000..1eea2d5 --- /dev/null +++ b/doc/CDN_Transcode_Sample_Getting_Started_Guide.md @@ -0,0 +1,283 @@ +# CDN Transcode Sample Getting Started Guide +[TOC] +This document describes how to run the CDN Transcode Sample (abbr as CTS) step by step. Please reference **CDN_Transcode_Sample_RA.md** to understand the CTS reference architecture design to understand how CTS works. + +The CTS provides CDN transcode services, and this guide just shows how to use the services in a simplest and typical way which can be scaled out to more complex environment. E.g.: in this guide, the docker images for transcoder server and cdn edge server are hosted on the same physical server, in real case, they can be hosted on differented servers located in different places in the CDN network. + +In this document, we'll use the simplest example to show how to build up the pipeline for different user scenarios. To simply the setup, we'll host some docker nodes in the same physical machine. + +# Prerequisites +In this document, Ubuntu 18.04 is taken as the host OS. +## Install docker on E3/VCA2/E5 host +- Install [docker.ce](https://docs.docker.com/install). +- Install [docker compose](https://docs.docker.com/compose/install) by referencing docker composer setup guide. Version 1.20+ is required. +- Install [docker swarm](https://docs.docker.com/engine/swarm) by referencing docker swarm setup guide. +- Install FFmpeg. +```sh +sudo apt-get install ffmpeg +``` + +## Setup docker proxy on E3/VCA2/E5 host +``` +sudo mkdir -p /etc/systemd/system/docker.service.d +printf "[Service]\nEnvironment=\"HTTPS_PROXY=$https_proxy\" \"NO_PROXY=$no_proxy\"\n" | sudo tee /etc/systemd/system/docker.service.d/proxy.conf +sudo systemctl daemon-reload +sudo systemctl restart docker +``` + +# How to build +## Build docker images +On E5 Server, run below command to build docker images: +``` sh +mkdir build +cd build +cmake .. +cd xcode-server/ffmpeg-sw +make +cd cdn-server +make +cd deployment/docker-swarm +make +``` + +On E3/VCA2 Server, run below command to build docker images: +``` sh +mkdir build +cd build +cmake .. +cd xcode-server/ffmpeg-hw +make +cd cdn-server +make +cd deployment/docker-swarm +make +``` + +# Auto deploy +The sample supports both auto deployment and manual deployment. +## Stop/start service +Use the following commands to stop/start docker swarm service +```bash +make stop_docker_swarm +make start_docker_swarm +``` + +Use the following commands to stop/start via docker-compose service +```bash +make stop_docker_compose +make start_docker_compose +``` +## Sample execution +### Playback on Web browser +Access URL:http://10.67.116.179/ with any browser, you will see the playlist and then click to play. +### Playback using VLC +Modify the IP address setting in client/vlc_playback.bat, then run the script on Windows client. + +# Manual deploy +## Live Streaming +### Environment setup +Below diagram shows how the CTS nodes interconnect with each other and the network topology used in this guide. +``` + + +------------------+-----------------+-----+ + | Transcode Server | CDN Edge Server | | ++------------------+ | [Ubuntu docker] | [Ubuntu docker] | | +------------------+ +| Streaming Server | | 192.168.31.31 | 192.168.31.32 | ... | | Client | +| PC1 10.67.117.70 |----->|------------------+-----------------+-----|---->| PC2 10.67.117.80 | +| FFmpeg Nginx | | E3/VCA2/E5: Ubuntu l8.04 10.67.116.179 | | VLC | ++------------------+ +------------------------------------------+ +------------------+ + +``` + +### Install FFmpeg on Streaming Server +Run below command on streaming server: +``` +sudo apt-get install -y ffmpeg nginx +``` + +Modify as follows elements at nginx.conf, then copy streams to the path you defined, such as /data/www/file. +``` +rtmp { + server { + application live { + live on; + exec_options on; + exec_pull ffmpeg -re -i http://localhost/$name.mp4 -c:v copy -an -f flv rtmp://localhost/$app/$name; + } + } +} +...... +http { + server { + location / { + root /data/www/file; + autoindex on; + autoindex_exact_size off; + autoindex_localtime on; + } + } +} +``` + +### Create docker network +Run below command on E3/VCA2/E5 server: +``` +docker network create -d bridge --subnet 192.168.31.0/24 --gateway 192.168.31.1 my_bridge +``` + +### Create transcoder server docker instance +Run below command on E5 server: +``` +docker run -it --network=my_bridge --ip 192.168.31.31 --name xcoder ovc_transcode_sw /bin/bash +``` + +Run below command on E3/VCA2 server: +``` +docker run -it --device=/dev/dri:/dev/dri --network=my_bridge --ip 192.168.31.31 --name xcoder ovc_transcode_hw /bin/bash +``` + +### Create CDN server docker instance +Run below command on E3/VCA2/E5 server: +``` +docker run -it -p 80:80 --network=my_bridge --ip 192.168.31.32 --name nginx ovc_cdn_service /bin/bash +``` + +### Install VLC on client +Run below command on client: +``` +sudo apt-get install -y vlc +``` + +### Sample Execution +#### CDN server +Run below command on CDN server: +``` +nginx & +``` + +#### Transcoder server +Run below command on transcoder server: +``` +ffmpeg -i rtmp://10.67.117.70/live/bbb_sunflower_1080p_30fps_normal -vf scale=2560:1440 -c:v libsvt_hevc -b:v 15M -f flv rtmp://192.168.31.32/hls/big_buck_bunny_2560x1440 -vf scale=1920:1080 -c:v libsvt_hevc -b:v 10M -f flv rtmp://192.168.31.32/hls/big_buck_bunny_1920x1080 -vf scale=1280:720 -c:v libx264 -b:v 8M -f flv rtmp://192.168.31.32/hls/big_buck_bunny_1280x720 -vf scale=854:480 -c:v libx264 -b:v 6M -f flv rtmp://192.168.31.32/hls/big_buck_bunny_854x480 -abr_pipeline +``` +Alternatively, you can choose to use intel GPU hardware acceleration on E3/VCA2 server, please run below command on transcoder server: +``` +ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format vaapi -i rtmp://10.67.117.70/live/bbb_sunflower_1080p_30fps_normal -vf 'scale_vaapi=w=2560:h=1440' -c:v h264_vaapi -b:v 15M -f flv rtmp://192.168.31.32/hls/big_buck_bunny_2560x1440 -vf 'scale_vaapi=w=1920:h=1080' -c:v h264_vaapi -b:v 10M -f flv rtmp://192.168.31.32/hls/big_buck_bunny_1920x1080 -vf 'scale_vaapi=w=1280:h=720' -c:v h264_vaapi -b:v 8M -f flv rtmp://192.168.31.32/hls/big_buck_bunny_1280x720 -vf 'scale_vaapi=w=854:h=480' -c:v h264_vaapi -b:v 6M -f flv rtmp://192.168.31.32/hls/big_buck_bunny_854x480 -abr_pipeline + +``` + +#### Live play +Run below command on client: +``` +vlc http://10.67.116.179/hls/big_buck_bunny_2560x1440/index.m3u8 +``` + +## Video on Demand +### Environment setup +Below diagram shows how the CTS nodes interconnect with each other and the network topology used in this guide. +``` + + +------------------+-----+-----------------+ + | Transcode Server | ... | CDN Edge Server | + | [Ubuntu docker] | ... | [Ubuntu docker] | + | 192.168.31.31 | ... | 192.168.31.32 | + +------------------+-----+-----------------+ + | Zookeeper | Kafka Server | ++------------------+ | [Ubuntu docker] | [Ubuntu docker] | +------------------+ +| Streaming Server | | 192.168.31.29 | 192.168.31.30 | | Client | +| PC1 10.67.117.70 |----->|------------------+-----------------------|---->| PC2 10.67.117.80 | +| FFmpeg Nginx | | E3/VCA2/E5: Ubuntu l8.04 10.67.116.179 | | Browser | ++------------------+ +------------------------------------------+ +------------------+ + +``` + +### Create docker network +Run below command on E3/VCA2/E5 server: +``` +docker network create -d bridge --subnet 192.168.31.0/24 --gateway 192.168.31.1 my_bridge +``` + +### Run zookeeper server docker instance +Run below command on E3/VCA2/E5 server: +``` +docker pull confluentinc/cp-zookeeper +docker run -d --name zookeeper --env ZOOKEEPER_SERVER_ID=1 --env ZOOKEEPER_CLIENT_PORT=2181 --env ZOOKEEPER_TICK_TIME=2000 --env ZOOKEEPER_MAX_CLIENT_CNXNS=20000 --env ZOOKEEPER_HEAP_OPTS="-Xmx2048m -Xms2048m" --restart=always --network=my_bridge --ip 192.168.31.29 -it confluentinc/cp-zookeeper +``` + +### Run kafka server docker instance +Run below command on E3/VCA2/E5 server: +``` +docker pull confluentinc/cp-kafka +docker run -d --name kafka --link zookeeper --env KAFKA_BROKER_ID=1 --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 --env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092 --env KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT --env KAFKA_INTER_BROKER_LISTENER_NAME=PLAINTEXT --env KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 --env KAFKA_DEFAULT_REPLICATION_FACTOR=1 --env KAFKA_AUTO_CREATE_TOPICS_ENABLE=true --env CONFLUENT_SUPPORT_METRICS_ENABLE=0 --env KAFKA_NUM_PARTITIONS=16 --env KAFKA_HEAP_OPTS="-Xmx1024m -Xms1024m" --restart=always --network=my_bridge --ip 192.168.31.30 -it confluentinc/cp-kafka +``` + +### Run kafka-init server docker instance +Run below command on E3/VCA2/E5 server: +``` +docker run -d --name kafka-init --link kafka --env KAFKA_BROKER_ID=ignored --env KAFKA_ZOOKEEPER_CONNECT=ignored --network=my_bridge --ip 192.168.31.31 -it confluentinc/cp-kafka bash -c 'cub kafka-ready -b kafka:9092 1 20 && kafka-topics --create --topic content_provider_sched --partitions 16 --replication-factor 1 --if-not-exists --zookeeper zookeeper:2181 && sleep infinity' +``` + +### Run transcoder server docker instance +Run below command on E5 server: +``` +docker run -it --network=my_bridge --ip 192.168.31.32 --name xcoder -v /var/www/dash:/var/www/dash -v /var/www/hls:/var/www/hls -v <>/volume/video/archive:/var/www/archive ovc_transcode_sw /bin/bash +Run: +python3 main.py +``` + +Run below command on E3/VCA2 server: +``` +docker run -it --device=/dev/dri:/dev/dri --network=my_bridge --ip 192.168.31.32 --name xcoder -v /var/www/dash:/var/www/dash -v /var/www/hls:/var/www/hls -v <>/volume/video/archive:/var/www/archive ovc_transcode_hw /bin/bash +Run: +python3 main.py +``` + +### Run CDN server docker instance +Run below command on E3/VCA2/E5 server: +``` +docker run -it -p 80:80 --network=my_bridge --ip 192.168.31.33 --name nginx -v /var/www/dash:/var/www/dash -v /var/www/hls:/var/www/hls -v <>/volume/video/archive/:/var/www/archive ovc_cdn_service /bin/bash +Run: +nginx & +python3 main.py +``` + +### Configure input streaming parameter on transcoder server docker instance and CDN server docker instance +Modify below parameter in config.ini: +``` +[mode] # input streaming mode +srcMode=local # live - the input is remote rtmp streaming, local - the input is a local stream +[path] # local stream path or remote desktop IP. +srcPath=/var/www/archive +``` + +### Install FFmpeg and Nginx on Streaming Server +Install FFmpeg and Nginx on Streaming Server for live use case: +``` +sudo apt-get install -y ffmpeg nginx +``` +Add below configuration elements in nginx.conf, then copy video clips to the path defined in the config. E.g: /data/www/file in below config: +``` +rtmp { + server { + application live { + live on; + exec_options on; + exec_pull ffmpeg -re -i http://localhost/$name.mp4 -c:v copy -an -f flv rtmp://localhost/$app/$name; + } + } +} +...... +http { + server { + location / { + root /data/www/file; + autoindex on; + autoindex_exact_size off; + autoindex_localtime on; + } + } +} +``` + +### Playback on Web browser +Access URL:http://10.67.116.179/ with any browser, you will see the playlist and then click to play. diff --git a/doc/CDN_Transcode_Sample_RA.md b/doc/CDN_Transcode_Sample_RA.md new file mode 100644 index 0000000..fda52f1 --- /dev/null +++ b/doc/CDN_Transcode_Sample_RA.md @@ -0,0 +1,159 @@ +# OVC CDN Transcode E2E Sample Reference Architecture +[TOC] +# Introduction +## Purpose +This document describes the reference architecture (RA) design of the OVC CDN Transcode E2E Sample (abbr as CTES in this document) which can demostrate the media delivery over CDN network capability using Open Visual Cloud software stack. + +## Overview +The CTES is not a single sample application, but a reference solution which contains multiple software ingredients, configurations and documentations. The software ingredients includes Intel HW/SW video codec drivers & libraries, industry encoder, somedia framework like FFmpeg, nginx web server, and a setup dockerfile/scripts. + +The CTES is part of the Intel OVC project, which has two key characters: +- All the ingredients are open sourced. +- The key components are packed into dockers to provide out-of-box service. + +# Architecture +The CTES will mainly two kinds of use cases: live broadcasting (short for live in this document) and VOD (video on demand). The architecture for these two user cases shares some same design and key ingredients, with workflow and and protocals varies. Below section describes the architectures for these two user cases. + +## Live Use Case +For live use case, there are mainly five logic nodes in the solution - the **Streaming Server**, **Transcode Server**, **CDN Edge Server**, **Client System**, and the **CDN Manager**. The Streaming Server broadcast the encoded source video into the Transcode Server. The Transcode Server receives the video streams, transcode to video streams with different codec/resolution/bitrate, and streams distribute to CDN Edge server by command from CDN manager with different protocols. The CDN Edge server receives streams from Transcode server, and send streams to Client System. + +There are 4 typical protocols widely used for stream from Transcode Server to CDN Edge Server, below table briefs the key differences: + +| Live Protocol | Streaming Server | Transcode Server | CDN Edge Server | Client | +|:------------- | :--------------- | ---------------- | --------------- | ------ | +| RTMP | out: rtmp | in:rtmp out: rtmp| in:rtmp out:rtmp| rtmp | +| HLS | out: rtmp | in:rtmp out: http| in:http out:http| http | +| DASH | out: rtmp | in:rtmp out: http| in:http out:http| http | +| HTTP-FLV | out: rtmp | TBD | TBD | http | + +### Live user scenario 1 - RTMP Live +Below is the simple workflow of the RTMP live user scenario: +``` + + +----------------+ + | CDN Manager | + +----------------+ + / \ ++------------+ +------------+ +------------+ +----------+ +| Streaming | rtmp | Transcode | rtmp | CDN Edge | rtmp | Client | +| Server |----->| Server |----->| Server |----->| System | ++------------+ +------------+ +------------+ +----------+ + +``` +In the **Streaming Server** side, a live video stream, either from a camera or HD video file, is pushed into **Transcode Server** over rtmp protocol in flv format. In CTES, FFmpeg is used to provide the RTMP streaming service, which is built into a docker image. + +The **Transcode Server** receives the video stream over rtmp, decapsulate and demux the flv video, transcode to other codecs/bitrate/resolution, in 1:N manner, which means one input and N output. E.g.: one channel HEVC 4k@60fps, transcoded into one channle AVC 720p@30fps, one channel HEVC 1080p@30fps and one channel HEVC 4k@60fps. The transcoded video streams are then be encapsulated in flv over rtmp, be distributed to the **CDN Edge Server** over CDN network, accordingly to the decision from **CDN Manager**. FFmpeg is used here as the transcode framework, with plugins to support various decoders and encoders, like SVT, QSV or VAAPI. The **Transcode Server** needs to provide rtmp service as well, in CTES Ngnix and nginx-rtmp module is used for this purpose. To provide out-of-box service, the transcode software ingredients and Nginx as well as configurations are bundled into a docker image as well. + +The **CDN Edge** server receives the video streams from **Transcode Server**, cache the streams and push the steams into various clients over rtmp. In real production it may require transcode in edge as well. In CTES, only cache and relay is supported to simply the typical workflow logically. Same as **Transcode** server, Nginux and nginx-rtmp module is needed and built into docker image as well. + +The **Client System** supports rtmp playback and AVC/HEVC decode, in CTES FFplay is used. + +### Live user scenario 2 - HLS Live +Below is the simple workflow of the HLS live user scenario: +``` + + +----------------+ + | CDN Manager | + +----------------+ + / \ ++------------+ +------------+ +------------+ +----------+ +| Streaming | rtmp | Transcode | rtmp | CDN Edge | http | Client | +| Server |----->| Server |----->| Server |<-----| System | ++------------+ +------------+ +------------+ +----------+ + +``` +For the workflow for HLS Live, the **Streaming Server** and **Transcode Server** is the same as the RTMP Live. The diference is the **CDN Edge Server** side and **Client System** side. + +The **CDN Edge Server** receives video streams via rtmp, and will translate the video streams into HLS TS format, split into .ts segmentation, and generate HLS .m3u8 index file. The Nginx is used to provide the http service while nginx-rtmp module is also used, to provide rtmp service and also rtmp->hls translation. Same as above, all of them provided in terms of docker. + +The **Client System** supports HLS playback and AVC/HEVC decode, in CTES hls.js is used. + +### Live user scenario 3 - DASH Live +Below is the simple workflow of the DASH (short for MPEG-DASH) live user scenario: +``` + + +----------------+ + | CDN Manager | + +----------------+ + / \ ++------------+ +------------+ +------------+ +----------+ +| Streaming | rtmp | Transcode | rtmp | CDN Edge | http | Client | +| Server |----->| Server |----->| Server |<-----| System | ++------------+ +------------+ +------------+ +----------+ + +``` +The workflow for **DASH Live** is very similiar with **HLS Live**, both DASH and HLS are over HTTP, with video stream segmented and playlist index file provided. The key differences is that segmentation and index methodlogy, that means that the configuration in CDN Edge server and the **Client System** play differs. + +The **CDN Edge Server** receives video streams via rtmp, and will translate the video streams into mp4 format, split into .mp4 segmentation, and generate DASH .mpd index file. + +The **Client System** supports DASH playback and AVC/HEVC decode, in dash.js is used. + +### Live user scenario 4 - HTTP-FLV Live +TODO + +## VOD Use Case + +For VOD use case, there are mainly five logic nodes in the solution - the **Video Publisher**, **Transcode Server**, **OSS Server**, **CDN Edge Server**, **Client System**, and the **CDN Manager**. The **Video Publisher** publish the encoded source video into the Transcode Server over http, by web browser or mobile app. The Transcode Server receives the video streams, transcode to video streams with different codec/resolution/bitrate, generate HLS or DASH video segmentation and index file, and save to **OSS Server**. The transcode output video files will then be distributed to **CDN Edge Server** by decision from **CDN manager**. The **CDN Edge Server** receives streams from **Transcode Server**, and send streams to **Client System** per request. + +There are 2 typical protocols used for VOD, below table briefs the key differences: + +| VOD Protocol | Video Publisher | Transcode Server | CDN Edge Server | Client | +|:------------- | :--------------- | ---------------- | --------------- | ------ | +| HLS | segment: ts | in:file out: hls | in:hls out:hls | hls | +| DASH | segment: mp4 | in:file out: dash| in:dash out:dash| dash | + +### VOD user scenario 1 - HLS VOD +Below is the simple workflow of the HLS VOD user scenario: +``` + + +----------------+ + | CDN Manager | + +----------------+ + / \ ++------------+ +------------+ +------------+ +----------+ +| Video | http | Transcode | http | CDN Edge | http | Client | +| Publisher |----->| Server |<---->| Server |<-----| System | ++------------+ +------------+ +------------+ +----------+ + | + V + +------------+ + | OSS | + | Server | + +------------+ + +``` +In the **Video Publisher** side, the user uploads a HD video file to the **Transcode Server**. In CTES, no special client software but just web browser is used. + +The **Transcode Server** receives the video stream over http, transcode to other codecs/bitrate/resolution, in 1:N manner, do segmentation and create index file as playlist. The results will be stored in **OSS Server**, which means Open Storage System, and then be distributed to the **CDN Edge Server** over CDN network, accordingly to the decision from **CDN Manager**. Again, FFmpeg is used here as the transcode framework. The **Transcode Server** needs to provide http service as well, in CTES Ngnix is used for this purpose. Same as above, the transcode software ingredients and Nginx as well as configurations are bundled into a docker image as well. + +The **CDN Edge** server receives the video streams from **Transcode Server**, cache the streams and push the steams into various clients over http. In real production it may require transcode in edge as well. In CTES, **CDN Edge** node can also be ommitted so **Client System** requests are sent to **Transcode Server** directly. + +The **Client System** supports HLS playback and AVC/HEVC decode, in CTES HLS.js or VLC is used. + +### VOD user scenario 2 - DASH VOD +Below is the simple workflow of the DASH VOD user scenario: +``` + + +----------------+ + | CDN Manager | + +----------------+ + / \ ++------------+ +------------+ +------------+ +----------+ +| Video | http | Transcode | http | CDN Edge | http | Client | +| Publisher |----->| Server |<---->| Server |<-----| System | ++------------+ +------------+ +------------+ +----------+ + | + V + +------------+ + | OSS | + | Server | + +------------+ + +``` +It's almost the same as HLS VOD scenario with some minor difference: FFmpeg should generate DASH .mp4 segmentations and index file, and the **Client System** supports DASH playback and AVC/HEVC decode, DASH.js will be used. + +# Reference Demo +## Hardware Requirement +## Software Ingredients +## Network Configuration +## Video Clips diff --git a/script/README.md b/script/README.md new file mode 100644 index 0000000..e69de29 diff --git a/script/build.sh b/script/build.sh new file mode 100644 index 0000000..4c0d2b1 --- /dev/null +++ b/script/build.sh @@ -0,0 +1,20 @@ +#!/bin/bash -e + +if test -z "${DIR}"; then + echo "This script should not be called directly." + exit -1 +fi + +# build image(s) in order (to satisfy dependencies) +for dep in .8 .7 .6 .5 .4 .3 .2 .1 ''; do + if test -f "${DIR}/Dockerfile$dep"; then + image=$(grep -m1 '#' "$DIR/Dockerfile$dep" | cut -d' ' -f2) + if test -z "$dep"; then image="$IMAGE"; fi + + if grep -q 'AS build' "${DIR}/Dockerfile$dep"; then + sudo docker build --network=host --file="${DIR}/Dockerfile$dep" --target build -t "$image:build" "$DIR" $(env | grep -E '_(proxy|REPO|VER)=' | sed 's/^/--build-arg /') + fi + + sudo docker build --network=host --file="${DIR}/Dockerfile$dep" -t "$image:latest" "$DIR" $(env | grep -E '_(proxy|REPO|VER)=' | sed 's/^/--build-arg /') + fi +done diff --git a/script/cadvisor.sh b/script/cadvisor.sh new file mode 100755 index 0000000..ded4f49 --- /dev/null +++ b/script/cadvisor.sh @@ -0,0 +1,11 @@ +#!/bin/bash -e + +docker run \ +--volume=/:/rootfs:ro \ +--volume=/var/run:/var/run:rw \ +--volume=/sys:/sys:ro \ +--volume=/var/lib/docker/:/var/lib/docker:ro \ +--publish=8087:8080 \ +--detach=true \ +--name=cadvisor \ +google/cadvisor:latest diff --git a/script/deployment.cmake b/script/deployment.cmake new file mode 100644 index 0000000..b1de87c --- /dev/null +++ b/script/deployment.cmake @@ -0,0 +1,3 @@ +add_custom_target(deploy_${service} "${CMAKE_CURRENT_SOURCE_DIR}/start.sh" "${service}") +add_custom_target(start_${service} "${CMAKE_CURRENT_SOURCE_DIR}/start.sh" "${service}") +add_custom_target(stop_${service} "${CMAKE_CURRENT_SOURCE_DIR}/stop.sh" "${service}") diff --git a/script/scan-all.cmake b/script/scan-all.cmake new file mode 100644 index 0000000..64eaa38 --- /dev/null +++ b/script/scan-all.cmake @@ -0,0 +1,6 @@ +file(GLOB dirs "*") +foreach (dir ${dirs}) + if(EXISTS ${dir}/CMakeLists.txt) + add_subdirectory(${dir}) + endif() +endforeach() diff --git a/script/service.cmake b/script/service.cmake new file mode 100644 index 0000000..6169f76 --- /dev/null +++ b/script/service.cmake @@ -0,0 +1,3 @@ +if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/build.sh") + add_custom_target(build_${service} ALL "${CMAKE_CURRENT_SOURCE_DIR}/build.sh") +endif() diff --git a/script/shell.sh b/script/shell.sh new file mode 100644 index 0000000..8617ddf --- /dev/null +++ b/script/shell.sh @@ -0,0 +1,20 @@ +#!/bin/bash -e + +if test -z "${DIR}"; then + echo "This script should not be called directly." + exit -1 +fi + +pid="$(sudo docker ps -f ancestor=$IMAGE --format='{{.ID}}' | head -n 1)" +if [ -n "$pid" ] && [ "$#" -le "1" ]; then + echo "bash into running container...$IMAGE" + sudo docker exec -it $pid ${*-/bin/bash} +else + echo "bash into new container...$IMAGE" + if test -z "$DOCKERFILE"; then + DOCKERFILE="${DIR}/Dockerfile" + fi + args=("$@") + sudo docker run --network=host ${OPTIONS[@]} $(env | grep -E '_(proxy)=' | sed 's/^/-e /') $(grep '^ARG .*=' "$DOCKERFILE" | sed 's/^ARG /-e /') --entrypoint ${1:-/bin/bash} -it "${IMAGE}" ${args[@]:1} +fi + diff --git a/streaming-server/.dockerignore b/streaming-server/.dockerignore new file mode 100644 index 0000000..1cb8a04 --- /dev/null +++ b/streaming-server/.dockerignore @@ -0,0 +1,4 @@ +CMakeLists.txt +*.sh +*.m4 +test/* diff --git a/streaming-server/CMakeLists.txt b/streaming-server/CMakeLists.txt new file mode 100644 index 0000000..51efc90 --- /dev/null +++ b/streaming-server/CMakeLists.txt @@ -0,0 +1,3 @@ +set(service "ovc_streaming_service") +set(dep_image "ovc_transcode_sw") +include("${CMAKE_SOURCE_DIR}/script/service.cmake") diff --git a/streaming-server/Dockerfile b/streaming-server/Dockerfile new file mode 100644 index 0000000..5c6f8dd --- /dev/null +++ b/streaming-server/Dockerfile @@ -0,0 +1,69 @@ + +FROM ubuntu:18.04 AS build +WORKDIR /home + +# COMMON BUILD TOOLS +RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y -q --no-install-recommends build-essential autoconf make git wget pciutils cpio libtool lsb-release ca-certificates pkg-config bison flex + +# Install cmake +ARG CMAKE_VER=3.13.1 +ARG CMAKE_REPO=https://cmake.org/files +RUN wget -O - ${CMAKE_REPO}/v${CMAKE_VER%.*}/cmake-${CMAKE_VER}.tar.gz | tar xz && \ + cd cmake-${CMAKE_VER} && \ + ./bootstrap --prefix="/usr" && \ + make -j8 && \ + make install + +# Install automake, use version 1.14 on CentOS +ARG AUTOMAKE_VER=1.14 +ARG AUTOMAKE_REPO=https://ftp.gnu.org/pub/gnu/automake/automake-${AUTOMAKE_VER}.tar.xz + RUN apt-get install -y -q automake + +# Build nginx-rtmp +ARG NGINX_RTMP_VER=v1.2.1 +ARG NGINX_RTMP_REPO=https://github.com/arut/nginx-rtmp-module/archive/${NGINX_RTMP_VER}.tar.gz +ARG NGINX_RTMP_PATCH_HLS=https://raw.githubusercontent.com/VCDP/CDN/master/0001-add-hevc-support-for-rtmp-and-hls.patch +ARG NGINX_RTMP_PATCH_DASH=https://raw.githubusercontent.com/VCDP/CDN/master/0002-add-HEVC-support-for-dash.patch + +RUN wget -O - ${NGINX_RTMP_REPO} | tar xz && mv nginx-rtmp-module-${NGINX_RTMP_VER#v} nginx-rtmp-module && \ + cd nginx-rtmp-module && \ + wget -O - ${NGINX_RTMP_PATCH_HLS} | patch -p1 && \ + wget -O - ${NGINX_RTMP_PATCH_DASH} | patch -p1 + + +# Build nginx & nginx-rtmp +ARG NGINX_VER=1.14.2 +ARG NGINX_REPO=https://nginx.org/download/nginx-${NGINX_VER}.tar.gz + +RUN apt-get update && apt-get install -y -q --no-install-recommends libssl-dev libpcre3-dev zlib1g-dev libxslt1-dev + +RUN wget -O - ${NGINX_REPO} | tar xz && \ + cd nginx-${NGINX_VER} && \ + ./configure --prefix=/var/www --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/x86_64-linux-gnu/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/www/log/error.log --pid-path=/var/www/nginx.pid --lock-path=/var/www/nginx.lock --http-log-path=/var/www/log/access.log --http-client-body-temp-path=/var/www/tmp/client_body --http-proxy-temp-path=/var/www/tmp/proxy --http-fastcgi-temp-path=/var/www/tmp/fastcgi --http-uwsgi-temp-path=/var/www/tmp/uwsgi --http-scgi-temp-path=/var/www/tmp/scgi --user=www-data --group=www-data --with-select_module --with-poll_module --with-threads --with-file-aio --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_slice_module --with-http_stub_status_module --with-stream --with-stream_ssl_module --with-stream_realip_module --with-stream_ssl_preread_module --with-pcre --add-module=../nginx-rtmp-module && \ + make -j8 && \ + make install DESTDIR=/home/build + +# NGINX Setup +RUN mkdir -p /home/build/var/www/tmp/client_body && \ + mkdir -p /home/build/var/www/tmp/proxy && \ + mkdir -p /home/build/var/www/tmp/fastcgi && \ + mkdir -p /home/build/var/www/tmp/uwsgi && \ + mkdir -p /home/build/var/www/tmp/scgi && \ + mkdir -p /home/build/var/www/cache && \ + mkdir -p /home/build/var/www/html + + +FROM ovc_transcode_sw:latest +LABEL Description="This is the base image for a NGINX+RTMP service" +LABEL Vendor="Intel Corporation" +WORKDIR /home + +# Prerequisites +RUN ln -sf /usr/share/zoneinfo/UTC /etc/localtime && \ + DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y -q --no-install-recommends libxml2 libssl-dev libpcre3 zlib1g libxslt1.1 python3-tornado python3-kafka python3-bs4 python3-kazoo vim && \ + rm -rf /var/lib/apt/lists/* +# Install +COPY --from=build /home/build / +CMD /usr/sbin/nginx +VOLUME /etc/nginx /var/www/html /var/www/tmp/client_body /var/www/tmp/proxy /var/www/tmp/fastcgi /var/www/tmp/uwsgi /var/www/tmp/scgi /var/www/cache /var/www/dash /var/www/hls +EXPOSE 80 1935 diff --git a/streaming-server/build.sh b/streaming-server/build.sh new file mode 100755 index 0000000..182bb21 --- /dev/null +++ b/streaming-server/build.sh @@ -0,0 +1,6 @@ +#!/bin/bash -e + +IMAGE="ovc_streaming_service" +DIR=$(dirname $(readlink -f "$0")) + +. "${DIR}/../script/build.sh" diff --git a/streaming-server/nginx.conf b/streaming-server/nginx.conf new file mode 100644 index 0000000..a2af65b --- /dev/null +++ b/streaming-server/nginx.conf @@ -0,0 +1,97 @@ + +worker_processes auto; +daemon off; + +events { + worker_connections 4096; +} + +rtmp { + server { + listen 1935; + chunk_size 4000; + + application stream { + live on; + exec_options on; + exec_pull ffmpeg -re -i http://localhost/$name.mp4 -c:v copy -an -f flv rtmp://localhost/$app/$name; + } + + application hls { + live on; + hls on; + hls_path /var/www/hls; + hls_nested on; + hls_fragment 3; + hls_playlist_length 60; + } + + application dash { + live on; + dash on; + dash_path /var/www/dash; + dash_fragment 3; + dash_playlist_length 60; + dash_nested on; + } + } +} + +http { + include mime.types; + default_type application/octet-stream; + directio 512; + sendfile on; + tcp_nopush on; + tcp_nodelay on; + keepalive_timeout 65; + aio on; + + ssl_ciphers HIGH:!aNULL:!MD5; + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + ssl_session_cache shared:SSL:10m; + ssl_session_timeout 10m; + + proxy_cache_path /var/www/cache levels=1:2 keys_zone=one:10m use_temp_path=off; + + server { + listen 80; + + # proxy cache settings + proxy_cache one; + proxy_no_cache $http_pragma $http_authorization; + proxy_cache_bypass $cookie_nocache $arg_nocache$arg_comment; + proxy_cache_valid 200 302 10m; + proxy_cache_valid 303 1m; + + location / { + root /data/www/file; + autoindex on; + autoindex_exact_size off; + autoindex_localtime on; + } + + location /hls { + alias /var/www/hls; + add_header Cache-Control no-cache; + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + types { + application/vnd.apple.mpegurl m3u8; + video/mp2t ts; + } + } + + location /dash { + alias /var/www/dash; + add_header Cache-Control no-cache; + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + types { + application/dash+xml mpd; + } + } + + } +} + diff --git a/streaming-server/shell.sh b/streaming-server/shell.sh new file mode 100755 index 0000000..052aa15 --- /dev/null +++ b/streaming-server/shell.sh @@ -0,0 +1,6 @@ +#!/bin/bash -e + +IMAGE="ovc_streaming_service" +DIR=$(dirname $(readlink -f "$0")) + +. "${DIR}/../script/shell.sh" diff --git a/volume/html/css/app.css b/volume/html/css/app.css new file mode 100644 index 0000000..4807e5c --- /dev/null +++ b/volume/html/css/app.css @@ -0,0 +1,22 @@ + +form .form-icons { + text-align: center; +} + +form .form-icons h4 { + margin-bottom: 1rem; +} + +form .form-icons .input-group-label { + background-color: #1779ba; + border-color: #1779ba; +} + +form .form-icons .input-group-field { + border-color: #1779ba; +} + +form .form-icons .fa { + color: white; + width: 1rem; +} diff --git a/volume/html/css/foundation.css b/volume/html/css/foundation.css new file mode 100644 index 0000000..e383571 --- /dev/null +++ b/volume/html/css/foundation.css @@ -0,0 +1,5608 @@ +@charset "UTF-8"; +/** + * Foundation for Sites by ZURB + * Version 6.4.1 + * foundation.zurb.com + * Licensed under MIT Open Source + */ +@media print, screen and (min-width: 40em) { + .reveal, .reveal.tiny, .reveal.small, .reveal.large { + right: auto; + left: auto; + margin: 0 auto; } } + +/*! normalize-scss | MIT/GPLv2 License | bit.ly/normalize-scss */ +/* Document + ========================================================================== */ +/** + * 1. Change the default font family in all browsers (opinionated). + * 2. Correct the line height in all browsers. + * 3. Prevent adjustments of font size after orientation changes in + * IE on Windows Phone and in iOS. + */ +html { + font-family: sans-serif; + /* 1 */ + line-height: 1.15; + /* 2 */ + -ms-text-size-adjust: 100%; + /* 3 */ + -webkit-text-size-adjust: 100%; + /* 3 */ } + +/* Sections + ========================================================================== */ +/** + * Remove the margin in all browsers (opinionated). + */ +body { + margin: 0; } + +/** + * Add the correct display in IE 9-. + */ +article, +aside, +footer, +header, +nav, +section { + display: block; } + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ +h1 { + font-size: 2em; + margin: 0.67em 0; } + +/* Grouping content + ========================================================================== */ +/** + * Add the correct display in IE 9-. + */ +figcaption, +figure { + display: block; } + +/** + * Add the correct margin in IE 8. + */ +figure { + margin: 1em 40px; } + +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ +hr { + box-sizing: content-box; + /* 1 */ + height: 0; + /* 1 */ + overflow: visible; + /* 2 */ } + +/** + * Add the correct display in IE. + */ +main { + display: block; } + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ +pre { + font-family: monospace, monospace; + /* 1 */ + font-size: 1em; + /* 2 */ } + +/* Links + ========================================================================== */ +/** + * 1. Remove the gray background on active links in IE 10. + * 2. Remove gaps in links underline in iOS 8+ and Safari 8+. + */ +a { + background-color: transparent; + /* 1 */ + -webkit-text-decoration-skip: objects; + /* 2 */ } + +/** + * Remove the outline on focused links when they are also active or hovered + * in all browsers (opinionated). + */ +a:active, +a:hover { + outline-width: 0; } + +/* Text-level semantics + ========================================================================== */ +/** + * 1. Remove the bottom border in Firefox 39-. + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ +abbr[title] { + border-bottom: none; + /* 1 */ + text-decoration: underline; + /* 2 */ + text-decoration: underline dotted; + /* 2 */ } + +/** + * Prevent the duplicate application of `bolder` by the next rule in Safari 6. + */ +b, +strong { + font-weight: inherit; } + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ +b, +strong { + font-weight: bolder; } + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ +code, +kbd, +samp { + font-family: monospace, monospace; + /* 1 */ + font-size: 1em; + /* 2 */ } + +/** + * Add the correct font style in Android 4.3-. + */ +dfn { + font-style: italic; } + +/** + * Add the correct background and color in IE 9-. + */ +mark { + background-color: #ff0; + color: #000; } + +/** + * Add the correct font size in all browsers. + */ +small { + font-size: 80%; } + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; } + +sub { + bottom: -0.25em; } + +sup { + top: -0.5em; } + +/* Embedded content + ========================================================================== */ +/** + * Add the correct display in IE 9-. + */ +audio, +video { + display: inline-block; } + +/** + * Add the correct display in iOS 4-7. + */ +audio:not([controls]) { + display: none; + height: 0; } + +/** + * Remove the border on images inside links in IE 10-. + */ +img { + border-style: none; } + +/** + * Hide the overflow in IE. + */ +svg:not(:root) { + overflow: hidden; } + +/* Forms + ========================================================================== */ +/** + * 1. Change the font styles in all browsers (opinionated). + * 2. Remove the margin in Firefox and Safari. + */ +button, +input, +optgroup, +select, +textarea { + font-family: sans-serif; + /* 1 */ + font-size: 100%; + /* 1 */ + line-height: 1.15; + /* 1 */ + margin: 0; + /* 2 */ } + +/** + * Show the overflow in IE. + */ +button { + overflow: visible; } + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ +button, +select { + /* 1 */ + text-transform: none; } + +/** + * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video` + * controls in Android 4. + * 2. Correct the inability to style clickable types in iOS and Safari. + */ +button, +html [type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; + /* 2 */ } + +button, +[type="button"], +[type="reset"], +[type="submit"] { + /** + * Remove the inner border and padding in Firefox. + */ + /** + * Restore the focus styles unset by the previous rule. + */ } + button::-moz-focus-inner, + [type="button"]::-moz-focus-inner, + [type="reset"]::-moz-focus-inner, + [type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; } + button:-moz-focusring, + [type="button"]:-moz-focusring, + [type="reset"]:-moz-focusring, + [type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; } + +/** + * Show the overflow in Edge. + */ +input { + overflow: visible; } + +/** + * 1. Add the correct box sizing in IE 10-. + * 2. Remove the padding in IE 10-. + */ +[type="checkbox"], +[type="radio"] { + box-sizing: border-box; + /* 1 */ + padding: 0; + /* 2 */ } + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; } + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ +[type="search"] { + -webkit-appearance: textfield; + /* 1 */ + outline-offset: -2px; + /* 2 */ + /** + * Remove the inner padding and cancel buttons in Chrome and Safari on macOS. + */ } + [type="search"]::-webkit-search-cancel-button, [type="search"]::-webkit-search-decoration { + -webkit-appearance: none; } + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ +::-webkit-file-upload-button { + -webkit-appearance: button; + /* 1 */ + font: inherit; + /* 2 */ } + +/** + * Change the border, margin, and padding in all browsers (opinionated). + */ +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; } + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ +legend { + box-sizing: border-box; + /* 1 */ + display: table; + /* 1 */ + max-width: 100%; + /* 1 */ + padding: 0; + /* 3 */ + color: inherit; + /* 2 */ + white-space: normal; + /* 1 */ } + +/** + * 1. Add the correct display in IE 9-. + * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ +progress { + display: inline-block; + /* 1 */ + vertical-align: baseline; + /* 2 */ } + +/** + * Remove the default vertical scrollbar in IE. + */ +textarea { + overflow: auto; } + +/* Interactive + ========================================================================== */ +/* + * Add the correct display in Edge, IE, and Firefox. + */ +details { + display: block; } + +/* + * Add the correct display in all browsers. + */ +summary { + display: list-item; } + +/* + * Add the correct display in IE 9-. + */ +menu { + display: block; } + +/* Scripting + ========================================================================== */ +/** + * Add the correct display in IE 9-. + */ +canvas { + display: inline-block; } + +/** + * Add the correct display in IE. + */ +template { + display: none; } + +/* Hidden + ========================================================================== */ +/** + * Add the correct display in IE 10-. + */ +[hidden] { + display: none; } + +.foundation-mq { + font-family: "small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em"; } + +html { + box-sizing: border-box; + font-size: 100%; } + +*, +*::before, +*::after { + box-sizing: inherit; } + +body { + margin: 0; + padding: 0; + background: #fefefe; + font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; + font-weight: normal; + line-height: 1.5; + color: #0a0a0a; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; } + +img { + display: inline-block; + vertical-align: middle; + max-width: 100%; + height: auto; + -ms-interpolation-mode: bicubic; } + +textarea { + height: auto; + min-height: 50px; + border-radius: 0; } + +select { + box-sizing: border-box; + width: 100%; + border-radius: 0; } + +.map_canvas img, +.map_canvas embed, +.map_canvas object, +.mqa-display img, +.mqa-display embed, +.mqa-display object { + max-width: none !important; } + +button { + padding: 0; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border: 0; + border-radius: 0; + background: transparent; + line-height: 1; } + [data-whatinput='mouse'] button { + outline: 0; } + +pre { + overflow: auto; } + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; } + +.is-visible { + display: block !important; } + +.is-hidden { + display: none !important; } + +.grid-container { + max-width: 75rem; + margin: 0 auto; } + +.grid-container-padded { + padding-left: 0.625rem; + padding-right: 0.625rem; } + @media print, screen and (min-width: 40em) { + .grid-container-padded { + padding-left: 0.9375rem; + padding-right: 0.9375rem; } } + @media screen and (min-width: 75em) { + .grid-container-padded { + padding-left: 0; + padding-right: 0; } } + +.grid-x { + display: -ms-flexbox; + display: flex; + -ms-flex-flow: row wrap; + flex-flow: row wrap; } + +.cell { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + min-height: 0px; + min-width: 0px; + width: 100%; } + .cell.auto { + -ms-flex: 1 1 0px; + flex: 1 1 0px; } + .cell.shrink { + -ms-flex: 0 0 auto; + flex: 0 0 auto; } + +.grid-x > .auto { + width: auto; } + +.grid-x > .shrink { + width: auto; } + +.grid-x > small-shrink, .grid-x > small-full, .grid-x > small-1, .grid-x > small-2, .grid-x > small-3, .grid-x > small-4, .grid-x > small-5, .grid-x > small-6, .grid-x > small-7, .grid-x > small-8, .grid-x > small-9, .grid-x > small-10, .grid-x > small-11, .grid-x > small-12 { + -ms-flex-preferred-size: auto; + flex-basis: auto; } + +@media print, screen and (min-width: 40em) { + .grid-x > medium-shrink, .grid-x > medium-full, .grid-x > medium-1, .grid-x > medium-2, .grid-x > medium-3, .grid-x > medium-4, .grid-x > medium-5, .grid-x > medium-6, .grid-x > medium-7, .grid-x > medium-8, .grid-x > medium-9, .grid-x > medium-10, .grid-x > medium-11, .grid-x > medium-12 { + -ms-flex-preferred-size: auto; + flex-basis: auto; } } + +@media print, screen and (min-width: 64em) { + .grid-x > large-shrink, .grid-x > large-full, .grid-x > large-1, .grid-x > large-2, .grid-x > large-3, .grid-x > large-4, .grid-x > large-5, .grid-x > large-6, .grid-x > large-7, .grid-x > large-8, .grid-x > large-9, .grid-x > large-10, .grid-x > large-11, .grid-x > large-12 { + -ms-flex-preferred-size: auto; + flex-basis: auto; } } + +.grid-x > .small-1 { + width: 8.33333%; } + +.grid-x > .small-2 { + width: 16.66667%; } + +.grid-x > .small-3 { + width: 25%; } + +.grid-x > .small-4 { + width: 33.33333%; } + +.grid-x > .small-5 { + width: 41.66667%; } + +.grid-x > .small-6 { + width: 50%; } + +.grid-x > .small-7 { + width: 58.33333%; } + +.grid-x > .small-8 { + width: 66.66667%; } + +.grid-x > .small-9 { + width: 75%; } + +.grid-x > .small-10 { + width: 83.33333%; } + +.grid-x > .small-11 { + width: 91.66667%; } + +.grid-x > .small-12 { + width: 100%; } + +@media print, screen and (min-width: 40em) { + .grid-x > .medium-auto { + -ms-flex: 1 1 0px; + flex: 1 1 0px; + width: auto; } + .grid-x > .medium-shrink { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; } + .grid-x > .medium-1 { + width: 8.33333%; } + .grid-x > .medium-2 { + width: 16.66667%; } + .grid-x > .medium-3 { + width: 25%; } + .grid-x > .medium-4 { + width: 33.33333%; } + .grid-x > .medium-5 { + width: 41.66667%; } + .grid-x > .medium-6 { + width: 50%; } + .grid-x > .medium-7 { + width: 58.33333%; } + .grid-x > .medium-8 { + width: 66.66667%; } + .grid-x > .medium-9 { + width: 75%; } + .grid-x > .medium-10 { + width: 83.33333%; } + .grid-x > .medium-11 { + width: 91.66667%; } + .grid-x > .medium-12 { + width: 100%; } } + +@media print, screen and (min-width: 64em) { + .grid-x > .large-auto { + -ms-flex: 1 1 0px; + flex: 1 1 0px; + width: auto; } + .grid-x > .large-shrink { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; } + .grid-x > .large-1 { + width: 8.33333%; } + .grid-x > .large-2 { + width: 16.66667%; } + .grid-x > .large-3 { + width: 25%; } + .grid-x > .large-4 { + width: 33.33333%; } + .grid-x > .large-5 { + width: 41.66667%; } + .grid-x > .large-6 { + width: 50%; } + .grid-x > .large-7 { + width: 58.33333%; } + .grid-x > .large-8 { + width: 66.66667%; } + .grid-x > .large-9 { + width: 75%; } + .grid-x > .large-10 { + width: 83.33333%; } + .grid-x > .large-11 { + width: 91.66667%; } + .grid-x > .large-12 { + width: 100%; } } + +.grid-margin-x:not(.grid-x) > .cell { + width: auto; } + +.grid-margin-y:not(.grid-y) > .cell { + height: auto; } + +.grid-margin-x { + margin-left: -0.625rem; + margin-right: -0.625rem; } + @media print, screen and (min-width: 40em) { + .grid-margin-x { + margin-left: -0.9375rem; + margin-right: -0.9375rem; } } + .grid-margin-x > .cell { + width: calc(100% - 1.25rem); + margin-left: 0.625rem; + margin-right: 0.625rem; } + @media print, screen and (min-width: 40em) { + .grid-margin-x > .cell { + width: calc(100% - 1.875rem); + margin-left: 0.9375rem; + margin-right: 0.9375rem; } } + .grid-margin-x > .auto { + width: auto; } + .grid-margin-x > .shrink { + width: auto; } + .grid-margin-x > .small-1 { + width: calc(8.33333% - 1.25rem); } + .grid-margin-x > .small-2 { + width: calc(16.66667% - 1.25rem); } + .grid-margin-x > .small-3 { + width: calc(25% - 1.25rem); } + .grid-margin-x > .small-4 { + width: calc(33.33333% - 1.25rem); } + .grid-margin-x > .small-5 { + width: calc(41.66667% - 1.25rem); } + .grid-margin-x > .small-6 { + width: calc(50% - 1.25rem); } + .grid-margin-x > .small-7 { + width: calc(58.33333% - 1.25rem); } + .grid-margin-x > .small-8 { + width: calc(66.66667% - 1.25rem); } + .grid-margin-x > .small-9 { + width: calc(75% - 1.25rem); } + .grid-margin-x > .small-10 { + width: calc(83.33333% - 1.25rem); } + .grid-margin-x > .small-11 { + width: calc(91.66667% - 1.25rem); } + .grid-margin-x > .small-12 { + width: calc(100% - 1.25rem); } + @media print, screen and (min-width: 40em) { + .grid-margin-x > .auto { + width: auto; } + .grid-margin-x > .shrink { + width: auto; } + .grid-margin-x > .small-1 { + width: calc(8.33333% - 1.875rem); } + .grid-margin-x > .small-2 { + width: calc(16.66667% - 1.875rem); } + .grid-margin-x > .small-3 { + width: calc(25% - 1.875rem); } + .grid-margin-x > .small-4 { + width: calc(33.33333% - 1.875rem); } + .grid-margin-x > .small-5 { + width: calc(41.66667% - 1.875rem); } + .grid-margin-x > .small-6 { + width: calc(50% - 1.875rem); } + .grid-margin-x > .small-7 { + width: calc(58.33333% - 1.875rem); } + .grid-margin-x > .small-8 { + width: calc(66.66667% - 1.875rem); } + .grid-margin-x > .small-9 { + width: calc(75% - 1.875rem); } + .grid-margin-x > .small-10 { + width: calc(83.33333% - 1.875rem); } + .grid-margin-x > .small-11 { + width: calc(91.66667% - 1.875rem); } + .grid-margin-x > .small-12 { + width: calc(100% - 1.875rem); } + .grid-margin-x > .medium-auto { + width: auto; } + .grid-margin-x > .medium-shrink { + width: auto; } + .grid-margin-x > .medium-1 { + width: calc(8.33333% - 1.875rem); } + .grid-margin-x > .medium-2 { + width: calc(16.66667% - 1.875rem); } + .grid-margin-x > .medium-3 { + width: calc(25% - 1.875rem); } + .grid-margin-x > .medium-4 { + width: calc(33.33333% - 1.875rem); } + .grid-margin-x > .medium-5 { + width: calc(41.66667% - 1.875rem); } + .grid-margin-x > .medium-6 { + width: calc(50% - 1.875rem); } + .grid-margin-x > .medium-7 { + width: calc(58.33333% - 1.875rem); } + .grid-margin-x > .medium-8 { + width: calc(66.66667% - 1.875rem); } + .grid-margin-x > .medium-9 { + width: calc(75% - 1.875rem); } + .grid-margin-x > .medium-10 { + width: calc(83.33333% - 1.875rem); } + .grid-margin-x > .medium-11 { + width: calc(91.66667% - 1.875rem); } + .grid-margin-x > .medium-12 { + width: calc(100% - 1.875rem); } } + @media print, screen and (min-width: 64em) { + .grid-margin-x > .large-auto { + width: auto; } + .grid-margin-x > .large-shrink { + width: auto; } + .grid-margin-x > .large-1 { + width: calc(8.33333% - 1.875rem); } + .grid-margin-x > .large-2 { + width: calc(16.66667% - 1.875rem); } + .grid-margin-x > .large-3 { + width: calc(25% - 1.875rem); } + .grid-margin-x > .large-4 { + width: calc(33.33333% - 1.875rem); } + .grid-margin-x > .large-5 { + width: calc(41.66667% - 1.875rem); } + .grid-margin-x > .large-6 { + width: calc(50% - 1.875rem); } + .grid-margin-x > .large-7 { + width: calc(58.33333% - 1.875rem); } + .grid-margin-x > .large-8 { + width: calc(66.66667% - 1.875rem); } + .grid-margin-x > .large-9 { + width: calc(75% - 1.875rem); } + .grid-margin-x > .large-10 { + width: calc(83.33333% - 1.875rem); } + .grid-margin-x > .large-11 { + width: calc(91.66667% - 1.875rem); } + .grid-margin-x > .large-12 { + width: calc(100% - 1.875rem); } } + +.grid-padding-x .grid-padding-x { + margin-right: -0.625rem; + margin-left: -0.625rem; } + @media print, screen and (min-width: 40em) { + .grid-padding-x .grid-padding-x { + margin-right: -0.9375rem; + margin-left: -0.9375rem; } } + +.grid-padding-x > .cell { + padding-right: 0.625rem; + padding-left: 0.625rem; } + @media print, screen and (min-width: 40em) { + .grid-padding-x > .cell { + padding-right: 0.9375rem; + padding-left: 0.9375rem; } } + +.small-up-1 > .cell { + width: 100%; } + +.small-up-2 > .cell { + width: 50%; } + +.small-up-3 > .cell { + width: 33.33333%; } + +.small-up-4 > .cell { + width: 25%; } + +.small-up-5 > .cell { + width: 20%; } + +.small-up-6 > .cell { + width: 16.66667%; } + +.small-up-7 > .cell { + width: 14.28571%; } + +.small-up-8 > .cell { + width: 12.5%; } + +@media print, screen and (min-width: 40em) { + .medium-up-1 > .cell { + width: 100%; } + .medium-up-2 > .cell { + width: 50%; } + .medium-up-3 > .cell { + width: 33.33333%; } + .medium-up-4 > .cell { + width: 25%; } + .medium-up-5 > .cell { + width: 20%; } + .medium-up-6 > .cell { + width: 16.66667%; } + .medium-up-7 > .cell { + width: 14.28571%; } + .medium-up-8 > .cell { + width: 12.5%; } } + +@media print, screen and (min-width: 64em) { + .large-up-1 > .cell { + width: 100%; } + .large-up-2 > .cell { + width: 50%; } + .large-up-3 > .cell { + width: 33.33333%; } + .large-up-4 > .cell { + width: 25%; } + .large-up-5 > .cell { + width: 20%; } + .large-up-6 > .cell { + width: 16.66667%; } + .large-up-7 > .cell { + width: 14.28571%; } + .large-up-8 > .cell { + width: 12.5%; } } + +.grid-margin-x.small-up-1 > .cell { + width: calc(100% - 1.25rem); } + +.grid-margin-x.small-up-2 > .cell { + width: calc(50% - 1.25rem); } + +.grid-margin-x.small-up-3 > .cell { + width: calc(33.33333% - 1.25rem); } + +.grid-margin-x.small-up-4 > .cell { + width: calc(25% - 1.25rem); } + +.grid-margin-x.small-up-5 > .cell { + width: calc(20% - 1.25rem); } + +.grid-margin-x.small-up-6 > .cell { + width: calc(16.66667% - 1.25rem); } + +.grid-margin-x.small-up-7 > .cell { + width: calc(14.28571% - 1.25rem); } + +.grid-margin-x.small-up-8 > .cell { + width: calc(12.5% - 1.25rem); } + +@media print, screen and (min-width: 40em) { + .grid-margin-x.small-up-1 > .cell { + width: calc(100% - 1.875rem); } + .grid-margin-x.small-up-2 > .cell { + width: calc(50% - 1.875rem); } + .grid-margin-x.small-up-3 > .cell { + width: calc(33.33333% - 1.875rem); } + .grid-margin-x.small-up-4 > .cell { + width: calc(25% - 1.875rem); } + .grid-margin-x.small-up-5 > .cell { + width: calc(20% - 1.875rem); } + .grid-margin-x.small-up-6 > .cell { + width: calc(16.66667% - 1.875rem); } + .grid-margin-x.small-up-7 > .cell { + width: calc(14.28571% - 1.875rem); } + .grid-margin-x.small-up-8 > .cell { + width: calc(12.5% - 1.875rem); } + .grid-margin-x.medium-up-1 > .cell { + width: calc(100% - 1.875rem); } + .grid-margin-x.medium-up-2 > .cell { + width: calc(50% - 1.875rem); } + .grid-margin-x.medium-up-3 > .cell { + width: calc(33.33333% - 1.875rem); } + .grid-margin-x.medium-up-4 > .cell { + width: calc(25% - 1.875rem); } + .grid-margin-x.medium-up-5 > .cell { + width: calc(20% - 1.875rem); } + .grid-margin-x.medium-up-6 > .cell { + width: calc(16.66667% - 1.875rem); } + .grid-margin-x.medium-up-7 > .cell { + width: calc(14.28571% - 1.875rem); } + .grid-margin-x.medium-up-8 > .cell { + width: calc(12.5% - 1.875rem); } } + +@media print, screen and (min-width: 64em) { + .grid-margin-x.large-up-1 > .cell { + width: calc(100% - 1.875rem); } + .grid-margin-x.large-up-2 > .cell { + width: calc(50% - 1.875rem); } + .grid-margin-x.large-up-3 > .cell { + width: calc(33.33333% - 1.875rem); } + .grid-margin-x.large-up-4 > .cell { + width: calc(25% - 1.875rem); } + .grid-margin-x.large-up-5 > .cell { + width: calc(20% - 1.875rem); } + .grid-margin-x.large-up-6 > .cell { + width: calc(16.66667% - 1.875rem); } + .grid-margin-x.large-up-7 > .cell { + width: calc(14.28571% - 1.875rem); } + .grid-margin-x.large-up-8 > .cell { + width: calc(12.5% - 1.875rem); } } + +.small-margin-collapse { + margin-right: 0; + margin-left: 0; } + .small-margin-collapse > .cell { + margin-right: 0; + margin-left: 0; } + .small-margin-collapse > .small-1 { + width: 8.33333%; } + .small-margin-collapse > .small-2 { + width: 16.66667%; } + .small-margin-collapse > .small-3 { + width: 25%; } + .small-margin-collapse > .small-4 { + width: 33.33333%; } + .small-margin-collapse > .small-5 { + width: 41.66667%; } + .small-margin-collapse > .small-6 { + width: 50%; } + .small-margin-collapse > .small-7 { + width: 58.33333%; } + .small-margin-collapse > .small-8 { + width: 66.66667%; } + .small-margin-collapse > .small-9 { + width: 75%; } + .small-margin-collapse > .small-10 { + width: 83.33333%; } + .small-margin-collapse > .small-11 { + width: 91.66667%; } + .small-margin-collapse > .small-12 { + width: 100%; } + .small-margin-collapse > .medium-1 { + width: 8.33333%; } + .small-margin-collapse > .medium-2 { + width: 16.66667%; } + .small-margin-collapse > .medium-3 { + width: 25%; } + .small-margin-collapse > .medium-4 { + width: 33.33333%; } + .small-margin-collapse > .medium-5 { + width: 41.66667%; } + .small-margin-collapse > .medium-6 { + width: 50%; } + .small-margin-collapse > .medium-7 { + width: 58.33333%; } + .small-margin-collapse > .medium-8 { + width: 66.66667%; } + .small-margin-collapse > .medium-9 { + width: 75%; } + .small-margin-collapse > .medium-10 { + width: 83.33333%; } + .small-margin-collapse > .medium-11 { + width: 91.66667%; } + .small-margin-collapse > .medium-12 { + width: 100%; } + .small-margin-collapse > .large-1 { + width: 8.33333%; } + .small-margin-collapse > .large-2 { + width: 16.66667%; } + .small-margin-collapse > .large-3 { + width: 25%; } + .small-margin-collapse > .large-4 { + width: 33.33333%; } + .small-margin-collapse > .large-5 { + width: 41.66667%; } + .small-margin-collapse > .large-6 { + width: 50%; } + .small-margin-collapse > .large-7 { + width: 58.33333%; } + .small-margin-collapse > .large-8 { + width: 66.66667%; } + .small-margin-collapse > .large-9 { + width: 75%; } + .small-margin-collapse > .large-10 { + width: 83.33333%; } + .small-margin-collapse > .large-11 { + width: 91.66667%; } + .small-margin-collapse > .large-12 { + width: 100%; } + +.small-padding-collapse { + margin-right: 0; + margin-left: 0; } + .small-padding-collapse > .cell { + padding-right: 0; + padding-left: 0; } + +@media print, screen and (min-width: 40em) { + .medium-margin-collapse { + margin-right: 0; + margin-left: 0; } + .medium-margin-collapse > .cell { + margin-right: 0; + margin-left: 0; } + .medium-margin-collapse > .small-1 { + width: 8.33333%; } + .medium-margin-collapse > .small-2 { + width: 16.66667%; } + .medium-margin-collapse > .small-3 { + width: 25%; } + .medium-margin-collapse > .small-4 { + width: 33.33333%; } + .medium-margin-collapse > .small-5 { + width: 41.66667%; } + .medium-margin-collapse > .small-6 { + width: 50%; } + .medium-margin-collapse > .small-7 { + width: 58.33333%; } + .medium-margin-collapse > .small-8 { + width: 66.66667%; } + .medium-margin-collapse > .small-9 { + width: 75%; } + .medium-margin-collapse > .small-10 { + width: 83.33333%; } + .medium-margin-collapse > .small-11 { + width: 91.66667%; } + .medium-margin-collapse > .small-12 { + width: 100%; } + .medium-margin-collapse > .medium-1 { + width: 8.33333%; } + .medium-margin-collapse > .medium-2 { + width: 16.66667%; } + .medium-margin-collapse > .medium-3 { + width: 25%; } + .medium-margin-collapse > .medium-4 { + width: 33.33333%; } + .medium-margin-collapse > .medium-5 { + width: 41.66667%; } + .medium-margin-collapse > .medium-6 { + width: 50%; } + .medium-margin-collapse > .medium-7 { + width: 58.33333%; } + .medium-margin-collapse > .medium-8 { + width: 66.66667%; } + .medium-margin-collapse > .medium-9 { + width: 75%; } + .medium-margin-collapse > .medium-10 { + width: 83.33333%; } + .medium-margin-collapse > .medium-11 { + width: 91.66667%; } + .medium-margin-collapse > .medium-12 { + width: 100%; } + .medium-margin-collapse > .large-1 { + width: 8.33333%; } + .medium-margin-collapse > .large-2 { + width: 16.66667%; } + .medium-margin-collapse > .large-3 { + width: 25%; } + .medium-margin-collapse > .large-4 { + width: 33.33333%; } + .medium-margin-collapse > .large-5 { + width: 41.66667%; } + .medium-margin-collapse > .large-6 { + width: 50%; } + .medium-margin-collapse > .large-7 { + width: 58.33333%; } + .medium-margin-collapse > .large-8 { + width: 66.66667%; } + .medium-margin-collapse > .large-9 { + width: 75%; } + .medium-margin-collapse > .large-10 { + width: 83.33333%; } + .medium-margin-collapse > .large-11 { + width: 91.66667%; } + .medium-margin-collapse > .large-12 { + width: 100%; } + .medium-padding-collapse { + margin-right: 0; + margin-left: 0; } + .medium-padding-collapse > .cell { + padding-right: 0; + padding-left: 0; } } + +@media print, screen and (min-width: 64em) { + .large-margin-collapse { + margin-right: 0; + margin-left: 0; } + .large-margin-collapse > .cell { + margin-right: 0; + margin-left: 0; } + .large-margin-collapse > .small-1 { + width: 8.33333%; } + .large-margin-collapse > .small-2 { + width: 16.66667%; } + .large-margin-collapse > .small-3 { + width: 25%; } + .large-margin-collapse > .small-4 { + width: 33.33333%; } + .large-margin-collapse > .small-5 { + width: 41.66667%; } + .large-margin-collapse > .small-6 { + width: 50%; } + .large-margin-collapse > .small-7 { + width: 58.33333%; } + .large-margin-collapse > .small-8 { + width: 66.66667%; } + .large-margin-collapse > .small-9 { + width: 75%; } + .large-margin-collapse > .small-10 { + width: 83.33333%; } + .large-margin-collapse > .small-11 { + width: 91.66667%; } + .large-margin-collapse > .small-12 { + width: 100%; } + .large-margin-collapse > .medium-1 { + width: 8.33333%; } + .large-margin-collapse > .medium-2 { + width: 16.66667%; } + .large-margin-collapse > .medium-3 { + width: 25%; } + .large-margin-collapse > .medium-4 { + width: 33.33333%; } + .large-margin-collapse > .medium-5 { + width: 41.66667%; } + .large-margin-collapse > .medium-6 { + width: 50%; } + .large-margin-collapse > .medium-7 { + width: 58.33333%; } + .large-margin-collapse > .medium-8 { + width: 66.66667%; } + .large-margin-collapse > .medium-9 { + width: 75%; } + .large-margin-collapse > .medium-10 { + width: 83.33333%; } + .large-margin-collapse > .medium-11 { + width: 91.66667%; } + .large-margin-collapse > .medium-12 { + width: 100%; } + .large-margin-collapse > .large-1 { + width: 8.33333%; } + .large-margin-collapse > .large-2 { + width: 16.66667%; } + .large-margin-collapse > .large-3 { + width: 25%; } + .large-margin-collapse > .large-4 { + width: 33.33333%; } + .large-margin-collapse > .large-5 { + width: 41.66667%; } + .large-margin-collapse > .large-6 { + width: 50%; } + .large-margin-collapse > .large-7 { + width: 58.33333%; } + .large-margin-collapse > .large-8 { + width: 66.66667%; } + .large-margin-collapse > .large-9 { + width: 75%; } + .large-margin-collapse > .large-10 { + width: 83.33333%; } + .large-margin-collapse > .large-11 { + width: 91.66667%; } + .large-margin-collapse > .large-12 { + width: 100%; } + .large-padding-collapse { + margin-right: 0; + margin-left: 0; } + .large-padding-collapse > .cell { + padding-right: 0; + padding-left: 0; } } + +.small-offset-0 { + margin-left: 0%; } + +.grid-margin-x > .small-offset-0 { + margin-left: calc(0% + 0.625rem); } + +.small-offset-1 { + margin-left: 8.33333%; } + +.grid-margin-x > .small-offset-1 { + margin-left: calc(8.33333% + 0.625rem); } + +.small-offset-2 { + margin-left: 16.66667%; } + +.grid-margin-x > .small-offset-2 { + margin-left: calc(16.66667% + 0.625rem); } + +.small-offset-3 { + margin-left: 25%; } + +.grid-margin-x > .small-offset-3 { + margin-left: calc(25% + 0.625rem); } + +.small-offset-4 { + margin-left: 33.33333%; } + +.grid-margin-x > .small-offset-4 { + margin-left: calc(33.33333% + 0.625rem); } + +.small-offset-5 { + margin-left: 41.66667%; } + +.grid-margin-x > .small-offset-5 { + margin-left: calc(41.66667% + 0.625rem); } + +.small-offset-6 { + margin-left: 50%; } + +.grid-margin-x > .small-offset-6 { + margin-left: calc(50% + 0.625rem); } + +.small-offset-7 { + margin-left: 58.33333%; } + +.grid-margin-x > .small-offset-7 { + margin-left: calc(58.33333% + 0.625rem); } + +.small-offset-8 { + margin-left: 66.66667%; } + +.grid-margin-x > .small-offset-8 { + margin-left: calc(66.66667% + 0.625rem); } + +.small-offset-9 { + margin-left: 75%; } + +.grid-margin-x > .small-offset-9 { + margin-left: calc(75% + 0.625rem); } + +.small-offset-10 { + margin-left: 83.33333%; } + +.grid-margin-x > .small-offset-10 { + margin-left: calc(83.33333% + 0.625rem); } + +.small-offset-11 { + margin-left: 91.66667%; } + +.grid-margin-x > .small-offset-11 { + margin-left: calc(91.66667% + 0.625rem); } + +@media print, screen and (min-width: 40em) { + .medium-offset-0 { + margin-left: 0%; } + .grid-margin-x > .medium-offset-0 { + margin-left: calc(0% + 0.9375rem); } + .medium-offset-1 { + margin-left: 8.33333%; } + .grid-margin-x > .medium-offset-1 { + margin-left: calc(8.33333% + 0.9375rem); } + .medium-offset-2 { + margin-left: 16.66667%; } + .grid-margin-x > .medium-offset-2 { + margin-left: calc(16.66667% + 0.9375rem); } + .medium-offset-3 { + margin-left: 25%; } + .grid-margin-x > .medium-offset-3 { + margin-left: calc(25% + 0.9375rem); } + .medium-offset-4 { + margin-left: 33.33333%; } + .grid-margin-x > .medium-offset-4 { + margin-left: calc(33.33333% + 0.9375rem); } + .medium-offset-5 { + margin-left: 41.66667%; } + .grid-margin-x > .medium-offset-5 { + margin-left: calc(41.66667% + 0.9375rem); } + .medium-offset-6 { + margin-left: 50%; } + .grid-margin-x > .medium-offset-6 { + margin-left: calc(50% + 0.9375rem); } + .medium-offset-7 { + margin-left: 58.33333%; } + .grid-margin-x > .medium-offset-7 { + margin-left: calc(58.33333% + 0.9375rem); } + .medium-offset-8 { + margin-left: 66.66667%; } + .grid-margin-x > .medium-offset-8 { + margin-left: calc(66.66667% + 0.9375rem); } + .medium-offset-9 { + margin-left: 75%; } + .grid-margin-x > .medium-offset-9 { + margin-left: calc(75% + 0.9375rem); } + .medium-offset-10 { + margin-left: 83.33333%; } + .grid-margin-x > .medium-offset-10 { + margin-left: calc(83.33333% + 0.9375rem); } + .medium-offset-11 { + margin-left: 91.66667%; } + .grid-margin-x > .medium-offset-11 { + margin-left: calc(91.66667% + 0.9375rem); } } + +@media print, screen and (min-width: 64em) { + .large-offset-0 { + margin-left: 0%; } + .grid-margin-x > .large-offset-0 { + margin-left: calc(0% + 0.9375rem); } + .large-offset-1 { + margin-left: 8.33333%; } + .grid-margin-x > .large-offset-1 { + margin-left: calc(8.33333% + 0.9375rem); } + .large-offset-2 { + margin-left: 16.66667%; } + .grid-margin-x > .large-offset-2 { + margin-left: calc(16.66667% + 0.9375rem); } + .large-offset-3 { + margin-left: 25%; } + .grid-margin-x > .large-offset-3 { + margin-left: calc(25% + 0.9375rem); } + .large-offset-4 { + margin-left: 33.33333%; } + .grid-margin-x > .large-offset-4 { + margin-left: calc(33.33333% + 0.9375rem); } + .large-offset-5 { + margin-left: 41.66667%; } + .grid-margin-x > .large-offset-5 { + margin-left: calc(41.66667% + 0.9375rem); } + .large-offset-6 { + margin-left: 50%; } + .grid-margin-x > .large-offset-6 { + margin-left: calc(50% + 0.9375rem); } + .large-offset-7 { + margin-left: 58.33333%; } + .grid-margin-x > .large-offset-7 { + margin-left: calc(58.33333% + 0.9375rem); } + .large-offset-8 { + margin-left: 66.66667%; } + .grid-margin-x > .large-offset-8 { + margin-left: calc(66.66667% + 0.9375rem); } + .large-offset-9 { + margin-left: 75%; } + .grid-margin-x > .large-offset-9 { + margin-left: calc(75% + 0.9375rem); } + .large-offset-10 { + margin-left: 83.33333%; } + .grid-margin-x > .large-offset-10 { + margin-left: calc(83.33333% + 0.9375rem); } + .large-offset-11 { + margin-left: 91.66667%; } + .grid-margin-x > .large-offset-11 { + margin-left: calc(91.66667% + 0.9375rem); } } + +.grid-y { + display: -ms-flexbox; + display: flex; + -ms-flex-flow: column nowrap; + flex-flow: column nowrap; } + .grid-y > .cell { + width: auto; } + .grid-y > .auto { + height: auto; } + .grid-y > .shrink { + height: auto; } + .grid-y > small-shrink, .grid-y > small-full, .grid-y > small-1, .grid-y > small-2, .grid-y > small-3, .grid-y > small-4, .grid-y > small-5, .grid-y > small-6, .grid-y > small-7, .grid-y > small-8, .grid-y > small-9, .grid-y > small-10, .grid-y > small-11, .grid-y > small-12 { + -ms-flex-preferred-size: auto; + flex-basis: auto; } + @media print, screen and (min-width: 40em) { + .grid-y > medium-shrink, .grid-y > medium-full, .grid-y > medium-1, .grid-y > medium-2, .grid-y > medium-3, .grid-y > medium-4, .grid-y > medium-5, .grid-y > medium-6, .grid-y > medium-7, .grid-y > medium-8, .grid-y > medium-9, .grid-y > medium-10, .grid-y > medium-11, .grid-y > medium-12 { + -ms-flex-preferred-size: auto; + flex-basis: auto; } } + @media print, screen and (min-width: 64em) { + .grid-y > large-shrink, .grid-y > large-full, .grid-y > large-1, .grid-y > large-2, .grid-y > large-3, .grid-y > large-4, .grid-y > large-5, .grid-y > large-6, .grid-y > large-7, .grid-y > large-8, .grid-y > large-9, .grid-y > large-10, .grid-y > large-11, .grid-y > large-12 { + -ms-flex-preferred-size: auto; + flex-basis: auto; } } + .grid-y > .small-1 { + height: 8.33333%; } + .grid-y > .small-2 { + height: 16.66667%; } + .grid-y > .small-3 { + height: 25%; } + .grid-y > .small-4 { + height: 33.33333%; } + .grid-y > .small-5 { + height: 41.66667%; } + .grid-y > .small-6 { + height: 50%; } + .grid-y > .small-7 { + height: 58.33333%; } + .grid-y > .small-8 { + height: 66.66667%; } + .grid-y > .small-9 { + height: 75%; } + .grid-y > .small-10 { + height: 83.33333%; } + .grid-y > .small-11 { + height: 91.66667%; } + .grid-y > .small-12 { + height: 100%; } + @media print, screen and (min-width: 40em) { + .grid-y > .medium-auto { + -ms-flex: 1 1 0px; + flex: 1 1 0px; + height: auto; } + .grid-y > .medium-shrink { + height: auto; } + .grid-y > .medium-1 { + height: 8.33333%; } + .grid-y > .medium-2 { + height: 16.66667%; } + .grid-y > .medium-3 { + height: 25%; } + .grid-y > .medium-4 { + height: 33.33333%; } + .grid-y > .medium-5 { + height: 41.66667%; } + .grid-y > .medium-6 { + height: 50%; } + .grid-y > .medium-7 { + height: 58.33333%; } + .grid-y > .medium-8 { + height: 66.66667%; } + .grid-y > .medium-9 { + height: 75%; } + .grid-y > .medium-10 { + height: 83.33333%; } + .grid-y > .medium-11 { + height: 91.66667%; } + .grid-y > .medium-12 { + height: 100%; } } + @media print, screen and (min-width: 64em) { + .grid-y > .large-auto { + -ms-flex: 1 1 0px; + flex: 1 1 0px; + height: auto; } + .grid-y > .large-shrink { + height: auto; } + .grid-y > .large-1 { + height: 8.33333%; } + .grid-y > .large-2 { + height: 16.66667%; } + .grid-y > .large-3 { + height: 25%; } + .grid-y > .large-4 { + height: 33.33333%; } + .grid-y > .large-5 { + height: 41.66667%; } + .grid-y > .large-6 { + height: 50%; } + .grid-y > .large-7 { + height: 58.33333%; } + .grid-y > .large-8 { + height: 66.66667%; } + .grid-y > .large-9 { + height: 75%; } + .grid-y > .large-10 { + height: 83.33333%; } + .grid-y > .large-11 { + height: 91.66667%; } + .grid-y > .large-12 { + height: 100%; } } + +.grid-padding-y .grid-padding-y { + margin-top: -0.625rem; + margin-bottom: -0.625rem; } + @media print, screen and (min-width: 40em) { + .grid-padding-y .grid-padding-y { + margin-top: -0.9375rem; + margin-bottom: -0.9375rem; } } + +.grid-padding-y > .cell { + padding-top: 0.625rem; + padding-bottom: 0.625rem; } + @media print, screen and (min-width: 40em) { + .grid-padding-y > .cell { + padding-top: 0.9375rem; + padding-bottom: 0.9375rem; } } + +.grid-margin-y { + margin-top: -0.625rem; + margin-bottom: -0.625rem; } + @media print, screen and (min-width: 40em) { + .grid-margin-y { + margin-top: -0.9375rem; + margin-bottom: -0.9375rem; } } + .grid-margin-y > .cell { + height: calc(100% - 1.25rem); + margin-top: 0.625rem; + margin-bottom: 0.625rem; } + @media print, screen and (min-width: 40em) { + .grid-margin-y > .cell { + height: calc(100% - 1.875rem); + margin-top: 0.9375rem; + margin-bottom: 0.9375rem; } } + .grid-margin-y > .auto { + height: auto; } + .grid-margin-y > .shrink { + height: auto; } + .grid-margin-y > .small-1 { + height: calc(8.33333% - 1.25rem); } + .grid-margin-y > .small-2 { + height: calc(16.66667% - 1.25rem); } + .grid-margin-y > .small-3 { + height: calc(25% - 1.25rem); } + .grid-margin-y > .small-4 { + height: calc(33.33333% - 1.25rem); } + .grid-margin-y > .small-5 { + height: calc(41.66667% - 1.25rem); } + .grid-margin-y > .small-6 { + height: calc(50% - 1.25rem); } + .grid-margin-y > .small-7 { + height: calc(58.33333% - 1.25rem); } + .grid-margin-y > .small-8 { + height: calc(66.66667% - 1.25rem); } + .grid-margin-y > .small-9 { + height: calc(75% - 1.25rem); } + .grid-margin-y > .small-10 { + height: calc(83.33333% - 1.25rem); } + .grid-margin-y > .small-11 { + height: calc(91.66667% - 1.25rem); } + .grid-margin-y > .small-12 { + height: calc(100% - 1.25rem); } + @media print, screen and (min-width: 40em) { + .grid-margin-y > .auto { + height: auto; } + .grid-margin-y > .shrink { + height: auto; } + .grid-margin-y > .small-1 { + height: calc(8.33333% - 1.875rem); } + .grid-margin-y > .small-2 { + height: calc(16.66667% - 1.875rem); } + .grid-margin-y > .small-3 { + height: calc(25% - 1.875rem); } + .grid-margin-y > .small-4 { + height: calc(33.33333% - 1.875rem); } + .grid-margin-y > .small-5 { + height: calc(41.66667% - 1.875rem); } + .grid-margin-y > .small-6 { + height: calc(50% - 1.875rem); } + .grid-margin-y > .small-7 { + height: calc(58.33333% - 1.875rem); } + .grid-margin-y > .small-8 { + height: calc(66.66667% - 1.875rem); } + .grid-margin-y > .small-9 { + height: calc(75% - 1.875rem); } + .grid-margin-y > .small-10 { + height: calc(83.33333% - 1.875rem); } + .grid-margin-y > .small-11 { + height: calc(91.66667% - 1.875rem); } + .grid-margin-y > .small-12 { + height: calc(100% - 1.875rem); } + .grid-margin-y > .medium-auto { + height: auto; } + .grid-margin-y > .medium-shrink { + height: auto; } + .grid-margin-y > .medium-1 { + height: calc(8.33333% - 1.875rem); } + .grid-margin-y > .medium-2 { + height: calc(16.66667% - 1.875rem); } + .grid-margin-y > .medium-3 { + height: calc(25% - 1.875rem); } + .grid-margin-y > .medium-4 { + height: calc(33.33333% - 1.875rem); } + .grid-margin-y > .medium-5 { + height: calc(41.66667% - 1.875rem); } + .grid-margin-y > .medium-6 { + height: calc(50% - 1.875rem); } + .grid-margin-y > .medium-7 { + height: calc(58.33333% - 1.875rem); } + .grid-margin-y > .medium-8 { + height: calc(66.66667% - 1.875rem); } + .grid-margin-y > .medium-9 { + height: calc(75% - 1.875rem); } + .grid-margin-y > .medium-10 { + height: calc(83.33333% - 1.875rem); } + .grid-margin-y > .medium-11 { + height: calc(91.66667% - 1.875rem); } + .grid-margin-y > .medium-12 { + height: calc(100% - 1.875rem); } } + @media print, screen and (min-width: 64em) { + .grid-margin-y > .large-auto { + height: auto; } + .grid-margin-y > .large-shrink { + height: auto; } + .grid-margin-y > .large-1 { + height: calc(8.33333% - 1.875rem); } + .grid-margin-y > .large-2 { + height: calc(16.66667% - 1.875rem); } + .grid-margin-y > .large-3 { + height: calc(25% - 1.875rem); } + .grid-margin-y > .large-4 { + height: calc(33.33333% - 1.875rem); } + .grid-margin-y > .large-5 { + height: calc(41.66667% - 1.875rem); } + .grid-margin-y > .large-6 { + height: calc(50% - 1.875rem); } + .grid-margin-y > .large-7 { + height: calc(58.33333% - 1.875rem); } + .grid-margin-y > .large-8 { + height: calc(66.66667% - 1.875rem); } + .grid-margin-y > .large-9 { + height: calc(75% - 1.875rem); } + .grid-margin-y > .large-10 { + height: calc(83.33333% - 1.875rem); } + .grid-margin-y > .large-11 { + height: calc(91.66667% - 1.875rem); } + .grid-margin-y > .large-12 { + height: calc(100% - 1.875rem); } } + +.grid-frame { + width: 100vw; + overflow: hidden; + position: relative; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -ms-flex-align: stretch; + align-items: stretch; } + +.cell .grid-frame { + width: 100%; } + +.cell-block { + overflow-x: auto; + max-width: 100%; + -webkit-overflow-scrolling: touch; + -ms-overflow-stype: -ms-autohiding-scrollbar; } + +.cell-block-y { + overflow-y: auto; + max-height: 100%; + -webkit-overflow-scrolling: touch; + -ms-overflow-stype: -ms-autohiding-scrollbar; } + +.cell-block-container { + display: -ms-flexbox; + display: flex; + -ms-flex-direction: column; + flex-direction: column; + max-height: 100%; } + .cell-block-container > .grid-x { + max-height: 100%; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; } + +@media print, screen and (min-width: 40em) { + .medium-grid-frame { + width: 100vw; + overflow: hidden; + position: relative; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -ms-flex-align: stretch; + align-items: stretch; } + .cell .medium-grid-frame { + width: 100%; } + .medium-cell-block { + overflow-x: auto; + max-width: 100%; + -webkit-overflow-scrolling: touch; + -ms-overflow-stype: -ms-autohiding-scrollbar; } + .medium-cell-block-container { + display: -ms-flexbox; + display: flex; + -ms-flex-direction: column; + flex-direction: column; + max-height: 100%; } + .medium-cell-block-container > .grid-x { + max-height: 100%; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; } + .medium-cell-block-y { + overflow-y: auto; + max-height: 100%; + -webkit-overflow-scrolling: touch; + -ms-overflow-stype: -ms-autohiding-scrollbar; } } + +@media print, screen and (min-width: 64em) { + .large-grid-frame { + width: 100vw; + overflow: hidden; + position: relative; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -ms-flex-align: stretch; + align-items: stretch; } + .cell .large-grid-frame { + width: 100%; } + .large-cell-block { + overflow-x: auto; + max-width: 100%; + -webkit-overflow-scrolling: touch; + -ms-overflow-stype: -ms-autohiding-scrollbar; } + .large-cell-block-container { + display: -ms-flexbox; + display: flex; + -ms-flex-direction: column; + flex-direction: column; + max-height: 100%; } + .large-cell-block-container > .grid-x { + max-height: 100%; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; } + .large-cell-block-y { + overflow-y: auto; + max-height: 100%; + -webkit-overflow-scrolling: touch; + -ms-overflow-stype: -ms-autohiding-scrollbar; } } + +.grid-y.grid-frame { + width: auto; + height: 100vh; + overflow: hidden; + position: relative; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -ms-flex-align: stretch; + align-items: stretch; } + +@media print, screen and (min-width: 40em) { + .grid-y.medium-grid-frame { + width: auto; + height: 100vh; + overflow: hidden; + position: relative; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -ms-flex-align: stretch; + align-items: stretch; } } + +@media print, screen and (min-width: 64em) { + .grid-y.large-grid-frame { + width: auto; + height: 100vh; + overflow: hidden; + position: relative; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -ms-flex-align: stretch; + align-items: stretch; } } + +.cell .grid-y.grid-frame { + height: 100%; } + +@media print, screen and (min-width: 40em) { + .cell .grid-y.medium-grid-frame { + height: 100%; } } + +@media print, screen and (min-width: 64em) { + .cell .grid-y.large-grid-frame { + height: 100%; } } + +.align-right { + -ms-flex-pack: end; + justify-content: flex-end; } + +.align-center { + -ms-flex-pack: center; + justify-content: center; } + +.align-justify { + -ms-flex-pack: justify; + justify-content: space-between; } + +.align-spaced { + -ms-flex-pack: distribute; + justify-content: space-around; } + +.align-right.vertical.menu > li > a { + -ms-flex-pack: end; + justify-content: flex-end; } + +.align-center.vertical.menu > li > a { + -ms-flex-pack: center; + justify-content: center; } + +.align-top { + -ms-flex-align: start; + align-items: flex-start; } + +.align-self-top { + -ms-flex-item-align: start; + align-self: flex-start; } + +.align-bottom { + -ms-flex-align: end; + align-items: flex-end; } + +.align-self-bottom { + -ms-flex-item-align: end; + align-self: flex-end; } + +.align-middle { + -ms-flex-align: center; + align-items: center; } + +.align-self-middle { + -ms-flex-item-align: center; + -ms-grid-row-align: center; + align-self: center; } + +.align-stretch { + -ms-flex-align: stretch; + align-items: stretch; } + +.align-self-stretch { + -ms-flex-item-align: stretch; + -ms-grid-row-align: stretch; + align-self: stretch; } + +.align-center-middle { + -ms-flex-pack: center; + justify-content: center; + -ms-flex-align: center; + align-items: center; + -ms-flex-line-pack: center; + align-content: center; } + +.small-order-1 { + -ms-flex-order: 1; + order: 1; } + +.small-order-2 { + -ms-flex-order: 2; + order: 2; } + +.small-order-3 { + -ms-flex-order: 3; + order: 3; } + +.small-order-4 { + -ms-flex-order: 4; + order: 4; } + +.small-order-5 { + -ms-flex-order: 5; + order: 5; } + +.small-order-6 { + -ms-flex-order: 6; + order: 6; } + +@media print, screen and (min-width: 40em) { + .medium-order-1 { + -ms-flex-order: 1; + order: 1; } + .medium-order-2 { + -ms-flex-order: 2; + order: 2; } + .medium-order-3 { + -ms-flex-order: 3; + order: 3; } + .medium-order-4 { + -ms-flex-order: 4; + order: 4; } + .medium-order-5 { + -ms-flex-order: 5; + order: 5; } + .medium-order-6 { + -ms-flex-order: 6; + order: 6; } } + +@media print, screen and (min-width: 64em) { + .large-order-1 { + -ms-flex-order: 1; + order: 1; } + .large-order-2 { + -ms-flex-order: 2; + order: 2; } + .large-order-3 { + -ms-flex-order: 3; + order: 3; } + .large-order-4 { + -ms-flex-order: 4; + order: 4; } + .large-order-5 { + -ms-flex-order: 5; + order: 5; } + .large-order-6 { + -ms-flex-order: 6; + order: 6; } } + +.flex-container { + display: -ms-flexbox; + display: flex; } + +.flex-child-auto { + -ms-flex: 1 1 auto; + flex: 1 1 auto; } + +.flex-child-grow { + -ms-flex: 1 0 auto; + flex: 1 0 auto; } + +.flex-child-shrink { + -ms-flex: 0 1 auto; + flex: 0 1 auto; } + +.flex-dir-row { + -ms-flex-direction: row; + flex-direction: row; } + +.flex-dir-row-reverse { + -ms-flex-direction: row-reverse; + flex-direction: row-reverse; } + +.flex-dir-column { + -ms-flex-direction: column; + flex-direction: column; } + +.flex-dir-column-reverse { + -ms-flex-direction: column-reverse; + flex-direction: column-reverse; } + +@media print, screen and (min-width: 40em) { + .medium-flex-container { + display: -ms-flexbox; + display: flex; } + .medium-flex-child-auto { + -ms-flex: 1 1 auto; + flex: 1 1 auto; } + .medium-flex-child-grow { + -ms-flex: 1 0 auto; + flex: 1 0 auto; } + .medium-flex-child-shrink { + -ms-flex: 0 1 auto; + flex: 0 1 auto; } + .medium-flex-dir-row { + -ms-flex-direction: row; + flex-direction: row; } + .medium-flex-dir-row-reverse { + -ms-flex-direction: row-reverse; + flex-direction: row-reverse; } + .medium-flex-dir-column { + -ms-flex-direction: column; + flex-direction: column; } + .medium-flex-dir-column-reverse { + -ms-flex-direction: column-reverse; + flex-direction: column-reverse; } } + +@media print, screen and (min-width: 64em) { + .large-flex-container { + display: -ms-flexbox; + display: flex; } + .large-flex-child-auto { + -ms-flex: 1 1 auto; + flex: 1 1 auto; } + .large-flex-child-grow { + -ms-flex: 1 0 auto; + flex: 1 0 auto; } + .large-flex-child-shrink { + -ms-flex: 0 1 auto; + flex: 0 1 auto; } + .large-flex-dir-row { + -ms-flex-direction: row; + flex-direction: row; } + .large-flex-dir-row-reverse { + -ms-flex-direction: row-reverse; + flex-direction: row-reverse; } + .large-flex-dir-column { + -ms-flex-direction: column; + flex-direction: column; } + .large-flex-dir-column-reverse { + -ms-flex-direction: column-reverse; + flex-direction: column-reverse; } } + +div, +dl, +dt, +dd, +ul, +ol, +li, +h1, +h2, +h3, +h4, +h5, +h6, +pre, +form, +p, +blockquote, +th, +td { + margin: 0; + padding: 0; } + +p { + margin-bottom: 1rem; + font-size: inherit; + line-height: 1.6; + text-rendering: optimizeLegibility; } + +em, +i { + font-style: italic; + line-height: inherit; } + +strong, +b { + font-weight: bold; + line-height: inherit; } + +small { + font-size: 80%; + line-height: inherit; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; + font-style: normal; + font-weight: normal; + color: inherit; + text-rendering: optimizeLegibility; } + h1 small, + h2 small, + h3 small, + h4 small, + h5 small, + h6 small { + line-height: 0; + color: #cacaca; } + +h1 { + font-size: 1.5rem; + line-height: 1.4; + margin-top: 0; + margin-bottom: 0.5rem; } + +h2 { + font-size: 1.25rem; + line-height: 1.4; + margin-top: 0; + margin-bottom: 0.5rem; } + +h3 { + font-size: 1.1875rem; + line-height: 1.4; + margin-top: 0; + margin-bottom: 0.5rem; } + +h4 { + font-size: 1.125rem; + line-height: 1.4; + margin-top: 0; + margin-bottom: 0.5rem; } + +h5 { + font-size: 1.0625rem; + line-height: 1.4; + margin-top: 0; + margin-bottom: 0.5rem; } + +h6 { + font-size: 1rem; + line-height: 1.4; + margin-top: 0; + margin-bottom: 0.5rem; } + +@media print, screen and (min-width: 40em) { + h1 { + font-size: 3rem; } + h2 { + font-size: 2.5rem; } + h3 { + font-size: 1.9375rem; } + h4 { + font-size: 1.5625rem; } + h5 { + font-size: 1.25rem; } + h6 { + font-size: 1rem; } } + +a { + line-height: inherit; + color: #1779ba; + text-decoration: none; + cursor: pointer; } + a:hover, a:focus { + color: #1468a0; } + a img { + border: 0; } + +hr { + clear: both; + max-width: 75rem; + height: 0; + margin: 1.25rem auto; + border-top: 0; + border-right: 0; + border-bottom: 1px solid #cacaca; + border-left: 0; } + +ul, +ol, +dl { + margin-bottom: 1rem; + list-style-position: outside; + line-height: 1.6; } + +li { + font-size: inherit; } + +ul { + margin-left: 1.25rem; + list-style-type: disc; } + +ol { + margin-left: 1.25rem; } + +ul ul, ol ul, ul ol, ol ol { + margin-left: 1.25rem; + margin-bottom: 0; } + +dl { + margin-bottom: 1rem; } + dl dt { + margin-bottom: 0.3rem; + font-weight: bold; } + +blockquote { + margin: 0 0 1rem; + padding: 0.5625rem 1.25rem 0 1.1875rem; + border-left: 1px solid #cacaca; } + blockquote, blockquote p { + line-height: 1.6; + color: #8a8a8a; } + +cite { + display: block; + font-size: 0.8125rem; + color: #8a8a8a; } + cite:before { + content: "— "; } + +abbr, abbr[title] { + border-bottom: 1px dotted #0a0a0a; + cursor: help; + text-decoration: none; } + +figure { + margin: 0; } + +code { + padding: 0.125rem 0.3125rem 0.0625rem; + border: 1px solid #cacaca; + background-color: #e6e6e6; + font-family: Consolas, "Liberation Mono", Courier, monospace; + font-weight: normal; + color: #0a0a0a; } + +kbd { + margin: 0; + padding: 0.125rem 0.25rem 0; + background-color: #e6e6e6; + font-family: Consolas, "Liberation Mono", Courier, monospace; + color: #0a0a0a; } + +.subheader { + margin-top: 0.2rem; + margin-bottom: 0.5rem; + font-weight: normal; + line-height: 1.4; + color: #8a8a8a; } + +.lead { + font-size: 125%; + line-height: 1.6; } + +.stat { + font-size: 2.5rem; + line-height: 1; } + p + .stat { + margin-top: -1rem; } + +ul.no-bullet, ol.no-bullet { + margin-left: 0; + list-style: none; } + +.text-left { + text-align: left; } + +.text-right { + text-align: right; } + +.text-center { + text-align: center; } + +.text-justify { + text-align: justify; } + +@media print, screen and (min-width: 40em) { + .medium-text-left { + text-align: left; } + .medium-text-right { + text-align: right; } + .medium-text-center { + text-align: center; } + .medium-text-justify { + text-align: justify; } } + +@media print, screen and (min-width: 64em) { + .large-text-left { + text-align: left; } + .large-text-right { + text-align: right; } + .large-text-center { + text-align: center; } + .large-text-justify { + text-align: justify; } } + +.show-for-print { + display: none !important; } + +@media print { + * { + background: transparent !important; + box-shadow: none !important; + color: black !important; + text-shadow: none !important; } + .show-for-print { + display: block !important; } + .hide-for-print { + display: none !important; } + table.show-for-print { + display: table !important; } + thead.show-for-print { + display: table-header-group !important; } + tbody.show-for-print { + display: table-row-group !important; } + tr.show-for-print { + display: table-row !important; } + td.show-for-print { + display: table-cell !important; } + th.show-for-print { + display: table-cell !important; } + a, + a:visited { + text-decoration: underline; } + a[href]:after { + content: " (" attr(href) ")"; } + .ir a:after, + a[href^='javascript:']:after, + a[href^='#']:after { + content: ''; } + abbr[title]:after { + content: " (" attr(title) ")"; } + pre, + blockquote { + border: 1px solid #8a8a8a; + page-break-inside: avoid; } + thead { + display: table-header-group; } + tr, + img { + page-break-inside: avoid; } + img { + max-width: 100% !important; } + @page { + margin: 0.5cm; } + p, + h2, + h3 { + orphans: 3; + widows: 3; } + h2, + h3 { + page-break-after: avoid; } + .print-break-inside { + page-break-inside: auto; } } + +.button { + display: inline-block; + vertical-align: middle; + margin: 0 0 1rem 0; + font-family: inherit; + padding: 0.85em 1em; + -webkit-appearance: none; + border: 1px solid transparent; + border-radius: 0; + transition: background-color 0.25s ease-out, color 0.25s ease-out; + font-size: 0.9rem; + line-height: 1; + text-align: center; + cursor: pointer; + background-color: #1779ba; + color: #fefefe; } + [data-whatinput='mouse'] .button { + outline: 0; } + .button:hover, .button:focus { + background-color: #14679e; + color: #fefefe; } + .button.tiny { + font-size: 0.6rem; } + .button.small { + font-size: 0.75rem; } + .button.large { + font-size: 1.25rem; } + .button.expanded { + display: block; + width: 100%; + margin-right: 0; + margin-left: 0; } + .button.primary { + background-color: #1779ba; + color: #fefefe; } + .button.primary:hover, .button.primary:focus { + background-color: #126195; + color: #fefefe; } + .button.secondary { + background-color: #767676; + color: #fefefe; } + .button.secondary:hover, .button.secondary:focus { + background-color: #5e5e5e; + color: #fefefe; } + .button.success { + background-color: #3adb76; + color: #0a0a0a; } + .button.success:hover, .button.success:focus { + background-color: #22bb5b; + color: #0a0a0a; } + .button.warning { + background-color: #ffae00; + color: #0a0a0a; } + .button.warning:hover, .button.warning:focus { + background-color: #cc8b00; + color: #0a0a0a; } + .button.alert { + background-color: #cc4b37; + color: #fefefe; } + .button.alert:hover, .button.alert:focus { + background-color: #a53b2a; + color: #fefefe; } + .button.disabled, .button[disabled] { + opacity: 0.25; + cursor: not-allowed; } + .button.disabled, .button.disabled:hover, .button.disabled:focus, .button[disabled], .button[disabled]:hover, .button[disabled]:focus { + background-color: #1779ba; + color: #fefefe; } + .button.disabled.primary, .button[disabled].primary { + opacity: 0.25; + cursor: not-allowed; } + .button.disabled.primary, .button.disabled.primary:hover, .button.disabled.primary:focus, .button[disabled].primary, .button[disabled].primary:hover, .button[disabled].primary:focus { + background-color: #1779ba; + color: #fefefe; } + .button.disabled.secondary, .button[disabled].secondary { + opacity: 0.25; + cursor: not-allowed; } + .button.disabled.secondary, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary, .button[disabled].secondary:hover, .button[disabled].secondary:focus { + background-color: #767676; + color: #fefefe; } + .button.disabled.success, .button[disabled].success { + opacity: 0.25; + cursor: not-allowed; } + .button.disabled.success, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success, .button[disabled].success:hover, .button[disabled].success:focus { + background-color: #3adb76; + color: #0a0a0a; } + .button.disabled.warning, .button[disabled].warning { + opacity: 0.25; + cursor: not-allowed; } + .button.disabled.warning, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning, .button[disabled].warning:hover, .button[disabled].warning:focus { + background-color: #ffae00; + color: #0a0a0a; } + .button.disabled.alert, .button[disabled].alert { + opacity: 0.25; + cursor: not-allowed; } + .button.disabled.alert, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert, .button[disabled].alert:hover, .button[disabled].alert:focus { + background-color: #cc4b37; + color: #fefefe; } + .button.hollow { + border: 1px solid #1779ba; + color: #1779ba; } + .button.hollow, .button.hollow:hover, .button.hollow:focus { + background-color: transparent; } + .button.hollow.disabled, .button.hollow.disabled:hover, .button.hollow.disabled:focus, .button.hollow[disabled], .button.hollow[disabled]:hover, .button.hollow[disabled]:focus { + background-color: transparent; } + .button.hollow:hover, .button.hollow:focus { + border-color: #0c3d5d; + color: #0c3d5d; } + .button.hollow:hover.disabled, .button.hollow:hover[disabled], .button.hollow:focus.disabled, .button.hollow:focus[disabled] { + border: 1px solid #1779ba; + color: #1779ba; } + .button.hollow.primary { + border: 1px solid #1779ba; + color: #1779ba; } + .button.hollow.primary:hover, .button.hollow.primary:focus { + border-color: #0c3d5d; + color: #0c3d5d; } + .button.hollow.primary:hover.disabled, .button.hollow.primary:hover[disabled], .button.hollow.primary:focus.disabled, .button.hollow.primary:focus[disabled] { + border: 1px solid #1779ba; + color: #1779ba; } + .button.hollow.secondary { + border: 1px solid #767676; + color: #767676; } + .button.hollow.secondary:hover, .button.hollow.secondary:focus { + border-color: #3b3b3b; + color: #3b3b3b; } + .button.hollow.secondary:hover.disabled, .button.hollow.secondary:hover[disabled], .button.hollow.secondary:focus.disabled, .button.hollow.secondary:focus[disabled] { + border: 1px solid #767676; + color: #767676; } + .button.hollow.success { + border: 1px solid #3adb76; + color: #3adb76; } + .button.hollow.success:hover, .button.hollow.success:focus { + border-color: #157539; + color: #157539; } + .button.hollow.success:hover.disabled, .button.hollow.success:hover[disabled], .button.hollow.success:focus.disabled, .button.hollow.success:focus[disabled] { + border: 1px solid #3adb76; + color: #3adb76; } + .button.hollow.warning { + border: 1px solid #ffae00; + color: #ffae00; } + .button.hollow.warning:hover, .button.hollow.warning:focus { + border-color: #805700; + color: #805700; } + .button.hollow.warning:hover.disabled, .button.hollow.warning:hover[disabled], .button.hollow.warning:focus.disabled, .button.hollow.warning:focus[disabled] { + border: 1px solid #ffae00; + color: #ffae00; } + .button.hollow.alert { + border: 1px solid #cc4b37; + color: #cc4b37; } + .button.hollow.alert:hover, .button.hollow.alert:focus { + border-color: #67251a; + color: #67251a; } + .button.hollow.alert:hover.disabled, .button.hollow.alert:hover[disabled], .button.hollow.alert:focus.disabled, .button.hollow.alert:focus[disabled] { + border: 1px solid #cc4b37; + color: #cc4b37; } + .button.clear { + border: 1px solid #1779ba; + color: #1779ba; } + .button.clear, .button.clear:hover, .button.clear:focus { + background-color: transparent; } + .button.clear.disabled, .button.clear.disabled:hover, .button.clear.disabled:focus, .button.clear[disabled], .button.clear[disabled]:hover, .button.clear[disabled]:focus { + background-color: transparent; } + .button.clear:hover, .button.clear:focus { + border-color: #0c3d5d; + color: #0c3d5d; } + .button.clear:hover.disabled, .button.clear:hover[disabled], .button.clear:focus.disabled, .button.clear:focus[disabled] { + border: 1px solid #1779ba; + color: #1779ba; } + .button.clear, .button.clear.disabled, .button.clear[disabled], .button.clear:hover, .button.clear:hover.disabled, .button.clear:hover[disabled], .button.clear:focus, .button.clear:focus.disabled, .button.clear:focus[disabled] { + border-color: transparent; } + .button.clear.primary { + border: 1px solid #1779ba; + color: #1779ba; } + .button.clear.primary:hover, .button.clear.primary:focus { + border-color: #0c3d5d; + color: #0c3d5d; } + .button.clear.primary:hover.disabled, .button.clear.primary:hover[disabled], .button.clear.primary:focus.disabled, .button.clear.primary:focus[disabled] { + border: 1px solid #1779ba; + color: #1779ba; } + .button.clear.primary, .button.clear.primary.disabled, .button.clear.primary[disabled], .button.clear.primary:hover, .button.clear.primary:hover.disabled, .button.clear.primary:hover[disabled], .button.clear.primary:focus, .button.clear.primary:focus.disabled, .button.clear.primary:focus[disabled] { + border-color: transparent; } + .button.clear.secondary { + border: 1px solid #767676; + color: #767676; } + .button.clear.secondary:hover, .button.clear.secondary:focus { + border-color: #3b3b3b; + color: #3b3b3b; } + .button.clear.secondary:hover.disabled, .button.clear.secondary:hover[disabled], .button.clear.secondary:focus.disabled, .button.clear.secondary:focus[disabled] { + border: 1px solid #767676; + color: #767676; } + .button.clear.secondary, .button.clear.secondary.disabled, .button.clear.secondary[disabled], .button.clear.secondary:hover, .button.clear.secondary:hover.disabled, .button.clear.secondary:hover[disabled], .button.clear.secondary:focus, .button.clear.secondary:focus.disabled, .button.clear.secondary:focus[disabled] { + border-color: transparent; } + .button.clear.success { + border: 1px solid #3adb76; + color: #3adb76; } + .button.clear.success:hover, .button.clear.success:focus { + border-color: #157539; + color: #157539; } + .button.clear.success:hover.disabled, .button.clear.success:hover[disabled], .button.clear.success:focus.disabled, .button.clear.success:focus[disabled] { + border: 1px solid #3adb76; + color: #3adb76; } + .button.clear.success, .button.clear.success.disabled, .button.clear.success[disabled], .button.clear.success:hover, .button.clear.success:hover.disabled, .button.clear.success:hover[disabled], .button.clear.success:focus, .button.clear.success:focus.disabled, .button.clear.success:focus[disabled] { + border-color: transparent; } + .button.clear.warning { + border: 1px solid #ffae00; + color: #ffae00; } + .button.clear.warning:hover, .button.clear.warning:focus { + border-color: #805700; + color: #805700; } + .button.clear.warning:hover.disabled, .button.clear.warning:hover[disabled], .button.clear.warning:focus.disabled, .button.clear.warning:focus[disabled] { + border: 1px solid #ffae00; + color: #ffae00; } + .button.clear.warning, .button.clear.warning.disabled, .button.clear.warning[disabled], .button.clear.warning:hover, .button.clear.warning:hover.disabled, .button.clear.warning:hover[disabled], .button.clear.warning:focus, .button.clear.warning:focus.disabled, .button.clear.warning:focus[disabled] { + border-color: transparent; } + .button.clear.alert { + border: 1px solid #cc4b37; + color: #cc4b37; } + .button.clear.alert:hover, .button.clear.alert:focus { + border-color: #67251a; + color: #67251a; } + .button.clear.alert:hover.disabled, .button.clear.alert:hover[disabled], .button.clear.alert:focus.disabled, .button.clear.alert:focus[disabled] { + border: 1px solid #cc4b37; + color: #cc4b37; } + .button.clear.alert, .button.clear.alert.disabled, .button.clear.alert[disabled], .button.clear.alert:hover, .button.clear.alert:hover.disabled, .button.clear.alert:hover[disabled], .button.clear.alert:focus, .button.clear.alert:focus.disabled, .button.clear.alert:focus[disabled] { + border-color: transparent; } + .button.dropdown::after { + display: block; + width: 0; + height: 0; + border: inset 0.4em; + content: ''; + border-bottom-width: 0; + border-top-style: solid; + border-color: #fefefe transparent transparent; + position: relative; + top: 0.4em; + display: inline-block; + float: right; + margin-left: 1em; } + .button.dropdown.hollow::after { + border-top-color: #1779ba; } + .button.dropdown.hollow.primary::after { + border-top-color: #1779ba; } + .button.dropdown.hollow.secondary::after { + border-top-color: #767676; } + .button.dropdown.hollow.success::after { + border-top-color: #3adb76; } + .button.dropdown.hollow.warning::after { + border-top-color: #ffae00; } + .button.dropdown.hollow.alert::after { + border-top-color: #cc4b37; } + .button.arrow-only::after { + top: -0.1em; + float: none; + margin-left: 0; } + +[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'], +textarea { + display: block; + box-sizing: border-box; + width: 100%; + height: 2.4375rem; + margin: 0 0 1rem; + padding: 0.5rem; + border: 1px solid #cacaca; + border-radius: 0; + background-color: #fefefe; + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + font-family: inherit; + font-size: 1rem; + font-weight: normal; + line-height: 1.5; + color: #0a0a0a; + transition: box-shadow 0.5s, border-color 0.25s ease-in-out; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; } + [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus, + textarea:focus { + outline: none; + border: 1px solid #8a8a8a; + background-color: #fefefe; + box-shadow: 0 0 5px #cacaca; + transition: box-shadow 0.5s, border-color 0.25s ease-in-out; } + +textarea { + max-width: 100%; } + textarea[rows] { + height: auto; } + +input::-webkit-input-placeholder, +textarea::-webkit-input-placeholder { + color: #cacaca; } + +input::-moz-placeholder, +textarea::-moz-placeholder { + color: #cacaca; } + +input:-ms-input-placeholder, +textarea:-ms-input-placeholder { + color: #cacaca; } + +input::placeholder, +textarea::placeholder { + color: #cacaca; } + +input:disabled, input[readonly], +textarea:disabled, +textarea[readonly] { + background-color: #e6e6e6; + cursor: not-allowed; } + +[type='submit'], +[type='button'] { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border-radius: 0; } + +input[type='search'] { + box-sizing: border-box; } + +[type='file'], +[type='checkbox'], +[type='radio'] { + margin: 0 0 1rem; } + +[type='checkbox'] + label, +[type='radio'] + label { + display: inline-block; + vertical-align: baseline; + margin-left: 0.5rem; + margin-right: 1rem; + margin-bottom: 0; } + [type='checkbox'] + label[for], + [type='radio'] + label[for] { + cursor: pointer; } + +label > [type='checkbox'], +label > [type='radio'] { + margin-right: 0.5rem; } + +[type='file'] { + width: 100%; } + +label { + display: block; + margin: 0; + font-size: 0.875rem; + font-weight: normal; + line-height: 1.8; + color: #0a0a0a; } + label.middle { + margin: 0 0 1rem; + padding: 0.5625rem 0; } + +.help-text { + margin-top: -0.5rem; + font-size: 0.8125rem; + font-style: italic; + color: #0a0a0a; } + +.input-group { + display: -ms-flexbox; + display: flex; + width: 100%; + margin-bottom: 1rem; + -ms-flex-align: stretch; + align-items: stretch; } + .input-group > :first-child { + border-radius: 0 0 0 0; } + .input-group > :last-child > * { + border-radius: 0 0 0 0; } + +.input-group-label, .input-group-field, .input-group-button, .input-group-button a, +.input-group-button input, +.input-group-button button, +.input-group-button label { + margin: 0; + white-space: nowrap; } + +.input-group-label { + padding: 0 1rem; + border: 1px solid #cacaca; + background: #e6e6e6; + color: #0a0a0a; + text-align: center; + white-space: nowrap; + display: -ms-flexbox; + display: flex; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + -ms-flex-align: center; + align-items: center; } + .input-group-label:first-child { + border-right: 0; } + .input-group-label:last-child { + border-left: 0; } + +.input-group-field { + border-radius: 0; + -ms-flex: 1 1 0px; + flex: 1 1 0px; + height: auto; + min-width: 0; } + +.input-group-button { + padding-top: 0; + padding-bottom: 0; + text-align: center; + -ms-flex: 0 0 auto; + flex: 0 0 auto; } + .input-group-button a, + .input-group-button input, + .input-group-button button, + .input-group-button label { + height: 2.5rem; + padding-top: 0; + padding-bottom: 0; + font-size: 1rem; } + +fieldset { + margin: 0; + padding: 0; + border: 0; } + +legend { + max-width: 100%; + margin-bottom: 0.5rem; } + +.fieldset { + margin: 1.125rem 0; + padding: 1.25rem; + border: 1px solid #cacaca; } + .fieldset legend { + margin: 0; + margin-left: -0.1875rem; + padding: 0 0.1875rem; } + +select { + height: 2.4375rem; + margin: 0 0 1rem; + padding: 0.5rem; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border: 1px solid #cacaca; + border-radius: 0; + background-color: #fefefe; + font-family: inherit; + font-size: 1rem; + font-weight: normal; + line-height: 1.5; + color: #0a0a0a; + background-image: url("data:image/svg+xml;utf8,"); + background-origin: content-box; + background-position: right -1rem center; + background-repeat: no-repeat; + background-size: 9px 6px; + padding-right: 1.5rem; + transition: box-shadow 0.5s, border-color 0.25s ease-in-out; } + @media screen and (min-width: 0\0) { + select { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg=="); } } + select:focus { + outline: none; + border: 1px solid #8a8a8a; + background-color: #fefefe; + box-shadow: 0 0 5px #cacaca; + transition: box-shadow 0.5s, border-color 0.25s ease-in-out; } + select:disabled { + background-color: #e6e6e6; + cursor: not-allowed; } + select::-ms-expand { + display: none; } + select[multiple] { + height: auto; + background-image: none; } + +.is-invalid-input:not(:focus) { + border-color: #cc4b37; + background-color: #f9ecea; } + .is-invalid-input:not(:focus)::-webkit-input-placeholder { + color: #cc4b37; } + .is-invalid-input:not(:focus)::-moz-placeholder { + color: #cc4b37; } + .is-invalid-input:not(:focus):-ms-input-placeholder { + color: #cc4b37; } + .is-invalid-input:not(:focus)::placeholder { + color: #cc4b37; } + +.is-invalid-label { + color: #cc4b37; } + +.form-error { + display: none; + margin-top: -0.5rem; + margin-bottom: 1rem; + font-size: 0.75rem; + font-weight: bold; + color: #cc4b37; } + .form-error.is-visible { + display: block; } + +.accordion { + margin-left: 0; + background: #fefefe; + list-style-type: none; } + .accordion[disabled] .accordion-title { + cursor: not-allowed; } + +.accordion-item:first-child > :first-child { + border-radius: 0 0 0 0; } + +.accordion-item:last-child > :last-child { + border-radius: 0 0 0 0; } + +.accordion-title { + position: relative; + display: block; + padding: 1.25rem 1rem; + border: 1px solid #e6e6e6; + border-bottom: 0; + font-size: 0.75rem; + line-height: 1; + color: #1779ba; } + :last-child:not(.is-active) > .accordion-title { + border-bottom: 1px solid #e6e6e6; + border-radius: 0 0 0 0; } + .accordion-title:hover, .accordion-title:focus { + background-color: #e6e6e6; } + .accordion-title::before { + position: absolute; + top: 50%; + right: 1rem; + margin-top: -0.5rem; + content: '+'; } + .is-active > .accordion-title::before { + content: '\2013'; } + +.accordion-content { + display: none; + padding: 1rem; + border: 1px solid #e6e6e6; + border-bottom: 0; + background-color: #fefefe; + color: #0a0a0a; } + :last-child > .accordion-content:last-child { + border-bottom: 1px solid #e6e6e6; } + +.accordion-menu li { + width: 100%; } + +.accordion-menu a { + padding: 0.7rem 1rem; } + +.accordion-menu .is-accordion-submenu a { + padding: 0.7rem 1rem; } + +.accordion-menu .nested.is-accordion-submenu { + margin-right: 0; + margin-left: 1rem; } + +.accordion-menu.align-right .nested.is-accordion-submenu { + margin-right: 1rem; + margin-left: 0; } + +.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a { + position: relative; } + .accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a::after { + display: block; + width: 0; + height: 0; + border: inset 6px; + content: ''; + border-bottom-width: 0; + border-top-style: solid; + border-color: #1779ba transparent transparent; + position: absolute; + top: 50%; + margin-top: -3px; + right: 1rem; } + +.accordion-menu.align-left .is-accordion-submenu-parent > a::after { + left: auto; + right: 1rem; } + +.accordion-menu.align-right .is-accordion-submenu-parent > a::after { + right: auto; + left: 1rem; } + +.accordion-menu .is-accordion-submenu-parent[aria-expanded='true'] > a::after { + -ms-transform: rotate(180deg); + transform: rotate(180deg); + -ms-transform-origin: 50% 50%; + transform-origin: 50% 50%; } + +.is-accordion-submenu-parent { + position: relative; } + +.has-submenu-toggle > a { + margin-right: 40px; } + +.submenu-toggle { + position: absolute; + top: 0; + right: 0; + cursor: pointer; + width: 40px; + height: 40px; } + .submenu-toggle::after { + display: block; + width: 0; + height: 0; + border: inset 6px; + content: ''; + border-bottom-width: 0; + border-top-style: solid; + border-color: #1779ba transparent transparent; + top: 0; + bottom: 0; + margin: auto; } + +.submenu-toggle[aria-expanded='true']::after { + -ms-transform: scaleY(-1); + transform: scaleY(-1); + -ms-transform-origin: 50% 50%; + transform-origin: 50% 50%; } + +.submenu-toggle-text { + position: absolute !important; + width: 1px; + height: 1px; + padding: 0; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + -webkit-clip-path: inset(50%); + clip-path: inset(50%); + border: 0; } + +.badge { + display: inline-block; + min-width: 2.1em; + padding: 0.3em; + border-radius: 50%; + font-size: 0.6rem; + text-align: center; + background: #1779ba; + color: #fefefe; } + .badge.primary { + background: #1779ba; + color: #fefefe; } + .badge.secondary { + background: #767676; + color: #fefefe; } + .badge.success { + background: #3adb76; + color: #0a0a0a; } + .badge.warning { + background: #ffae00; + color: #0a0a0a; } + .badge.alert { + background: #cc4b37; + color: #fefefe; } + +.breadcrumbs { + margin: 0 0 1rem 0; + list-style: none; } + .breadcrumbs::before, .breadcrumbs::after { + display: table; + content: ' '; + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-order: 1; + order: 1; } + .breadcrumbs::after { + clear: both; } + .breadcrumbs li { + float: left; + font-size: 0.6875rem; + color: #0a0a0a; + cursor: default; + text-transform: uppercase; } + .breadcrumbs li:not(:last-child)::after { + position: relative; + margin: 0 0.75rem; + opacity: 1; + content: "/"; + color: #cacaca; } + .breadcrumbs a { + color: #1779ba; } + .breadcrumbs a:hover { + text-decoration: underline; } + .breadcrumbs .disabled { + color: #cacaca; + cursor: not-allowed; } + +.button-group { + margin-bottom: 1rem; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -ms-flex-align: stretch; + align-items: stretch; } + .button-group::before, .button-group::after { + display: table; + content: ' '; + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-order: 1; + order: 1; } + .button-group::after { + clear: both; } + .button-group .button { + margin: 0; + margin-right: 1px; + margin-bottom: 1px; + font-size: 0.9rem; + -ms-flex: 0 0 auto; + flex: 0 0 auto; } + .button-group .button:last-child { + margin-right: 0; } + .button-group.tiny .button { + font-size: 0.6rem; } + .button-group.small .button { + font-size: 0.75rem; } + .button-group.large .button { + font-size: 1.25rem; } + .button-group.expanded .button { + -ms-flex: 1 1 0px; + flex: 1 1 0px; } + .button-group.primary .button { + background-color: #1779ba; + color: #fefefe; } + .button-group.primary .button:hover, .button-group.primary .button:focus { + background-color: #126195; + color: #fefefe; } + .button-group.secondary .button { + background-color: #767676; + color: #fefefe; } + .button-group.secondary .button:hover, .button-group.secondary .button:focus { + background-color: #5e5e5e; + color: #fefefe; } + .button-group.success .button { + background-color: #3adb76; + color: #0a0a0a; } + .button-group.success .button:hover, .button-group.success .button:focus { + background-color: #22bb5b; + color: #0a0a0a; } + .button-group.warning .button { + background-color: #ffae00; + color: #0a0a0a; } + .button-group.warning .button:hover, .button-group.warning .button:focus { + background-color: #cc8b00; + color: #0a0a0a; } + .button-group.alert .button { + background-color: #cc4b37; + color: #fefefe; } + .button-group.alert .button:hover, .button-group.alert .button:focus { + background-color: #a53b2a; + color: #fefefe; } + .button-group.stacked, .button-group.stacked-for-small, .button-group.stacked-for-medium { + -ms-flex-wrap: wrap; + flex-wrap: wrap; } + .button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button { + -ms-flex: 0 0 100%; + flex: 0 0 100%; } + .button-group.stacked .button:last-child, .button-group.stacked-for-small .button:last-child, .button-group.stacked-for-medium .button:last-child { + margin-bottom: 0; } + @media print, screen and (min-width: 40em) { + .button-group.stacked-for-small .button { + -ms-flex: 1 1 0px; + flex: 1 1 0px; + margin-bottom: 0; } } + @media print, screen and (min-width: 64em) { + .button-group.stacked-for-medium .button { + -ms-flex: 1 1 0px; + flex: 1 1 0px; + margin-bottom: 0; } } + @media screen and (max-width: 39.9375em) { + .button-group.stacked-for-small.expanded { + display: block; } + .button-group.stacked-for-small.expanded .button { + display: block; + margin-right: 0; } } + +.card { + display: -ms-flexbox; + display: flex; + -ms-flex-direction: column; + flex-direction: column; + -ms-flex-positive: 1; + flex-grow: 1; + margin-bottom: 1rem; + border: 1px solid #e6e6e6; + border-radius: 0; + background: #fefefe; + box-shadow: none; + overflow: hidden; + color: #0a0a0a; } + .card > :last-child { + margin-bottom: 0; } + +.card-divider { + -ms-flex: 0 1 auto; + flex: 0 1 auto; + display: -ms-flexbox; + display: flex; + padding: 1rem; + background: #e6e6e6; } + .card-divider > :last-child { + margin-bottom: 0; } + +.card-section { + -ms-flex: 1 0 auto; + flex: 1 0 auto; + padding: 1rem; } + .card-section > :last-child { + margin-bottom: 0; } + +.card-image { + min-height: 1px; } + +.callout { + position: relative; + margin: 0 0 1rem 0; + padding: 1rem; + border: 1px solid rgba(10, 10, 10, 0.25); + border-radius: 0; + background-color: white; + color: #0a0a0a; } + .callout > :first-child { + margin-top: 0; } + .callout > :last-child { + margin-bottom: 0; } + .callout.primary { + background-color: #d7ecfa; + color: #0a0a0a; } + .callout.secondary { + background-color: #eaeaea; + color: #0a0a0a; } + .callout.success { + background-color: #e1faea; + color: #0a0a0a; } + .callout.warning { + background-color: #fff3d9; + color: #0a0a0a; } + .callout.alert { + background-color: #f7e4e1; + color: #0a0a0a; } + .callout.small { + padding-top: 0.5rem; + padding-right: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 0.5rem; } + .callout.large { + padding-top: 3rem; + padding-right: 3rem; + padding-bottom: 3rem; + padding-left: 3rem; } + +.close-button { + position: absolute; + color: #8a8a8a; + cursor: pointer; } + [data-whatinput='mouse'] .close-button { + outline: 0; } + .close-button:hover, .close-button:focus { + color: #0a0a0a; } + .close-button.small { + right: 0.66rem; + top: 0.33em; + font-size: 1.5em; + line-height: 1; } + .close-button, .close-button.medium { + right: 1rem; + top: 0.5rem; + font-size: 2em; + line-height: 1; } + +.menu { + padding: 0; + margin: 0; + list-style: none; + position: relative; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; } + [data-whatinput='mouse'] .menu li { + outline: 0; } + .menu a, + .menu .button { + line-height: 1; + text-decoration: none; + white-space: nowrap; + display: block; + padding: 0.7rem 1rem; } + .menu input, + .menu select, + .menu a, + .menu button { + margin-bottom: 0; } + .menu input { + display: inline-block; } + .menu, .menu.horizontal { + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -ms-flex-direction: row; + flex-direction: row; } + .menu.vertical { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -ms-flex-direction: column; + flex-direction: column; } + .menu.expanded li { + -ms-flex: 1 1 0px; + flex: 1 1 0px; } + .menu.simple { + -ms-flex-align: center; + align-items: center; } + .menu.simple li + li { + margin-left: 1rem; } + .menu.simple a { + padding: 0; } + @media print, screen and (min-width: 40em) { + .menu.medium-horizontal { + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -ms-flex-direction: row; + flex-direction: row; } + .menu.medium-vertical { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -ms-flex-direction: column; + flex-direction: column; } + .menu.medium-expanded li { + -ms-flex: 1 1 0px; + flex: 1 1 0px; } + .menu.medium-simple li { + -ms-flex: 1 1 0px; + flex: 1 1 0px; } } + @media print, screen and (min-width: 64em) { + .menu.large-horizontal { + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -ms-flex-direction: row; + flex-direction: row; } + .menu.large-vertical { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -ms-flex-direction: column; + flex-direction: column; } + .menu.large-expanded li { + -ms-flex: 1 1 0px; + flex: 1 1 0px; } + .menu.large-simple li { + -ms-flex: 1 1 0px; + flex: 1 1 0px; } } + .menu.nested { + margin-right: 0; + margin-left: 1rem; } + .menu.icons a { + display: -ms-flexbox; + display: flex; } + .menu.icon-left li a { + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; } + .menu.icon-left li a img, + .menu.icon-left li a i, + .menu.icon-left li a svg { + margin-right: 0.25rem; } + .menu.icon-right li a { + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; } + .menu.icon-right li a img, + .menu.icon-right li a i, + .menu.icon-right li a svg { + margin-left: 0.25rem; } + .menu.icon-top li a { + -ms-flex-flow: column nowrap; + flex-flow: column nowrap; } + .menu.icon-top li a img, + .menu.icon-top li a i, + .menu.icon-top li a svg { + -ms-flex-item-align: stretch; + -ms-grid-row-align: stretch; + align-self: stretch; + margin-bottom: 0.25rem; + text-align: center; } + .menu.icon-bottom li a { + -ms-flex-flow: column nowrap; + flex-flow: column nowrap; } + .menu.icon-bottom li a img, + .menu.icon-bottom li a i, + .menu.icon-bottom li a svg { + -ms-flex-item-align: stretch; + -ms-grid-row-align: stretch; + align-self: stretch; + margin-bottom: 0.25rem; + text-align: center; } + .menu .is-active > a { + background: #1779ba; + color: #fefefe; } + .menu .active > a { + background: #1779ba; + color: #fefefe; } + .menu.align-left { + -ms-flex-pack: start; + justify-content: flex-start; } + .menu.align-right li { + display: -ms-flexbox; + display: flex; + -ms-flex-pack: end; + justify-content: flex-end; } + .menu.align-right li .submenu li { + -ms-flex-pack: start; + justify-content: flex-start; } + .menu.align-right.vertical li { + display: block; + text-align: right; } + .menu.align-right.vertical li .submenu li { + text-align: right; } + .menu.align-right .nested { + margin-right: 1rem; + margin-left: 0; } + .menu.align-center li { + display: -ms-flexbox; + display: flex; + -ms-flex-pack: center; + justify-content: center; } + .menu.align-center li .submenu li { + -ms-flex-pack: start; + justify-content: flex-start; } + .menu .menu-text { + padding: 0.7rem 1rem; + font-weight: bold; + line-height: 1; + color: inherit; } + +.menu-centered > .menu { + -ms-flex-pack: center; + justify-content: center; } + .menu-centered > .menu li { + display: -ms-flexbox; + display: flex; + -ms-flex-pack: center; + justify-content: center; } + .menu-centered > .menu li .submenu li { + -ms-flex-pack: start; + justify-content: flex-start; } + +.no-js [data-responsive-menu] ul { + display: none; } + +.menu-icon { + position: relative; + display: inline-block; + vertical-align: middle; + width: 20px; + height: 16px; + cursor: pointer; } + .menu-icon::after { + position: absolute; + top: 0; + left: 0; + display: block; + width: 100%; + height: 2px; + background: #fefefe; + box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe; + content: ''; } + .menu-icon:hover::after { + background: #cacaca; + box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca; } + +.menu-icon.dark { + position: relative; + display: inline-block; + vertical-align: middle; + width: 20px; + height: 16px; + cursor: pointer; } + .menu-icon.dark::after { + position: absolute; + top: 0; + left: 0; + display: block; + width: 100%; + height: 2px; + background: #0a0a0a; + box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a; + content: ''; } + .menu-icon.dark:hover::after { + background: #8a8a8a; + box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a; } + +.is-drilldown { + position: relative; + overflow: hidden; } + .is-drilldown li { + display: block; } + .is-drilldown.animate-height { + transition: height 0.5s; } + +.drilldown a { + padding: 0.7rem 1rem; + background: #fefefe; } + +.drilldown .is-drilldown-submenu { + position: absolute; + top: 0; + left: 100%; + z-index: -1; + width: 100%; + background: #fefefe; + transition: transform 0.15s linear; } + .drilldown .is-drilldown-submenu.is-active { + z-index: 1; + display: block; + -ms-transform: translateX(-100%); + transform: translateX(-100%); } + .drilldown .is-drilldown-submenu.is-closing { + -ms-transform: translateX(100%); + transform: translateX(100%); } + .drilldown .is-drilldown-submenu a { + padding: 0.7rem 1rem; } + +.drilldown .nested.is-drilldown-submenu { + margin-right: 0; + margin-left: 0; } + +.drilldown .drilldown-submenu-cover-previous { + min-height: 100%; } + +.drilldown .is-drilldown-submenu-parent > a { + position: relative; } + .drilldown .is-drilldown-submenu-parent > a::after { + position: absolute; + top: 50%; + margin-top: -6px; + right: 1rem; + display: block; + width: 0; + height: 0; + border: inset 6px; + content: ''; + border-right-width: 0; + border-left-style: solid; + border-color: transparent transparent transparent #1779ba; } + +.drilldown.align-left .is-drilldown-submenu-parent > a::after { + left: auto; + right: 1rem; + display: block; + width: 0; + height: 0; + border: inset 6px; + content: ''; + border-right-width: 0; + border-left-style: solid; + border-color: transparent transparent transparent #1779ba; } + +.drilldown.align-right .is-drilldown-submenu-parent > a::after { + right: auto; + left: 1rem; + display: block; + width: 0; + height: 0; + border: inset 6px; + content: ''; + border-left-width: 0; + border-right-style: solid; + border-color: transparent #1779ba transparent transparent; } + +.drilldown .js-drilldown-back > a::before { + display: block; + width: 0; + height: 0; + border: inset 6px; + content: ''; + border-left-width: 0; + border-right-style: solid; + border-color: transparent #1779ba transparent transparent; + border-left-width: 0; + display: inline-block; + vertical-align: middle; + margin-right: 0.75rem; + border-left-width: 0; } + +.dropdown-pane { + position: absolute; + z-index: 10; + width: 300px; + padding: 1rem; + visibility: hidden; + display: none; + border: 1px solid #cacaca; + border-radius: 0; + background-color: #fefefe; + font-size: 1rem; } + .dropdown-pane.is-opening { + display: block; } + .dropdown-pane.is-open { + visibility: visible; + display: block; } + +.dropdown-pane.tiny { + width: 100px; } + +.dropdown-pane.small { + width: 200px; } + +.dropdown-pane.large { + width: 400px; } + +.dropdown.menu > li.opens-left > .is-dropdown-submenu { + top: 100%; + right: 0; + left: auto; } + +.dropdown.menu > li.opens-right > .is-dropdown-submenu { + top: 100%; + right: auto; + left: 0; } + +.dropdown.menu > li.is-dropdown-submenu-parent > a { + position: relative; + padding-right: 1.5rem; } + +.dropdown.menu > li.is-dropdown-submenu-parent > a::after { + display: block; + width: 0; + height: 0; + border: inset 6px; + content: ''; + border-bottom-width: 0; + border-top-style: solid; + border-color: #1779ba transparent transparent; + right: 5px; + margin-top: -3px; } + +.dropdown.menu a { + padding: 0.7rem 1rem; } + [data-whatinput='mouse'] .dropdown.menu a { + outline: 0; } + +.dropdown.menu .is-active > a { + background: transparent; + color: #1779ba; } + +.no-js .dropdown.menu ul { + display: none; } + +.dropdown.menu .nested.is-dropdown-submenu { + margin-right: 0; + margin-left: 0; } + +.dropdown.menu.vertical > li .is-dropdown-submenu { + top: 0; } + +.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu { + right: 100%; + left: auto; + top: 0; } + +.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu { + right: auto; + left: 100%; } + +.dropdown.menu.vertical > li > a::after { + right: 14px; } + +.dropdown.menu.vertical > li.opens-left > a::after { + right: auto; + left: 5px; + display: block; + width: 0; + height: 0; + border: inset 6px; + content: ''; + border-left-width: 0; + border-right-style: solid; + border-color: transparent #1779ba transparent transparent; } + +.dropdown.menu.vertical > li.opens-right > a::after { + display: block; + width: 0; + height: 0; + border: inset 6px; + content: ''; + border-right-width: 0; + border-left-style: solid; + border-color: transparent transparent transparent #1779ba; } + +@media print, screen and (min-width: 40em) { + .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu { + top: 100%; + right: 0; + left: auto; } + .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu { + top: 100%; + right: auto; + left: 0; } + .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a { + position: relative; + padding-right: 1.5rem; } + .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after { + display: block; + width: 0; + height: 0; + border: inset 6px; + content: ''; + border-bottom-width: 0; + border-top-style: solid; + border-color: #1779ba transparent transparent; + right: 5px; + margin-top: -3px; } + .dropdown.menu.medium-vertical > li .is-dropdown-submenu { + top: 0; } + .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu { + right: 100%; + left: auto; + top: 0; } + .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu { + right: auto; + left: 100%; } + .dropdown.menu.medium-vertical > li > a::after { + right: 14px; } + .dropdown.menu.medium-vertical > li.opens-left > a::after { + right: auto; + left: 5px; + display: block; + width: 0; + height: 0; + border: inset 6px; + content: ''; + border-left-width: 0; + border-right-style: solid; + border-color: transparent #1779ba transparent transparent; } + .dropdown.menu.medium-vertical > li.opens-right > a::after { + display: block; + width: 0; + height: 0; + border: inset 6px; + content: ''; + border-right-width: 0; + border-left-style: solid; + border-color: transparent transparent transparent #1779ba; } } + +@media print, screen and (min-width: 64em) { + .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu { + top: 100%; + right: 0; + left: auto; } + .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu { + top: 100%; + right: auto; + left: 0; } + .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a { + position: relative; + padding-right: 1.5rem; } + .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a::after { + display: block; + width: 0; + height: 0; + border: inset 6px; + content: ''; + border-bottom-width: 0; + border-top-style: solid; + border-color: #1779ba transparent transparent; + right: 5px; + margin-top: -3px; } + .dropdown.menu.large-vertical > li .is-dropdown-submenu { + top: 0; } + .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu { + right: 100%; + left: auto; + top: 0; } + .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu { + right: auto; + left: 100%; } + .dropdown.menu.large-vertical > li > a::after { + right: 14px; } + .dropdown.menu.large-vertical > li.opens-left > a::after { + right: auto; + left: 5px; + display: block; + width: 0; + height: 0; + border: inset 6px; + content: ''; + border-left-width: 0; + border-right-style: solid; + border-color: transparent #1779ba transparent transparent; } + .dropdown.menu.large-vertical > li.opens-right > a::after { + display: block; + width: 0; + height: 0; + border: inset 6px; + content: ''; + border-right-width: 0; + border-left-style: solid; + border-color: transparent transparent transparent #1779ba; } } + +.dropdown.menu.align-right .is-dropdown-submenu.first-sub { + top: 100%; + right: 0; + left: auto; } + +.is-dropdown-menu.vertical { + width: 100px; } + .is-dropdown-menu.vertical.align-right { + float: right; } + +.is-dropdown-submenu-parent { + position: relative; } + .is-dropdown-submenu-parent a::after { + position: absolute; + top: 50%; + right: 5px; + margin-top: -6px; } + .is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu { + top: 100%; + left: auto; } + .is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu { + right: 100%; + left: auto; } + .is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu { + right: auto; + left: 100%; } + +.is-dropdown-submenu { + position: absolute; + top: 0; + left: 100%; + z-index: 1; + display: none; + min-width: 200px; + border: 1px solid #cacaca; + background: #fefefe; } + .dropdown .is-dropdown-submenu a { + padding: 0.7rem 1rem; } + .is-dropdown-submenu .is-dropdown-submenu-parent > a::after { + right: 14px; } + .is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after { + right: auto; + left: 5px; + display: block; + width: 0; + height: 0; + border: inset 6px; + content: ''; + border-left-width: 0; + border-right-style: solid; + border-color: transparent #1779ba transparent transparent; } + .is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after { + display: block; + width: 0; + height: 0; + border: inset 6px; + content: ''; + border-right-width: 0; + border-left-style: solid; + border-color: transparent transparent transparent #1779ba; } + .is-dropdown-submenu .is-dropdown-submenu { + margin-top: -1px; } + .is-dropdown-submenu > li { + width: 100%; } + .is-dropdown-submenu.js-dropdown-active { + display: block; } + +.responsive-embed, +.flex-video { + position: relative; + height: 0; + margin-bottom: 1rem; + padding-bottom: 75%; + overflow: hidden; } + .responsive-embed iframe, + .responsive-embed object, + .responsive-embed embed, + .responsive-embed video, + .flex-video iframe, + .flex-video object, + .flex-video embed, + .flex-video video { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; } + .responsive-embed.widescreen, + .flex-video.widescreen { + padding-bottom: 56.25%; } + +.label { + display: inline-block; + padding: 0.33333rem 0.5rem; + border-radius: 0; + font-size: 0.8rem; + line-height: 1; + white-space: nowrap; + cursor: default; + background: #1779ba; + color: #fefefe; } + .label.primary { + background: #1779ba; + color: #fefefe; } + .label.secondary { + background: #767676; + color: #fefefe; } + .label.success { + background: #3adb76; + color: #0a0a0a; } + .label.warning { + background: #ffae00; + color: #0a0a0a; } + .label.alert { + background: #cc4b37; + color: #fefefe; } + +.media-object { + display: -ms-flexbox; + display: flex; + margin-bottom: 1rem; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; } + .media-object img { + max-width: none; } + @media screen and (max-width: 39.9375em) { + .media-object.stack-for-small { + -ms-flex-wrap: wrap; + flex-wrap: wrap; } } + @media screen and (max-width: 39.9375em) { + .media-object.stack-for-small .media-object-section { + padding: 0; + padding-bottom: 1rem; + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + max-width: 100%; } + .media-object.stack-for-small .media-object-section img { + width: 100%; } } + +.media-object-section { + -ms-flex: 0 1 auto; + flex: 0 1 auto; } + .media-object-section:first-child { + padding-right: 1rem; } + .media-object-section:last-child:not(:nth-child(2)) { + padding-left: 1rem; } + .media-object-section > :last-child { + margin-bottom: 0; } + .media-object-section.main-section { + -ms-flex: 1 1 0px; + flex: 1 1 0px; } + +.is-off-canvas-open { + overflow: hidden; } + +.js-off-canvas-overlay { + position: absolute; + top: 0; + left: 0; + z-index: 11; + width: 100%; + height: 100%; + transition: opacity 0.5s ease, visibility 0.5s ease; + background: rgba(254, 254, 254, 0.25); + opacity: 0; + visibility: hidden; + overflow: hidden; } + .js-off-canvas-overlay.is-visible { + opacity: 1; + visibility: visible; } + .js-off-canvas-overlay.is-closable { + cursor: pointer; } + .js-off-canvas-overlay.is-overlay-absolute { + position: absolute; } + .js-off-canvas-overlay.is-overlay-fixed { + position: fixed; } + +.off-canvas-wrapper { + position: relative; + overflow: hidden; } + +.off-canvas { + position: fixed; + z-index: 12; + transition: transform 0.5s ease; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + background: #e6e6e6; } + [data-whatinput='mouse'] .off-canvas { + outline: 0; } + .off-canvas.is-transition-push { + z-index: 12; } + .off-canvas.is-closed { + visibility: hidden; } + .off-canvas.is-transition-overlap { + z-index: 13; } + .off-canvas.is-transition-overlap.is-open { + box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); } + .off-canvas.is-open { + -ms-transform: translate(0, 0); + transform: translate(0, 0); } + +.off-canvas-absolute { + position: absolute; + z-index: 12; + transition: transform 0.5s ease; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + background: #e6e6e6; } + [data-whatinput='mouse'] .off-canvas-absolute { + outline: 0; } + .off-canvas-absolute.is-transition-push { + z-index: 12; } + .off-canvas-absolute.is-closed { + visibility: hidden; } + .off-canvas-absolute.is-transition-overlap { + z-index: 13; } + .off-canvas-absolute.is-transition-overlap.is-open { + box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); } + .off-canvas-absolute.is-open { + -ms-transform: translate(0, 0); + transform: translate(0, 0); } + +.position-left { + top: 0; + left: 0; + width: 250px; + height: 100%; + -ms-transform: translateX(-250px); + transform: translateX(-250px); + overflow-y: auto; } + .off-canvas-content .off-canvas.position-left { + -ms-transform: translateX(-250px); + transform: translateX(-250px); } + .off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open { + -ms-transform: translate(0, 0); + transform: translate(0, 0); } + .off-canvas-content.is-open-left.has-transition-push { + -ms-transform: translateX(250px); + transform: translateX(250px); } + .position-left.is-transition-push { + box-shadow: inset -13px 0 20px -13px rgba(10, 10, 10, 0.25); } + +.position-right { + top: 0; + right: 0; + width: 250px; + height: 100%; + -ms-transform: translateX(250px); + transform: translateX(250px); + overflow-y: auto; } + .off-canvas-content .off-canvas.position-right { + -ms-transform: translateX(250px); + transform: translateX(250px); } + .off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open { + -ms-transform: translate(0, 0); + transform: translate(0, 0); } + .off-canvas-content.is-open-right.has-transition-push { + -ms-transform: translateX(-250px); + transform: translateX(-250px); } + .position-right.is-transition-push { + box-shadow: inset 13px 0 20px -13px rgba(10, 10, 10, 0.25); } + +.position-top { + top: 0; + left: 0; + width: 100%; + height: 250px; + -ms-transform: translateY(-250px); + transform: translateY(-250px); + overflow-x: auto; } + .off-canvas-content .off-canvas.position-top { + -ms-transform: translateY(-250px); + transform: translateY(-250px); } + .off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open { + -ms-transform: translate(0, 0); + transform: translate(0, 0); } + .off-canvas-content.is-open-top.has-transition-push { + -ms-transform: translateY(250px); + transform: translateY(250px); } + .position-top.is-transition-push { + box-shadow: inset 0 -13px 20px -13px rgba(10, 10, 10, 0.25); } + +.position-bottom { + bottom: 0; + left: 0; + width: 100%; + height: 250px; + -ms-transform: translateY(250px); + transform: translateY(250px); + overflow-x: auto; } + .off-canvas-content .off-canvas.position-bottom { + -ms-transform: translateY(250px); + transform: translateY(250px); } + .off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open { + -ms-transform: translate(0, 0); + transform: translate(0, 0); } + .off-canvas-content.is-open-bottom.has-transition-push { + -ms-transform: translateY(-250px); + transform: translateY(-250px); } + .position-bottom.is-transition-push { + box-shadow: inset 0 13px 20px -13px rgba(10, 10, 10, 0.25); } + +.off-canvas-content { + -ms-transform: none; + transform: none; + transition: transform 0.5s ease; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; } + .off-canvas-content.has-transition-push { + -ms-transform: translate(0, 0); + transform: translate(0, 0); } + .off-canvas-content .off-canvas.is-open { + -ms-transform: translate(0, 0); + transform: translate(0, 0); } + +@media print, screen and (min-width: 40em) { + .position-left.reveal-for-medium { + -ms-transform: none; + transform: none; + z-index: 12; + transition: none; + visibility: visible; } + .position-left.reveal-for-medium .close-button { + display: none; } + .off-canvas-content .position-left.reveal-for-medium { + -ms-transform: none; + transform: none; } + .off-canvas-content.has-reveal-left { + margin-left: 250px; } + .position-left.reveal-for-medium ~ .off-canvas-content { + margin-left: 250px; } + .position-right.reveal-for-medium { + -ms-transform: none; + transform: none; + z-index: 12; + transition: none; + visibility: visible; } + .position-right.reveal-for-medium .close-button { + display: none; } + .off-canvas-content .position-right.reveal-for-medium { + -ms-transform: none; + transform: none; } + .off-canvas-content.has-reveal-right { + margin-right: 250px; } + .position-right.reveal-for-medium ~ .off-canvas-content { + margin-right: 250px; } + .position-top.reveal-for-medium { + -ms-transform: none; + transform: none; + z-index: 12; + transition: none; + visibility: visible; } + .position-top.reveal-for-medium .close-button { + display: none; } + .off-canvas-content .position-top.reveal-for-medium { + -ms-transform: none; + transform: none; } + .off-canvas-content.has-reveal-top { + margin-top: 250px; } + .position-top.reveal-for-medium ~ .off-canvas-content { + margin-top: 250px; } + .position-bottom.reveal-for-medium { + -ms-transform: none; + transform: none; + z-index: 12; + transition: none; + visibility: visible; } + .position-bottom.reveal-for-medium .close-button { + display: none; } + .off-canvas-content .position-bottom.reveal-for-medium { + -ms-transform: none; + transform: none; } + .off-canvas-content.has-reveal-bottom { + margin-bottom: 250px; } + .position-bottom.reveal-for-medium ~ .off-canvas-content { + margin-bottom: 250px; } } + +@media print, screen and (min-width: 64em) { + .position-left.reveal-for-large { + -ms-transform: none; + transform: none; + z-index: 12; + transition: none; + visibility: visible; } + .position-left.reveal-for-large .close-button { + display: none; } + .off-canvas-content .position-left.reveal-for-large { + -ms-transform: none; + transform: none; } + .off-canvas-content.has-reveal-left { + margin-left: 250px; } + .position-left.reveal-for-large ~ .off-canvas-content { + margin-left: 250px; } + .position-right.reveal-for-large { + -ms-transform: none; + transform: none; + z-index: 12; + transition: none; + visibility: visible; } + .position-right.reveal-for-large .close-button { + display: none; } + .off-canvas-content .position-right.reveal-for-large { + -ms-transform: none; + transform: none; } + .off-canvas-content.has-reveal-right { + margin-right: 250px; } + .position-right.reveal-for-large ~ .off-canvas-content { + margin-right: 250px; } + .position-top.reveal-for-large { + -ms-transform: none; + transform: none; + z-index: 12; + transition: none; + visibility: visible; } + .position-top.reveal-for-large .close-button { + display: none; } + .off-canvas-content .position-top.reveal-for-large { + -ms-transform: none; + transform: none; } + .off-canvas-content.has-reveal-top { + margin-top: 250px; } + .position-top.reveal-for-large ~ .off-canvas-content { + margin-top: 250px; } + .position-bottom.reveal-for-large { + -ms-transform: none; + transform: none; + z-index: 12; + transition: none; + visibility: visible; } + .position-bottom.reveal-for-large .close-button { + display: none; } + .off-canvas-content .position-bottom.reveal-for-large { + -ms-transform: none; + transform: none; } + .off-canvas-content.has-reveal-bottom { + margin-bottom: 250px; } + .position-bottom.reveal-for-large ~ .off-canvas-content { + margin-bottom: 250px; } } + +@media print, screen and (min-width: 40em) { + .off-canvas.in-canvas-for-medium { + visibility: visible; + height: auto; + position: static; + background: inherit; + width: inherit; + overflow: inherit; + transition: inherit; } + .off-canvas.in-canvas-for-medium.position-left, .off-canvas.in-canvas-for-medium.position-right, .off-canvas.in-canvas-for-medium.position-top, .off-canvas.in-canvas-for-medium.position-bottom { + box-shadow: none; + -ms-transform: none; + transform: none; } + .off-canvas.in-canvas-for-medium .close-button { + display: none; } } + +@media print, screen and (min-width: 64em) { + .off-canvas.in-canvas-for-large { + visibility: visible; + height: auto; + position: static; + background: inherit; + width: inherit; + overflow: inherit; + transition: inherit; } + .off-canvas.in-canvas-for-large.position-left, .off-canvas.in-canvas-for-large.position-right, .off-canvas.in-canvas-for-large.position-top, .off-canvas.in-canvas-for-large.position-bottom { + box-shadow: none; + -ms-transform: none; + transform: none; } + .off-canvas.in-canvas-for-large .close-button { + display: none; } } + +.orbit { + position: relative; } + +.orbit-container { + position: relative; + height: 0; + margin: 0; + list-style: none; + overflow: hidden; } + +.orbit-slide { + width: 100%; } + .orbit-slide.no-motionui.is-active { + top: 0; + left: 0; } + +.orbit-figure { + margin: 0; } + +.orbit-image { + width: 100%; + max-width: 100%; + margin: 0; } + +.orbit-caption { + position: absolute; + bottom: 0; + width: 100%; + margin-bottom: 0; + padding: 1rem; + background-color: rgba(10, 10, 10, 0.5); + color: #fefefe; } + +.orbit-previous, .orbit-next { + position: absolute; + top: 50%; + -ms-transform: translateY(-50%); + transform: translateY(-50%); + z-index: 10; + padding: 1rem; + color: #fefefe; } + [data-whatinput='mouse'] .orbit-previous, [data-whatinput='mouse'] .orbit-next { + outline: 0; } + .orbit-previous:hover, .orbit-next:hover, .orbit-previous:active, .orbit-next:active, .orbit-previous:focus, .orbit-next:focus { + background-color: rgba(10, 10, 10, 0.5); } + +.orbit-previous { + left: 0; } + +.orbit-next { + left: auto; + right: 0; } + +.orbit-bullets { + position: relative; + margin-top: 0.8rem; + margin-bottom: 0.8rem; + text-align: center; } + [data-whatinput='mouse'] .orbit-bullets { + outline: 0; } + .orbit-bullets button { + width: 1.2rem; + height: 1.2rem; + margin: 0.1rem; + border-radius: 50%; + background-color: #cacaca; } + .orbit-bullets button:hover { + background-color: #8a8a8a; } + .orbit-bullets button.is-active { + background-color: #8a8a8a; } + +.pagination { + margin-left: 0; + margin-bottom: 1rem; } + .pagination::before, .pagination::after { + display: table; + content: ' '; + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-order: 1; + order: 1; } + .pagination::after { + clear: both; } + .pagination li { + margin-right: 0.0625rem; + border-radius: 0; + font-size: 0.875rem; + display: none; } + .pagination li:last-child, .pagination li:first-child { + display: inline-block; } + @media print, screen and (min-width: 40em) { + .pagination li { + display: inline-block; } } + .pagination a, + .pagination button { + display: block; + padding: 0.1875rem 0.625rem; + border-radius: 0; + color: #0a0a0a; } + .pagination a:hover, + .pagination button:hover { + background: #e6e6e6; } + .pagination .current { + padding: 0.1875rem 0.625rem; + background: #1779ba; + color: #fefefe; + cursor: default; } + .pagination .disabled { + padding: 0.1875rem 0.625rem; + color: #cacaca; + cursor: not-allowed; } + .pagination .disabled:hover { + background: transparent; } + .pagination .ellipsis::after { + padding: 0.1875rem 0.625rem; + content: '\2026'; + color: #0a0a0a; } + +.pagination-previous a::before, +.pagination-previous.disabled::before { + display: inline-block; + margin-right: 0.5rem; + content: '\00ab'; } + +.pagination-next a::after, +.pagination-next.disabled::after { + display: inline-block; + margin-left: 0.5rem; + content: '\00bb'; } + +.progress { + height: 1rem; + margin-bottom: 1rem; + border-radius: 0; + background-color: #cacaca; } + .progress.primary .progress-meter { + background-color: #1779ba; } + .progress.secondary .progress-meter { + background-color: #767676; } + .progress.success .progress-meter { + background-color: #3adb76; } + .progress.warning .progress-meter { + background-color: #ffae00; } + .progress.alert .progress-meter { + background-color: #cc4b37; } + +.progress-meter { + position: relative; + display: block; + width: 0%; + height: 100%; + background-color: #1779ba; } + +.progress-meter-text { + position: absolute; + top: 50%; + left: 50%; + -ms-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + position: absolute; + margin: 0; + font-size: 0.75rem; + font-weight: bold; + color: #fefefe; + white-space: nowrap; } + +body.is-reveal-open { + overflow: hidden; } + +html.is-reveal-open, +html.is-reveal-open body { + min-height: 100%; + overflow: hidden; + position: fixed; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.reveal-overlay { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1005; + display: none; + background-color: rgba(10, 10, 10, 0.45); + overflow-y: scroll; } + +.reveal { + z-index: 1006; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + display: none; + padding: 1rem; + border: 1px solid #cacaca; + border-radius: 0; + background-color: #fefefe; + position: relative; + top: 100px; + margin-right: auto; + margin-left: auto; + overflow-y: auto; } + [data-whatinput='mouse'] .reveal { + outline: 0; } + @media print, screen and (min-width: 40em) { + .reveal { + min-height: 0; } } + .reveal .column { + min-width: 0; } + .reveal > :last-child { + margin-bottom: 0; } + @media print, screen and (min-width: 40em) { + .reveal { + width: 600px; + max-width: 75rem; } } + .reveal.collapse { + padding: 0; } + @media print, screen and (min-width: 40em) { + .reveal.tiny { + width: 30%; + max-width: 75rem; } } + @media print, screen and (min-width: 40em) { + .reveal.small { + width: 50%; + max-width: 75rem; } } + @media print, screen and (min-width: 40em) { + .reveal.large { + width: 90%; + max-width: 75rem; } } + .reveal.full { + top: 0; + left: 0; + width: 100%; + max-width: none; + height: 100%; + height: 100vh; + min-height: 100vh; + margin-left: 0; + border: 0; + border-radius: 0; } + @media screen and (max-width: 39.9375em) { + .reveal { + top: 0; + left: 0; + width: 100%; + max-width: none; + height: 100%; + height: 100vh; + min-height: 100vh; + margin-left: 0; + border: 0; + border-radius: 0; } } + .reveal.without-overlay { + position: fixed; } + +.slider { + position: relative; + height: 0.5rem; + margin-top: 1.25rem; + margin-bottom: 2.25rem; + background-color: #e6e6e6; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -ms-touch-action: none; + touch-action: none; } + +.slider-fill { + position: absolute; + top: 0; + left: 0; + display: inline-block; + max-width: 100%; + height: 0.5rem; + background-color: #cacaca; + transition: all 0.2s ease-in-out; } + .slider-fill.is-dragging { + transition: all 0s linear; } + +.slider-handle { + position: absolute; + top: 50%; + -ms-transform: translateY(-50%); + transform: translateY(-50%); + left: 0; + z-index: 1; + display: inline-block; + width: 1.4rem; + height: 1.4rem; + border-radius: 0; + background-color: #1779ba; + transition: all 0.2s ease-in-out; + -ms-touch-action: manipulation; + touch-action: manipulation; } + [data-whatinput='mouse'] .slider-handle { + outline: 0; } + .slider-handle:hover { + background-color: #14679e; } + .slider-handle.is-dragging { + transition: all 0s linear; } + +.slider.disabled, +.slider[disabled] { + opacity: 0.25; + cursor: not-allowed; } + +.slider.vertical { + display: inline-block; + width: 0.5rem; + height: 12.5rem; + margin: 0 1.25rem; + -ms-transform: scale(1, -1); + transform: scale(1, -1); } + .slider.vertical .slider-fill { + top: 0; + width: 0.5rem; + max-height: 100%; } + .slider.vertical .slider-handle { + position: absolute; + top: 0; + left: 50%; + width: 1.4rem; + height: 1.4rem; + -ms-transform: translateX(-50%); + transform: translateX(-50%); } + +.sticky-container { + position: relative; } + +.sticky { + position: relative; + z-index: 0; + transform: translate3d(0, 0, 0); } + +.sticky.is-stuck { + position: fixed; + z-index: 5; + width: 100%; } + .sticky.is-stuck.is-at-top { + top: 0; } + .sticky.is-stuck.is-at-bottom { + bottom: 0; } + +.sticky.is-anchored { + position: relative; + right: auto; + left: auto; } + .sticky.is-anchored.is-at-bottom { + bottom: 0; } + +.switch { + height: 2rem; + position: relative; + margin-bottom: 1rem; + outline: 0; + font-size: 0.875rem; + font-weight: bold; + color: #fefefe; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.switch-input { + position: absolute; + margin-bottom: 0; + opacity: 0; } + +.switch-paddle { + position: relative; + display: block; + width: 4rem; + height: 2rem; + border-radius: 0; + background: #cacaca; + transition: all 0.25s ease-out; + font-weight: inherit; + color: inherit; + cursor: pointer; } + input + .switch-paddle { + margin: 0; } + .switch-paddle::after { + position: absolute; + top: 0.25rem; + left: 0.25rem; + display: block; + width: 1.5rem; + height: 1.5rem; + transform: translate3d(0, 0, 0); + border-radius: 0; + background: #fefefe; + transition: all 0.25s ease-out; + content: ''; } + input:checked ~ .switch-paddle { + background: #1779ba; } + input:checked ~ .switch-paddle::after { + left: 2.25rem; } + [data-whatinput='mouse'] input:focus ~ .switch-paddle { + outline: 0; } + +.switch-active, .switch-inactive { + position: absolute; + top: 50%; + -ms-transform: translateY(-50%); + transform: translateY(-50%); } + +.switch-active { + left: 8%; + display: none; } + input:checked + label > .switch-active { + display: block; } + +.switch-inactive { + right: 15%; } + input:checked + label > .switch-inactive { + display: none; } + +.switch.tiny { + height: 1.5rem; } + .switch.tiny .switch-paddle { + width: 3rem; + height: 1.5rem; + font-size: 0.625rem; } + .switch.tiny .switch-paddle::after { + top: 0.25rem; + left: 0.25rem; + width: 1rem; + height: 1rem; } + .switch.tiny input:checked ~ .switch-paddle::after { + left: 1.75rem; } + +.switch.small { + height: 1.75rem; } + .switch.small .switch-paddle { + width: 3.5rem; + height: 1.75rem; + font-size: 0.75rem; } + .switch.small .switch-paddle::after { + top: 0.25rem; + left: 0.25rem; + width: 1.25rem; + height: 1.25rem; } + .switch.small input:checked ~ .switch-paddle::after { + left: 2rem; } + +.switch.large { + height: 2.5rem; } + .switch.large .switch-paddle { + width: 5rem; + height: 2.5rem; + font-size: 1rem; } + .switch.large .switch-paddle::after { + top: 0.25rem; + left: 0.25rem; + width: 2rem; + height: 2rem; } + .switch.large input:checked ~ .switch-paddle::after { + left: 2.75rem; } + +table { + border-collapse: collapse; + width: 100%; + margin-bottom: 1rem; + border-radius: 0; } + table thead, + table tbody, + table tfoot { + border: 1px solid #f1f1f1; + background-color: #fefefe; } + table caption { + padding: 0.5rem 0.625rem 0.625rem; + font-weight: bold; } + table thead { + background: #f8f8f8; + color: #0a0a0a; } + table tfoot { + background: #f1f1f1; + color: #0a0a0a; } + table thead tr, + table tfoot tr { + background: transparent; } + table thead th, + table thead td, + table tfoot th, + table tfoot td { + padding: 0.5rem 0.625rem 0.625rem; + font-weight: bold; + text-align: left; } + table tbody th, + table tbody td { + padding: 0.5rem 0.625rem 0.625rem; } + table tbody tr:nth-child(even) { + border-bottom: 0; + background-color: #f1f1f1; } + table.unstriped tbody { + background-color: #fefefe; } + table.unstriped tbody tr { + border-bottom: 0; + border-bottom: 1px solid #f1f1f1; + background-color: #fefefe; } + +@media screen and (max-width: 63.9375em) { + table.stack thead { + display: none; } + table.stack tfoot { + display: none; } + table.stack tr, + table.stack th, + table.stack td { + display: block; } + table.stack td { + border-top: 0; } } + +table.scroll { + display: block; + width: 100%; + overflow-x: auto; } + +table.hover thead tr:hover { + background-color: #f3f3f3; } + +table.hover tfoot tr:hover { + background-color: #ececec; } + +table.hover tbody tr:hover { + background-color: #f9f9f9; } + +table.hover:not(.unstriped) tr:nth-of-type(even):hover { + background-color: #ececec; } + +.table-scroll { + overflow-x: auto; } + .table-scroll table { + width: auto; } + +.tabs { + margin: 0; + border: 1px solid #e6e6e6; + background: #fefefe; + list-style-type: none; } + .tabs::before, .tabs::after { + display: table; + content: ' '; + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-order: 1; + order: 1; } + .tabs::after { + clear: both; } + +.tabs.vertical > li { + display: block; + float: none; + width: auto; } + +.tabs.simple > li > a { + padding: 0; } + .tabs.simple > li > a:hover { + background: transparent; } + +.tabs.primary { + background: #1779ba; } + .tabs.primary > li > a { + color: #fefefe; } + .tabs.primary > li > a:hover, .tabs.primary > li > a:focus { + background: #1673b1; } + +.tabs-title { + float: left; } + .tabs-title > a { + display: block; + padding: 1.25rem 1.5rem; + font-size: 0.75rem; + line-height: 1; + color: #1779ba; } + .tabs-title > a:hover { + background: #fefefe; + color: #1468a0; } + .tabs-title > a:focus, .tabs-title > a[aria-selected='true'] { + background: #e6e6e6; + color: #1779ba; } + +.tabs-content { + border: 1px solid #e6e6e6; + border-top: 0; + background: #fefefe; + color: #0a0a0a; + transition: all 0.5s ease; } + +.tabs-content.vertical { + border: 1px solid #e6e6e6; + border-left: 0; } + +.tabs-panel { + display: none; + padding: 1rem; } + .tabs-panel.is-active { + display: block; } + +.thumbnail { + display: inline-block; + max-width: 100%; + margin-bottom: 1rem; + border: solid 4px #fefefe; + border-radius: 0; + box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2); + line-height: 0; } + +a.thumbnail { + transition: box-shadow 200ms ease-out; } + a.thumbnail:hover, a.thumbnail:focus { + box-shadow: 0 0 6px 1px rgba(23, 121, 186, 0.5); } + a.thumbnail image { + box-shadow: none; } + +.title-bar { + padding: 0.5rem; + background: #0a0a0a; + color: #fefefe; + display: -ms-flexbox; + display: flex; + -ms-flex-pack: start; + justify-content: flex-start; + -ms-flex-align: center; + align-items: center; } + .title-bar .menu-icon { + margin-left: 0.25rem; + margin-right: 0.25rem; } + +.title-bar-left, +.title-bar-right { + -ms-flex: 1 1 0px; + flex: 1 1 0px; } + +.title-bar-right { + text-align: right; } + +.title-bar-title { + display: inline-block; + vertical-align: middle; + font-weight: bold; } + +.has-tip { + position: relative; + display: inline-block; + border-bottom: dotted 1px #8a8a8a; + font-weight: bold; + cursor: help; } + +.tooltip { + position: absolute; + top: calc(100% + 0.6495rem); + z-index: 1200; + max-width: 10rem; + padding: 0.75rem; + border-radius: 0; + background-color: #0a0a0a; + font-size: 80%; + color: #fefefe; } + .tooltip::before { + position: absolute; } + .tooltip.bottom::before { + display: block; + width: 0; + height: 0; + border: inset 0.75rem; + content: ''; + border-top-width: 0; + border-bottom-style: solid; + border-color: transparent transparent #0a0a0a; + bottom: 100%; } + .tooltip.bottom.align-center::before { + left: 50%; + -ms-transform: translateX(-50%); + transform: translateX(-50%); } + .tooltip.top::before { + display: block; + width: 0; + height: 0; + border: inset 0.75rem; + content: ''; + border-bottom-width: 0; + border-top-style: solid; + border-color: #0a0a0a transparent transparent; + top: 100%; + bottom: auto; } + .tooltip.top.align-center::before { + left: 50%; + -ms-transform: translateX(-50%); + transform: translateX(-50%); } + .tooltip.left::before { + display: block; + width: 0; + height: 0; + border: inset 0.75rem; + content: ''; + border-right-width: 0; + border-left-style: solid; + border-color: transparent transparent transparent #0a0a0a; + left: 100%; } + .tooltip.left.align-center::before { + bottom: auto; + top: 50%; + -ms-transform: translateY(-50%); + transform: translateY(-50%); } + .tooltip.right::before { + display: block; + width: 0; + height: 0; + border: inset 0.75rem; + content: ''; + border-left-width: 0; + border-right-style: solid; + border-color: transparent #0a0a0a transparent transparent; + right: 100%; + left: auto; } + .tooltip.right.align-center::before { + bottom: auto; + top: 50%; + -ms-transform: translateY(-50%); + transform: translateY(-50%); } + .tooltip.align-top::before { + bottom: auto; + top: 10%; } + .tooltip.align-bottom::before { + bottom: 10%; + top: auto; } + .tooltip.align-left::before { + left: 10%; + right: auto; } + .tooltip.align-right::before { + left: auto; + right: 10%; } + +.top-bar { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -ms-flex-pack: justify; + justify-content: space-between; + -ms-flex-align: center; + align-items: center; + padding: 0.5rem; + -ms-flex-wrap: wrap; + flex-wrap: wrap; } + .top-bar, + .top-bar ul { + background-color: #e6e6e6; } + .top-bar input { + max-width: 200px; + margin-right: 1rem; } + .top-bar .input-group-field { + width: 100%; + margin-right: 0; } + .top-bar input.button { + width: auto; } + .top-bar .top-bar-left, + .top-bar .top-bar-right { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; } + @media print, screen and (min-width: 40em) { + .top-bar { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; } + .top-bar .top-bar-left { + -ms-flex: 1 1 auto; + flex: 1 1 auto; + margin-right: auto; } + .top-bar .top-bar-right { + -ms-flex: 0 1 auto; + flex: 0 1 auto; + margin-left: auto; } } + @media screen and (max-width: 63.9375em) { + .top-bar.stacked-for-medium { + -ms-flex-wrap: wrap; + flex-wrap: wrap; } + .top-bar.stacked-for-medium .top-bar-left, + .top-bar.stacked-for-medium .top-bar-right { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; } } + @media screen and (max-width: 74.9375em) { + .top-bar.stacked-for-large { + -ms-flex-wrap: wrap; + flex-wrap: wrap; } + .top-bar.stacked-for-large .top-bar-left, + .top-bar.stacked-for-large .top-bar-right { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; } } + +.top-bar-title { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + margin: 0.5rem 1rem 0.5rem 0; } + +.top-bar-left, +.top-bar-right { + -ms-flex: 0 0 auto; + flex: 0 0 auto; } + +.hide { + display: none !important; } + +.invisible { + visibility: hidden; } + +@media screen and (max-width: 39.9375em) { + .hide-for-small-only { + display: none !important; } } + +@media screen and (max-width: 0em), screen and (min-width: 40em) { + .show-for-small-only { + display: none !important; } } + +@media print, screen and (min-width: 40em) { + .hide-for-medium { + display: none !important; } } + +@media screen and (max-width: 39.9375em) { + .show-for-medium { + display: none !important; } } + +@media screen and (min-width: 40em) and (max-width: 63.9375em) { + .hide-for-medium-only { + display: none !important; } } + +@media screen and (max-width: 39.9375em), screen and (min-width: 64em) { + .show-for-medium-only { + display: none !important; } } + +@media print, screen and (min-width: 64em) { + .hide-for-large { + display: none !important; } } + +@media screen and (max-width: 63.9375em) { + .show-for-large { + display: none !important; } } + +@media screen and (min-width: 64em) and (max-width: 74.9375em) { + .hide-for-large-only { + display: none !important; } } + +@media screen and (max-width: 63.9375em), screen and (min-width: 75em) { + .show-for-large-only { + display: none !important; } } + +.show-for-sr, +.show-on-focus { + position: absolute !important; + width: 1px; + height: 1px; + padding: 0; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + -webkit-clip-path: inset(50%); + clip-path: inset(50%); + border: 0; } + +.show-on-focus:active, .show-on-focus:focus { + position: static !important; + width: auto; + height: auto; + overflow: visible; + clip: auto; + white-space: normal; + -webkit-clip-path: none; + clip-path: none; } + +.show-for-landscape, +.hide-for-portrait { + display: block !important; } + @media screen and (orientation: landscape) { + .show-for-landscape, + .hide-for-portrait { + display: block !important; } } + @media screen and (orientation: portrait) { + .show-for-landscape, + .hide-for-portrait { + display: none !important; } } + +.hide-for-landscape, +.show-for-portrait { + display: none !important; } + @media screen and (orientation: landscape) { + .hide-for-landscape, + .show-for-portrait { + display: none !important; } } + @media screen and (orientation: portrait) { + .hide-for-landscape, + .show-for-portrait { + display: block !important; } } + +.float-left { + float: left !important; } + +.float-right { + float: right !important; } + +.float-center { + display: block; + margin-right: auto; + margin-left: auto; } + +.clearfix::before, .clearfix::after { + display: table; + content: ' '; + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-order: 1; + order: 1; } + +.clearfix::after { + clear: both; } + +.slide-in-down.mui-enter { + transition-duration: 500ms; + transition-timing-function: linear; + -ms-transform: translateY(-100%); + transform: translateY(-100%); + transition-property: transform, opacity; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; } + +.slide-in-down.mui-enter.mui-enter-active { + -ms-transform: translateY(0); + transform: translateY(0); } + +.slide-in-left.mui-enter { + transition-duration: 500ms; + transition-timing-function: linear; + -ms-transform: translateX(-100%); + transform: translateX(-100%); + transition-property: transform, opacity; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; } + +.slide-in-left.mui-enter.mui-enter-active { + -ms-transform: translateX(0); + transform: translateX(0); } + +.slide-in-up.mui-enter { + transition-duration: 500ms; + transition-timing-function: linear; + -ms-transform: translateY(100%); + transform: translateY(100%); + transition-property: transform, opacity; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; } + +.slide-in-up.mui-enter.mui-enter-active { + -ms-transform: translateY(0); + transform: translateY(0); } + +.slide-in-right.mui-enter { + transition-duration: 500ms; + transition-timing-function: linear; + -ms-transform: translateX(100%); + transform: translateX(100%); + transition-property: transform, opacity; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; } + +.slide-in-right.mui-enter.mui-enter-active { + -ms-transform: translateX(0); + transform: translateX(0); } + +.slide-out-down.mui-leave { + transition-duration: 500ms; + transition-timing-function: linear; + -ms-transform: translateY(0); + transform: translateY(0); + transition-property: transform, opacity; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; } + +.slide-out-down.mui-leave.mui-leave-active { + -ms-transform: translateY(100%); + transform: translateY(100%); } + +.slide-out-right.mui-leave { + transition-duration: 500ms; + transition-timing-function: linear; + -ms-transform: translateX(0); + transform: translateX(0); + transition-property: transform, opacity; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; } + +.slide-out-right.mui-leave.mui-leave-active { + -ms-transform: translateX(100%); + transform: translateX(100%); } + +.slide-out-up.mui-leave { + transition-duration: 500ms; + transition-timing-function: linear; + -ms-transform: translateY(0); + transform: translateY(0); + transition-property: transform, opacity; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; } + +.slide-out-up.mui-leave.mui-leave-active { + -ms-transform: translateY(-100%); + transform: translateY(-100%); } + +.slide-out-left.mui-leave { + transition-duration: 500ms; + transition-timing-function: linear; + -ms-transform: translateX(0); + transform: translateX(0); + transition-property: transform, opacity; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; } + +.slide-out-left.mui-leave.mui-leave-active { + -ms-transform: translateX(-100%); + transform: translateX(-100%); } + +.fade-in.mui-enter { + transition-duration: 500ms; + transition-timing-function: linear; + opacity: 0; + transition-property: opacity; } + +.fade-in.mui-enter.mui-enter-active { + opacity: 1; } + +.fade-out.mui-leave { + transition-duration: 500ms; + transition-timing-function: linear; + opacity: 1; + transition-property: opacity; } + +.fade-out.mui-leave.mui-leave-active { + opacity: 0; } + +.hinge-in-from-top.mui-enter { + transition-duration: 500ms; + transition-timing-function: linear; + transform: perspective(2000px) rotateX(-90deg); + -ms-transform-origin: top; + transform-origin: top; + transition-property: transform, opacity; + opacity: 0; } + +.hinge-in-from-top.mui-enter.mui-enter-active { + transform: perspective(2000px) rotate(0deg); + opacity: 1; } + +.hinge-in-from-right.mui-enter { + transition-duration: 500ms; + transition-timing-function: linear; + transform: perspective(2000px) rotateY(-90deg); + -ms-transform-origin: right; + transform-origin: right; + transition-property: transform, opacity; + opacity: 0; } + +.hinge-in-from-right.mui-enter.mui-enter-active { + transform: perspective(2000px) rotate(0deg); + opacity: 1; } + +.hinge-in-from-bottom.mui-enter { + transition-duration: 500ms; + transition-timing-function: linear; + transform: perspective(2000px) rotateX(90deg); + -ms-transform-origin: bottom; + transform-origin: bottom; + transition-property: transform, opacity; + opacity: 0; } + +.hinge-in-from-bottom.mui-enter.mui-enter-active { + transform: perspective(2000px) rotate(0deg); + opacity: 1; } + +.hinge-in-from-left.mui-enter { + transition-duration: 500ms; + transition-timing-function: linear; + transform: perspective(2000px) rotateY(90deg); + -ms-transform-origin: left; + transform-origin: left; + transition-property: transform, opacity; + opacity: 0; } + +.hinge-in-from-left.mui-enter.mui-enter-active { + transform: perspective(2000px) rotate(0deg); + opacity: 1; } + +.hinge-in-from-middle-x.mui-enter { + transition-duration: 500ms; + transition-timing-function: linear; + transform: perspective(2000px) rotateX(-90deg); + -ms-transform-origin: center; + transform-origin: center; + transition-property: transform, opacity; + opacity: 0; } + +.hinge-in-from-middle-x.mui-enter.mui-enter-active { + transform: perspective(2000px) rotate(0deg); + opacity: 1; } + +.hinge-in-from-middle-y.mui-enter { + transition-duration: 500ms; + transition-timing-function: linear; + transform: perspective(2000px) rotateY(-90deg); + -ms-transform-origin: center; + transform-origin: center; + transition-property: transform, opacity; + opacity: 0; } + +.hinge-in-from-middle-y.mui-enter.mui-enter-active { + transform: perspective(2000px) rotate(0deg); + opacity: 1; } + +.hinge-out-from-top.mui-leave { + transition-duration: 500ms; + transition-timing-function: linear; + transform: perspective(2000px) rotate(0deg); + -ms-transform-origin: top; + transform-origin: top; + transition-property: transform, opacity; + opacity: 1; } + +.hinge-out-from-top.mui-leave.mui-leave-active { + transform: perspective(2000px) rotateX(-90deg); + opacity: 0; } + +.hinge-out-from-right.mui-leave { + transition-duration: 500ms; + transition-timing-function: linear; + transform: perspective(2000px) rotate(0deg); + -ms-transform-origin: right; + transform-origin: right; + transition-property: transform, opacity; + opacity: 1; } + +.hinge-out-from-right.mui-leave.mui-leave-active { + transform: perspective(2000px) rotateY(-90deg); + opacity: 0; } + +.hinge-out-from-bottom.mui-leave { + transition-duration: 500ms; + transition-timing-function: linear; + transform: perspective(2000px) rotate(0deg); + -ms-transform-origin: bottom; + transform-origin: bottom; + transition-property: transform, opacity; + opacity: 1; } + +.hinge-out-from-bottom.mui-leave.mui-leave-active { + transform: perspective(2000px) rotateX(90deg); + opacity: 0; } + +.hinge-out-from-left.mui-leave { + transition-duration: 500ms; + transition-timing-function: linear; + transform: perspective(2000px) rotate(0deg); + -ms-transform-origin: left; + transform-origin: left; + transition-property: transform, opacity; + opacity: 1; } + +.hinge-out-from-left.mui-leave.mui-leave-active { + transform: perspective(2000px) rotateY(90deg); + opacity: 0; } + +.hinge-out-from-middle-x.mui-leave { + transition-duration: 500ms; + transition-timing-function: linear; + transform: perspective(2000px) rotate(0deg); + -ms-transform-origin: center; + transform-origin: center; + transition-property: transform, opacity; + opacity: 1; } + +.hinge-out-from-middle-x.mui-leave.mui-leave-active { + transform: perspective(2000px) rotateX(-90deg); + opacity: 0; } + +.hinge-out-from-middle-y.mui-leave { + transition-duration: 500ms; + transition-timing-function: linear; + transform: perspective(2000px) rotate(0deg); + -ms-transform-origin: center; + transform-origin: center; + transition-property: transform, opacity; + opacity: 1; } + +.hinge-out-from-middle-y.mui-leave.mui-leave-active { + transform: perspective(2000px) rotateY(-90deg); + opacity: 0; } + +.scale-in-up.mui-enter { + transition-duration: 500ms; + transition-timing-function: linear; + -ms-transform: scale(0.5); + transform: scale(0.5); + transition-property: transform, opacity; + opacity: 0; } + +.scale-in-up.mui-enter.mui-enter-active { + -ms-transform: scale(1); + transform: scale(1); + opacity: 1; } + +.scale-in-down.mui-enter { + transition-duration: 500ms; + transition-timing-function: linear; + -ms-transform: scale(1.5); + transform: scale(1.5); + transition-property: transform, opacity; + opacity: 0; } + +.scale-in-down.mui-enter.mui-enter-active { + -ms-transform: scale(1); + transform: scale(1); + opacity: 1; } + +.scale-out-up.mui-leave { + transition-duration: 500ms; + transition-timing-function: linear; + -ms-transform: scale(1); + transform: scale(1); + transition-property: transform, opacity; + opacity: 1; } + +.scale-out-up.mui-leave.mui-leave-active { + -ms-transform: scale(1.5); + transform: scale(1.5); + opacity: 0; } + +.scale-out-down.mui-leave { + transition-duration: 500ms; + transition-timing-function: linear; + -ms-transform: scale(1); + transform: scale(1); + transition-property: transform, opacity; + opacity: 1; } + +.scale-out-down.mui-leave.mui-leave-active { + -ms-transform: scale(0.5); + transform: scale(0.5); + opacity: 0; } + +.spin-in.mui-enter { + transition-duration: 500ms; + transition-timing-function: linear; + -ms-transform: rotate(-0.75turn); + transform: rotate(-0.75turn); + transition-property: transform, opacity; + opacity: 0; } + +.spin-in.mui-enter.mui-enter-active { + -ms-transform: rotate(0); + transform: rotate(0); + opacity: 1; } + +.spin-out.mui-leave { + transition-duration: 500ms; + transition-timing-function: linear; + -ms-transform: rotate(0); + transform: rotate(0); + transition-property: transform, opacity; + opacity: 1; } + +.spin-out.mui-leave.mui-leave-active { + -ms-transform: rotate(0.75turn); + transform: rotate(0.75turn); + opacity: 0; } + +.spin-in-ccw.mui-enter { + transition-duration: 500ms; + transition-timing-function: linear; + -ms-transform: rotate(0.75turn); + transform: rotate(0.75turn); + transition-property: transform, opacity; + opacity: 0; } + +.spin-in-ccw.mui-enter.mui-enter-active { + -ms-transform: rotate(0); + transform: rotate(0); + opacity: 1; } + +.spin-out-ccw.mui-leave { + transition-duration: 500ms; + transition-timing-function: linear; + -ms-transform: rotate(0); + transform: rotate(0); + transition-property: transform, opacity; + opacity: 1; } + +.spin-out-ccw.mui-leave.mui-leave-active { + -ms-transform: rotate(-0.75turn); + transform: rotate(-0.75turn); + opacity: 0; } + +.slow { + transition-duration: 750ms !important; } + +.fast { + transition-duration: 250ms !important; } + +.linear { + transition-timing-function: linear !important; } + +.ease { + transition-timing-function: ease !important; } + +.ease-in { + transition-timing-function: ease-in !important; } + +.ease-out { + transition-timing-function: ease-out !important; } + +.ease-in-out { + transition-timing-function: ease-in-out !important; } + +.bounce-in { + transition-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important; } + +.bounce-out { + transition-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important; } + +.bounce-in-out { + transition-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important; } + +.short-delay { + transition-delay: 300ms !important; } + +.long-delay { + transition-delay: 700ms !important; } + +.shake { + animation-name: shake-7; } + +@keyframes shake-7 { + 0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% { + transform: translateX(7%); } + 5%, 15%, 25%, 35%, 45%, 55%, 65%, 75%, 85%, 95% { + transform: translateX(-7%); } } + +.spin-cw { + animation-name: spin-cw-1turn; } + +@keyframes spin-cw-1turn { + 0% { + transform: rotate(-1turn); } + 100% { + transform: rotate(0); } } + +.spin-ccw { + animation-name: spin-cw-1turn; } + +@keyframes spin-cw-1turn { + 0% { + transform: rotate(0); } + 100% { + transform: rotate(1turn); } } + +.wiggle { + animation-name: wiggle-7deg; } + +@keyframes wiggle-7deg { + 40%, 50%, 60% { + transform: rotate(7deg); } + 35%, 45%, 55%, 65% { + transform: rotate(-7deg); } + 0%, 30%, 70%, 100% { + transform: rotate(0); } } + +.shake, +.spin-cw, +.spin-ccw, +.wiggle { + animation-duration: 500ms; } + +.infinite { + animation-iteration-count: infinite; } + +.slow { + animation-duration: 750ms !important; } + +.fast { + animation-duration: 250ms !important; } + +.linear { + animation-timing-function: linear !important; } + +.ease { + animation-timing-function: ease !important; } + +.ease-in { + animation-timing-function: ease-in !important; } + +.ease-out { + animation-timing-function: ease-out !important; } + +.ease-in-out { + animation-timing-function: ease-in-out !important; } + +.bounce-in { + animation-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important; } + +.bounce-out { + animation-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important; } + +.bounce-in-out { + animation-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important; } + +.short-delay { + animation-delay: 300ms !important; } + +.long-delay { + animation-delay: 700ms !important; } diff --git a/volume/html/css/foundation.min.css b/volume/html/css/foundation.min.css new file mode 100644 index 0000000..cb2974e --- /dev/null +++ b/volume/html/css/foundation.min.css @@ -0,0 +1 @@ +@charset "UTF-8";@media print,screen and (min-width:40em){.reveal,.reveal.large,.reveal.small,.reveal.tiny{right:auto;left:auto;margin:0 auto}}/*! normalize-scss | MIT/GPLv2 License | bit.ly/normalize-scss */html{font-family:sans-serif;line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}main{display:block}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}input{overflow:visible}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{box-sizing:border-box;display:table;max-width:100%;padding:0;color:inherit;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}details{display:block}summary{display:list-item}menu{display:block}canvas{display:inline-block}template{display:none}[hidden]{display:none}.foundation-mq{font-family:"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em"}html{box-sizing:border-box;font-size:100%}*,::after,::before{box-sizing:inherit}body{margin:0;padding:0;background:#fefefe;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-weight:400;line-height:1.5;color:#0a0a0a;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{display:inline-block;vertical-align:middle;max-width:100%;height:auto;-ms-interpolation-mode:bicubic}textarea{height:auto;min-height:50px;border-radius:0}select{box-sizing:border-box;width:100%;border-radius:0}.map_canvas embed,.map_canvas img,.map_canvas object,.mqa-display embed,.mqa-display img,.mqa-display object{max-width:none!important}button{padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:0;background:0 0;line-height:1}[data-whatinput=mouse] button{outline:0}pre{overflow:auto}button,input,optgroup,select,textarea{font-family:inherit}.is-visible{display:block!important}.is-hidden{display:none!important}.grid-container{max-width:75rem;margin:0 auto}.grid-container-padded{padding-left:.625rem;padding-right:.625rem}@media print,screen and (min-width:40em){.grid-container-padded{padding-left:.9375rem;padding-right:.9375rem}}@media screen and (min-width:75em){.grid-container-padded{padding-left:0;padding-right:0}}.grid-x{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}.cell{-ms-flex:0 0 auto;flex:0 0 auto;min-height:0;min-width:0;width:100%}.cell.auto{-ms-flex:1 1 0px;flex:1 1 0px}.cell.shrink{-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.auto{width:auto}.grid-x>.shrink{width:auto}.grid-x>small-1,.grid-x>small-10,.grid-x>small-11,.grid-x>small-12,.grid-x>small-2,.grid-x>small-3,.grid-x>small-4,.grid-x>small-5,.grid-x>small-6,.grid-x>small-7,.grid-x>small-8,.grid-x>small-9,.grid-x>small-full,.grid-x>small-shrink{-ms-flex-preferred-size:auto;flex-basis:auto}@media print,screen and (min-width:40em){.grid-x>medium-1,.grid-x>medium-10,.grid-x>medium-11,.grid-x>medium-12,.grid-x>medium-2,.grid-x>medium-3,.grid-x>medium-4,.grid-x>medium-5,.grid-x>medium-6,.grid-x>medium-7,.grid-x>medium-8,.grid-x>medium-9,.grid-x>medium-full,.grid-x>medium-shrink{-ms-flex-preferred-size:auto;flex-basis:auto}}@media print,screen and (min-width:64em){.grid-x>large-1,.grid-x>large-10,.grid-x>large-11,.grid-x>large-12,.grid-x>large-2,.grid-x>large-3,.grid-x>large-4,.grid-x>large-5,.grid-x>large-6,.grid-x>large-7,.grid-x>large-8,.grid-x>large-9,.grid-x>large-full,.grid-x>large-shrink{-ms-flex-preferred-size:auto;flex-basis:auto}}.grid-x>.small-1{width:8.33333%}.grid-x>.small-2{width:16.66667%}.grid-x>.small-3{width:25%}.grid-x>.small-4{width:33.33333%}.grid-x>.small-5{width:41.66667%}.grid-x>.small-6{width:50%}.grid-x>.small-7{width:58.33333%}.grid-x>.small-8{width:66.66667%}.grid-x>.small-9{width:75%}.grid-x>.small-10{width:83.33333%}.grid-x>.small-11{width:91.66667%}.grid-x>.small-12{width:100%}@media print,screen and (min-width:40em){.grid-x>.medium-auto{-ms-flex:1 1 0px;flex:1 1 0px;width:auto}.grid-x>.medium-shrink{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.grid-x>.medium-1{width:8.33333%}.grid-x>.medium-2{width:16.66667%}.grid-x>.medium-3{width:25%}.grid-x>.medium-4{width:33.33333%}.grid-x>.medium-5{width:41.66667%}.grid-x>.medium-6{width:50%}.grid-x>.medium-7{width:58.33333%}.grid-x>.medium-8{width:66.66667%}.grid-x>.medium-9{width:75%}.grid-x>.medium-10{width:83.33333%}.grid-x>.medium-11{width:91.66667%}.grid-x>.medium-12{width:100%}}@media print,screen and (min-width:64em){.grid-x>.large-auto{-ms-flex:1 1 0px;flex:1 1 0px;width:auto}.grid-x>.large-shrink{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.grid-x>.large-1{width:8.33333%}.grid-x>.large-2{width:16.66667%}.grid-x>.large-3{width:25%}.grid-x>.large-4{width:33.33333%}.grid-x>.large-5{width:41.66667%}.grid-x>.large-6{width:50%}.grid-x>.large-7{width:58.33333%}.grid-x>.large-8{width:66.66667%}.grid-x>.large-9{width:75%}.grid-x>.large-10{width:83.33333%}.grid-x>.large-11{width:91.66667%}.grid-x>.large-12{width:100%}}.grid-margin-x:not(.grid-x)>.cell{width:auto}.grid-margin-y:not(.grid-y)>.cell{height:auto}.grid-margin-x{margin-left:-.625rem;margin-right:-.625rem}@media print,screen and (min-width:40em){.grid-margin-x{margin-left:-.9375rem;margin-right:-.9375rem}}.grid-margin-x>.cell{width:calc(100% - 1.25rem);margin-left:.625rem;margin-right:.625rem}@media print,screen and (min-width:40em){.grid-margin-x>.cell{width:calc(100% - 1.875rem);margin-left:.9375rem;margin-right:.9375rem}}.grid-margin-x>.auto{width:auto}.grid-margin-x>.shrink{width:auto}.grid-margin-x>.small-1{width:calc(8.33333% - 1.25rem)}.grid-margin-x>.small-2{width:calc(16.66667% - 1.25rem)}.grid-margin-x>.small-3{width:calc(25% - 1.25rem)}.grid-margin-x>.small-4{width:calc(33.33333% - 1.25rem)}.grid-margin-x>.small-5{width:calc(41.66667% - 1.25rem)}.grid-margin-x>.small-6{width:calc(50% - 1.25rem)}.grid-margin-x>.small-7{width:calc(58.33333% - 1.25rem)}.grid-margin-x>.small-8{width:calc(66.66667% - 1.25rem)}.grid-margin-x>.small-9{width:calc(75% - 1.25rem)}.grid-margin-x>.small-10{width:calc(83.33333% - 1.25rem)}.grid-margin-x>.small-11{width:calc(91.66667% - 1.25rem)}.grid-margin-x>.small-12{width:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-x>.auto{width:auto}.grid-margin-x>.shrink{width:auto}.grid-margin-x>.small-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.small-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.small-3{width:calc(25% - 1.875rem)}.grid-margin-x>.small-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.small-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.small-6{width:calc(50% - 1.875rem)}.grid-margin-x>.small-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.small-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.small-9{width:calc(75% - 1.875rem)}.grid-margin-x>.small-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.small-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.small-12{width:calc(100% - 1.875rem)}.grid-margin-x>.medium-auto{width:auto}.grid-margin-x>.medium-shrink{width:auto}.grid-margin-x>.medium-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.medium-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.medium-3{width:calc(25% - 1.875rem)}.grid-margin-x>.medium-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.medium-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.medium-6{width:calc(50% - 1.875rem)}.grid-margin-x>.medium-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.medium-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.medium-9{width:calc(75% - 1.875rem)}.grid-margin-x>.medium-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.medium-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.medium-12{width:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-x>.large-auto{width:auto}.grid-margin-x>.large-shrink{width:auto}.grid-margin-x>.large-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.large-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.large-3{width:calc(25% - 1.875rem)}.grid-margin-x>.large-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.large-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.large-6{width:calc(50% - 1.875rem)}.grid-margin-x>.large-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.large-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.large-9{width:calc(75% - 1.875rem)}.grid-margin-x>.large-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.large-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.large-12{width:calc(100% - 1.875rem)}}.grid-padding-x .grid-padding-x{margin-right:-.625rem;margin-left:-.625rem}@media print,screen and (min-width:40em){.grid-padding-x .grid-padding-x{margin-right:-.9375rem;margin-left:-.9375rem}}.grid-padding-x>.cell{padding-right:.625rem;padding-left:.625rem}@media print,screen and (min-width:40em){.grid-padding-x>.cell{padding-right:.9375rem;padding-left:.9375rem}}.small-up-1>.cell{width:100%}.small-up-2>.cell{width:50%}.small-up-3>.cell{width:33.33333%}.small-up-4>.cell{width:25%}.small-up-5>.cell{width:20%}.small-up-6>.cell{width:16.66667%}.small-up-7>.cell{width:14.28571%}.small-up-8>.cell{width:12.5%}@media print,screen and (min-width:40em){.medium-up-1>.cell{width:100%}.medium-up-2>.cell{width:50%}.medium-up-3>.cell{width:33.33333%}.medium-up-4>.cell{width:25%}.medium-up-5>.cell{width:20%}.medium-up-6>.cell{width:16.66667%}.medium-up-7>.cell{width:14.28571%}.medium-up-8>.cell{width:12.5%}}@media print,screen and (min-width:64em){.large-up-1>.cell{width:100%}.large-up-2>.cell{width:50%}.large-up-3>.cell{width:33.33333%}.large-up-4>.cell{width:25%}.large-up-5>.cell{width:20%}.large-up-6>.cell{width:16.66667%}.large-up-7>.cell{width:14.28571%}.large-up-8>.cell{width:12.5%}}.grid-margin-x.small-up-1>.cell{width:calc(100% - 1.25rem)}.grid-margin-x.small-up-2>.cell{width:calc(50% - 1.25rem)}.grid-margin-x.small-up-3>.cell{width:calc(33.33333% - 1.25rem)}.grid-margin-x.small-up-4>.cell{width:calc(25% - 1.25rem)}.grid-margin-x.small-up-5>.cell{width:calc(20% - 1.25rem)}.grid-margin-x.small-up-6>.cell{width:calc(16.66667% - 1.25rem)}.grid-margin-x.small-up-7>.cell{width:calc(14.28571% - 1.25rem)}.grid-margin-x.small-up-8>.cell{width:calc(12.5% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-x.small-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.small-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.small-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.small-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.small-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.small-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.small-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.small-up-8>.cell{width:calc(12.5% - 1.875rem)}.grid-margin-x.medium-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.medium-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.medium-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.medium-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.medium-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.medium-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.medium-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.medium-up-8>.cell{width:calc(12.5% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-x.large-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.large-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.large-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.large-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.large-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.large-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.large-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.large-up-8>.cell{width:calc(12.5% - 1.875rem)}}.small-margin-collapse{margin-right:0;margin-left:0}.small-margin-collapse>.cell{margin-right:0;margin-left:0}.small-margin-collapse>.small-1{width:8.33333%}.small-margin-collapse>.small-2{width:16.66667%}.small-margin-collapse>.small-3{width:25%}.small-margin-collapse>.small-4{width:33.33333%}.small-margin-collapse>.small-5{width:41.66667%}.small-margin-collapse>.small-6{width:50%}.small-margin-collapse>.small-7{width:58.33333%}.small-margin-collapse>.small-8{width:66.66667%}.small-margin-collapse>.small-9{width:75%}.small-margin-collapse>.small-10{width:83.33333%}.small-margin-collapse>.small-11{width:91.66667%}.small-margin-collapse>.small-12{width:100%}.small-margin-collapse>.medium-1{width:8.33333%}.small-margin-collapse>.medium-2{width:16.66667%}.small-margin-collapse>.medium-3{width:25%}.small-margin-collapse>.medium-4{width:33.33333%}.small-margin-collapse>.medium-5{width:41.66667%}.small-margin-collapse>.medium-6{width:50%}.small-margin-collapse>.medium-7{width:58.33333%}.small-margin-collapse>.medium-8{width:66.66667%}.small-margin-collapse>.medium-9{width:75%}.small-margin-collapse>.medium-10{width:83.33333%}.small-margin-collapse>.medium-11{width:91.66667%}.small-margin-collapse>.medium-12{width:100%}.small-margin-collapse>.large-1{width:8.33333%}.small-margin-collapse>.large-2{width:16.66667%}.small-margin-collapse>.large-3{width:25%}.small-margin-collapse>.large-4{width:33.33333%}.small-margin-collapse>.large-5{width:41.66667%}.small-margin-collapse>.large-6{width:50%}.small-margin-collapse>.large-7{width:58.33333%}.small-margin-collapse>.large-8{width:66.66667%}.small-margin-collapse>.large-9{width:75%}.small-margin-collapse>.large-10{width:83.33333%}.small-margin-collapse>.large-11{width:91.66667%}.small-margin-collapse>.large-12{width:100%}.small-padding-collapse{margin-right:0;margin-left:0}.small-padding-collapse>.cell{padding-right:0;padding-left:0}@media print,screen and (min-width:40em){.medium-margin-collapse{margin-right:0;margin-left:0}.medium-margin-collapse>.cell{margin-right:0;margin-left:0}.medium-margin-collapse>.small-1{width:8.33333%}.medium-margin-collapse>.small-2{width:16.66667%}.medium-margin-collapse>.small-3{width:25%}.medium-margin-collapse>.small-4{width:33.33333%}.medium-margin-collapse>.small-5{width:41.66667%}.medium-margin-collapse>.small-6{width:50%}.medium-margin-collapse>.small-7{width:58.33333%}.medium-margin-collapse>.small-8{width:66.66667%}.medium-margin-collapse>.small-9{width:75%}.medium-margin-collapse>.small-10{width:83.33333%}.medium-margin-collapse>.small-11{width:91.66667%}.medium-margin-collapse>.small-12{width:100%}.medium-margin-collapse>.medium-1{width:8.33333%}.medium-margin-collapse>.medium-2{width:16.66667%}.medium-margin-collapse>.medium-3{width:25%}.medium-margin-collapse>.medium-4{width:33.33333%}.medium-margin-collapse>.medium-5{width:41.66667%}.medium-margin-collapse>.medium-6{width:50%}.medium-margin-collapse>.medium-7{width:58.33333%}.medium-margin-collapse>.medium-8{width:66.66667%}.medium-margin-collapse>.medium-9{width:75%}.medium-margin-collapse>.medium-10{width:83.33333%}.medium-margin-collapse>.medium-11{width:91.66667%}.medium-margin-collapse>.medium-12{width:100%}.medium-margin-collapse>.large-1{width:8.33333%}.medium-margin-collapse>.large-2{width:16.66667%}.medium-margin-collapse>.large-3{width:25%}.medium-margin-collapse>.large-4{width:33.33333%}.medium-margin-collapse>.large-5{width:41.66667%}.medium-margin-collapse>.large-6{width:50%}.medium-margin-collapse>.large-7{width:58.33333%}.medium-margin-collapse>.large-8{width:66.66667%}.medium-margin-collapse>.large-9{width:75%}.medium-margin-collapse>.large-10{width:83.33333%}.medium-margin-collapse>.large-11{width:91.66667%}.medium-margin-collapse>.large-12{width:100%}.medium-padding-collapse{margin-right:0;margin-left:0}.medium-padding-collapse>.cell{padding-right:0;padding-left:0}}@media print,screen and (min-width:64em){.large-margin-collapse{margin-right:0;margin-left:0}.large-margin-collapse>.cell{margin-right:0;margin-left:0}.large-margin-collapse>.small-1{width:8.33333%}.large-margin-collapse>.small-2{width:16.66667%}.large-margin-collapse>.small-3{width:25%}.large-margin-collapse>.small-4{width:33.33333%}.large-margin-collapse>.small-5{width:41.66667%}.large-margin-collapse>.small-6{width:50%}.large-margin-collapse>.small-7{width:58.33333%}.large-margin-collapse>.small-8{width:66.66667%}.large-margin-collapse>.small-9{width:75%}.large-margin-collapse>.small-10{width:83.33333%}.large-margin-collapse>.small-11{width:91.66667%}.large-margin-collapse>.small-12{width:100%}.large-margin-collapse>.medium-1{width:8.33333%}.large-margin-collapse>.medium-2{width:16.66667%}.large-margin-collapse>.medium-3{width:25%}.large-margin-collapse>.medium-4{width:33.33333%}.large-margin-collapse>.medium-5{width:41.66667%}.large-margin-collapse>.medium-6{width:50%}.large-margin-collapse>.medium-7{width:58.33333%}.large-margin-collapse>.medium-8{width:66.66667%}.large-margin-collapse>.medium-9{width:75%}.large-margin-collapse>.medium-10{width:83.33333%}.large-margin-collapse>.medium-11{width:91.66667%}.large-margin-collapse>.medium-12{width:100%}.large-margin-collapse>.large-1{width:8.33333%}.large-margin-collapse>.large-2{width:16.66667%}.large-margin-collapse>.large-3{width:25%}.large-margin-collapse>.large-4{width:33.33333%}.large-margin-collapse>.large-5{width:41.66667%}.large-margin-collapse>.large-6{width:50%}.large-margin-collapse>.large-7{width:58.33333%}.large-margin-collapse>.large-8{width:66.66667%}.large-margin-collapse>.large-9{width:75%}.large-margin-collapse>.large-10{width:83.33333%}.large-margin-collapse>.large-11{width:91.66667%}.large-margin-collapse>.large-12{width:100%}.large-padding-collapse{margin-right:0;margin-left:0}.large-padding-collapse>.cell{padding-right:0;padding-left:0}}.small-offset-0{margin-left:0}.grid-margin-x>.small-offset-0{margin-left:calc(0% + .625rem)}.small-offset-1{margin-left:8.33333%}.grid-margin-x>.small-offset-1{margin-left:calc(8.33333% + .625rem)}.small-offset-2{margin-left:16.66667%}.grid-margin-x>.small-offset-2{margin-left:calc(16.66667% + .625rem)}.small-offset-3{margin-left:25%}.grid-margin-x>.small-offset-3{margin-left:calc(25% + .625rem)}.small-offset-4{margin-left:33.33333%}.grid-margin-x>.small-offset-4{margin-left:calc(33.33333% + .625rem)}.small-offset-5{margin-left:41.66667%}.grid-margin-x>.small-offset-5{margin-left:calc(41.66667% + .625rem)}.small-offset-6{margin-left:50%}.grid-margin-x>.small-offset-6{margin-left:calc(50% + .625rem)}.small-offset-7{margin-left:58.33333%}.grid-margin-x>.small-offset-7{margin-left:calc(58.33333% + .625rem)}.small-offset-8{margin-left:66.66667%}.grid-margin-x>.small-offset-8{margin-left:calc(66.66667% + .625rem)}.small-offset-9{margin-left:75%}.grid-margin-x>.small-offset-9{margin-left:calc(75% + .625rem)}.small-offset-10{margin-left:83.33333%}.grid-margin-x>.small-offset-10{margin-left:calc(83.33333% + .625rem)}.small-offset-11{margin-left:91.66667%}.grid-margin-x>.small-offset-11{margin-left:calc(91.66667% + .625rem)}@media print,screen and (min-width:40em){.medium-offset-0{margin-left:0}.grid-margin-x>.medium-offset-0{margin-left:calc(0% + .9375rem)}.medium-offset-1{margin-left:8.33333%}.grid-margin-x>.medium-offset-1{margin-left:calc(8.33333% + .9375rem)}.medium-offset-2{margin-left:16.66667%}.grid-margin-x>.medium-offset-2{margin-left:calc(16.66667% + .9375rem)}.medium-offset-3{margin-left:25%}.grid-margin-x>.medium-offset-3{margin-left:calc(25% + .9375rem)}.medium-offset-4{margin-left:33.33333%}.grid-margin-x>.medium-offset-4{margin-left:calc(33.33333% + .9375rem)}.medium-offset-5{margin-left:41.66667%}.grid-margin-x>.medium-offset-5{margin-left:calc(41.66667% + .9375rem)}.medium-offset-6{margin-left:50%}.grid-margin-x>.medium-offset-6{margin-left:calc(50% + .9375rem)}.medium-offset-7{margin-left:58.33333%}.grid-margin-x>.medium-offset-7{margin-left:calc(58.33333% + .9375rem)}.medium-offset-8{margin-left:66.66667%}.grid-margin-x>.medium-offset-8{margin-left:calc(66.66667% + .9375rem)}.medium-offset-9{margin-left:75%}.grid-margin-x>.medium-offset-9{margin-left:calc(75% + .9375rem)}.medium-offset-10{margin-left:83.33333%}.grid-margin-x>.medium-offset-10{margin-left:calc(83.33333% + .9375rem)}.medium-offset-11{margin-left:91.66667%}.grid-margin-x>.medium-offset-11{margin-left:calc(91.66667% + .9375rem)}}@media print,screen and (min-width:64em){.large-offset-0{margin-left:0}.grid-margin-x>.large-offset-0{margin-left:calc(0% + .9375rem)}.large-offset-1{margin-left:8.33333%}.grid-margin-x>.large-offset-1{margin-left:calc(8.33333% + .9375rem)}.large-offset-2{margin-left:16.66667%}.grid-margin-x>.large-offset-2{margin-left:calc(16.66667% + .9375rem)}.large-offset-3{margin-left:25%}.grid-margin-x>.large-offset-3{margin-left:calc(25% + .9375rem)}.large-offset-4{margin-left:33.33333%}.grid-margin-x>.large-offset-4{margin-left:calc(33.33333% + .9375rem)}.large-offset-5{margin-left:41.66667%}.grid-margin-x>.large-offset-5{margin-left:calc(41.66667% + .9375rem)}.large-offset-6{margin-left:50%}.grid-margin-x>.large-offset-6{margin-left:calc(50% + .9375rem)}.large-offset-7{margin-left:58.33333%}.grid-margin-x>.large-offset-7{margin-left:calc(58.33333% + .9375rem)}.large-offset-8{margin-left:66.66667%}.grid-margin-x>.large-offset-8{margin-left:calc(66.66667% + .9375rem)}.large-offset-9{margin-left:75%}.grid-margin-x>.large-offset-9{margin-left:calc(75% + .9375rem)}.large-offset-10{margin-left:83.33333%}.grid-margin-x>.large-offset-10{margin-left:calc(83.33333% + .9375rem)}.large-offset-11{margin-left:91.66667%}.grid-margin-x>.large-offset-11{margin-left:calc(91.66667% + .9375rem)}}.grid-y{display:-ms-flexbox;display:flex;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.grid-y>.cell{width:auto}.grid-y>.auto{height:auto}.grid-y>.shrink{height:auto}.grid-y>small-1,.grid-y>small-10,.grid-y>small-11,.grid-y>small-12,.grid-y>small-2,.grid-y>small-3,.grid-y>small-4,.grid-y>small-5,.grid-y>small-6,.grid-y>small-7,.grid-y>small-8,.grid-y>small-9,.grid-y>small-full,.grid-y>small-shrink{-ms-flex-preferred-size:auto;flex-basis:auto}@media print,screen and (min-width:40em){.grid-y>medium-1,.grid-y>medium-10,.grid-y>medium-11,.grid-y>medium-12,.grid-y>medium-2,.grid-y>medium-3,.grid-y>medium-4,.grid-y>medium-5,.grid-y>medium-6,.grid-y>medium-7,.grid-y>medium-8,.grid-y>medium-9,.grid-y>medium-full,.grid-y>medium-shrink{-ms-flex-preferred-size:auto;flex-basis:auto}}@media print,screen and (min-width:64em){.grid-y>large-1,.grid-y>large-10,.grid-y>large-11,.grid-y>large-12,.grid-y>large-2,.grid-y>large-3,.grid-y>large-4,.grid-y>large-5,.grid-y>large-6,.grid-y>large-7,.grid-y>large-8,.grid-y>large-9,.grid-y>large-full,.grid-y>large-shrink{-ms-flex-preferred-size:auto;flex-basis:auto}}.grid-y>.small-1{height:8.33333%}.grid-y>.small-2{height:16.66667%}.grid-y>.small-3{height:25%}.grid-y>.small-4{height:33.33333%}.grid-y>.small-5{height:41.66667%}.grid-y>.small-6{height:50%}.grid-y>.small-7{height:58.33333%}.grid-y>.small-8{height:66.66667%}.grid-y>.small-9{height:75%}.grid-y>.small-10{height:83.33333%}.grid-y>.small-11{height:91.66667%}.grid-y>.small-12{height:100%}@media print,screen and (min-width:40em){.grid-y>.medium-auto{-ms-flex:1 1 0px;flex:1 1 0px;height:auto}.grid-y>.medium-shrink{height:auto}.grid-y>.medium-1{height:8.33333%}.grid-y>.medium-2{height:16.66667%}.grid-y>.medium-3{height:25%}.grid-y>.medium-4{height:33.33333%}.grid-y>.medium-5{height:41.66667%}.grid-y>.medium-6{height:50%}.grid-y>.medium-7{height:58.33333%}.grid-y>.medium-8{height:66.66667%}.grid-y>.medium-9{height:75%}.grid-y>.medium-10{height:83.33333%}.grid-y>.medium-11{height:91.66667%}.grid-y>.medium-12{height:100%}}@media print,screen and (min-width:64em){.grid-y>.large-auto{-ms-flex:1 1 0px;flex:1 1 0px;height:auto}.grid-y>.large-shrink{height:auto}.grid-y>.large-1{height:8.33333%}.grid-y>.large-2{height:16.66667%}.grid-y>.large-3{height:25%}.grid-y>.large-4{height:33.33333%}.grid-y>.large-5{height:41.66667%}.grid-y>.large-6{height:50%}.grid-y>.large-7{height:58.33333%}.grid-y>.large-8{height:66.66667%}.grid-y>.large-9{height:75%}.grid-y>.large-10{height:83.33333%}.grid-y>.large-11{height:91.66667%}.grid-y>.large-12{height:100%}}.grid-padding-y .grid-padding-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-padding-y .grid-padding-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-padding-y>.cell{padding-top:.625rem;padding-bottom:.625rem}@media print,screen and (min-width:40em){.grid-padding-y>.cell{padding-top:.9375rem;padding-bottom:.9375rem}}.grid-margin-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-margin-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-margin-y>.cell{height:calc(100% - 1.25rem);margin-top:.625rem;margin-bottom:.625rem}@media print,screen and (min-width:40em){.grid-margin-y>.cell{height:calc(100% - 1.875rem);margin-top:.9375rem;margin-bottom:.9375rem}}.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.25rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.25rem)}.grid-margin-y>.small-3{height:calc(25% - 1.25rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.25rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.25rem)}.grid-margin-y>.small-6{height:calc(50% - 1.25rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.25rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.25rem)}.grid-margin-y>.small-9{height:calc(75% - 1.25rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.25rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.25rem)}.grid-margin-y>.small-12{height:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.small-3{height:calc(25% - 1.875rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.small-6{height:calc(50% - 1.875rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.small-9{height:calc(75% - 1.875rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.small-12{height:calc(100% - 1.875rem)}.grid-margin-y>.medium-auto{height:auto}.grid-margin-y>.medium-shrink{height:auto}.grid-margin-y>.medium-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.medium-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.medium-3{height:calc(25% - 1.875rem)}.grid-margin-y>.medium-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.medium-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.medium-6{height:calc(50% - 1.875rem)}.grid-margin-y>.medium-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.medium-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.medium-9{height:calc(75% - 1.875rem)}.grid-margin-y>.medium-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.medium-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.medium-12{height:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y>.large-auto{height:auto}.grid-margin-y>.large-shrink{height:auto}.grid-margin-y>.large-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.large-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.large-3{height:calc(25% - 1.875rem)}.grid-margin-y>.large-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.large-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.large-6{height:calc(50% - 1.875rem)}.grid-margin-y>.large-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.large-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.large-9{height:calc(75% - 1.875rem)}.grid-margin-y>.large-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.large-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.large-12{height:calc(100% - 1.875rem)}}.grid-frame{width:100vw;overflow:hidden;position:relative;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-align:stretch;align-items:stretch}.cell .grid-frame{width:100%}.cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-stype:-ms-autohiding-scrollbar}.cell-block-y{overflow-y:auto;max-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-stype:-ms-autohiding-scrollbar}.cell-block-container{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;max-height:100%}.cell-block-container>.grid-x{max-height:100%;-ms-flex-wrap:nowrap;flex-wrap:nowrap}@media print,screen and (min-width:40em){.medium-grid-frame{width:100vw;overflow:hidden;position:relative;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-align:stretch;align-items:stretch}.cell .medium-grid-frame{width:100%}.medium-cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-stype:-ms-autohiding-scrollbar}.medium-cell-block-container{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;max-height:100%}.medium-cell-block-container>.grid-x{max-height:100%;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.medium-cell-block-y{overflow-y:auto;max-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-stype:-ms-autohiding-scrollbar}}@media print,screen and (min-width:64em){.large-grid-frame{width:100vw;overflow:hidden;position:relative;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-align:stretch;align-items:stretch}.cell .large-grid-frame{width:100%}.large-cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-stype:-ms-autohiding-scrollbar}.large-cell-block-container{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;max-height:100%}.large-cell-block-container>.grid-x{max-height:100%;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.large-cell-block-y{overflow-y:auto;max-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-stype:-ms-autohiding-scrollbar}}.grid-y.grid-frame{width:auto;height:100vh;overflow:hidden;position:relative;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-align:stretch;align-items:stretch}@media print,screen and (min-width:40em){.grid-y.medium-grid-frame{width:auto;height:100vh;overflow:hidden;position:relative;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-align:stretch;align-items:stretch}}@media print,screen and (min-width:64em){.grid-y.large-grid-frame{width:auto;height:100vh;overflow:hidden;position:relative;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-align:stretch;align-items:stretch}}.cell .grid-y.grid-frame{height:100%}@media print,screen and (min-width:40em){.cell .grid-y.medium-grid-frame{height:100%}}@media print,screen and (min-width:64em){.cell .grid-y.large-grid-frame{height:100%}}.align-right{-ms-flex-pack:end;justify-content:flex-end}.align-center{-ms-flex-pack:center;justify-content:center}.align-justify{-ms-flex-pack:justify;justify-content:space-between}.align-spaced{-ms-flex-pack:distribute;justify-content:space-around}.align-right.vertical.menu>li>a{-ms-flex-pack:end;justify-content:flex-end}.align-center.vertical.menu>li>a{-ms-flex-pack:center;justify-content:center}.align-top{-ms-flex-align:start;align-items:flex-start}.align-self-top{-ms-flex-item-align:start;align-self:flex-start}.align-bottom{-ms-flex-align:end;align-items:flex-end}.align-self-bottom{-ms-flex-item-align:end;align-self:flex-end}.align-middle{-ms-flex-align:center;align-items:center}.align-self-middle{-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center}.align-stretch{-ms-flex-align:stretch;align-items:stretch}.align-self-stretch{-ms-flex-item-align:stretch;-ms-grid-row-align:stretch;align-self:stretch}.align-center-middle{-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center}.small-order-1{-ms-flex-order:1;order:1}.small-order-2{-ms-flex-order:2;order:2}.small-order-3{-ms-flex-order:3;order:3}.small-order-4{-ms-flex-order:4;order:4}.small-order-5{-ms-flex-order:5;order:5}.small-order-6{-ms-flex-order:6;order:6}@media print,screen and (min-width:40em){.medium-order-1{-ms-flex-order:1;order:1}.medium-order-2{-ms-flex-order:2;order:2}.medium-order-3{-ms-flex-order:3;order:3}.medium-order-4{-ms-flex-order:4;order:4}.medium-order-5{-ms-flex-order:5;order:5}.medium-order-6{-ms-flex-order:6;order:6}}@media print,screen and (min-width:64em){.large-order-1{-ms-flex-order:1;order:1}.large-order-2{-ms-flex-order:2;order:2}.large-order-3{-ms-flex-order:3;order:3}.large-order-4{-ms-flex-order:4;order:4}.large-order-5{-ms-flex-order:5;order:5}.large-order-6{-ms-flex-order:6;order:6}}.flex-container{display:-ms-flexbox;display:flex}.flex-child-auto{-ms-flex:1 1 auto;flex:1 1 auto}.flex-child-grow{-ms-flex:1 0 auto;flex:1 0 auto}.flex-child-shrink{-ms-flex:0 1 auto;flex:0 1 auto}.flex-dir-row{-ms-flex-direction:row;flex-direction:row}.flex-dir-row-reverse{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.flex-dir-column{-ms-flex-direction:column;flex-direction:column}.flex-dir-column-reverse{-ms-flex-direction:column-reverse;flex-direction:column-reverse}@media print,screen and (min-width:40em){.medium-flex-container{display:-ms-flexbox;display:flex}.medium-flex-child-auto{-ms-flex:1 1 auto;flex:1 1 auto}.medium-flex-child-grow{-ms-flex:1 0 auto;flex:1 0 auto}.medium-flex-child-shrink{-ms-flex:0 1 auto;flex:0 1 auto}.medium-flex-dir-row{-ms-flex-direction:row;flex-direction:row}.medium-flex-dir-row-reverse{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.medium-flex-dir-column{-ms-flex-direction:column;flex-direction:column}.medium-flex-dir-column-reverse{-ms-flex-direction:column-reverse;flex-direction:column-reverse}}@media print,screen and (min-width:64em){.large-flex-container{display:-ms-flexbox;display:flex}.large-flex-child-auto{-ms-flex:1 1 auto;flex:1 1 auto}.large-flex-child-grow{-ms-flex:1 0 auto;flex:1 0 auto}.large-flex-child-shrink{-ms-flex:0 1 auto;flex:0 1 auto}.large-flex-dir-row{-ms-flex-direction:row;flex-direction:row}.large-flex-dir-row-reverse{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.large-flex-dir-column{-ms-flex-direction:column;flex-direction:column}.large-flex-dir-column-reverse{-ms-flex-direction:column-reverse;flex-direction:column-reverse}}blockquote,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,li,ol,p,pre,td,th,ul{margin:0;padding:0}p{margin-bottom:1rem;font-size:inherit;line-height:1.6;text-rendering:optimizeLegibility}em,i{font-style:italic;line-height:inherit}b,strong{font-weight:700;line-height:inherit}small{font-size:80%;line-height:inherit}h1,h2,h3,h4,h5,h6{font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-style:normal;font-weight:400;color:inherit;text-rendering:optimizeLegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{line-height:0;color:#cacaca}h1{font-size:1.5rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}h2{font-size:1.25rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}h3{font-size:1.1875rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}h4{font-size:1.125rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}h5{font-size:1.0625rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}h6{font-size:1rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}@media print,screen and (min-width:40em){h1{font-size:3rem}h2{font-size:2.5rem}h3{font-size:1.9375rem}h4{font-size:1.5625rem}h5{font-size:1.25rem}h6{font-size:1rem}}a{line-height:inherit;color:#1779ba;text-decoration:none;cursor:pointer}a:focus,a:hover{color:#1468a0}a img{border:0}hr{clear:both;max-width:75rem;height:0;margin:1.25rem auto;border-top:0;border-right:0;border-bottom:1px solid #cacaca;border-left:0}dl,ol,ul{margin-bottom:1rem;list-style-position:outside;line-height:1.6}li{font-size:inherit}ul{margin-left:1.25rem;list-style-type:disc}ol{margin-left:1.25rem}ol ol,ol ul,ul ol,ul ul{margin-left:1.25rem;margin-bottom:0}dl{margin-bottom:1rem}dl dt{margin-bottom:.3rem;font-weight:700}blockquote{margin:0 0 1rem;padding:.5625rem 1.25rem 0 1.1875rem;border-left:1px solid #cacaca}blockquote,blockquote p{line-height:1.6;color:#8a8a8a}cite{display:block;font-size:.8125rem;color:#8a8a8a}cite:before{content:"— "}abbr,abbr[title]{border-bottom:1px dotted #0a0a0a;cursor:help;text-decoration:none}figure{margin:0}code{padding:.125rem .3125rem .0625rem;border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;font-weight:400;color:#0a0a0a}kbd{margin:0;padding:.125rem .25rem 0;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;color:#0a0a0a}.subheader{margin-top:.2rem;margin-bottom:.5rem;font-weight:400;line-height:1.4;color:#8a8a8a}.lead{font-size:125%;line-height:1.6}.stat{font-size:2.5rem;line-height:1}p+.stat{margin-top:-1rem}ol.no-bullet,ul.no-bullet{margin-left:0;list-style:none}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}@media print,screen and (min-width:40em){.medium-text-left{text-align:left}.medium-text-right{text-align:right}.medium-text-center{text-align:center}.medium-text-justify{text-align:justify}}@media print,screen and (min-width:64em){.large-text-left{text-align:left}.large-text-right{text-align:right}.large-text-center{text-align:center}.large-text-justify{text-align:justify}}.show-for-print{display:none!important}@media print{*{background:0 0!important;box-shadow:none!important;color:#000!important;text-shadow:none!important}.show-for-print{display:block!important}.hide-for-print{display:none!important}table.show-for-print{display:table!important}thead.show-for-print{display:table-header-group!important}tbody.show-for-print{display:table-row-group!important}tr.show-for-print{display:table-row!important}td.show-for-print{display:table-cell!important}th.show-for-print{display:table-cell!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}.ir a:after,a[href^='#']:after,a[href^='javascript:']:after{content:''}abbr[title]:after{content:" (" attr(title) ")"}blockquote,pre{border:1px solid #8a8a8a;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.print-break-inside{page-break-inside:auto}}.button{display:inline-block;vertical-align:middle;margin:0 0 1rem 0;font-family:inherit;padding:.85em 1em;-webkit-appearance:none;border:1px solid transparent;border-radius:0;transition:background-color .25s ease-out,color .25s ease-out;font-size:.9rem;line-height:1;text-align:center;cursor:pointer;background-color:#1779ba;color:#fefefe}[data-whatinput=mouse] .button{outline:0}.button:focus,.button:hover{background-color:#14679e;color:#fefefe}.button.tiny{font-size:.6rem}.button.small{font-size:.75rem}.button.large{font-size:1.25rem}.button.expanded{display:block;width:100%;margin-right:0;margin-left:0}.button.primary{background-color:#1779ba;color:#fefefe}.button.primary:focus,.button.primary:hover{background-color:#126195;color:#fefefe}.button.secondary{background-color:#767676;color:#fefefe}.button.secondary:focus,.button.secondary:hover{background-color:#5e5e5e;color:#fefefe}.button.success{background-color:#3adb76;color:#0a0a0a}.button.success:focus,.button.success:hover{background-color:#22bb5b;color:#0a0a0a}.button.warning{background-color:#ffae00;color:#0a0a0a}.button.warning:focus,.button.warning:hover{background-color:#cc8b00;color:#0a0a0a}.button.alert{background-color:#cc4b37;color:#fefefe}.button.alert:focus,.button.alert:hover{background-color:#a53b2a;color:#fefefe}.button.disabled,.button[disabled]{opacity:.25;cursor:not-allowed}.button.disabled,.button.disabled:focus,.button.disabled:hover,.button[disabled],.button[disabled]:focus,.button[disabled]:hover{background-color:#1779ba;color:#fefefe}.button.disabled.primary,.button[disabled].primary{opacity:.25;cursor:not-allowed}.button.disabled.primary,.button.disabled.primary:focus,.button.disabled.primary:hover,.button[disabled].primary,.button[disabled].primary:focus,.button[disabled].primary:hover{background-color:#1779ba;color:#fefefe}.button.disabled.secondary,.button[disabled].secondary{opacity:.25;cursor:not-allowed}.button.disabled.secondary,.button.disabled.secondary:focus,.button.disabled.secondary:hover,.button[disabled].secondary,.button[disabled].secondary:focus,.button[disabled].secondary:hover{background-color:#767676;color:#fefefe}.button.disabled.success,.button[disabled].success{opacity:.25;cursor:not-allowed}.button.disabled.success,.button.disabled.success:focus,.button.disabled.success:hover,.button[disabled].success,.button[disabled].success:focus,.button[disabled].success:hover{background-color:#3adb76;color:#0a0a0a}.button.disabled.warning,.button[disabled].warning{opacity:.25;cursor:not-allowed}.button.disabled.warning,.button.disabled.warning:focus,.button.disabled.warning:hover,.button[disabled].warning,.button[disabled].warning:focus,.button[disabled].warning:hover{background-color:#ffae00;color:#0a0a0a}.button.disabled.alert,.button[disabled].alert{opacity:.25;cursor:not-allowed}.button.disabled.alert,.button.disabled.alert:focus,.button.disabled.alert:hover,.button[disabled].alert,.button[disabled].alert:focus,.button[disabled].alert:hover{background-color:#cc4b37;color:#fefefe}.button.hollow{border:1px solid #1779ba;color:#1779ba}.button.hollow,.button.hollow:focus,.button.hollow:hover{background-color:transparent}.button.hollow.disabled,.button.hollow.disabled:focus,.button.hollow.disabled:hover,.button.hollow[disabled],.button.hollow[disabled]:focus,.button.hollow[disabled]:hover{background-color:transparent}.button.hollow:focus,.button.hollow:hover{border-color:#0c3d5d;color:#0c3d5d}.button.hollow:focus.disabled,.button.hollow:focus[disabled],.button.hollow:hover.disabled,.button.hollow:hover[disabled]{border:1px solid #1779ba;color:#1779ba}.button.hollow.primary{border:1px solid #1779ba;color:#1779ba}.button.hollow.primary:focus,.button.hollow.primary:hover{border-color:#0c3d5d;color:#0c3d5d}.button.hollow.primary:focus.disabled,.button.hollow.primary:focus[disabled],.button.hollow.primary:hover.disabled,.button.hollow.primary:hover[disabled]{border:1px solid #1779ba;color:#1779ba}.button.hollow.secondary{border:1px solid #767676;color:#767676}.button.hollow.secondary:focus,.button.hollow.secondary:hover{border-color:#3b3b3b;color:#3b3b3b}.button.hollow.secondary:focus.disabled,.button.hollow.secondary:focus[disabled],.button.hollow.secondary:hover.disabled,.button.hollow.secondary:hover[disabled]{border:1px solid #767676;color:#767676}.button.hollow.success{border:1px solid #3adb76;color:#3adb76}.button.hollow.success:focus,.button.hollow.success:hover{border-color:#157539;color:#157539}.button.hollow.success:focus.disabled,.button.hollow.success:focus[disabled],.button.hollow.success:hover.disabled,.button.hollow.success:hover[disabled]{border:1px solid #3adb76;color:#3adb76}.button.hollow.warning{border:1px solid #ffae00;color:#ffae00}.button.hollow.warning:focus,.button.hollow.warning:hover{border-color:#805700;color:#805700}.button.hollow.warning:focus.disabled,.button.hollow.warning:focus[disabled],.button.hollow.warning:hover.disabled,.button.hollow.warning:hover[disabled]{border:1px solid #ffae00;color:#ffae00}.button.hollow.alert{border:1px solid #cc4b37;color:#cc4b37}.button.hollow.alert:focus,.button.hollow.alert:hover{border-color:#67251a;color:#67251a}.button.hollow.alert:focus.disabled,.button.hollow.alert:focus[disabled],.button.hollow.alert:hover.disabled,.button.hollow.alert:hover[disabled]{border:1px solid #cc4b37;color:#cc4b37}.button.clear{border:1px solid #1779ba;color:#1779ba}.button.clear,.button.clear:focus,.button.clear:hover{background-color:transparent}.button.clear.disabled,.button.clear.disabled:focus,.button.clear.disabled:hover,.button.clear[disabled],.button.clear[disabled]:focus,.button.clear[disabled]:hover{background-color:transparent}.button.clear:focus,.button.clear:hover{border-color:#0c3d5d;color:#0c3d5d}.button.clear:focus.disabled,.button.clear:focus[disabled],.button.clear:hover.disabled,.button.clear:hover[disabled]{border:1px solid #1779ba;color:#1779ba}.button.clear,.button.clear.disabled,.button.clear:focus,.button.clear:focus.disabled,.button.clear:focus[disabled],.button.clear:hover,.button.clear:hover.disabled,.button.clear:hover[disabled],.button.clear[disabled]{border-color:transparent}.button.clear.primary{border:1px solid #1779ba;color:#1779ba}.button.clear.primary:focus,.button.clear.primary:hover{border-color:#0c3d5d;color:#0c3d5d}.button.clear.primary:focus.disabled,.button.clear.primary:focus[disabled],.button.clear.primary:hover.disabled,.button.clear.primary:hover[disabled]{border:1px solid #1779ba;color:#1779ba}.button.clear.primary,.button.clear.primary.disabled,.button.clear.primary:focus,.button.clear.primary:focus.disabled,.button.clear.primary:focus[disabled],.button.clear.primary:hover,.button.clear.primary:hover.disabled,.button.clear.primary:hover[disabled],.button.clear.primary[disabled]{border-color:transparent}.button.clear.secondary{border:1px solid #767676;color:#767676}.button.clear.secondary:focus,.button.clear.secondary:hover{border-color:#3b3b3b;color:#3b3b3b}.button.clear.secondary:focus.disabled,.button.clear.secondary:focus[disabled],.button.clear.secondary:hover.disabled,.button.clear.secondary:hover[disabled]{border:1px solid #767676;color:#767676}.button.clear.secondary,.button.clear.secondary.disabled,.button.clear.secondary:focus,.button.clear.secondary:focus.disabled,.button.clear.secondary:focus[disabled],.button.clear.secondary:hover,.button.clear.secondary:hover.disabled,.button.clear.secondary:hover[disabled],.button.clear.secondary[disabled]{border-color:transparent}.button.clear.success{border:1px solid #3adb76;color:#3adb76}.button.clear.success:focus,.button.clear.success:hover{border-color:#157539;color:#157539}.button.clear.success:focus.disabled,.button.clear.success:focus[disabled],.button.clear.success:hover.disabled,.button.clear.success:hover[disabled]{border:1px solid #3adb76;color:#3adb76}.button.clear.success,.button.clear.success.disabled,.button.clear.success:focus,.button.clear.success:focus.disabled,.button.clear.success:focus[disabled],.button.clear.success:hover,.button.clear.success:hover.disabled,.button.clear.success:hover[disabled],.button.clear.success[disabled]{border-color:transparent}.button.clear.warning{border:1px solid #ffae00;color:#ffae00}.button.clear.warning:focus,.button.clear.warning:hover{border-color:#805700;color:#805700}.button.clear.warning:focus.disabled,.button.clear.warning:focus[disabled],.button.clear.warning:hover.disabled,.button.clear.warning:hover[disabled]{border:1px solid #ffae00;color:#ffae00}.button.clear.warning,.button.clear.warning.disabled,.button.clear.warning:focus,.button.clear.warning:focus.disabled,.button.clear.warning:focus[disabled],.button.clear.warning:hover,.button.clear.warning:hover.disabled,.button.clear.warning:hover[disabled],.button.clear.warning[disabled]{border-color:transparent}.button.clear.alert{border:1px solid #cc4b37;color:#cc4b37}.button.clear.alert:focus,.button.clear.alert:hover{border-color:#67251a;color:#67251a}.button.clear.alert:focus.disabled,.button.clear.alert:focus[disabled],.button.clear.alert:hover.disabled,.button.clear.alert:hover[disabled]{border:1px solid #cc4b37;color:#cc4b37}.button.clear.alert,.button.clear.alert.disabled,.button.clear.alert:focus,.button.clear.alert:focus.disabled,.button.clear.alert:focus[disabled],.button.clear.alert:hover,.button.clear.alert:hover.disabled,.button.clear.alert:hover[disabled],.button.clear.alert[disabled]{border-color:transparent}.button.dropdown::after{display:block;width:0;height:0;border:inset .4em;content:'';border-bottom-width:0;border-top-style:solid;border-color:#fefefe transparent transparent;position:relative;top:.4em;display:inline-block;float:right;margin-left:1em}.button.dropdown.hollow::after{border-top-color:#1779ba}.button.dropdown.hollow.primary::after{border-top-color:#1779ba}.button.dropdown.hollow.secondary::after{border-top-color:#767676}.button.dropdown.hollow.success::after{border-top-color:#3adb76}.button.dropdown.hollow.warning::after{border-top-color:#ffae00}.button.dropdown.hollow.alert::after{border-top-color:#cc4b37}.button.arrow-only::after{top:-.1em;float:none;margin-left:0}[type=color],[type=date],[type=datetime-local],[type=datetime],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],textarea{display:block;box-sizing:border-box;width:100%;height:2.4375rem;margin:0 0 1rem;padding:.5rem;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;box-shadow:inset 0 1px 2px rgba(10,10,10,.1);font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;transition:box-shadow .5s,border-color .25s ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}[type=color]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=datetime]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,textarea:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;box-shadow:0 0 5px #cacaca;transition:box-shadow .5s,border-color .25s ease-in-out}textarea{max-width:100%}textarea[rows]{height:auto}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#cacaca}input::-moz-placeholder,textarea::-moz-placeholder{color:#cacaca}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#cacaca}input::placeholder,textarea::placeholder{color:#cacaca}input:disabled,input[readonly],textarea:disabled,textarea[readonly]{background-color:#e6e6e6;cursor:not-allowed}[type=button],[type=submit]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0}input[type=search]{box-sizing:border-box}[type=checkbox],[type=file],[type=radio]{margin:0 0 1rem}[type=checkbox]+label,[type=radio]+label{display:inline-block;vertical-align:baseline;margin-left:.5rem;margin-right:1rem;margin-bottom:0}[type=checkbox]+label[for],[type=radio]+label[for]{cursor:pointer}label>[type=checkbox],label>[type=radio]{margin-right:.5rem}[type=file]{width:100%}label{display:block;margin:0;font-size:.875rem;font-weight:400;line-height:1.8;color:#0a0a0a}label.middle{margin:0 0 1rem;padding:.5625rem 0}.help-text{margin-top:-.5rem;font-size:.8125rem;font-style:italic;color:#0a0a0a}.input-group{display:-ms-flexbox;display:flex;width:100%;margin-bottom:1rem;-ms-flex-align:stretch;align-items:stretch}.input-group>:first-child{border-radius:0}.input-group>:last-child>*{border-radius:0}.input-group-button,.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label,.input-group-field,.input-group-label{margin:0;white-space:nowrap}.input-group-label{padding:0 1rem;border:1px solid #cacaca;background:#e6e6e6;color:#0a0a0a;text-align:center;white-space:nowrap;display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-align:center;align-items:center}.input-group-label:first-child{border-right:0}.input-group-label:last-child{border-left:0}.input-group-field{border-radius:0;-ms-flex:1 1 0px;flex:1 1 0px;height:auto;min-width:0}.input-group-button{padding-top:0;padding-bottom:0;text-align:center;-ms-flex:0 0 auto;flex:0 0 auto}.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label{height:2.5rem;padding-top:0;padding-bottom:0;font-size:1rem}fieldset{margin:0;padding:0;border:0}legend{max-width:100%;margin-bottom:.5rem}.fieldset{margin:1.125rem 0;padding:1.25rem;border:1px solid #cacaca}.fieldset legend{margin:0;margin-left:-.1875rem;padding:0 .1875rem}select{height:2.4375rem;margin:0 0 1rem;padding:.5rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;background-image:url("data:image/svg+xml;utf8,");background-origin:content-box;background-position:right -1rem center;background-repeat:no-repeat;background-size:9px 6px;padding-right:1.5rem;transition:box-shadow .5s,border-color .25s ease-in-out}@media screen and (min-width:0\0){select{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==)}}select:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;box-shadow:0 0 5px #cacaca;transition:box-shadow .5s,border-color .25s ease-in-out}select:disabled{background-color:#e6e6e6;cursor:not-allowed}select::-ms-expand{display:none}select[multiple]{height:auto;background-image:none}.is-invalid-input:not(:focus){border-color:#cc4b37;background-color:#f9ecea}.is-invalid-input:not(:focus)::-webkit-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::-moz-placeholder{color:#cc4b37}.is-invalid-input:not(:focus):-ms-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::placeholder{color:#cc4b37}.is-invalid-label{color:#cc4b37}.form-error{display:none;margin-top:-.5rem;margin-bottom:1rem;font-size:.75rem;font-weight:700;color:#cc4b37}.form-error.is-visible{display:block}.accordion{margin-left:0;background:#fefefe;list-style-type:none}.accordion[disabled] .accordion-title{cursor:not-allowed}.accordion-item:first-child>:first-child{border-radius:0}.accordion-item:last-child>:last-child{border-radius:0}.accordion-title{position:relative;display:block;padding:1.25rem 1rem;border:1px solid #e6e6e6;border-bottom:0;font-size:.75rem;line-height:1;color:#1779ba}:last-child:not(.is-active)>.accordion-title{border-bottom:1px solid #e6e6e6;border-radius:0}.accordion-title:focus,.accordion-title:hover{background-color:#e6e6e6}.accordion-title::before{position:absolute;top:50%;right:1rem;margin-top:-.5rem;content:'+'}.is-active>.accordion-title::before{content:'\2013'}.accordion-content{display:none;padding:1rem;border:1px solid #e6e6e6;border-bottom:0;background-color:#fefefe;color:#0a0a0a}:last-child>.accordion-content:last-child{border-bottom:1px solid #e6e6e6}.accordion-menu li{width:100%}.accordion-menu a{padding:.7rem 1rem}.accordion-menu .is-accordion-submenu a{padding:.7rem 1rem}.accordion-menu .nested.is-accordion-submenu{margin-right:0;margin-left:1rem}.accordion-menu.align-right .nested.is-accordion-submenu{margin-right:1rem;margin-left:0}.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle)>a{position:relative}.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle)>a::after{display:block;width:0;height:0;border:inset 6px;content:'';border-bottom-width:0;border-top-style:solid;border-color:#1779ba transparent transparent;position:absolute;top:50%;margin-top:-3px;right:1rem}.accordion-menu.align-left .is-accordion-submenu-parent>a::after{left:auto;right:1rem}.accordion-menu.align-right .is-accordion-submenu-parent>a::after{right:auto;left:1rem}.accordion-menu .is-accordion-submenu-parent[aria-expanded=true]>a::after{-ms-transform:rotate(180deg);transform:rotate(180deg);-ms-transform-origin:50% 50%;transform-origin:50% 50%}.is-accordion-submenu-parent{position:relative}.has-submenu-toggle>a{margin-right:40px}.submenu-toggle{position:absolute;top:0;right:0;cursor:pointer;width:40px;height:40px}.submenu-toggle::after{display:block;width:0;height:0;border:inset 6px;content:'';border-bottom-width:0;border-top-style:solid;border-color:#1779ba transparent transparent;top:0;bottom:0;margin:auto}.submenu-toggle[aria-expanded=true]::after{-ms-transform:scaleY(-1);transform:scaleY(-1);-ms-transform-origin:50% 50%;transform-origin:50% 50%}.submenu-toggle-text{position:absolute!important;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;-webkit-clip-path:inset(50%);clip-path:inset(50%);border:0}.badge{display:inline-block;min-width:2.1em;padding:.3em;border-radius:50%;font-size:.6rem;text-align:center;background:#1779ba;color:#fefefe}.badge.primary{background:#1779ba;color:#fefefe}.badge.secondary{background:#767676;color:#fefefe}.badge.success{background:#3adb76;color:#0a0a0a}.badge.warning{background:#ffae00;color:#0a0a0a}.badge.alert{background:#cc4b37;color:#fefefe}.breadcrumbs{margin:0 0 1rem 0;list-style:none}.breadcrumbs::after,.breadcrumbs::before{display:table;content:' ';-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-order:1;order:1}.breadcrumbs::after{clear:both}.breadcrumbs li{float:left;font-size:.6875rem;color:#0a0a0a;cursor:default;text-transform:uppercase}.breadcrumbs li:not(:last-child)::after{position:relative;margin:0 .75rem;opacity:1;content:"/";color:#cacaca}.breadcrumbs a{color:#1779ba}.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs .disabled{color:#cacaca;cursor:not-allowed}.button-group{margin-bottom:1rem;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-align:stretch;align-items:stretch}.button-group::after,.button-group::before{display:table;content:' ';-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-order:1;order:1}.button-group::after{clear:both}.button-group .button{margin:0;margin-right:1px;margin-bottom:1px;font-size:.9rem;-ms-flex:0 0 auto;flex:0 0 auto}.button-group .button:last-child{margin-right:0}.button-group.tiny .button{font-size:.6rem}.button-group.small .button{font-size:.75rem}.button-group.large .button{font-size:1.25rem}.button-group.expanded .button{-ms-flex:1 1 0px;flex:1 1 0px}.button-group.primary .button{background-color:#1779ba;color:#fefefe}.button-group.primary .button:focus,.button-group.primary .button:hover{background-color:#126195;color:#fefefe}.button-group.secondary .button{background-color:#767676;color:#fefefe}.button-group.secondary .button:focus,.button-group.secondary .button:hover{background-color:#5e5e5e;color:#fefefe}.button-group.success .button{background-color:#3adb76;color:#0a0a0a}.button-group.success .button:focus,.button-group.success .button:hover{background-color:#22bb5b;color:#0a0a0a}.button-group.warning .button{background-color:#ffae00;color:#0a0a0a}.button-group.warning .button:focus,.button-group.warning .button:hover{background-color:#cc8b00;color:#0a0a0a}.button-group.alert .button{background-color:#cc4b37;color:#fefefe}.button-group.alert .button:focus,.button-group.alert .button:hover{background-color:#a53b2a;color:#fefefe}.button-group.stacked,.button-group.stacked-for-medium,.button-group.stacked-for-small{-ms-flex-wrap:wrap;flex-wrap:wrap}.button-group.stacked .button,.button-group.stacked-for-medium .button,.button-group.stacked-for-small .button{-ms-flex:0 0 100%;flex:0 0 100%}.button-group.stacked .button:last-child,.button-group.stacked-for-medium .button:last-child,.button-group.stacked-for-small .button:last-child{margin-bottom:0}@media print,screen and (min-width:40em){.button-group.stacked-for-small .button{-ms-flex:1 1 0px;flex:1 1 0px;margin-bottom:0}}@media print,screen and (min-width:64em){.button-group.stacked-for-medium .button{-ms-flex:1 1 0px;flex:1 1 0px;margin-bottom:0}}@media screen and (max-width:39.9375em){.button-group.stacked-for-small.expanded{display:block}.button-group.stacked-for-small.expanded .button{display:block;margin-right:0}}.card{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-positive:1;flex-grow:1;margin-bottom:1rem;border:1px solid #e6e6e6;border-radius:0;background:#fefefe;box-shadow:none;overflow:hidden;color:#0a0a0a}.card>:last-child{margin-bottom:0}.card-divider{-ms-flex:0 1 auto;flex:0 1 auto;display:-ms-flexbox;display:flex;padding:1rem;background:#e6e6e6}.card-divider>:last-child{margin-bottom:0}.card-section{-ms-flex:1 0 auto;flex:1 0 auto;padding:1rem}.card-section>:last-child{margin-bottom:0}.card-image{min-height:1px}.callout{position:relative;margin:0 0 1rem 0;padding:1rem;border:1px solid rgba(10,10,10,.25);border-radius:0;background-color:#fff;color:#0a0a0a}.callout>:first-child{margin-top:0}.callout>:last-child{margin-bottom:0}.callout.primary{background-color:#d7ecfa;color:#0a0a0a}.callout.secondary{background-color:#eaeaea;color:#0a0a0a}.callout.success{background-color:#e1faea;color:#0a0a0a}.callout.warning{background-color:#fff3d9;color:#0a0a0a}.callout.alert{background-color:#f7e4e1;color:#0a0a0a}.callout.small{padding-top:.5rem;padding-right:.5rem;padding-bottom:.5rem;padding-left:.5rem}.callout.large{padding-top:3rem;padding-right:3rem;padding-bottom:3rem;padding-left:3rem}.close-button{position:absolute;color:#8a8a8a;cursor:pointer}[data-whatinput=mouse] .close-button{outline:0}.close-button:focus,.close-button:hover{color:#0a0a0a}.close-button.small{right:.66rem;top:.33em;font-size:1.5em;line-height:1}.close-button,.close-button.medium{right:1rem;top:.5rem;font-size:2em;line-height:1}.menu{padding:0;margin:0;list-style:none;position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}[data-whatinput=mouse] .menu li{outline:0}.menu .button,.menu a{line-height:1;text-decoration:none;white-space:nowrap;display:block;padding:.7rem 1rem}.menu a,.menu button,.menu input,.menu select{margin-bottom:0}.menu input{display:inline-block}.menu,.menu.horizontal{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-direction:row;flex-direction:row}.menu.vertical{-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-direction:column;flex-direction:column}.menu.expanded li{-ms-flex:1 1 0px;flex:1 1 0px}.menu.simple{-ms-flex-align:center;align-items:center}.menu.simple li+li{margin-left:1rem}.menu.simple a{padding:0}@media print,screen and (min-width:40em){.menu.medium-horizontal{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-direction:row;flex-direction:row}.menu.medium-vertical{-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-direction:column;flex-direction:column}.menu.medium-expanded li{-ms-flex:1 1 0px;flex:1 1 0px}.menu.medium-simple li{-ms-flex:1 1 0px;flex:1 1 0px}}@media print,screen and (min-width:64em){.menu.large-horizontal{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-direction:row;flex-direction:row}.menu.large-vertical{-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-direction:column;flex-direction:column}.menu.large-expanded li{-ms-flex:1 1 0px;flex:1 1 0px}.menu.large-simple li{-ms-flex:1 1 0px;flex:1 1 0px}}.menu.nested{margin-right:0;margin-left:1rem}.menu.icons a{display:-ms-flexbox;display:flex}.menu.icon-left li a{-ms-flex-flow:row nowrap;flex-flow:row nowrap}.menu.icon-left li a i,.menu.icon-left li a img,.menu.icon-left li a svg{margin-right:.25rem}.menu.icon-right li a{-ms-flex-flow:row nowrap;flex-flow:row nowrap}.menu.icon-right li a i,.menu.icon-right li a img,.menu.icon-right li a svg{margin-left:.25rem}.menu.icon-top li a{-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu.icon-top li a i,.menu.icon-top li a img,.menu.icon-top li a svg{-ms-flex-item-align:stretch;-ms-grid-row-align:stretch;align-self:stretch;margin-bottom:.25rem;text-align:center}.menu.icon-bottom li a{-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu.icon-bottom li a i,.menu.icon-bottom li a img,.menu.icon-bottom li a svg{-ms-flex-item-align:stretch;-ms-grid-row-align:stretch;align-self:stretch;margin-bottom:.25rem;text-align:center}.menu .is-active>a{background:#1779ba;color:#fefefe}.menu .active>a{background:#1779ba;color:#fefefe}.menu.align-left{-ms-flex-pack:start;justify-content:flex-start}.menu.align-right li{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end}.menu.align-right li .submenu li{-ms-flex-pack:start;justify-content:flex-start}.menu.align-right.vertical li{display:block;text-align:right}.menu.align-right.vertical li .submenu li{text-align:right}.menu.align-right .nested{margin-right:1rem;margin-left:0}.menu.align-center li{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center}.menu.align-center li .submenu li{-ms-flex-pack:start;justify-content:flex-start}.menu .menu-text{padding:.7rem 1rem;font-weight:700;line-height:1;color:inherit}.menu-centered>.menu{-ms-flex-pack:center;justify-content:center}.menu-centered>.menu li{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center}.menu-centered>.menu li .submenu li{-ms-flex-pack:start;justify-content:flex-start}.no-js [data-responsive-menu] ul{display:none}.menu-icon{position:relative;display:inline-block;vertical-align:middle;width:20px;height:16px;cursor:pointer}.menu-icon::after{position:absolute;top:0;left:0;display:block;width:100%;height:2px;background:#fefefe;box-shadow:0 7px 0 #fefefe,0 14px 0 #fefefe;content:''}.menu-icon:hover::after{background:#cacaca;box-shadow:0 7px 0 #cacaca,0 14px 0 #cacaca}.menu-icon.dark{position:relative;display:inline-block;vertical-align:middle;width:20px;height:16px;cursor:pointer}.menu-icon.dark::after{position:absolute;top:0;left:0;display:block;width:100%;height:2px;background:#0a0a0a;box-shadow:0 7px 0 #0a0a0a,0 14px 0 #0a0a0a;content:''}.menu-icon.dark:hover::after{background:#8a8a8a;box-shadow:0 7px 0 #8a8a8a,0 14px 0 #8a8a8a}.is-drilldown{position:relative;overflow:hidden}.is-drilldown li{display:block}.is-drilldown.animate-height{transition:height .5s}.drilldown a{padding:.7rem 1rem;background:#fefefe}.drilldown .is-drilldown-submenu{position:absolute;top:0;left:100%;z-index:-1;width:100%;background:#fefefe;transition:transform .15s linear}.drilldown .is-drilldown-submenu.is-active{z-index:1;display:block;-ms-transform:translateX(-100%);transform:translateX(-100%)}.drilldown .is-drilldown-submenu.is-closing{-ms-transform:translateX(100%);transform:translateX(100%)}.drilldown .is-drilldown-submenu a{padding:.7rem 1rem}.drilldown .nested.is-drilldown-submenu{margin-right:0;margin-left:0}.drilldown .drilldown-submenu-cover-previous{min-height:100%}.drilldown .is-drilldown-submenu-parent>a{position:relative}.drilldown .is-drilldown-submenu-parent>a::after{position:absolute;top:50%;margin-top:-6px;right:1rem;display:block;width:0;height:0;border:inset 6px;content:'';border-right-width:0;border-left-style:solid;border-color:transparent transparent transparent #1779ba}.drilldown.align-left .is-drilldown-submenu-parent>a::after{left:auto;right:1rem;display:block;width:0;height:0;border:inset 6px;content:'';border-right-width:0;border-left-style:solid;border-color:transparent transparent transparent #1779ba}.drilldown.align-right .is-drilldown-submenu-parent>a::after{right:auto;left:1rem;display:block;width:0;height:0;border:inset 6px;content:'';border-left-width:0;border-right-style:solid;border-color:transparent #1779ba transparent transparent}.drilldown .js-drilldown-back>a::before{display:block;width:0;height:0;border:inset 6px;content:'';border-left-width:0;border-right-style:solid;border-color:transparent #1779ba transparent transparent;border-left-width:0;display:inline-block;vertical-align:middle;margin-right:.75rem;border-left-width:0}.dropdown-pane{position:absolute;z-index:10;width:300px;padding:1rem;visibility:hidden;display:none;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;font-size:1rem}.dropdown-pane.is-opening{display:block}.dropdown-pane.is-open{visibility:visible;display:block}.dropdown-pane.tiny{width:100px}.dropdown-pane.small{width:200px}.dropdown-pane.large{width:400px}.dropdown.menu>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border:inset 6px;content:'';border-bottom-width:0;border-top-style:solid;border-color:#1779ba transparent transparent;right:5px;margin-top:-3px}.dropdown.menu a{padding:.7rem 1rem}[data-whatinput=mouse] .dropdown.menu a{outline:0}.dropdown.menu .is-active>a{background:0 0;color:#1779ba}.no-js .dropdown.menu ul{display:none}.dropdown.menu .nested.is-dropdown-submenu{margin-right:0;margin-left:0}.dropdown.menu.vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.vertical>li.opens-left>.is-dropdown-submenu{right:100%;left:auto;top:0}.dropdown.menu.vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.vertical>li>a::after{right:14px}.dropdown.menu.vertical>li.opens-left>a::after{right:auto;left:5px;display:block;width:0;height:0;border:inset 6px;content:'';border-left-width:0;border-right-style:solid;border-color:transparent #1779ba transparent transparent}.dropdown.menu.vertical>li.opens-right>a::after{display:block;width:0;height:0;border:inset 6px;content:'';border-right-width:0;border-left-style:solid;border-color:transparent transparent transparent #1779ba}@media print,screen and (min-width:40em){.dropdown.menu.medium-horizontal>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu.medium-horizontal>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border:inset 6px;content:'';border-bottom-width:0;border-top-style:solid;border-color:#1779ba transparent transparent;right:5px;margin-top:-3px}.dropdown.menu.medium-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.medium-vertical>li.opens-left>.is-dropdown-submenu{right:100%;left:auto;top:0}.dropdown.menu.medium-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.medium-vertical>li>a::after{right:14px}.dropdown.menu.medium-vertical>li.opens-left>a::after{right:auto;left:5px;display:block;width:0;height:0;border:inset 6px;content:'';border-left-width:0;border-right-style:solid;border-color:transparent #1779ba transparent transparent}.dropdown.menu.medium-vertical>li.opens-right>a::after{display:block;width:0;height:0;border:inset 6px;content:'';border-right-width:0;border-left-style:solid;border-color:transparent transparent transparent #1779ba}}@media print,screen and (min-width:64em){.dropdown.menu.large-horizontal>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu.large-horizontal>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border:inset 6px;content:'';border-bottom-width:0;border-top-style:solid;border-color:#1779ba transparent transparent;right:5px;margin-top:-3px}.dropdown.menu.large-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.large-vertical>li.opens-left>.is-dropdown-submenu{right:100%;left:auto;top:0}.dropdown.menu.large-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.large-vertical>li>a::after{right:14px}.dropdown.menu.large-vertical>li.opens-left>a::after{right:auto;left:5px;display:block;width:0;height:0;border:inset 6px;content:'';border-left-width:0;border-right-style:solid;border-color:transparent #1779ba transparent transparent}.dropdown.menu.large-vertical>li.opens-right>a::after{display:block;width:0;height:0;border:inset 6px;content:'';border-right-width:0;border-left-style:solid;border-color:transparent transparent transparent #1779ba}}.dropdown.menu.align-right .is-dropdown-submenu.first-sub{top:100%;right:0;left:auto}.is-dropdown-menu.vertical{width:100px}.is-dropdown-menu.vertical.align-right{float:right}.is-dropdown-submenu-parent{position:relative}.is-dropdown-submenu-parent a::after{position:absolute;top:50%;right:5px;margin-top:-6px}.is-dropdown-submenu-parent.opens-inner>.is-dropdown-submenu{top:100%;left:auto}.is-dropdown-submenu-parent.opens-left>.is-dropdown-submenu{right:100%;left:auto}.is-dropdown-submenu-parent.opens-right>.is-dropdown-submenu{right:auto;left:100%}.is-dropdown-submenu{position:absolute;top:0;left:100%;z-index:1;display:none;min-width:200px;border:1px solid #cacaca;background:#fefefe}.dropdown .is-dropdown-submenu a{padding:.7rem 1rem}.is-dropdown-submenu .is-dropdown-submenu-parent>a::after{right:14px}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-left>a::after{right:auto;left:5px;display:block;width:0;height:0;border:inset 6px;content:'';border-left-width:0;border-right-style:solid;border-color:transparent #1779ba transparent transparent}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-right>a::after{display:block;width:0;height:0;border:inset 6px;content:'';border-right-width:0;border-left-style:solid;border-color:transparent transparent transparent #1779ba}.is-dropdown-submenu .is-dropdown-submenu{margin-top:-1px}.is-dropdown-submenu>li{width:100%}.is-dropdown-submenu.js-dropdown-active{display:block}.flex-video,.responsive-embed{position:relative;height:0;margin-bottom:1rem;padding-bottom:75%;overflow:hidden}.flex-video embed,.flex-video iframe,.flex-video object,.flex-video video,.responsive-embed embed,.responsive-embed iframe,.responsive-embed object,.responsive-embed video{position:absolute;top:0;left:0;width:100%;height:100%}.flex-video.widescreen,.responsive-embed.widescreen{padding-bottom:56.25%}.label{display:inline-block;padding:.33333rem .5rem;border-radius:0;font-size:.8rem;line-height:1;white-space:nowrap;cursor:default;background:#1779ba;color:#fefefe}.label.primary{background:#1779ba;color:#fefefe}.label.secondary{background:#767676;color:#fefefe}.label.success{background:#3adb76;color:#0a0a0a}.label.warning{background:#ffae00;color:#0a0a0a}.label.alert{background:#cc4b37;color:#fefefe}.media-object{display:-ms-flexbox;display:flex;margin-bottom:1rem;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.media-object img{max-width:none}@media screen and (max-width:39.9375em){.media-object.stack-for-small{-ms-flex-wrap:wrap;flex-wrap:wrap}}@media screen and (max-width:39.9375em){.media-object.stack-for-small .media-object-section{padding:0;padding-bottom:1rem;-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.media-object.stack-for-small .media-object-section img{width:100%}}.media-object-section{-ms-flex:0 1 auto;flex:0 1 auto}.media-object-section:first-child{padding-right:1rem}.media-object-section:last-child:not(:nth-child(2)){padding-left:1rem}.media-object-section>:last-child{margin-bottom:0}.media-object-section.main-section{-ms-flex:1 1 0px;flex:1 1 0px}.is-off-canvas-open{overflow:hidden}.js-off-canvas-overlay{position:absolute;top:0;left:0;z-index:11;width:100%;height:100%;transition:opacity .5s ease,visibility .5s ease;background:rgba(254,254,254,.25);opacity:0;visibility:hidden;overflow:hidden}.js-off-canvas-overlay.is-visible{opacity:1;visibility:visible}.js-off-canvas-overlay.is-closable{cursor:pointer}.js-off-canvas-overlay.is-overlay-absolute{position:absolute}.js-off-canvas-overlay.is-overlay-fixed{position:fixed}.off-canvas-wrapper{position:relative;overflow:hidden}.off-canvas{position:fixed;z-index:12;transition:transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#e6e6e6}[data-whatinput=mouse] .off-canvas{outline:0}.off-canvas.is-transition-push{z-index:12}.off-canvas.is-closed{visibility:hidden}.off-canvas.is-transition-overlap{z-index:13}.off-canvas.is-transition-overlap.is-open{box-shadow:0 0 10px rgba(10,10,10,.7)}.off-canvas.is-open{-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-absolute{position:absolute;z-index:12;transition:transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#e6e6e6}[data-whatinput=mouse] .off-canvas-absolute{outline:0}.off-canvas-absolute.is-transition-push{z-index:12}.off-canvas-absolute.is-closed{visibility:hidden}.off-canvas-absolute.is-transition-overlap{z-index:13}.off-canvas-absolute.is-transition-overlap.is-open{box-shadow:0 0 10px rgba(10,10,10,.7)}.off-canvas-absolute.is-open{-ms-transform:translate(0,0);transform:translate(0,0)}.position-left{top:0;left:0;width:250px;height:100%;-ms-transform:translateX(-250px);transform:translateX(-250px);overflow-y:auto}.off-canvas-content .off-canvas.position-left{-ms-transform:translateX(-250px);transform:translateX(-250px)}.off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open{-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-left.has-transition-push{-ms-transform:translateX(250px);transform:translateX(250px)}.position-left.is-transition-push{box-shadow:inset -13px 0 20px -13px rgba(10,10,10,.25)}.position-right{top:0;right:0;width:250px;height:100%;-ms-transform:translateX(250px);transform:translateX(250px);overflow-y:auto}.off-canvas-content .off-canvas.position-right{-ms-transform:translateX(250px);transform:translateX(250px)}.off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open{-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-right.has-transition-push{-ms-transform:translateX(-250px);transform:translateX(-250px)}.position-right.is-transition-push{box-shadow:inset 13px 0 20px -13px rgba(10,10,10,.25)}.position-top{top:0;left:0;width:100%;height:250px;-ms-transform:translateY(-250px);transform:translateY(-250px);overflow-x:auto}.off-canvas-content .off-canvas.position-top{-ms-transform:translateY(-250px);transform:translateY(-250px)}.off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open{-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-top.has-transition-push{-ms-transform:translateY(250px);transform:translateY(250px)}.position-top.is-transition-push{box-shadow:inset 0 -13px 20px -13px rgba(10,10,10,.25)}.position-bottom{bottom:0;left:0;width:100%;height:250px;-ms-transform:translateY(250px);transform:translateY(250px);overflow-x:auto}.off-canvas-content .off-canvas.position-bottom{-ms-transform:translateY(250px);transform:translateY(250px)}.off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open{-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-bottom.has-transition-push{-ms-transform:translateY(-250px);transform:translateY(-250px)}.position-bottom.is-transition-push{box-shadow:inset 0 13px 20px -13px rgba(10,10,10,.25)}.off-canvas-content{-ms-transform:none;transform:none;transition:transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden}.off-canvas-content.has-transition-push{-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content .off-canvas.is-open{-ms-transform:translate(0,0);transform:translate(0,0)}@media print,screen and (min-width:40em){.position-left.reveal-for-medium{-ms-transform:none;transform:none;z-index:12;transition:none;visibility:visible}.position-left.reveal-for-medium .close-button{display:none}.off-canvas-content .position-left.reveal-for-medium{-ms-transform:none;transform:none}.off-canvas-content.has-reveal-left{margin-left:250px}.position-left.reveal-for-medium~.off-canvas-content{margin-left:250px}.position-right.reveal-for-medium{-ms-transform:none;transform:none;z-index:12;transition:none;visibility:visible}.position-right.reveal-for-medium .close-button{display:none}.off-canvas-content .position-right.reveal-for-medium{-ms-transform:none;transform:none}.off-canvas-content.has-reveal-right{margin-right:250px}.position-right.reveal-for-medium~.off-canvas-content{margin-right:250px}.position-top.reveal-for-medium{-ms-transform:none;transform:none;z-index:12;transition:none;visibility:visible}.position-top.reveal-for-medium .close-button{display:none}.off-canvas-content .position-top.reveal-for-medium{-ms-transform:none;transform:none}.off-canvas-content.has-reveal-top{margin-top:250px}.position-top.reveal-for-medium~.off-canvas-content{margin-top:250px}.position-bottom.reveal-for-medium{-ms-transform:none;transform:none;z-index:12;transition:none;visibility:visible}.position-bottom.reveal-for-medium .close-button{display:none}.off-canvas-content .position-bottom.reveal-for-medium{-ms-transform:none;transform:none}.off-canvas-content.has-reveal-bottom{margin-bottom:250px}.position-bottom.reveal-for-medium~.off-canvas-content{margin-bottom:250px}}@media print,screen and (min-width:64em){.position-left.reveal-for-large{-ms-transform:none;transform:none;z-index:12;transition:none;visibility:visible}.position-left.reveal-for-large .close-button{display:none}.off-canvas-content .position-left.reveal-for-large{-ms-transform:none;transform:none}.off-canvas-content.has-reveal-left{margin-left:250px}.position-left.reveal-for-large~.off-canvas-content{margin-left:250px}.position-right.reveal-for-large{-ms-transform:none;transform:none;z-index:12;transition:none;visibility:visible}.position-right.reveal-for-large .close-button{display:none}.off-canvas-content .position-right.reveal-for-large{-ms-transform:none;transform:none}.off-canvas-content.has-reveal-right{margin-right:250px}.position-right.reveal-for-large~.off-canvas-content{margin-right:250px}.position-top.reveal-for-large{-ms-transform:none;transform:none;z-index:12;transition:none;visibility:visible}.position-top.reveal-for-large .close-button{display:none}.off-canvas-content .position-top.reveal-for-large{-ms-transform:none;transform:none}.off-canvas-content.has-reveal-top{margin-top:250px}.position-top.reveal-for-large~.off-canvas-content{margin-top:250px}.position-bottom.reveal-for-large{-ms-transform:none;transform:none;z-index:12;transition:none;visibility:visible}.position-bottom.reveal-for-large .close-button{display:none}.off-canvas-content .position-bottom.reveal-for-large{-ms-transform:none;transform:none}.off-canvas-content.has-reveal-bottom{margin-bottom:250px}.position-bottom.reveal-for-large~.off-canvas-content{margin-bottom:250px}}@media print,screen and (min-width:40em){.off-canvas.in-canvas-for-medium{visibility:visible;height:auto;position:static;background:inherit;width:inherit;overflow:inherit;transition:inherit}.off-canvas.in-canvas-for-medium.position-bottom,.off-canvas.in-canvas-for-medium.position-left,.off-canvas.in-canvas-for-medium.position-right,.off-canvas.in-canvas-for-medium.position-top{box-shadow:none;-ms-transform:none;transform:none}.off-canvas.in-canvas-for-medium .close-button{display:none}}@media print,screen and (min-width:64em){.off-canvas.in-canvas-for-large{visibility:visible;height:auto;position:static;background:inherit;width:inherit;overflow:inherit;transition:inherit}.off-canvas.in-canvas-for-large.position-bottom,.off-canvas.in-canvas-for-large.position-left,.off-canvas.in-canvas-for-large.position-right,.off-canvas.in-canvas-for-large.position-top{box-shadow:none;-ms-transform:none;transform:none}.off-canvas.in-canvas-for-large .close-button{display:none}}.orbit{position:relative}.orbit-container{position:relative;height:0;margin:0;list-style:none;overflow:hidden}.orbit-slide{width:100%}.orbit-slide.no-motionui.is-active{top:0;left:0}.orbit-figure{margin:0}.orbit-image{width:100%;max-width:100%;margin:0}.orbit-caption{position:absolute;bottom:0;width:100%;margin-bottom:0;padding:1rem;background-color:rgba(10,10,10,.5);color:#fefefe}.orbit-next,.orbit-previous{position:absolute;top:50%;-ms-transform:translateY(-50%);transform:translateY(-50%);z-index:10;padding:1rem;color:#fefefe}[data-whatinput=mouse] .orbit-next,[data-whatinput=mouse] .orbit-previous{outline:0}.orbit-next:active,.orbit-next:focus,.orbit-next:hover,.orbit-previous:active,.orbit-previous:focus,.orbit-previous:hover{background-color:rgba(10,10,10,.5)}.orbit-previous{left:0}.orbit-next{left:auto;right:0}.orbit-bullets{position:relative;margin-top:.8rem;margin-bottom:.8rem;text-align:center}[data-whatinput=mouse] .orbit-bullets{outline:0}.orbit-bullets button{width:1.2rem;height:1.2rem;margin:.1rem;border-radius:50%;background-color:#cacaca}.orbit-bullets button:hover{background-color:#8a8a8a}.orbit-bullets button.is-active{background-color:#8a8a8a}.pagination{margin-left:0;margin-bottom:1rem}.pagination::after,.pagination::before{display:table;content:' ';-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-order:1;order:1}.pagination::after{clear:both}.pagination li{margin-right:.0625rem;border-radius:0;font-size:.875rem;display:none}.pagination li:first-child,.pagination li:last-child{display:inline-block}@media print,screen and (min-width:40em){.pagination li{display:inline-block}}.pagination a,.pagination button{display:block;padding:.1875rem .625rem;border-radius:0;color:#0a0a0a}.pagination a:hover,.pagination button:hover{background:#e6e6e6}.pagination .current{padding:.1875rem .625rem;background:#1779ba;color:#fefefe;cursor:default}.pagination .disabled{padding:.1875rem .625rem;color:#cacaca;cursor:not-allowed}.pagination .disabled:hover{background:0 0}.pagination .ellipsis::after{padding:.1875rem .625rem;content:'\2026';color:#0a0a0a}.pagination-previous a::before,.pagination-previous.disabled::before{display:inline-block;margin-right:.5rem;content:'\00ab'}.pagination-next a::after,.pagination-next.disabled::after{display:inline-block;margin-left:.5rem;content:'\00bb'}.progress{height:1rem;margin-bottom:1rem;border-radius:0;background-color:#cacaca}.progress.primary .progress-meter{background-color:#1779ba}.progress.secondary .progress-meter{background-color:#767676}.progress.success .progress-meter{background-color:#3adb76}.progress.warning .progress-meter{background-color:#ffae00}.progress.alert .progress-meter{background-color:#cc4b37}.progress-meter{position:relative;display:block;width:0;height:100%;background-color:#1779ba}.progress-meter-text{position:absolute;top:50%;left:50%;-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);position:absolute;margin:0;font-size:.75rem;font-weight:700;color:#fefefe;white-space:nowrap}body.is-reveal-open{overflow:hidden}html.is-reveal-open,html.is-reveal-open body{min-height:100%;overflow:hidden;position:fixed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.reveal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1005;display:none;background-color:rgba(10,10,10,.45);overflow-y:scroll}.reveal{z-index:1006;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:none;padding:1rem;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;position:relative;top:100px;margin-right:auto;margin-left:auto;overflow-y:auto}[data-whatinput=mouse] .reveal{outline:0}@media print,screen and (min-width:40em){.reveal{min-height:0}}.reveal .column{min-width:0}.reveal>:last-child{margin-bottom:0}@media print,screen and (min-width:40em){.reveal{width:600px;max-width:75rem}}.reveal.collapse{padding:0}@media print,screen and (min-width:40em){.reveal.tiny{width:30%;max-width:75rem}}@media print,screen and (min-width:40em){.reveal.small{width:50%;max-width:75rem}}@media print,screen and (min-width:40em){.reveal.large{width:90%;max-width:75rem}}.reveal.full{top:0;left:0;width:100%;max-width:none;height:100%;height:100vh;min-height:100vh;margin-left:0;border:0;border-radius:0}@media screen and (max-width:39.9375em){.reveal{top:0;left:0;width:100%;max-width:none;height:100%;height:100vh;min-height:100vh;margin-left:0;border:0;border-radius:0}}.reveal.without-overlay{position:fixed}.slider{position:relative;height:.5rem;margin-top:1.25rem;margin-bottom:2.25rem;background-color:#e6e6e6;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-touch-action:none;touch-action:none}.slider-fill{position:absolute;top:0;left:0;display:inline-block;max-width:100%;height:.5rem;background-color:#cacaca;transition:all .2s ease-in-out}.slider-fill.is-dragging{transition:all 0s linear}.slider-handle{position:absolute;top:50%;-ms-transform:translateY(-50%);transform:translateY(-50%);left:0;z-index:1;display:inline-block;width:1.4rem;height:1.4rem;border-radius:0;background-color:#1779ba;transition:all .2s ease-in-out;-ms-touch-action:manipulation;touch-action:manipulation}[data-whatinput=mouse] .slider-handle{outline:0}.slider-handle:hover{background-color:#14679e}.slider-handle.is-dragging{transition:all 0s linear}.slider.disabled,.slider[disabled]{opacity:.25;cursor:not-allowed}.slider.vertical{display:inline-block;width:.5rem;height:12.5rem;margin:0 1.25rem;-ms-transform:scale(1,-1);transform:scale(1,-1)}.slider.vertical .slider-fill{top:0;width:.5rem;max-height:100%}.slider.vertical .slider-handle{position:absolute;top:0;left:50%;width:1.4rem;height:1.4rem;-ms-transform:translateX(-50%);transform:translateX(-50%)}.sticky-container{position:relative}.sticky{position:relative;z-index:0;transform:translate3d(0,0,0)}.sticky.is-stuck{position:fixed;z-index:5;width:100%}.sticky.is-stuck.is-at-top{top:0}.sticky.is-stuck.is-at-bottom{bottom:0}.sticky.is-anchored{position:relative;right:auto;left:auto}.sticky.is-anchored.is-at-bottom{bottom:0}.switch{height:2rem;position:relative;margin-bottom:1rem;outline:0;font-size:.875rem;font-weight:700;color:#fefefe;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.switch-input{position:absolute;margin-bottom:0;opacity:0}.switch-paddle{position:relative;display:block;width:4rem;height:2rem;border-radius:0;background:#cacaca;transition:all .25s ease-out;font-weight:inherit;color:inherit;cursor:pointer}input+.switch-paddle{margin:0}.switch-paddle::after{position:absolute;top:.25rem;left:.25rem;display:block;width:1.5rem;height:1.5rem;transform:translate3d(0,0,0);border-radius:0;background:#fefefe;transition:all .25s ease-out;content:''}input:checked~.switch-paddle{background:#1779ba}input:checked~.switch-paddle::after{left:2.25rem}[data-whatinput=mouse] input:focus~.switch-paddle{outline:0}.switch-active,.switch-inactive{position:absolute;top:50%;-ms-transform:translateY(-50%);transform:translateY(-50%)}.switch-active{left:8%;display:none}input:checked+label>.switch-active{display:block}.switch-inactive{right:15%}input:checked+label>.switch-inactive{display:none}.switch.tiny{height:1.5rem}.switch.tiny .switch-paddle{width:3rem;height:1.5rem;font-size:.625rem}.switch.tiny .switch-paddle::after{top:.25rem;left:.25rem;width:1rem;height:1rem}.switch.tiny input:checked~.switch-paddle::after{left:1.75rem}.switch.small{height:1.75rem}.switch.small .switch-paddle{width:3.5rem;height:1.75rem;font-size:.75rem}.switch.small .switch-paddle::after{top:.25rem;left:.25rem;width:1.25rem;height:1.25rem}.switch.small input:checked~.switch-paddle::after{left:2rem}.switch.large{height:2.5rem}.switch.large .switch-paddle{width:5rem;height:2.5rem;font-size:1rem}.switch.large .switch-paddle::after{top:.25rem;left:.25rem;width:2rem;height:2rem}.switch.large input:checked~.switch-paddle::after{left:2.75rem}table{border-collapse:collapse;width:100%;margin-bottom:1rem;border-radius:0}table tbody,table tfoot,table thead{border:1px solid #f1f1f1;background-color:#fefefe}table caption{padding:.5rem .625rem .625rem;font-weight:700}table thead{background:#f8f8f8;color:#0a0a0a}table tfoot{background:#f1f1f1;color:#0a0a0a}table tfoot tr,table thead tr{background:0 0}table tfoot td,table tfoot th,table thead td,table thead th{padding:.5rem .625rem .625rem;font-weight:700;text-align:left}table tbody td,table tbody th{padding:.5rem .625rem .625rem}table tbody tr:nth-child(even){border-bottom:0;background-color:#f1f1f1}table.unstriped tbody{background-color:#fefefe}table.unstriped tbody tr{border-bottom:0;border-bottom:1px solid #f1f1f1;background-color:#fefefe}@media screen and (max-width:63.9375em){table.stack thead{display:none}table.stack tfoot{display:none}table.stack td,table.stack th,table.stack tr{display:block}table.stack td{border-top:0}}table.scroll{display:block;width:100%;overflow-x:auto}table.hover thead tr:hover{background-color:#f3f3f3}table.hover tfoot tr:hover{background-color:#ececec}table.hover tbody tr:hover{background-color:#f9f9f9}table.hover:not(.unstriped) tr:nth-of-type(even):hover{background-color:#ececec}.table-scroll{overflow-x:auto}.table-scroll table{width:auto}.tabs{margin:0;border:1px solid #e6e6e6;background:#fefefe;list-style-type:none}.tabs::after,.tabs::before{display:table;content:' ';-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-order:1;order:1}.tabs::after{clear:both}.tabs.vertical>li{display:block;float:none;width:auto}.tabs.simple>li>a{padding:0}.tabs.simple>li>a:hover{background:0 0}.tabs.primary{background:#1779ba}.tabs.primary>li>a{color:#fefefe}.tabs.primary>li>a:focus,.tabs.primary>li>a:hover{background:#1673b1}.tabs-title{float:left}.tabs-title>a{display:block;padding:1.25rem 1.5rem;font-size:.75rem;line-height:1;color:#1779ba}.tabs-title>a:hover{background:#fefefe;color:#1468a0}.tabs-title>a:focus,.tabs-title>a[aria-selected=true]{background:#e6e6e6;color:#1779ba}.tabs-content{border:1px solid #e6e6e6;border-top:0;background:#fefefe;color:#0a0a0a;transition:all .5s ease}.tabs-content.vertical{border:1px solid #e6e6e6;border-left:0}.tabs-panel{display:none;padding:1rem}.tabs-panel.is-active{display:block}.thumbnail{display:inline-block;max-width:100%;margin-bottom:1rem;border:solid 4px #fefefe;border-radius:0;box-shadow:0 0 0 1px rgba(10,10,10,.2);line-height:0}a.thumbnail{transition:box-shadow .2s ease-out}a.thumbnail:focus,a.thumbnail:hover{box-shadow:0 0 6px 1px rgba(23,121,186,.5)}a.thumbnail image{box-shadow:none}.title-bar{padding:.5rem;background:#0a0a0a;color:#fefefe;display:-ms-flexbox;display:flex;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:center;align-items:center}.title-bar .menu-icon{margin-left:.25rem;margin-right:.25rem}.title-bar-left,.title-bar-right{-ms-flex:1 1 0px;flex:1 1 0px}.title-bar-right{text-align:right}.title-bar-title{display:inline-block;vertical-align:middle;font-weight:700}.has-tip{position:relative;display:inline-block;border-bottom:dotted 1px #8a8a8a;font-weight:700;cursor:help}.tooltip{position:absolute;top:calc(100% + .6495rem);z-index:1200;max-width:10rem;padding:.75rem;border-radius:0;background-color:#0a0a0a;font-size:80%;color:#fefefe}.tooltip::before{position:absolute}.tooltip.bottom::before{display:block;width:0;height:0;border:inset .75rem;content:'';border-top-width:0;border-bottom-style:solid;border-color:transparent transparent #0a0a0a;bottom:100%}.tooltip.bottom.align-center::before{left:50%;-ms-transform:translateX(-50%);transform:translateX(-50%)}.tooltip.top::before{display:block;width:0;height:0;border:inset .75rem;content:'';border-bottom-width:0;border-top-style:solid;border-color:#0a0a0a transparent transparent;top:100%;bottom:auto}.tooltip.top.align-center::before{left:50%;-ms-transform:translateX(-50%);transform:translateX(-50%)}.tooltip.left::before{display:block;width:0;height:0;border:inset .75rem;content:'';border-right-width:0;border-left-style:solid;border-color:transparent transparent transparent #0a0a0a;left:100%}.tooltip.left.align-center::before{bottom:auto;top:50%;-ms-transform:translateY(-50%);transform:translateY(-50%)}.tooltip.right::before{display:block;width:0;height:0;border:inset .75rem;content:'';border-left-width:0;border-right-style:solid;border-color:transparent #0a0a0a transparent transparent;right:100%;left:auto}.tooltip.right.align-center::before{bottom:auto;top:50%;-ms-transform:translateY(-50%);transform:translateY(-50%)}.tooltip.align-top::before{bottom:auto;top:10%}.tooltip.align-bottom::before{bottom:10%;top:auto}.tooltip.align-left::before{left:10%;right:auto}.tooltip.align-right::before{left:auto;right:10%}.top-bar{display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;padding:.5rem;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar,.top-bar ul{background-color:#e6e6e6}.top-bar input{max-width:200px;margin-right:1rem}.top-bar .input-group-field{width:100%;margin-right:0}.top-bar input.button{width:auto}.top-bar .top-bar-left,.top-bar .top-bar-right{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}@media print,screen and (min-width:40em){.top-bar{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.top-bar .top-bar-left{-ms-flex:1 1 auto;flex:1 1 auto;margin-right:auto}.top-bar .top-bar-right{-ms-flex:0 1 auto;flex:0 1 auto;margin-left:auto}}@media screen and (max-width:63.9375em){.top-bar.stacked-for-medium{-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar.stacked-for-medium .top-bar-left,.top-bar.stacked-for-medium .top-bar-right{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}}@media screen and (max-width:74.9375em){.top-bar.stacked-for-large{-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar.stacked-for-large .top-bar-left,.top-bar.stacked-for-large .top-bar-right{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}}.top-bar-title{-ms-flex:0 0 auto;flex:0 0 auto;margin:.5rem 1rem .5rem 0}.top-bar-left,.top-bar-right{-ms-flex:0 0 auto;flex:0 0 auto}.hide{display:none!important}.invisible{visibility:hidden}@media screen and (max-width:39.9375em){.hide-for-small-only{display:none!important}}@media screen and (max-width:0em),screen and (min-width:40em){.show-for-small-only{display:none!important}}@media print,screen and (min-width:40em){.hide-for-medium{display:none!important}}@media screen and (max-width:39.9375em){.show-for-medium{display:none!important}}@media screen and (min-width:40em) and (max-width:63.9375em){.hide-for-medium-only{display:none!important}}@media screen and (max-width:39.9375em),screen and (min-width:64em){.show-for-medium-only{display:none!important}}@media print,screen and (min-width:64em){.hide-for-large{display:none!important}}@media screen and (max-width:63.9375em){.show-for-large{display:none!important}}@media screen and (min-width:64em) and (max-width:74.9375em){.hide-for-large-only{display:none!important}}@media screen and (max-width:63.9375em),screen and (min-width:75em){.show-for-large-only{display:none!important}}.show-for-sr,.show-on-focus{position:absolute!important;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;-webkit-clip-path:inset(50%);clip-path:inset(50%);border:0}.show-on-focus:active,.show-on-focus:focus{position:static!important;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal;-webkit-clip-path:none;clip-path:none}.hide-for-portrait,.show-for-landscape{display:block!important}@media screen and (orientation:landscape){.hide-for-portrait,.show-for-landscape{display:block!important}}@media screen and (orientation:portrait){.hide-for-portrait,.show-for-landscape{display:none!important}}.hide-for-landscape,.show-for-portrait{display:none!important}@media screen and (orientation:landscape){.hide-for-landscape,.show-for-portrait{display:none!important}}@media screen and (orientation:portrait){.hide-for-landscape,.show-for-portrait{display:block!important}}.float-left{float:left!important}.float-right{float:right!important}.float-center{display:block;margin-right:auto;margin-left:auto}.clearfix::after,.clearfix::before{display:table;content:' ';-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-order:1;order:1}.clearfix::after{clear:both}.slide-in-down.mui-enter{transition-duration:.5s;transition-timing-function:linear;-ms-transform:translateY(-100%);transform:translateY(-100%);transition-property:transform,opacity;-webkit-backface-visibility:hidden;backface-visibility:hidden}.slide-in-down.mui-enter.mui-enter-active{-ms-transform:translateY(0);transform:translateY(0)}.slide-in-left.mui-enter{transition-duration:.5s;transition-timing-function:linear;-ms-transform:translateX(-100%);transform:translateX(-100%);transition-property:transform,opacity;-webkit-backface-visibility:hidden;backface-visibility:hidden}.slide-in-left.mui-enter.mui-enter-active{-ms-transform:translateX(0);transform:translateX(0)}.slide-in-up.mui-enter{transition-duration:.5s;transition-timing-function:linear;-ms-transform:translateY(100%);transform:translateY(100%);transition-property:transform,opacity;-webkit-backface-visibility:hidden;backface-visibility:hidden}.slide-in-up.mui-enter.mui-enter-active{-ms-transform:translateY(0);transform:translateY(0)}.slide-in-right.mui-enter{transition-duration:.5s;transition-timing-function:linear;-ms-transform:translateX(100%);transform:translateX(100%);transition-property:transform,opacity;-webkit-backface-visibility:hidden;backface-visibility:hidden}.slide-in-right.mui-enter.mui-enter-active{-ms-transform:translateX(0);transform:translateX(0)}.slide-out-down.mui-leave{transition-duration:.5s;transition-timing-function:linear;-ms-transform:translateY(0);transform:translateY(0);transition-property:transform,opacity;-webkit-backface-visibility:hidden;backface-visibility:hidden}.slide-out-down.mui-leave.mui-leave-active{-ms-transform:translateY(100%);transform:translateY(100%)}.slide-out-right.mui-leave{transition-duration:.5s;transition-timing-function:linear;-ms-transform:translateX(0);transform:translateX(0);transition-property:transform,opacity;-webkit-backface-visibility:hidden;backface-visibility:hidden}.slide-out-right.mui-leave.mui-leave-active{-ms-transform:translateX(100%);transform:translateX(100%)}.slide-out-up.mui-leave{transition-duration:.5s;transition-timing-function:linear;-ms-transform:translateY(0);transform:translateY(0);transition-property:transform,opacity;-webkit-backface-visibility:hidden;backface-visibility:hidden}.slide-out-up.mui-leave.mui-leave-active{-ms-transform:translateY(-100%);transform:translateY(-100%)}.slide-out-left.mui-leave{transition-duration:.5s;transition-timing-function:linear;-ms-transform:translateX(0);transform:translateX(0);transition-property:transform,opacity;-webkit-backface-visibility:hidden;backface-visibility:hidden}.slide-out-left.mui-leave.mui-leave-active{-ms-transform:translateX(-100%);transform:translateX(-100%)}.fade-in.mui-enter{transition-duration:.5s;transition-timing-function:linear;opacity:0;transition-property:opacity}.fade-in.mui-enter.mui-enter-active{opacity:1}.fade-out.mui-leave{transition-duration:.5s;transition-timing-function:linear;opacity:1;transition-property:opacity}.fade-out.mui-leave.mui-leave-active{opacity:0}.hinge-in-from-top.mui-enter{transition-duration:.5s;transition-timing-function:linear;transform:perspective(2000px) rotateX(-90deg);-ms-transform-origin:top;transform-origin:top;transition-property:transform,opacity;opacity:0}.hinge-in-from-top.mui-enter.mui-enter-active{transform:perspective(2000px) rotate(0);opacity:1}.hinge-in-from-right.mui-enter{transition-duration:.5s;transition-timing-function:linear;transform:perspective(2000px) rotateY(-90deg);-ms-transform-origin:right;transform-origin:right;transition-property:transform,opacity;opacity:0}.hinge-in-from-right.mui-enter.mui-enter-active{transform:perspective(2000px) rotate(0);opacity:1}.hinge-in-from-bottom.mui-enter{transition-duration:.5s;transition-timing-function:linear;transform:perspective(2000px) rotateX(90deg);-ms-transform-origin:bottom;transform-origin:bottom;transition-property:transform,opacity;opacity:0}.hinge-in-from-bottom.mui-enter.mui-enter-active{transform:perspective(2000px) rotate(0);opacity:1}.hinge-in-from-left.mui-enter{transition-duration:.5s;transition-timing-function:linear;transform:perspective(2000px) rotateY(90deg);-ms-transform-origin:left;transform-origin:left;transition-property:transform,opacity;opacity:0}.hinge-in-from-left.mui-enter.mui-enter-active{transform:perspective(2000px) rotate(0);opacity:1}.hinge-in-from-middle-x.mui-enter{transition-duration:.5s;transition-timing-function:linear;transform:perspective(2000px) rotateX(-90deg);-ms-transform-origin:center;transform-origin:center;transition-property:transform,opacity;opacity:0}.hinge-in-from-middle-x.mui-enter.mui-enter-active{transform:perspective(2000px) rotate(0);opacity:1}.hinge-in-from-middle-y.mui-enter{transition-duration:.5s;transition-timing-function:linear;transform:perspective(2000px) rotateY(-90deg);-ms-transform-origin:center;transform-origin:center;transition-property:transform,opacity;opacity:0}.hinge-in-from-middle-y.mui-enter.mui-enter-active{transform:perspective(2000px) rotate(0);opacity:1}.hinge-out-from-top.mui-leave{transition-duration:.5s;transition-timing-function:linear;transform:perspective(2000px) rotate(0);-ms-transform-origin:top;transform-origin:top;transition-property:transform,opacity;opacity:1}.hinge-out-from-top.mui-leave.mui-leave-active{transform:perspective(2000px) rotateX(-90deg);opacity:0}.hinge-out-from-right.mui-leave{transition-duration:.5s;transition-timing-function:linear;transform:perspective(2000px) rotate(0);-ms-transform-origin:right;transform-origin:right;transition-property:transform,opacity;opacity:1}.hinge-out-from-right.mui-leave.mui-leave-active{transform:perspective(2000px) rotateY(-90deg);opacity:0}.hinge-out-from-bottom.mui-leave{transition-duration:.5s;transition-timing-function:linear;transform:perspective(2000px) rotate(0);-ms-transform-origin:bottom;transform-origin:bottom;transition-property:transform,opacity;opacity:1}.hinge-out-from-bottom.mui-leave.mui-leave-active{transform:perspective(2000px) rotateX(90deg);opacity:0}.hinge-out-from-left.mui-leave{transition-duration:.5s;transition-timing-function:linear;transform:perspective(2000px) rotate(0);-ms-transform-origin:left;transform-origin:left;transition-property:transform,opacity;opacity:1}.hinge-out-from-left.mui-leave.mui-leave-active{transform:perspective(2000px) rotateY(90deg);opacity:0}.hinge-out-from-middle-x.mui-leave{transition-duration:.5s;transition-timing-function:linear;transform:perspective(2000px) rotate(0);-ms-transform-origin:center;transform-origin:center;transition-property:transform,opacity;opacity:1}.hinge-out-from-middle-x.mui-leave.mui-leave-active{transform:perspective(2000px) rotateX(-90deg);opacity:0}.hinge-out-from-middle-y.mui-leave{transition-duration:.5s;transition-timing-function:linear;transform:perspective(2000px) rotate(0);-ms-transform-origin:center;transform-origin:center;transition-property:transform,opacity;opacity:1}.hinge-out-from-middle-y.mui-leave.mui-leave-active{transform:perspective(2000px) rotateY(-90deg);opacity:0}.scale-in-up.mui-enter{transition-duration:.5s;transition-timing-function:linear;-ms-transform:scale(.5);transform:scale(.5);transition-property:transform,opacity;opacity:0}.scale-in-up.mui-enter.mui-enter-active{-ms-transform:scale(1);transform:scale(1);opacity:1}.scale-in-down.mui-enter{transition-duration:.5s;transition-timing-function:linear;-ms-transform:scale(1.5);transform:scale(1.5);transition-property:transform,opacity;opacity:0}.scale-in-down.mui-enter.mui-enter-active{-ms-transform:scale(1);transform:scale(1);opacity:1}.scale-out-up.mui-leave{transition-duration:.5s;transition-timing-function:linear;-ms-transform:scale(1);transform:scale(1);transition-property:transform,opacity;opacity:1}.scale-out-up.mui-leave.mui-leave-active{-ms-transform:scale(1.5);transform:scale(1.5);opacity:0}.scale-out-down.mui-leave{transition-duration:.5s;transition-timing-function:linear;-ms-transform:scale(1);transform:scale(1);transition-property:transform,opacity;opacity:1}.scale-out-down.mui-leave.mui-leave-active{-ms-transform:scale(.5);transform:scale(.5);opacity:0}.spin-in.mui-enter{transition-duration:.5s;transition-timing-function:linear;-ms-transform:rotate(-.75turn);transform:rotate(-.75turn);transition-property:transform,opacity;opacity:0}.spin-in.mui-enter.mui-enter-active{-ms-transform:rotate(0);transform:rotate(0);opacity:1}.spin-out.mui-leave{transition-duration:.5s;transition-timing-function:linear;-ms-transform:rotate(0);transform:rotate(0);transition-property:transform,opacity;opacity:1}.spin-out.mui-leave.mui-leave-active{-ms-transform:rotate(.75turn);transform:rotate(.75turn);opacity:0}.spin-in-ccw.mui-enter{transition-duration:.5s;transition-timing-function:linear;-ms-transform:rotate(.75turn);transform:rotate(.75turn);transition-property:transform,opacity;opacity:0}.spin-in-ccw.mui-enter.mui-enter-active{-ms-transform:rotate(0);transform:rotate(0);opacity:1}.spin-out-ccw.mui-leave{transition-duration:.5s;transition-timing-function:linear;-ms-transform:rotate(0);transform:rotate(0);transition-property:transform,opacity;opacity:1}.spin-out-ccw.mui-leave.mui-leave-active{-ms-transform:rotate(-.75turn);transform:rotate(-.75turn);opacity:0}.slow{transition-duration:750ms!important}.fast{transition-duration:250ms!important}.linear{transition-timing-function:linear!important}.ease{transition-timing-function:ease!important}.ease-in{transition-timing-function:ease-in!important}.ease-out{transition-timing-function:ease-out!important}.ease-in-out{transition-timing-function:ease-in-out!important}.bounce-in{transition-timing-function:cubic-bezier(.485,.155,.24,1.245)!important}.bounce-out{transition-timing-function:cubic-bezier(.485,.155,.515,.845)!important}.bounce-in-out{transition-timing-function:cubic-bezier(.76,-.245,.24,1.245)!important}.short-delay{transition-delay:.3s!important}.long-delay{transition-delay:.7s!important}.shake{animation-name:shake-7}@keyframes shake-7{0%,10%,20%,30%,40%,50%,60%,70%,80%,90%{transform:translateX(7%)}15%,25%,35%,45%,5%,55%,65%,75%,85%,95%{transform:translateX(-7%)}}.spin-cw{animation-name:spin-cw-1turn}@keyframes spin-cw-1turn{0%{transform:rotate(-1turn)}100%{transform:rotate(0)}}.spin-ccw{animation-name:spin-cw-1turn}@keyframes spin-cw-1turn{0%{transform:rotate(0)}100%{transform:rotate(1turn)}}.wiggle{animation-name:wiggle-7deg}@keyframes wiggle-7deg{40%,50%,60%{transform:rotate(7deg)}35%,45%,55%,65%{transform:rotate(-7deg)}0%,100%,30%,70%{transform:rotate(0)}}.shake,.spin-ccw,.spin-cw,.wiggle{animation-duration:.5s}.infinite{animation-iteration-count:infinite}.slow{animation-duration:750ms!important}.fast{animation-duration:250ms!important}.linear{animation-timing-function:linear!important}.ease{animation-timing-function:ease!important}.ease-in{animation-timing-function:ease-in!important}.ease-out{animation-timing-function:ease-out!important}.ease-in-out{animation-timing-function:ease-in-out!important}.bounce-in{animation-timing-function:cubic-bezier(.485,.155,.24,1.245)!important}.bounce-out{animation-timing-function:cubic-bezier(.485,.155,.515,.845)!important}.bounce-in-out{animation-timing-function:cubic-bezier(.76,-.245,.24,1.245)!important}.short-delay{animation-delay:.3s!important}.long-delay{animation-delay:.7s!important} \ No newline at end of file diff --git a/volume/html/favicon.ico b/volume/html/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..481467e1a7e1d2dc3373e7068f5346a4b057ebd0 GIT binary patch literal 101383 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 IWgLP30|?^+kpKVy literal 0 HcmV?d00001 diff --git a/volume/html/header.shtml b/volume/html/header.shtml new file mode 100644 index 0000000..0cde1f8 --- /dev/null +++ b/volume/html/header.shtml @@ -0,0 +1,31 @@ +
+
+ +
+
+ +
+
+ +
+
+

Setting

+ +
+ User Name: +
+
+ + +
+
diff --git a/volume/html/icon/foundation-icons.css b/volume/html/icon/foundation-icons.css new file mode 100644 index 0000000..d866a73 --- /dev/null +++ b/volume/html/icon/foundation-icons.css @@ -0,0 +1,594 @@ +/* + * Foundation Icons v 3.0 + * Made by ZURB 2013 http://zurb.com/playground/foundation-icon-fonts-3 + * MIT License + */ + +@font-face { + font-family: "foundation-icons"; + src: url("foundation-icons.eot"); + src: url("foundation-icons.eot?#iefix") format("embedded-opentype"), + url("foundation-icons.woff") format("woff"), + url("foundation-icons.ttf") format("truetype"), + url("foundation-icons.svg#fontcustom") format("svg"); + font-weight: normal; + font-style: normal; +} + +.fi-address-book:before, +.fi-alert:before, +.fi-align-center:before, +.fi-align-justify:before, +.fi-align-left:before, +.fi-align-right:before, +.fi-anchor:before, +.fi-annotate:before, +.fi-archive:before, +.fi-arrow-down:before, +.fi-arrow-left:before, +.fi-arrow-right:before, +.fi-arrow-up:before, +.fi-arrows-compress:before, +.fi-arrows-expand:before, +.fi-arrows-in:before, +.fi-arrows-out:before, +.fi-asl:before, +.fi-asterisk:before, +.fi-at-sign:before, +.fi-background-color:before, +.fi-battery-empty:before, +.fi-battery-full:before, +.fi-battery-half:before, +.fi-bitcoin-circle:before, +.fi-bitcoin:before, +.fi-blind:before, +.fi-bluetooth:before, +.fi-bold:before, +.fi-book-bookmark:before, +.fi-book:before, +.fi-bookmark:before, +.fi-braille:before, +.fi-burst-new:before, +.fi-burst-sale:before, +.fi-burst:before, +.fi-calendar:before, +.fi-camera:before, +.fi-check:before, +.fi-checkbox:before, +.fi-clipboard-notes:before, +.fi-clipboard-pencil:before, +.fi-clipboard:before, +.fi-clock:before, +.fi-closed-caption:before, +.fi-cloud:before, +.fi-comment-minus:before, +.fi-comment-quotes:before, +.fi-comment-video:before, +.fi-comment:before, +.fi-comments:before, +.fi-compass:before, +.fi-contrast:before, +.fi-credit-card:before, +.fi-crop:before, +.fi-crown:before, +.fi-css3:before, +.fi-database:before, +.fi-die-five:before, +.fi-die-four:before, +.fi-die-one:before, +.fi-die-six:before, +.fi-die-three:before, +.fi-die-two:before, +.fi-dislike:before, +.fi-dollar-bill:before, +.fi-dollar:before, +.fi-download:before, +.fi-eject:before, +.fi-elevator:before, +.fi-euro:before, +.fi-eye:before, +.fi-fast-forward:before, +.fi-female-symbol:before, +.fi-female:before, +.fi-filter:before, +.fi-first-aid:before, +.fi-flag:before, +.fi-folder-add:before, +.fi-folder-lock:before, +.fi-folder:before, +.fi-foot:before, +.fi-foundation:before, +.fi-graph-bar:before, +.fi-graph-horizontal:before, +.fi-graph-pie:before, +.fi-graph-trend:before, +.fi-guide-dog:before, +.fi-hearing-aid:before, +.fi-heart:before, +.fi-home:before, +.fi-html5:before, +.fi-indent-less:before, +.fi-indent-more:before, +.fi-info:before, +.fi-italic:before, +.fi-key:before, +.fi-laptop:before, +.fi-layout:before, +.fi-lightbulb:before, +.fi-like:before, +.fi-link:before, +.fi-list-bullet:before, +.fi-list-number:before, +.fi-list-thumbnails:before, +.fi-list:before, +.fi-lock:before, +.fi-loop:before, +.fi-magnifying-glass:before, +.fi-mail:before, +.fi-male-female:before, +.fi-male-symbol:before, +.fi-male:before, +.fi-map:before, +.fi-marker:before, +.fi-megaphone:before, +.fi-microphone:before, +.fi-minus-circle:before, +.fi-minus:before, +.fi-mobile-signal:before, +.fi-mobile:before, +.fi-monitor:before, +.fi-mountains:before, +.fi-music:before, +.fi-next:before, +.fi-no-dogs:before, +.fi-no-smoking:before, +.fi-page-add:before, +.fi-page-copy:before, +.fi-page-csv:before, +.fi-page-delete:before, +.fi-page-doc:before, +.fi-page-edit:before, +.fi-page-export-csv:before, +.fi-page-export-doc:before, +.fi-page-export-pdf:before, +.fi-page-export:before, +.fi-page-filled:before, +.fi-page-multiple:before, +.fi-page-pdf:before, +.fi-page-remove:before, +.fi-page-search:before, +.fi-page:before, +.fi-paint-bucket:before, +.fi-paperclip:before, +.fi-pause:before, +.fi-paw:before, +.fi-paypal:before, +.fi-pencil:before, +.fi-photo:before, +.fi-play-circle:before, +.fi-play-video:before, +.fi-play:before, +.fi-plus:before, +.fi-pound:before, +.fi-power:before, +.fi-previous:before, +.fi-price-tag:before, +.fi-pricetag-multiple:before, +.fi-print:before, +.fi-prohibited:before, +.fi-projection-screen:before, +.fi-puzzle:before, +.fi-quote:before, +.fi-record:before, +.fi-refresh:before, +.fi-results-demographics:before, +.fi-results:before, +.fi-rewind-ten:before, +.fi-rewind:before, +.fi-rss:before, +.fi-safety-cone:before, +.fi-save:before, +.fi-share:before, +.fi-sheriff-badge:before, +.fi-shield:before, +.fi-shopping-bag:before, +.fi-shopping-cart:before, +.fi-shuffle:before, +.fi-skull:before, +.fi-social-500px:before, +.fi-social-adobe:before, +.fi-social-amazon:before, +.fi-social-android:before, +.fi-social-apple:before, +.fi-social-behance:before, +.fi-social-bing:before, +.fi-social-blogger:before, +.fi-social-delicious:before, +.fi-social-designer-news:before, +.fi-social-deviant-art:before, +.fi-social-digg:before, +.fi-social-dribbble:before, +.fi-social-drive:before, +.fi-social-dropbox:before, +.fi-social-evernote:before, +.fi-social-facebook:before, +.fi-social-flickr:before, +.fi-social-forrst:before, +.fi-social-foursquare:before, +.fi-social-game-center:before, +.fi-social-github:before, +.fi-social-google-plus:before, +.fi-social-hacker-news:before, +.fi-social-hi5:before, +.fi-social-instagram:before, +.fi-social-joomla:before, +.fi-social-lastfm:before, +.fi-social-linkedin:before, +.fi-social-medium:before, +.fi-social-myspace:before, +.fi-social-orkut:before, +.fi-social-path:before, +.fi-social-picasa:before, +.fi-social-pinterest:before, +.fi-social-rdio:before, +.fi-social-reddit:before, +.fi-social-skillshare:before, +.fi-social-skype:before, +.fi-social-smashing-mag:before, +.fi-social-snapchat:before, +.fi-social-spotify:before, +.fi-social-squidoo:before, +.fi-social-stack-overflow:before, +.fi-social-steam:before, +.fi-social-stumbleupon:before, +.fi-social-treehouse:before, +.fi-social-tumblr:before, +.fi-social-twitter:before, +.fi-social-vimeo:before, +.fi-social-windows:before, +.fi-social-xbox:before, +.fi-social-yahoo:before, +.fi-social-yelp:before, +.fi-social-youtube:before, +.fi-social-zerply:before, +.fi-social-zurb:before, +.fi-sound:before, +.fi-star:before, +.fi-stop:before, +.fi-strikethrough:before, +.fi-subscript:before, +.fi-superscript:before, +.fi-tablet-landscape:before, +.fi-tablet-portrait:before, +.fi-target-two:before, +.fi-target:before, +.fi-telephone-accessible:before, +.fi-telephone:before, +.fi-text-color:before, +.fi-thumbnails:before, +.fi-ticket:before, +.fi-torso-business:before, +.fi-torso-female:before, +.fi-torso:before, +.fi-torsos-all-female:before, +.fi-torsos-all:before, +.fi-torsos-female-male:before, +.fi-torsos-male-female:before, +.fi-torsos:before, +.fi-trash:before, +.fi-trees:before, +.fi-trophy:before, +.fi-underline:before, +.fi-universal-access:before, +.fi-unlink:before, +.fi-unlock:before, +.fi-upload-cloud:before, +.fi-upload:before, +.fi-usb:before, +.fi-video:before, +.fi-volume-none:before, +.fi-volume-strike:before, +.fi-volume:before, +.fi-web:before, +.fi-wheelchair:before, +.fi-widget:before, +.fi-wrench:before, +.fi-x-circle:before, +.fi-x:before, +.fi-yen:before, +.fi-zoom-in:before, +.fi-zoom-out:before { + font-family: "foundation-icons"; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + -webkit-font-smoothing: antialiased; + display: inline-block; + text-decoration: inherit; +} + +.fi-address-book:before { content: "\f100"; } +.fi-alert:before { content: "\f101"; } +.fi-align-center:before { content: "\f102"; } +.fi-align-justify:before { content: "\f103"; } +.fi-align-left:before { content: "\f104"; } +.fi-align-right:before { content: "\f105"; } +.fi-anchor:before { content: "\f106"; } +.fi-annotate:before { content: "\f107"; } +.fi-archive:before { content: "\f108"; } +.fi-arrow-down:before { content: "\f109"; } +.fi-arrow-left:before { content: "\f10a"; } +.fi-arrow-right:before { content: "\f10b"; } +.fi-arrow-up:before { content: "\f10c"; } +.fi-arrows-compress:before { content: "\f10d"; } +.fi-arrows-expand:before { content: "\f10e"; } +.fi-arrows-in:before { content: "\f10f"; } +.fi-arrows-out:before { content: "\f110"; } +.fi-asl:before { content: "\f111"; } +.fi-asterisk:before { content: "\f112"; } +.fi-at-sign:before { content: "\f113"; } +.fi-background-color:before { content: "\f114"; } +.fi-battery-empty:before { content: "\f115"; } +.fi-battery-full:before { content: "\f116"; } +.fi-battery-half:before { content: "\f117"; } +.fi-bitcoin-circle:before { content: "\f118"; } +.fi-bitcoin:before { content: "\f119"; } +.fi-blind:before { content: "\f11a"; } +.fi-bluetooth:before { content: "\f11b"; } +.fi-bold:before { content: "\f11c"; } +.fi-book-bookmark:before { content: "\f11d"; } +.fi-book:before { content: "\f11e"; } +.fi-bookmark:before { content: "\f11f"; } +.fi-braille:before { content: "\f120"; } +.fi-burst-new:before { content: "\f121"; } +.fi-burst-sale:before { content: "\f122"; } +.fi-burst:before { content: "\f123"; } +.fi-calendar:before { content: "\f124"; } +.fi-camera:before { content: "\f125"; } +.fi-check:before { content: "\f126"; } +.fi-checkbox:before { content: "\f127"; } +.fi-clipboard-notes:before { content: "\f128"; } +.fi-clipboard-pencil:before { content: "\f129"; } +.fi-clipboard:before { content: "\f12a"; } +.fi-clock:before { content: "\f12b"; } +.fi-closed-caption:before { content: "\f12c"; } +.fi-cloud:before { content: "\f12d"; } +.fi-comment-minus:before { content: "\f12e"; } +.fi-comment-quotes:before { content: "\f12f"; } +.fi-comment-video:before { content: "\f130"; } +.fi-comment:before { content: "\f131"; } +.fi-comments:before { content: "\f132"; } +.fi-compass:before { content: "\f133"; } +.fi-contrast:before { content: "\f134"; } +.fi-credit-card:before { content: "\f135"; } +.fi-crop:before { content: "\f136"; } +.fi-crown:before { content: "\f137"; } +.fi-css3:before { content: "\f138"; } +.fi-database:before { content: "\f139"; } +.fi-die-five:before { content: "\f13a"; } +.fi-die-four:before { content: "\f13b"; } +.fi-die-one:before { content: "\f13c"; } +.fi-die-six:before { content: "\f13d"; } +.fi-die-three:before { content: "\f13e"; } +.fi-die-two:before { content: "\f13f"; } +.fi-dislike:before { content: "\f140"; } +.fi-dollar-bill:before { content: "\f141"; } +.fi-dollar:before { content: "\f142"; } +.fi-download:before { content: "\f143"; } +.fi-eject:before { content: "\f144"; } +.fi-elevator:before { content: "\f145"; } +.fi-euro:before { content: "\f146"; } +.fi-eye:before { content: "\f147"; } +.fi-fast-forward:before { content: "\f148"; } +.fi-female-symbol:before { content: "\f149"; } +.fi-female:before { content: "\f14a"; } +.fi-filter:before { content: "\f14b"; } +.fi-first-aid:before { content: "\f14c"; } +.fi-flag:before { content: "\f14d"; } +.fi-folder-add:before { content: "\f14e"; } +.fi-folder-lock:before { content: "\f14f"; } +.fi-folder:before { content: "\f150"; } +.fi-foot:before { content: "\f151"; } +.fi-foundation:before { content: "\f152"; } +.fi-graph-bar:before { content: "\f153"; } +.fi-graph-horizontal:before { content: "\f154"; } +.fi-graph-pie:before { content: "\f155"; } +.fi-graph-trend:before { content: "\f156"; } +.fi-guide-dog:before { content: "\f157"; } +.fi-hearing-aid:before { content: "\f158"; } +.fi-heart:before { content: "\f159"; } +.fi-home:before { content: "\f15a"; } +.fi-html5:before { content: "\f15b"; } +.fi-indent-less:before { content: "\f15c"; } +.fi-indent-more:before { content: "\f15d"; } +.fi-info:before { content: "\f15e"; } +.fi-italic:before { content: "\f15f"; } +.fi-key:before { content: "\f160"; } +.fi-laptop:before { content: "\f161"; } +.fi-layout:before { content: "\f162"; } +.fi-lightbulb:before { content: "\f163"; } +.fi-like:before { content: "\f164"; } +.fi-link:before { content: "\f165"; } +.fi-list-bullet:before { content: "\f166"; } +.fi-list-number:before { content: "\f167"; } +.fi-list-thumbnails:before { content: "\f168"; } +.fi-list:before { content: "\f169"; } +.fi-lock:before { content: "\f16a"; } +.fi-loop:before { content: "\f16b"; } +.fi-magnifying-glass:before { content: "\f16c"; } +.fi-mail:before { content: "\f16d"; } +.fi-male-female:before { content: "\f16e"; } +.fi-male-symbol:before { content: "\f16f"; } +.fi-male:before { content: "\f170"; } +.fi-map:before { content: "\f171"; } +.fi-marker:before { content: "\f172"; } +.fi-megaphone:before { content: "\f173"; } +.fi-microphone:before { content: "\f174"; } +.fi-minus-circle:before { content: "\f175"; } +.fi-minus:before { content: "\f176"; } +.fi-mobile-signal:before { content: "\f177"; } +.fi-mobile:before { content: "\f178"; } +.fi-monitor:before { content: "\f179"; } +.fi-mountains:before { content: "\f17a"; } +.fi-music:before { content: "\f17b"; } +.fi-next:before { content: "\f17c"; } +.fi-no-dogs:before { content: "\f17d"; } +.fi-no-smoking:before { content: "\f17e"; } +.fi-page-add:before { content: "\f17f"; } +.fi-page-copy:before { content: "\f180"; } +.fi-page-csv:before { content: "\f181"; } +.fi-page-delete:before { content: "\f182"; } +.fi-page-doc:before { content: "\f183"; } +.fi-page-edit:before { content: "\f184"; } +.fi-page-export-csv:before { content: "\f185"; } +.fi-page-export-doc:before { content: "\f186"; } +.fi-page-export-pdf:before { content: "\f187"; } +.fi-page-export:before { content: "\f188"; } +.fi-page-filled:before { content: "\f189"; } +.fi-page-multiple:before { content: "\f18a"; } +.fi-page-pdf:before { content: "\f18b"; } +.fi-page-remove:before { content: "\f18c"; } +.fi-page-search:before { content: "\f18d"; } +.fi-page:before { content: "\f18e"; } +.fi-paint-bucket:before { content: "\f18f"; } +.fi-paperclip:before { content: "\f190"; } +.fi-pause:before { content: "\f191"; } +.fi-paw:before { content: "\f192"; } +.fi-paypal:before { content: "\f193"; } +.fi-pencil:before { content: "\f194"; } +.fi-photo:before { content: "\f195"; } +.fi-play-circle:before { content: "\f196"; } +.fi-play-video:before { content: "\f197"; } +.fi-play:before { content: "\f198"; } +.fi-plus:before { content: "\f199"; } +.fi-pound:before { content: "\f19a"; } +.fi-power:before { content: "\f19b"; } +.fi-previous:before { content: "\f19c"; } +.fi-price-tag:before { content: "\f19d"; } +.fi-pricetag-multiple:before { content: "\f19e"; } +.fi-print:before { content: "\f19f"; } +.fi-prohibited:before { content: "\f1a0"; } +.fi-projection-screen:before { content: "\f1a1"; } +.fi-puzzle:before { content: "\f1a2"; } +.fi-quote:before { content: "\f1a3"; } +.fi-record:before { content: "\f1a4"; } +.fi-refresh:before { content: "\f1a5"; } +.fi-results-demographics:before { content: "\f1a6"; } +.fi-results:before { content: "\f1a7"; } +.fi-rewind-ten:before { content: "\f1a8"; } +.fi-rewind:before { content: "\f1a9"; } +.fi-rss:before { content: "\f1aa"; } +.fi-safety-cone:before { content: "\f1ab"; } +.fi-save:before { content: "\f1ac"; } +.fi-share:before { content: "\f1ad"; } +.fi-sheriff-badge:before { content: "\f1ae"; } +.fi-shield:before { content: "\f1af"; } +.fi-shopping-bag:before { content: "\f1b0"; } +.fi-shopping-cart:before { content: "\f1b1"; } +.fi-shuffle:before { content: "\f1b2"; } +.fi-skull:before { content: "\f1b3"; } +.fi-social-500px:before { content: "\f1b4"; } +.fi-social-adobe:before { content: "\f1b5"; } +.fi-social-amazon:before { content: "\f1b6"; } +.fi-social-android:before { content: "\f1b7"; } +.fi-social-apple:before { content: "\f1b8"; } +.fi-social-behance:before { content: "\f1b9"; } +.fi-social-bing:before { content: "\f1ba"; } +.fi-social-blogger:before { content: "\f1bb"; } +.fi-social-delicious:before { content: "\f1bc"; } +.fi-social-designer-news:before { content: "\f1bd"; } +.fi-social-deviant-art:before { content: "\f1be"; } +.fi-social-digg:before { content: "\f1bf"; } +.fi-social-dribbble:before { content: "\f1c0"; } +.fi-social-drive:before { content: "\f1c1"; } +.fi-social-dropbox:before { content: "\f1c2"; } +.fi-social-evernote:before { content: "\f1c3"; } +.fi-social-facebook:before { content: "\f1c4"; } +.fi-social-flickr:before { content: "\f1c5"; } +.fi-social-forrst:before { content: "\f1c6"; } +.fi-social-foursquare:before { content: "\f1c7"; } +.fi-social-game-center:before { content: "\f1c8"; } +.fi-social-github:before { content: "\f1c9"; } +.fi-social-google-plus:before { content: "\f1ca"; } +.fi-social-hacker-news:before { content: "\f1cb"; } +.fi-social-hi5:before { content: "\f1cc"; } +.fi-social-instagram:before { content: "\f1cd"; } +.fi-social-joomla:before { content: "\f1ce"; } +.fi-social-lastfm:before { content: "\f1cf"; } +.fi-social-linkedin:before { content: "\f1d0"; } +.fi-social-medium:before { content: "\f1d1"; } +.fi-social-myspace:before { content: "\f1d2"; } +.fi-social-orkut:before { content: "\f1d3"; } +.fi-social-path:before { content: "\f1d4"; } +.fi-social-picasa:before { content: "\f1d5"; } +.fi-social-pinterest:before { content: "\f1d6"; } +.fi-social-rdio:before { content: "\f1d7"; } +.fi-social-reddit:before { content: "\f1d8"; } +.fi-social-skillshare:before { content: "\f1d9"; } +.fi-social-skype:before { content: "\f1da"; } +.fi-social-smashing-mag:before { content: "\f1db"; } +.fi-social-snapchat:before { content: "\f1dc"; } +.fi-social-spotify:before { content: "\f1dd"; } +.fi-social-squidoo:before { content: "\f1de"; } +.fi-social-stack-overflow:before { content: "\f1df"; } +.fi-social-steam:before { content: "\f1e0"; } +.fi-social-stumbleupon:before { content: "\f1e1"; } +.fi-social-treehouse:before { content: "\f1e2"; } +.fi-social-tumblr:before { content: "\f1e3"; } +.fi-social-twitter:before { content: "\f1e4"; } +.fi-social-vimeo:before { content: "\f1e5"; } +.fi-social-windows:before { content: "\f1e6"; } +.fi-social-xbox:before { content: "\f1e7"; } +.fi-social-yahoo:before { content: "\f1e8"; } +.fi-social-yelp:before { content: "\f1e9"; } +.fi-social-youtube:before { content: "\f1ea"; } +.fi-social-zerply:before { content: "\f1eb"; } +.fi-social-zurb:before { content: "\f1ec"; } +.fi-sound:before { content: "\f1ed"; } +.fi-star:before { content: "\f1ee"; } +.fi-stop:before { content: "\f1ef"; } +.fi-strikethrough:before { content: "\f1f0"; } +.fi-subscript:before { content: "\f1f1"; } +.fi-superscript:before { content: "\f1f2"; } +.fi-tablet-landscape:before { content: "\f1f3"; } +.fi-tablet-portrait:before { content: "\f1f4"; } +.fi-target-two:before { content: "\f1f5"; } +.fi-target:before { content: "\f1f6"; } +.fi-telephone-accessible:before { content: "\f1f7"; } +.fi-telephone:before { content: "\f1f8"; } +.fi-text-color:before { content: "\f1f9"; } +.fi-thumbnails:before { content: "\f1fa"; } +.fi-ticket:before { content: "\f1fb"; } +.fi-torso-business:before { content: "\f1fc"; } +.fi-torso-female:before { content: "\f1fd"; } +.fi-torso:before { content: "\f1fe"; } +.fi-torsos-all-female:before { content: "\f1ff"; } +.fi-torsos-all:before { content: "\f200"; } +.fi-torsos-female-male:before { content: "\f201"; } +.fi-torsos-male-female:before { content: "\f202"; } +.fi-torsos:before { content: "\f203"; } +.fi-trash:before { content: "\f204"; } +.fi-trees:before { content: "\f205"; } +.fi-trophy:before { content: "\f206"; } +.fi-underline:before { content: "\f207"; } +.fi-universal-access:before { content: "\f208"; } +.fi-unlink:before { content: "\f209"; } +.fi-unlock:before { content: "\f20a"; } +.fi-upload-cloud:before { content: "\f20b"; } +.fi-upload:before { content: "\f20c"; } +.fi-usb:before { content: "\f20d"; } +.fi-video:before { content: "\f20e"; } +.fi-volume-none:before { content: "\f20f"; } +.fi-volume-strike:before { content: "\f210"; } +.fi-volume:before { content: "\f211"; } +.fi-web:before { content: "\f212"; } +.fi-wheelchair:before { content: "\f213"; } +.fi-widget:before { content: "\f214"; } +.fi-wrench:before { content: "\f215"; } +.fi-x-circle:before { content: "\f216"; } +.fi-x:before { content: "\f217"; } +.fi-yen:before { content: "\f218"; } +.fi-zoom-in:before { content: "\f219"; } +.fi-zoom-out:before { content: "\f21a"; } diff --git a/volume/html/icon/foundation-icons.eot b/volume/html/icon/foundation-icons.eot new file mode 100644 index 0000000000000000000000000000000000000000..1746ad407fecf570ead54e216dc4bd7c79271206 GIT binary patch literal 54568 zcmdqKd7PX@oj?9mJ@?u7In&)U-96otIn#GClbK9T5=cVsK!9*0fe=E7fDpL^1>{sv zL`6kVJaI+QFN=tZcq_7^uGf0wDy}!X9xs&6@BOK#dol@8areL9OxJT%)l*L$pZe72 ztY`4wCF#I7B#B8}qCYNavbaFZ|1i2*v);d#f}Jx`{J(AY|2)u*JA95xXG<4I`=yJe zozhFCi*UX`Iv>f7v{u?J?UK$#EZz4>TXBCOa-1vj_et~dUy;Vdc|Ou5>2H;VB&vif zT`kGd`jsm;uif)-=8ux}jm?PdJ#o``b;-gV&mz-FxIbg(`DY%G0)P0dBx&;zw{+(v z7xzgawp^0*i;=FJbLK?{4jn>C(l^%N-Z*F9%g)|?&-QOglKHSCJ^H~tyU*P9{F^@Z z4y1h#p}7YU^6&ZgQC1Z9#XaX=eDH1mBeigk{K_T!F4%eIj@#$ohw=}iN2kv}^WXt? zfUQ9K0_5-8f9CnSSD$mzyCmszdyxL#0~cI$@j35*@N!A|BFeLyqHSnj;OF;mJ3X-I z50dSV&6878ufy|_e?IgWm)K*tH9A9w;_-Xz&|}gV5Lv{Y#YMWxPA%3 zPv?ZIC5&<(x1lpE`&FC z;@*pMHyF6yg>XN@D-o_hpuDd^Sc32-gfkIF5W4-0dP@6n|8az85U8y*9#kL7`vAhb z5ilD>pz^mP+=@W${u%=H=_hdh075^)H3%vK%4T;X?MHrKm__XC2-G%up3*7oK{ywo zIp_R-Tz~1PKZ(3zgW3=r4<3P{}rc%tz>4}r$&^?-wq;Y{VzIAS)ji%<`msT4== zUx7eljyj6CSK&N>@L>e%JL)5Z|8Aa-;2L!kW!-}FiF49+;F{`BdFPhgR6i`q$Psm_`5ybop7aRxR+ zzbhh8d!`V6hCqG27J>ST-U&EDS@JAA5nK`6{Q}_;g!?*S3C<57oPa=OQ#t>JK=4QN z4*4V+6Tr9h-#F7dDNw!)0`=MLoqK{U4*_G|`IB*`(A&XDi*U!py(0DDtl%H_&!({! zNWTaE4EX6tVj2R@^hYR&nsdZoH}Qzb|KHt+HB%ZA|5r$lNYAmQ>=o=Ye30+qAK~BR zf0ldYY57|D31x@!jCPgwq&{CiOTR(?i2fsEyYT~asd=0ExTRS$)>+mY?J@gD&b0G{ z+vl!wZ}5uVwccaibAby3cLtsa?hU>r_-OEtp~2Ad(4NrUp+AO8;rqhRMV3eQMV^Q{ z(V6H~v3%^R*yFL^#6OXUC)Ot}OFWz$Om0p-nEYvKEOjt-PwJWU6FpYXqMp4ykMu6> z{b?qgsb}_N9?QnFGuiFgyR*;a^0|j|f9>1acVB&5Ise^t~x->b|LOP8-uB)7MTvvv_9lvorab_blmM^3$dBmtL~; zp=H{#1EnvWy>V4^)sw4@)mN|n_VHIA|HKL23Adc^zBSUC zv)8oO{%YOv>ux&n)DvHQ;``Re*I%*z2OF#n^$mAycw*z%HU&3r-t@c8>o>n|^RKq# zx7@K++q!@2*S3|mZQl0yNybSlPkQ^wJ5Ijslc!b+s0%h03*1A#}r~XP?cswC@kGnkZ9};%qb9D-BCaFhdKmS~bI> z!|Vm;XrVvf2-R!-NEdnZMtz($8}(9Ni$xQRpqj6?ST1X2t&Hsl6ItrPpoyq=j%Z5S%|v^9qrF~Q)<XhoONUd3`CL+;ltW<4MRidqhtUk>08D2qkD%D1Xy_?%c`wGKSKFKu8Q9i}K z7Y_vD!G_&u**QC>$hvI>6?TGcwjX3n4^rxPEQ{S{+rVp*iQFiz>{_Ug)-8 zshRG@OF}`z3I{{GLqSC0Z0l5s@NUZxXLQ98{gIT4QuWCGh;=$cyn1ejG`f936|8hS zBoz8Dys3uXc{+r@&!bN|eep)TmtKFD-y3!RbmaRJFMPjB-Qf>OZSL#)TgM)d85$1y zQ3Y5g9Hs%8t;E^>Tc0>$M8pbq=r8O>&{j(&tj7e6!^~s(Qn`?C)EBd6HOE9;JkjXD zK%>;CH>-%$XXjP3)yWO`6|h^NdBkpDMl5ym-jh>tgO78I&*!GoH$G+%2J&W(b3r%^C^LIbIMJ~a^P!Ofj!!B5{8 z?Tz3mza7uBYeDX;5_Lx9XogYE)i^E@iwrv3)0>MIy@$MFJlBiM zp3vi=9$dD6ZknIA^nmfO5jZQ*7w^mGaR@w0m&v5KRBcCj)Ch+SK~dQ3cJ@*!4aT(& zNW!!pX8m~m6sLZyRr+h_%UC?7H_N4A)({h$74o`<9Zll`%fU4EAoetf&3oEb%APam+t4U0gH;K z^`iod9aO-S74hmFs@-f2TU5n(EX@^F$!*fKg_^c8t8ndZMPolZGLkWh z-J=15{G6z_YVaOSVe5{FL{St=IEf#6oVD2}q_{LHEtgI~{~Y7>=%L7wRn;MzcmhDQt$wJ#CRv8b*U9!Ae7y=yeJp=oP+70%S#6`3DAX6#)mnt{Ap zL#4c`%u_N~+s_{}+B#+|laCpF%`xA1>{?*V&`q;rHcwhCZNa!50WP91Fm6WxR%h7c zV|0X8V8`gSW-ZAL(cpTwb8f@HJ#&o6yEMk+-V-zpIZwza=)#nuweLGt>~_HH(K*?v zb0cNySv;NxEXma0N4@?SvD7C_GT6VegAn6gFa424fGMUKaBQcp03G?%yh1J-h9_hru3krssb%)7O7cw}9O){ReWI!+qH)V!Cuw>+67T_0E&=gDKrouSds&JL5XpCcNiWxR# zZYyEcR+XSCYqo5Jl8FpRg^ZSr7!}P7tD0fxX-#>pY};H`JPj}53?-oI5mUD;;Ffck z!lM?VO+{y1=UhWYIcEwpfm*o3EoA4oMggv(>lgyrGw^l;59-{sJ;iWTS$ENuRy1$>!RUkY*N*9Q%_;iadt`2kQp~nHnOUwY#AzG0Hv#8v4%+w+X|V|LZVdkSOFlH zA7`;jRL7#o^$IOUt!lm2DmN-Xn+>c9v}#wdY-4TUgkaf5U1q(i39+X+VV$glJizry z+f6m2nkQQet?h=|%W!$}Evn8dhRUkv7~GO~)ik4K;;zP2qryzJevW0GQ}eHD#76m2 z4R$r;DO1ua)Q}hy5QGh%mTFcLL`76%dQFdl%BxkIjWI00TGXFJKEVjw4weRFqTVVA zVi1Y!>RLY5;^}fkk~b=fK^zok|y@ zq0D1uz1ri*#d-OWWmyb0-^~mj8!0xA-*oXNi}4r(0hz)R2QI27%IR=i&|?OB3Gk6D zX;Ky#x|S#`W{C(^&Ja;%GH9^8E)#hesyAzwT^D+HuHHB`5Q_!my^1+%Dtm3ZX^d{a z=_ZiCf%dlpG3J?O``K844F*6?k@Tm|ehPV3Lh3<3`SdzQk+{oBs6zZ@tP;~3{W11E z!x%K%J4}PmjLm%?_!oy|d{(fn#W0aU?siO)_U31MpTdrPc z99`2NRbPKpxo^A*LR_p835hN63PdT1vX4H%dN7W zFBNbEL7)S@>(yv2UkBvVZ8e_I6Tq%?0M=}NlG&Q0T1>5~ENBG`mFo+SU%N39ebriV zyjY!Y#ta!~AZDt-0YP*n{yc63>|WX8W(;@*Z zaS!$fu>dJ~H4l^!SGZkftOdlB)MN(sf%Ae|a0UxORlrmb$l`#s5elqJ(PFVc(STP9 z70{q);Ncs9SEJGb!%@N7GQ|LHl%+n&8vu-jtVWX=i`|?%EFb0A1fNzK^)Y#f=@WAI zvheS9RjG_>QB4V{I3|WPB4iRkrJnLW%|G_hu6i)xsTychRHi^V5C&^iS`ASCz+^zdbS5T_>RQQ1frZPlMyvdDLt|&_ zVW)-V(ABnW)!ne(VvcERyOF|H^;E0XgPN@w$OQ)PiWV|xTkWm7fgWvL$`#W!c59Y~ zb@sTEYr8*Gg&=|?)Z@~#kk5y~QRY#%tj|%B+zQwiRnW@dzag?JBW}-*t2lJjY+z&EVr_q~oD7 z-wA~?0U&5=jC=t^DRGEs0*GB=h6S^QxkUsnvHXIo1n9PW_8mlrp3s4f6Zo~t`00e9 zDbRJIo4{_?<`Z$KH<@Or<2@kDdMc{d(ly>Qu65Hqb^dIMX2?C`KXUR;tm5X~`0+!a zbu(H<&uBxhbVHt3G~I$%bKTE-O7ECzXe}MZQ(0rZT+>@9suwTmB>8XYrm*qe75bz; z5Hlu?l99ASZb*crtgkRCMYU2iDh5QV7#GMqsIR!R3>@rEVQe6wna%%mmw}`wiocm? zm59q|(g2k8I69g-ZZSt6iXQCt=DXG8Q{8U*r@HV^!Zu1=Hf)QzUc%PPT(NAIg|>JL z1GdLgnUbFBan}!N8Kc+l-go4pso9?UXFBy{H|pB5rfRY$8*bRO6;0DI2z6u3TxB=` zIc^8$>wR-N+{YbVc>KRZ;{OuN{&z4W=B>e2f;O~)`BqD3O6S2C#i!poqUZ#O+IpE3 z0wkb|C4g~&2!ZzVkjd77e6hq8w3r?RUkFJaI9ZVgl3Ac8pp&jpeG*6;sH!H88fg1^ zHN)ebGn>)0_UAP1oK!9qOGXnOh+o-p0!dlUMnewqPTpOz%K-*l4#_<-7<|f~Uv>7X zPiM0q$Y%ej|5($0tbZ~YjagRA4S{2cbIk+;6qi}R1v?f8lcQZJN01=vCn+qiE!Fj< zS}>mvQpmW$pgSiJo{`e*ZP3~3(jeBvNvu3wd`5Dy5J_!f{S6X_g}{sp+=4bIAQjXF zBQE+3d;vP95PMr?{`|_XL5hIgY`@AsZ*lbZ7@E4fCm#3QiNSdj6W>4Kfl6imXTid? zpGOL~HmsF0t^zv94xLNdu1WRmAWP9-rR$!zF^!HJ$AG)IEK z8%^^$aGHwpGDTTxnByM=qpYw2ie(Iu7Ge#G^=TT9T@KwyRIEXw#LC z2uhE*hDokN$HXpI)u&|qZII;=P0PIveBVSZXtDOMtsqYSReRe{*fLc^p7pXOvfRV@ zr|TaTsZlFf`w3a^NQa&Vd;C_=(qq8!Cju%DNY_ZW(Rx_vijoCafj-CLM`R_K3le9` zp#lj(L0mO@5X;{&-S$Mq(azUI~c;^9S+*<53mU$57pL_hhYsPG+xS z?BYpaQy#oXRbEy|txm1$$D~vwLRN_6B9c4rtb=b@BSoP5 z+eGsgbXR~Cpbd~QZ);%vgP*j|~GG7m>diyLx4bP0( z&hV=FYoAnV1L>r0WQ*0~Im(#X$2>9|^5Ts0ngB5i8Kj)bd3T z#Anvn*r|&9;}O*gO}YxWuRQ^Ns`(z%yv{V=b(%L~gbE((3kFXyx0)xKMZ+kXsICNc zkEFAk@UAfQXv?J?(m}#NFLlvZi-|PI zxS|PgE|o-Meyx)to`(Fjf^u@K8m-pZO-D7M{cm;vB1xu3Af)raa^yqn?VxLc-H39? z+Yu4mQ3$zK5Mo1$6Ok+O$b!hjxz26>XtoO;4cL~)VitxMQiS9{FdU3}4ANDU)`=KM zQEc3$SU*<@_w?9oHuM|j@@(H>MjfNq^aczKz_wth1Pk+m_HA3@?suI1E}L7yA6${` zb)18aL&i;W-f^rqyr9G*O7iO%WM6>{BZ~DMT1sLc1n*O5l%SO)VA2Vk=8iaG*;lwd z;_6EOLT+BfZ5FVfghZ8_Z^+7;GiXw$?Ea3OcD4RHt>yL}`%_j%wG-B-VDfMju7NBr z+`%yd-;kL@Gairu&%oJSppOIB3sm!M-I5o{yCIE*PGU-CSBu2&3q12W+0u8(Q_$$> zyTL3|-*@qud-x5l5P_p#=BFk$ZtN5>)&AMWOJJJkKerHatm8lnVwQrD?I$4(1J}tQ zWrHXWnr(Jj`+ASD)0o@7o?Yg)-wsHdU;{<&whz7e%`V<2@c3`pJ79NK7W(IoEU>Ga zgc5jG-HDMG+Sd&4uQdwn^`1B2CA{BTfq~hp_8-6Xt<8umf?o<)?Dumnzb*J1Skavd z-qnT8LS34WrlGxuoVFu*#JbgA9RP$uP)jTynnSn-RwOZ^-6|km8#NGhIaVlkc++aM zRIf(ase$&VVZSmJXn&Ql{6^JNHx{5nRCJ36+CTFk%?|3ypIQ5dxoq~i=`T!|BEeuJ z_*quipsE`R;81k=c1+8_ok3-IYE3(&K_cP_}bJVjmZHIhHMIIZG=c$|6MtcXlwEa-A_`|_LK3J~1cHeX= z1-n9t5LcPKi=8ZFC0Xd-7f6ewb>Na=ts3#Er$&cjBgqNxTGxO;ZM`7*#iw53nd?af zzut6D=naQ^!^>Cw$u&1n)CNSQBaw9Eh^RH4Tx?nUIn#xN2=ZUoHQQ}ujHJ)F`R3Qm zjc@K|a#slr& z1maly!-07FSJ_ys``afj{G%VqRv*sFV(s6G*f)sdzB$J?iEGrA)|R8|`l4(4B5L^Q zZdLKZzf-qQi~4kGMR?$r){43B|A%is=3D)~IM)08Ci^(4pRHx5LuN;IUqtppPdJq26+7V!NNl96+8 z=+G{pwa~Z_p)E{;FoFr_DAA=5)`;a7sup5A1kF*_8z4A|JS|_9%=HcrY6-1bfWQPw zUk081z{tn|qQ}lFX}wAT3<2wtkzbuK^7+h=lF^`& z?S)!7$5~h#9+PA4m0C1_#mc8u?f~zV0=9fR52_yy(_&Hbq32I zcrtc5cow^THyyV}R6ReE*VV|WD?yGa{rV!kAJyh7xbe7W-$r?G2*pyVSjas~0o zeiC%@XLV?%GP?@vrUzS8spT8|brc+h1ZW?!U26@1eRf^tgAmBb4=Rr1w%_bHY`1%> zt12H-)ep&^^ zFC;TSm_l|8US}=yV82sMEW{X)eF7l}VfIIO5cbg>6F~5LLg2=d3LjWkJHd--S|Ffl zF>g(E-2hkEpvvRJ^~5es+s`i0wB3ouFlLcDc%`f^Ym5TfXy~n&Hd0@vLQ1I&j^IXx z)-k4ymN5ZgM8lIm+p!^6-)i9R}xUCb5=%|2|A ze16+M3fdV|HZ2Y8V&yTe8n1;G&s6wpp{o9*`WVc0F5t$x&D{8j!8fln_ysiQ5f1$s zYrzfD0Bq}E1xW_91kSz@W2MkFilm7E>_z4i(Qc#uGc&IjYV2O4z_lJjQF;b5<#h+v zy=Qr)vb^$+j4@A93Pv7gMR}v3DD#X=`M|n$2YQfLS>Ac~^U~9>kCj0eOJPv^37RI< zAWS`47$DtE6l$U}e!MW!q)fz_5meBs1Z$K^gMgu;`{;9u(Nt~JV(5+Kn@@mT1Q=S0 z!g!442eTl}Rux!wYL2GsI3+FC4~~vUnQH4AY*ZBQ+5qIS6#yNtQ$SnA&pyNg`_83}AL7_d97*-%82 z2n#DZ>2AT+WtqzEvfmPtH8yCz*@?njYMU2sf19lfns2^@hd4{9)){x1Auqxr&?Wga z>zhGeyYN`3`W7(}U>uUaW>^6%gbW;3hU|i5{Ww4f4uO9ahx!~VUvgIvroc^=miPkH zr}5Y>_oGhkjuw;ujq^I^13)J@DRpH4VP7tXg_6C-G3bKTN15Y{_oUlDU|RdR*AFn> zfN+De24|F8sh{6|4vY2o4EI^&)*J|wAuBlaJYe{hpmBhC1>U5g#Nc6>>@WvH4khg0 z*giwfSI7EG6S-6{4%uu-?;9QOFD>j#vlYgB6<*AZy0;5)=2ANt$mB*nzu#l$Zo%ej@h(g9*^}t`c8RN$tj~)Sw{&2 z^HH>SMacd$Wx}CPvy|i)DFfwW9GQ>@*1doQzfJ~P4sNK3zOKXyu<84I)dNWdpNk9_ zQzEM{kgVca`LmBzFI6*B`6Lt+>H+ot!9+Zu-*r^A{=7^Lgi@(cKwU;4B=AYMpZ;bq zC63t(FK9BAheDw*Fd+Aq!T-9DIl!A^5rk$fu}Ts*PxcsM>W;IPpoJg=0D&jOkg;f4 zpcDwm>%nNF3VDF|*5BH`L0WV~Jeq`j?k&&xLM@RUA1?@w@csg&pp;t1` z4hM#(JvW`|$)|#m_>U8bIHV__#n>)(7My`|(l%&aPls0Ra_JW7jnaM62Z_pof(Xc^ z3@W2igJ7PtWO}p!3E>pfH3=EC4U(b2u27{bWuO-bDll(J%>*e%tuZN+7&^zR@c9x? z#`I7*lt7p(_w-#QfYea#VqS~*2o^VG@gfKo1;)iq-FK@H#3F3%=EOr-p>Y<3=z~K# z0b4;FaK-7UsM9cpWQ(Vf%Gfd>C~X>cCHQ00)1Y*rw!l;77bhND_I1w5Iuf1_ih;~9 zC)5$4QM%Vj@-xtJl4EIr35Wxt6LyavreKJOWBWNufLR%6Bx97$ z)W4RPlshElm{dF@t&@8=?~(U$%LWBX>5$?W5OKnGh6=57O6T_?4|1O8-w|Aq{?B3e z!#2_P5dwWWw`0Kizy!o6-b6=tI>N7~D7L?Rz)(}U08|(wjuRWx zqH0gw>@!!YakY0)F$W+URIEV2YX8*=RKNDMq?$_EZon$qPHdH7O`IAG2QD}5$;BEi zk78`+vDd&)J|Hzp}EmdBm0uGs;>UEQft($5IU~KBP(&s4)HK->R zFn;4HIg!K$N+Kz@N#3N`)}Y5$4W(VCrEQoO&&V2ygf+;XU(a9!r`!6HB{-g0zU%6P;^vfda(_9z};)2rS8x}`r8ehi7rbpn1##kB{gxPMA>FQ==4I$pTcU)NOj zCiEduUDSFq$rofLxqgr#JuN#;Rvup#i-xt-dF1PLUP=o`W6Q=D_V=^PmyPEpdlGtX zJ?HCldZK4CH@nM1q~Fx@R~SIA^%(y_ov4{tMTA z&1+ou7rK0n=IdAC6FLH)P=&Odv$E$LbnQa!JPbb{*!V#n&C9UOWFtM7U;b^jV+S)g zk10b#ax|o_U28IHZB=e;XKZi#$$b77wtY^;wzHG5n0}UB0;wfn>9B8Q5&F$#)E`8H zcJS1kYgknKLoY-%-5Zdn000%vY5+Bnn-;OIdm)?Y_+4%ce=h9*Z2fb(-F_>Zf$=;f z4~u!%;jsPWTra=P6Phk;%u)tax;N3y_)5yr}wC8{O)HK#HpZ1rt)BIRg*f zu5;+&$_gh$;fjd5-qWckYTWUSJVsT+)?QIbGzs-Z-_p7ub#&Dcg0rsvC^1KwCfp98 zOY(I+-_X-Ke%YuC+oq1v=VMqYuF&3z2sbL|v2kf1>?=XUMq)D5U0`u45fTsWo8WfJ znQ)UXTduVK;&5ArUxmMREN35Qi+maT0OSnXFehq)7LY>cLWW)yIFZ0Up1@*~h<631 z?Bj~sgH=6erK}t?M~x*Tm6aD!d+ovj1Wz&qEn8q=fNDnPs zdDhBmS>`(i7Yq(A5O`c;&%pNDm#@HRzXjd`vLonyXqsq+0hs7Ou7YdglKTNje!4oR z#}-+^fXxnw_2a#4dNu57!?N1m2$`M?G9k)0%kXa79k7351w8vFcHk!uJn$DdB&oh45%;`LjOPsRVtI+Jt^7N z{O1oBp11Jkg*RF*gEr(tP>r}2tF?deFPC1rVS)H#QP*mJg_I?%X1VRJKldEoM>aFx zVDDq^2mPA@PrVSfT&GCqV5=bsODvj92%Iu63La>fl(E{De5RZVl?gThT$2;lRB&(X7qM@ z`%Jh83@_V9^2DC#eV`Eck-6$Vcy4yCJ_DOnU2jks8kGde#Oa+9HIxYRcd}a5_Xc#h zqpqGA&GimWs!D5KZ(+3kJ3V9=A-zK8w)n&8tMq!$IA2t0OvU=Eh&klTyCdL;$nQi5 zv|+~ui6|%@z;adhEr)zqfsqk}X#iq05h7!erI282-L%D>6e!BI9kI8&k_6#3#vlp* zJzM57`&QS5#{{xex!e_mZ)4oO4U?JZ%K&itOMuh+AscMsKI^X-v|f@dhaAK(axyV3 zpfAWOC7yt*R;xJ%I=rHTg-Nt3tTe%U>aeu7YuPP}vUMk5c=hb+fpj#c4Fs~o*>ser zqc^&|cV0j)QEZ7FnAn)DyGF>aXBTbB)|sP)y;@KE$0aQqOP2z}*=y1~n&!d4yk1b` zek|%ouw7;kKu+q@#KXYulSg99xfJQ#>oQ0tQm@C3I3O}3Aq0@q^lR4P zeM~ZuR=ifNgB`~avH(BF+_h?M3+7&DOf6(N21GH28;i&1W!zW*Y>&q%`n4G&@$uR?c5HUhVEI8s+&MW3BP$SpKUWWR`h*Z>^rN1w1!6C(Le*xeG21u~&vdUkf%2_pAT%0wmAzMpsuAb0ZLDI>Xflhb=7ol4f@o_SpL5Wm^|5+B(T@KI4WnLK~TvE_o*ojxK-q z#gYE4=@>+rO`YDlmq}OE!l_|hpY@j5;#iH>P;&X`V5#D zN1#MOt5AnQhLYN-5lcA9Y7jMDK6mb zWN0ZNLfFsPek@7udd5BkYU?7IPxCD|;vo_&z7iTRMNM(@9NfH{N}l1I+JXHdzJ~oG zR9Ky?B>U7ba2wWDpk>ru@Ppu{^BIMhNNN;G)6jb`@q^$GDpnB*5_h136OSQ>u65+l zA}{ED0VybpM9}DoDFII~@)R#tmji;e;J5$w4fkCd(js z=w31=0>>F+iq?+~VO9!x9C)uHJBg+t-+_M9HDJHwUGKpbxw3gPd}0mtAow85*vK@E zHCp@0$YVcr8gzaqJoGiT5hS*85Hi8$(9rO8F!TjQXRlLKeg&LdH&VWh8)0J)R&Jvu zW2j((tgN#wL*C0h4`AohmvPuf?uAx!0PxYFw82pOk_pTl+GoSJ6}c_H+wVPd z+NyUxzIW$9Djrw{tt+$_D?*WU@w8An98Py|NI!50S>*Tdg4^ zh;2MT1_R5-XCj8vSkuJuGi;z)V&!J(GnG|(FCv_v-K(#v9FNSaOU-6!HC^yadrGCA zOF536zVi7;+sEo44@lNbM18G!l-)B+sp^BO`nox`&i|o~sQ6tt$G%zckJn-Mz`uYd zJVH*%?y#)(C6@IU`wSaDydE=5I`m!XN7w_B-k*S;1h&tSIg-=}9QZ&ZM#*C$607Ky z0z`$CatV?rf7NW%Dy<6KXk*}JbZ{Kd*oq8LP1U0H&4?lvR12EQ3r_gTnzoT1zZTva;L$3Uu8yxBV#x&kp?j=h&plq-Sz0 z2mPC=!r->d$|$hEQ&=FtD1lzV5{XV9r_si?#E!a2G+?N0q1Qbw`3aLm}a?Id$ z?KyvSLL-K0;5QP&O|aemDhkCrdfC^pryvYTgg&_+1Tk!wA;d#xV(rEJAURAT!k*&J zA?ciLB>y$o201AAT&R1le*b*hG61m(EPig$_4%Li+&1zBYur;5_nsz!ftg_?)#2ZPruJ)Nt@TfW3z)hk5E$Yyc9G9HklO+eMjCh zDV-)Tn5Z^(+Q2>qaC*Ueshdc4h8`n_!1mxRx>xmkOr$o&c2@`UL zpg2n0cfuFgJXRfqqF9N+zZ(AAZY<$q_X;Hjb0SNITT`Em-41f8CHvoKpSSe@8ZqeK6u zY&JyOZa_ATVhm_^dcZ2ve8sq3&8`-9F-6GAS9Irig*x0{fI-T1WVyAj&jj_4$N*u( zQLXne4hv#yAPt*uXrNLa6pj>V__jToHochS$$WB$e_%qb;mr4 zjhd#>{*?h|f!8^v*>CPMPx-33$utMe0)jY=nWL@&aXX~x*BY^xo94OO&EE&itKmyP zIp9w)h&>OeD*;c3zR1pH|0=LAb~$1pdh6T@#u)VD6bWM^7zjZ;L^||Fh&AWbqy79> zQ4exjhtT7BgWc6W=$a4~1ytucvwaQQa*EMswBHD6hyfjkk9VJDP4r6`dn;AYH)}~! zMq5_260}y*bV=wX(ABeSF$DXa*g`(hs_BJtt@XESyVt?G=jfgtNCz~BcFJ+?PUnLk!VLh_E1m5s0~n>p%dr5y`19?CzH;9W8`;3 zML^HM@C{r8JtT7b4-;=ibe%sQ#9QS7trbY3u!F$gfd}|*0V*KNB*A5@Nt6V}jc&z) z`NF|G2E>e|)3F$26y6n+?S9OoSLF;MovxpnOmHN{V$<@QSfOS-~oLAbtI!l-#@%F+o=Y=DCHkj zy!^th7W)p&&XySIyg+hd2M>SZurF}FL(#VC`W86EEjkuPxfi3tT|I#L6VzNjq^2V_ zT*q`pOeE|RXwm!$9l*M~oO88LpV0cio$~9Cz&-zlu6RUr#p*djl{u!t zuu}sBhhs-{8g`U_k)5+8kxbeN2L~^8G&mpCCo9n>n_!i^>;DKd5DcI@3Qf@|ts{E~ zp0hEKF^$@b=!cJj6|)1qFtJO=Fq!+w)pRl*i+RNt-}=5lk6}bbA0$*K3`p?T%`P1L zpJvC4Xv2%HX{TPaZdtT*Q3MDCeFqx2Aj~ho|4uO>@_;CySrZ<8=G(9_(f3TQKWxGU zRX5FRjq9*&W_zn){KzmrrU`uY6uS=lYLl%mmSx`(cXpwL9W510Yc7UK+zA6+n7UsH zz3T6c=Z%zqf~=n|3>GlhYO&mgb+)bjY54HsY_z|Oq&)_7Gjs604h>BdIG=PhOUR-` zfCbPv0R|d{+b)Vvkfun0M&xg=yZZ?ol8Rz3Ak+?QK2!uW?0vy1`^vt+cvOtKK<3W4 zgOO(=FGTlqXsBVqw^js)cqCGM0SyHe5^8^#mpo$a=~7Mo<~%V(TX!5@&|@Do&AWiH zW=!*>!@ie9Cq2zxC)SijWSh%m>KUp8_tjS&B1x<&jlvWcv>n5?KO~|giU#XD=$B?y zXiY%N6!It!niSPY+^K;|SOre-06>3VG?@S;>#+oDL~>jD;6)BTLGm z-(WAnI{`CEe~)A#y8xFfjADs)fnKjw#x|~?2LvIvn8B(HvwPB0E)JSR7xfcTgejUaml$zJp_9QZjoV;^> zAwU17o||I25xXEs*enVWlV zrf1#|a03CG{n9 z9qj2D>>V0Xv_Mb)Vw_J8Gwp1cEN!KHA$7w?U;!0nea^;5v8{@#Q1(K zbSo^HaDlP#9}q_C-7F34L>6DI1P68O+n@xtM0;bshB0q=wG&VxO3><$gdI2T29=K+ zn<>uov+~{`HgF6$tB2=7YUiBd&oSJfiS$?G@rlPa^yUF9zvx*u3gB6EVG?g z9OD&jMBEi!KzJQCOdo^&O&a4uo=m_ILa!2o770QkQnL5Q#J!$Z&JNVR@r`qfh2vIYo(TC$o<-RXvIn7^l?a$aMBL^Wi>hq}%#1B7 zfBn2Czm{9D!gTm+MKf{G*hP@_K+-GZiX^D=#hs+DAO*-_wt6qDny=90ZL)TSteIDs z+sr>$TNUkc$OM$jHD#-Hxn*50>Qa@y5C4n}fN@`?0{s~(RKUJ!un!_vC9&ZgX)y`k zqZ@$EblNL9yKk7GD}7NkWQ6z{O?k77%)EIk#=LTek>dJ+TktF&cfT+YNo!G1(x zkg`F=3vdP2?C2Y;4}j0B0iT1!B{6|6gfSg9w!0iyvFF;O>{adtkW&28pH(?Y+sa z^}Re4e!mL{gS%f>zQz`IeLXs2GzRmbSrMC9Cl9gZ>=nLFU;uMnD`TfTf)BA#2{0%+ zq%_UOpecy6<*NBEQ@atO^z)gjEQEIM#$RLi(ICS4rh0~EvEOiIi6$>b_xCaRw-1Y? zAb?lQ5$G^)g#IA}xd(7U_ib36;0{67_@EXJzr9gwlCdUUUyILH;6}}SH?|CXlcnt$ zohP%KRv%p*ru|Q+Lc1*W4CvRKlQi?gCnlNv8`-a)iu%DaT82_h{;m0`*%|^r9Qto| zH@?Y2JKItJ3jz>3%N;3&f`>(Sy9A;Nv5Mu{-R83N*HX((bGiAfwah%*e9UA|S)ah$ zAGJ|HYxz-py5RpkiN4XAo@a;0#Sx|wK;RP8~jLgi8 zOyo3uRAH$NqbKa$d#7)I!8RN=o`}nd#V0KuH`G3Ckuxy7_s+e(sfCcEH=)Nl9`k$< z`&6ui6pHq-6yH}7Q{CrQ0H>g!q5gu4ZmBFbMg_hHcmwHAaoh{LJKU7U0lckd9dcRh zW5DnuJ0%u`a0viNcPxQp)Fn4Yw=Gpp+-fYZ<--Gf1^zGiKP5fPWAsw$$wFdN* zjQzhmOz*p%Ih71pupQ`+#rsv+FoUVDVc3#R&jPn;D1G64DzD0x8%V)`nnxmF?%v*S zDt7T~T&Z#jyF;U}rK-Jv{G%4Y``NZ4QS1M&mhojf`lfZv#pJnx#%g?v0^UX&INnt0PEl6Q~<}y5gJ~r$YbJS*c z0=~wffhKDZsR(T(m{48<4Vs120tU^{Sz^=0?WU=nt3pnmXNR%~jsCv=K0y!6 z`g51J*Z0#L5tmVlNL z@Grn}SB5%#7yu0Tt*O|a<*2v@c$9dilunn@xi#luC*NEU9&i;F@;G))t8%vwK1sLk z?A%}V;6>?DDpk63@0u|D8iV1=3X$U>|8D0kcpmv5B-}vw)nh-wes?iggk@lhN&9@$ z-UC9`5CJxbKoC@s^;$UqvoM`LPx2GD-Ey4rd!crEZ^>>9U zDTfWfbNW9VX4h(G*J^J9H{jEN3cNP20A~OnL9z*ML8UABQpoWaq6gr12Z;-C0ybX7 zvM-DSptr)pihf5#;)%v3ic@x;2WL`toMkeMl^=lPCzHoi>?M$ps~In2jd|*zs~ds$*8Od)dog#%|hq$?EeA}ua_ ztf^~nT)DA3-X8m?*h`T(G+MQ3Qwt%r6hq_iWb=6 zlFjBB38mJqQ9kB7E*^k}RK*&HH3!HfT2n_zbZQ!l(;RWEVM>#)THX1N$G4wSG zS5BAZ(-ru$86TejPQylI<~C1%r~$3{HKVPj!;J+tyO&sH7$ju}noTVOoXOi@-bi!gqvV$cI0o!~e`~1AR$*CGEgSVas-{451aUbgLW#l$IMhp)B0ONRuk* z&l5l|t|14*f~zNhD_Xe5IFREL)?aLh3&no3>yptWR@n6>Gwq;kn@KYo8O@f;*-;~$ zG;P^~k~tn7i$=%HWEdnMvZRn@EVCvv7KtLeBfH2FjZv29zehbU>aG{Zb;xMT0UISp zW23obGB?^O!Vzx~MHt~ZnM4tB({wy}PL^;5s#}yQj_4bj$Nu*N;*da2OE06D>{A!S zV~c2bM7uoDu{IY;0QQ*@#zqnUH(0N9fh`D$wK^2WiAFQ znB`

EDC6COK>XR*m?C2DZI7uyd(?4tWVU*crv}kfQ!Tca9AW;^Y~AE7PI>S9kN+dS2!j#CSX4o;b_bU}>oN^PEBZiM0rR2N{5(8D@h8WEX_&2OY2A^{ z(nM??Be$h?L`61RO*FG#LZ~&b&}M6&zYo$VIU^ zeiQ|%VSHReYS@pHmy8@xCU#edC`s%rqKDZaGrdey z0qu`ZnSjP6cV$&q!E+GZ3Oun9a>@v3g&g*-*dU#OK99!=WbZ?$jZgsQet?ljK~(q^ z(Ebvb6To-0z~ajWKny}OhB&d)1tRh^Y3c$c67DVoVRJE$=%F7j{J}zeS5RhQe92Q> zKssh#V4Bv|9=2ZeEZduO;gbjnA38K2!4dTjhcr2Fc}mn&VYIn3vuIJK55vKUp2dl; z594peIi%IcAz)Q;xM-F_eH(T38|OQIW1jA%8x{qCOy5?SHc~AhSpjt;DoA zO?xy&GyxyEpf=)j4%M;%j26B_S+g2WpxoySmdZ|kpkTu?HB?ECMMqbs2h?=Bs4_Wo zVKkLo6b>(FUfN#|hckKJ-uPQLVvKnZ8cgf^XB#4i+jj@%aqs%&@y} z2rD04shSX`ML{j1<3RiC;P7epYFvUl5Q1)e&Zs0%41*Zt?7;!exCdJ~N0PcNhN)z$ZckSG{>o<$dKp>UrE6y7(PV{CbCbu8IvQj9@%&~%Y+)7&EWy@vkG?mTX zvtq@{w~tIEV{tD8?OD7x)A;btL8ktY_x1Nf5^5Xpqvi6VBEADE)SYwIjDX;GX8gJT=BY9d<2#;(y?PKF&T?V^rWq7=EB03^b?lX&6i_=S60;wHV07$ZG2D)AA;i66&LwS)|K?22viIYB{GG})g?u+vAzvpcl{s1 z+&hkJc3X)S?E^#(8BocWiTZ&K5MOFSbI|@VsQStU;03actR;xlgE$qYX5ayiAO%>c zjzSOxso}duuR#;qPoX03oj-kCpRO-UWnN9qDxcX31QtYl)2Lz*4hG?no*ReGB^)Mu zT^!lsK>H~VADIjM$7zL2$hCvz=I?f`w9bQ7^%9hLE(@8O+COH-uEpJVu!{sw6>PrP zeHLXrDaxq2;r55wsOPo6PQqi-+aJ$9!kWN21xV~yfigT@+9&qM7ZO;2F~D>R_M0U3 zoaE8CUZu@V0mwDTX}E|NIj|A{K_XL4`00`+0`X;Vf1PLX!Cmnz4Dz5w7f(VXMB8)# z!lDKC5pA!kPK)1p3acn7t}Ito5vN&$aJO70ry!@3KR%+Ir>axfjipDvTuFoMVDgCk z{J%hfs;WWlAa;O1O|9665ZO&ysIbKc!v^ozq3?QuTO#zI-EB zca+qSoC~=i0tpZM`W+p7Q4aKe1--KTuq18(Bt<-d#{GYdeFuOfXLaWMm2>B=&N)n; z4%6K;JF{VCdS+*%q?NR+Bv>VOwF}ZpY*0YPU|AvvtN;jv09ytT?6VEVz;TX%0UL}A z=L3TQb71=b**=?K!1h_A``%yw?9NKUce_1Z)sB_5Ily;pKgwQy%VW2kdNid*3bse(uCKBs1&qaMc^(x4(11Jm9eCYct z-)9r|-gVz=m+xGD@XTH8i_AFl#WQ#n+@@!+H}JYzL7p#c>M@*?82CErK?7(!sDP2s zn?3*BW#=xV&+V65C3lHr`OifzR*Vw zLLafg>2Ah#;j!Hb@e8#Ts(~Cvo=sAd{f-Wc5lq*ZLB`?4!Wt~yu!7Un(*p(^R4tFs zLl~930wo6`>S0JiLg#u5<|K%An0hGAzF&4Nh3$c?rEEY_1twXpHc`k`VJ^bJL4{P9 zHdThOWG58LN0X8+t8s6pWTC1XWHVj1OoRcbny1c$Lvk%vsjS=KI7)Y@Yysl#x@6en z5Z&(149la@c)5ZoXM(^2CAdda)V;Ig#keGEMiWpCNfQDMpm%L=Ul@T2FqT7pP5}Xt zf|T`$q&RQTa)=$Uz#6&TDwwCLoZHYm1164WYhououzau>9#12tV)jDAb&aDfeUQtC za;0Xg_1mOuvpb=Rf6Q`2Y62Bi@C-3_bm@hA%v}=} zV&m<}H+>+=mTS>+IvI^ltoY&L9+$m4h)4MWdnbDkeggyzV8(__2GyG!y08quItkNb z7e-XBjC1=xHsAly|dY`auQrPgc}D@}I|EfbA}6BL#N zrJw3@!ky0$Gm%3`P{?*N@t7L|w54tUVh*sDW(@UXJS2(9Kqk`Qac6qY4xP?#+lEhI z_uZT~5C!t=UX7eRya{sZ0F9oU7!Qug9L`I$TB3&=g6zvD>IhL^Ih zvld2930!$?jr zK^ti>^+{nGpv7Rzf-9QyoS)Xba%%_LU~l>!WO75({c z=;#$hM@_&dLwPF)5ZgRbpKZc@PJ%1=ANTko!Zikp?QN0dwOTDh0z7N7gt!*~EgIfk-&3 z!sP-n4YE0f?$H3IQ~N#@EEdP>P1@QBNo3)`*1oS}NOOx39RW#>B#Q>SB57tYQc?xA zU4q3Yp+%9{;YMqi!f6$&+TOg2J(}XrwxMeA3h_mDog~ibAKcaMYebJ~Dh^P?u9`b@YbltPRh4 z#x83KRgXnHM7d%lDq&ZXv-GJ?nOEp3$s4#CC_pg#m#m60Q-EyaBe>pgDbvnE*f(-I z3{B}sB|2TIAU_&2M0N7g@FdC;PZ)(N+)43R+-cEc5o!25s&&kvB!ldS*?E@qa>}E_ zyhs`@MoA!(K_=7!nGFUKFjqtv&*HU-v;hceKD%M(jq~$>Ez9N8l~OufgfTPIM-QEC z^+Ms;_I9Z}xN^VNl84#92=$gHM_a{WbF4Dv>H2tjelWkYIo(=JCjfcU9&XnPnI!C0 z7wO_L__tcmoquA~(*xc~F%T3&fw4e6AMS+$l{CDPyd)c+A#cl}e%2*C|L9M$`#sFu zWf#t;I}u0rDVl@XqK&FWAN=5-5@NsWMgR2r(TQB@gD;qhguKJ#TM_b;L(#0rHVW** zu-XjN9=xLPVu)}pJ_GsPL4prNt~{};eT=d%r%g4)Muth2Td5=YORIhsgdmD}$|dh9c7AD8rFuwTspCuF2XJ}8W51%8yx zv8{1?MF4<7N}=>GJC( zIqD)gGb$vV zw+>saVe2~=gv{$ttgoNg!@}6w8a}#J$lUncI_=~AR7IVHyE%R^2MI^H#AYu^@S};& z4gg?aUZZ}1VNDYvYV*ACMF+>MS|ps_87hsYheuazeJm2c{=mWO{$a;n=Fdb`W63tW zkGxC`RZ{dUzzNL86kQETjUulR@CpA(lD$7_x=nb4 zU;6kXLpA^-)I=gS3pC7-ZgFaN`EA%Lj2154dN)2hSIH2!82Y8zoK&KNuNU z@%kDRB@QDiz7UjE(b(tG(p|rP7fThB(eV5w^{XsIUZ!j5eZ>QPc<+;iU!f@n(=MR) z;#2V=)kIErdT+rD6N_hJpUxp*eEzb_U=IlAl0~=9PA0QBJspi+DOcU%)#A80I^8m1 zAJEdb1y>}y2F0}B3mlIy>>5>A^j{4ukH@$STqmdks)U-DmH@!oOb)2uVpb${8i>N+ zrg-rMDUgV^Q(r;{BHoCDNtA*!hO{gmCQr{!ftA$n8ra+bYerXZ5C}mLF(SlE(Qt@Y z#R}RIoHnV!5r8vjej;q2VC|-OipA`djuOYfm`0_Uw*eU;f~+x%?YAtefpqj#7h1Jp zHNsxnF@02h*HFC@zG3Ltd;K(2dB;K&_8l=F&cBQ|8G{c?NoOQ1V33v-#B{hCRC}|REWZ8dxHWo)bd`2uVG>E5QT;GpzogKL~;JoyP@rQ27BMC@b%eM*emT_Q`uBFcJP!E+BH?mgdzt| zUE>1I$&1F5DA^4JImeBqkaVvrD6$5xQ!*aSR1#@mvRKGoC@QY!d8rV}bm>s5HDsZ{ z3=zwXR#NG=q|#HnT=~>NkKDPtB3ScRBI%gtn(#}&7Nfy|2+&XD*@hfh4O_P5;_Vq` zBn&y)wV=u{)wAIDR29RtY>o#Ljz$2V$$gIG%h_PBMl9|XBfo(jkJms?ikE}YOU`eZ zIx1wbN?eO0S(Bz6bo{&=rx^&gzIeM!@&Sx~okS85)qb~?@Du32uw)jH6ORjGfROk| zA|l*fucn*o+4V+sgqt$ON z$x`01{3**WWblh+;aJ2L`lCJc zhZl*L$;@SzGp$q|;OqoF%n#w65OX_SlD>%mCVGd>IWhS?>1xK5k=?Kc-!tw2(ByGB zW`#iOtgTBmuGhB()S zp1pno+iN5i&^fTcbjE=-yilv;VzaDa*n{P~kXgs4LFoNWqND>xe@PlM%N{cCGc!v$o`Di!^?3_l# zmJuvr=5xqfrX-0eOP10`rkz7ELKI1er#z}iP{O<~X{pI{42B!Pg(CynD$d+eEv%Ya zCD%Xzs;XOFCDk+$#U*7U6G@CZNH7>JnpIy>V^R~$gGo_KP3jd`hYFsDX)>wi!>%{B zAT`p4n;Z}4FmMcC&SgV5*{KnN3-bAGKZ3a#F#~SIlxi4Hl&Aj`yNtb+>kEW2>VwN5 zzl9?AU{%p+*@V4+^N(!)$Y%F{TG{w+SxWxeuPMK#JZ?Q<-4}Z}HYnVXe`&6ka~}Gg z-+9Qd)ppe*Fk?*D?km2aw3xg<`P%ns?*mQr?~#M-2do2{R2^dnaQ={o6X+!zU!xj` z8#4ms2&}D0iC=@+O$47hkBmnPqwRNKT5Z5^hsgkgAM6by0Wuf+i$o!rEKCAMHMdL3 z$D&!~4?Ty%(}Oj2{4fu;+&Drd&=du6MMlzzT0c|~Vq~G@I0m}qW8c%f)L3bBt~nFS z`jP#5VLVTZ#atM%nwbWKH{|UjKQW0hAHM}W-%nE6N*2QoJgVT|B$pRBQm~M^;e-db zCe&m??Er_N-%TFs&jnv@kO3Pm7?6s!zZM!!8f?_jU&gM(`+ITKM`p)fL zAVn8aH{|M5iVcIHimn>*k7&2EZG)A|&nJXeJt+I6oNRy2dZe<;uY)7D9#^cg%!kAS@4|DJ+UoHn!@)?+#%A z7}*AlX|RpN9mI4c)l@t#p|rBgqJHw8WYW(Z%On%s6Y(ShTQFcv1qao`W!!MZlQCmM znhY!dGKu&mHED(=H5!g0@Fj{_c-cnlrIVVIvNfxM5>%>Tdr4i7#zIO;FIFo`6rope z38dejcK1TE3C(+M>etf_6bYMbv`)+eBt`{-pA?P95m$q^YLYo%i%lSeD5mGwMq?Z) z43iPGQ?g0&7mg6jP5U#K!L}Iq|2~Nq1eUbCJPN>W$Bq;f#dcf(hlY@Ybdf^*`AH8Z zTs5*C>O}5I-%Uov$NIO2|Ng;7)ub7(`f*z)wPE(x>i6VkY`S zpWPozyyE0=PIKp`GUEs^LpoMH9R)~ByT z)$fsTCT4W%v0IJJECS(1vWs2=i7FH?0pmBUDv)DHYQY5SI1zUYy+pP=o50vesFIPV zLwzBaoo08&LmPh?Li4imQ2ZPKQ6*26a%m_Ic03JHM?%1(xJHc*y^2x71^2j6ae)7*A z$(P>viih8vOugm9XgAVV0~x`F_kNV4!g;8f!5a$=2ayzS3{eVD-msY%=ne(J`N%nw zVE%+r;7#=w>a9tW{mN~%rI0tbch8&_UqN#X3Q&+1t~|WJ5HZ*L?gSWKq*c$%*jA4v z8oOIH!yK#~SO`fONI|WZth<>*nYrDH$FCq?(WOZ=+t^6oKY3{25_$2N~!jgmbZtD~aIVxa9!>O=)@qbp_x@(i7B_NT`WxAqfm%h6)g&RoUlz zT5r13WLNikQ_FM1iGII#_==p~>PQ7PmC975RIMwQ-4r-DcpatGBkqUEg`C#WrnT>V zPW!^l*p6LeWlbxOF6|s0L-K=aR`Q6>qlQ9{&KD7ciLgB2@v)@o87ZHSWs=SQ5wX*6 zLcU!CmbFVMN(OQWuaf`^1*sNN1Cg^kfv*X+1@lZu(wZ8!PD?m$r^Ic}2_GtlhfGTi z1zYgo$)ZHv*G~W`mDB|&B{=^};MwvqPnpmSszTjIb1~q-A#n>;MOqYEDZe<>Q%zZV z0h2Wd0g`kDrZLXWIMtWQ9VgBqI)#l3S-k+2g?;q)`p#K+J&P7(8x- z;6eu6C`!B$4t&zbxFCof+|dJzm7bv4ithvL4py;;MEXEr8hT8<)?;qSqiSw*q+& zGl!{%;mOw#yrt+p7a=*ODnTOyc%lu&P$L!|UNB~U6mpyyiD8{5oT8@#90EZA8(SGgZ?`RLwsrNYF6+w$I>yw!qK8m8 zV;b>q?e^}OABT^IeMF?me*AD8W)3hA;vawnL_RdKeFp_@@gla5*U!ZOu7Y8(lDyrh z(iFrc0~*nTegYDJq-*;PFKkD(gjA|WJjAus^QnwcGo}|P0Wo!Glp=H=lS-2nHxO{1}GU zMLhVgn`l#bdL=X4(14yD0lp_<@yKsc0q;Eu8Mp=8#0yc6R@*+{*69EMPJ%MQix3HLT{tMffsr!Y_TL*N)YItukmv~` zBdjveOImFdJkl6&=*=B>(hdo@Xv|2lRIr^OYU=D5ofl2=15Ja~>p0a68M;ZwEo`2@ z-P9<+9s61YNy?t&XT26zMc;rc8gh2~{x;R-F+or_cl;Ktao7id8UrMUL=t=GSXMuA zd2qKk@J$AesGqFUC3Fm0!=$6PpTEuyQ$yi8$d-Zv+J~?}euSC>zeLD9lvhm>2w6DM zu?e1pjGx4_D29XqdGTc(c-6 zTn+s6*X#Q0`50=jSzve&Dg?pdQSu+a2!gWYv-ZZ{5}-KCF`He&!8&ph1(QH@8X0GE z>@e^orcuu($UTDVnGC7jG6(wNBaY$|+r(HgX;Fv91cw+sVgDzq3CzDd`=h}f00lWf zVXLq)%``Q(@m;=1myP+so=J$d6dzUZovZZjha%N;jD?&RYll7`>mTzG5dIDd@tOlGr>+gYF3Yk9@Q zdFJvmPO!|CWoDXD)1>p!Jp5UX;8~8sf4z#|+@}#d%AkAkqhNqo?#~4;9rqH*DC$uc5Ph(VYa2HMgPXlM+}-#Py9o%h>=L%|HyY{)KwS)N{N$@& zy_Rri>AKH+2kOORxGrTSLh{FjdFohz@FC%v6_jkRM%Yw1j7v~&EW9I=x$7(JvGB&t zz*u2#)~t=ITn8m84sIaRkz}(c*>~9Qz#-G+L6J+ppHZMtq#J%-ie>XW0}l(f3L z+ug0Em2J!Tl~ML|yL+(MHu_{{{U)V>^OT!#@cGrpGV0t|ch7&&kz;d3{%d{XAJldH z!o735$Oy+GrTlNgldcLs9tQPhqUGRAwfi!y?tZ%O!c{8}tZ;X6wDKpc)j3};8{N2E(vU~WcR4PD2-ceK~(4Suh+!^IHlU<5yZjy zTi3V1Zk@k4O=DDI@ci|+Ugu}5Z@EsF12_bycO5VgY3k;ebdZK%EIBOH^~(qn)?mC| z(xP_N#^>jQ#p*?ijc?H|dzBxtE%@eJPVn#V1PA;4M`g?RDqq)Z`zZ^7otip_a=+44 z$1vtJV9Cd27s)9u#A!)_3k<>P?4)hGHvZvj>u2nuUwlt>>!!yn3mbjEm7NXiLao**TG<`@rl{nOxO z6C4AKgrM`htd8V}-XI2Mi#%oY6EdG+7KH}|+<2gO+06l`dV()rxbY>I-K3aPrg9U2 ztyvzD^nFpqyngn?ltoO*s$w#SJry8&{|+Vqy&ovjGv+_vk9^b3Ivo+jRgo9?5TcGq zQ+YE+0AbV6U7fESLMhW?3kUvy07X&rd_T`@R`~(6CD)KAQmO%0{LkJA5 zLIS)&)1T(w_kwjbq4h>;auyby3eeC{!%CymbhaZ=^LD~3IMnr>SlzGVJnd=z{aa{v zvnfec=oXm@23A(C;r>anS5bH7Zdm7*xy*se6_l+434&bX-8eKzjE0{DK!F?(%p`f( zExHi022`rWxI0c_LxQopA^l%o@*P_-rgHfycz{s4u%nDBEQY=(Nv~JK2RzeVlPdU8 zg=plO-hr^%2zlvb){YjNqb2A*ejd4qT3a^7u_?}o+N~fAmooQGROgmcS?2= zBq#%z0kuz&=|%c1`ls&m8{GIBzcJjyq$`cav$z+Mqw!)AP05*(%Hqa0ZwF3<^4fTU ze0=`cTG^4pTkZjG@mco(eHms$*hK(;5ZHJwBKxfO@hn=;dGuh8@Y(l(uP^~lg(53; zT=)D_%P^PBR`_&|rzRf79~CeZJ|+ojJT5*88>R+ZJ!erAoz{cxNr+zT=V1r2^o^fD zd^h(32?uFJIlo@^OOidxSpJXF>49fnUan@UJkDo9J{!^ZH^Zvk%!Oc!4!Ln zodEBjflf&8lsG95qN5bQ%^Q8bXM%bP1^oOQ`59O#?AwOBE!8))nBhg!wbH-Noqwc| z8CSlI!WavN9g}15Ja(Jy^r&YaB&&KTW!bCjdS+)KX_KDW=Yc}*KspcWoEBSuu|?`DppYUP}Bq_Iwy<-fMy|V zC6gI9TvPk$^Uunx%*-w=R~WDHb_t#%#jQD8Z*Ftg{3l)P{Db+AFKlT9GhzIQngEYt z(}SQ(jrYYvd?I)LKKMKLbE73=poTV|A*9k1#4}d3P(OeBbf2hmzJ%NZo4k~P)=;hx zel17jL)B39%B zh!wdCElG2w$btixLhpoykbGxh{y zAJEpd4E~sL$Y|)tENM1jNG)W@?v_$U<3!wS?q4zo>MGwZ`TUv7tZht~khLv%;) zVJ;6oSZOvZ58?(*?O}v1bEEWm9V9Z9C(8S_f{#bO30GNrn2L)IrP<+%lbdCZ*Rpotjaob#}|!cm6eE5qBvHGXACA zBwf<@905;z73?xITc4UVey)ZUki`x;tBHG~8vr-ka$D?v4!ZgfeZMHK>IeYQ)!4f+ zOUX!%WP5NcYE|EM=Zj$zWHdFWCjUVa;+a)F8_M@tNXO}E&A%se~-T!d`*x1h#i9GbtD$4B4ZVm za?XRa2Kw=j2)0MLa$&Dw>>WkSF@i|fH-3n1?Fy>4`HPap?L7wj5b^<|=v|W|yGSBp zc%z%FjSFc@Kaf(aAeG= zTsfa;)KiIZ7;kkQhD+<^i<5L~kDHI;b`^==E_)rI->`GzBix#aNNN+8Fs#y%=2)x3 zZkm65Sf9Op94I^nLL#iG1B+?N+NZv?%`gYh!+i?p!wkyy;e1#`c{{qWA)bL9eH-`k zQ$l7N`GHUf>1h-F2Ed0dJRQ&16#KACxHd4?0?ZVahv$3a?9|#C49kcMg>%6iu)+C9 zY>kh>Gln~5W|n0w@jk9ZdtB5)NT6T)%o;g0VERSj=D|A$U?jMGT+kYh-!YCe>7mTr zfh?{E>5^WFx!I&A4SzfJD{lA|{KbKfm~5K`%-0QyvDoA^P*3o{6iR`Vz~rE(>0Lx# z`+6Ulyjb(G)B=Xmb9UAZqrTHQUDh)h{nPaGii}>yujWptU=unhVPg&gXO0Gd}=E^n(~XB(;%{0PYMJaL%J=C;$R8Cagsb zI0lHJqsKMyjj0R+6_7T3xE6U7JA@1h=%t~BWeBSX?WgAln`4hyR!^}jx=|uH!m)51 z;Ym}bq$a|n040`7ZJRHjKdLiaz-#y4vEJI3e z!M-ztWm$!->>hCAQ>U;S_XYdwmO8k|7UT02^_(8Y`?D(Haw9t3Grv;+k8+(TP#1U{ z<9nX3RPMWVIQ2_L74<1<1}hruc}wT6;1Jl3&mZ}mdu#rG+*@!z-RHfHcbVp$uucC= z;-F6r1zh;w;;lvN>mzRz>m-H$K&(qZ3bDkxJkns-igjhgV($>^>PVPyg!d z4Bnd(G=jVEy%&1HY5cx^0{TQJ@(?#4R@9H z-g^4Q*Pkk_pS$I@6Q_^eb*6O3$+IU)Yqy>{yLRj8n~s$_)2-6ziL+;K+cqZtbmUj0}#sun`BeaQDzv0YIGRjt5^>e_y*AI=h-%>LW?jVP^jT9*lU*Iv>vim zw#Ig|b%3wzg)L$~e2)j&CG1kfpC1Bt?iI+_JIr2y=(?*=S^OGgaJ~pAA=d(l?Rs_t zyAfL0G0fICu@k^LdI@Tj+ziaLQ|wkmP`-?vMqP%p>>RtD-2t?~yV%PKgOw#?ZOY8yUOFjg?`9{>vc{6(i2*+<_kFvKxJ9s;L z2e3tc8M4LW>{r>lV3T`-y@$OQ<+0xne9~WM|AqYq`%M%W{s8+Rau+`Y{PGX8kFbxT zmd(e2hx)sy)A9T457-~FKVlzepJ1P4f6P9`K8?)WKVg5$K8sAlKVzR~PqIIUPX9&r z-%(}zf3PpHFSEY{hW1yX3w{k)2j5_S&A!S0C;JxrHv1d)x9soO|AKe>yRd>k#r~fC z1N%qzzu7;re`eoDEd3AJkJ!JkAG4pZpR#{t|Hl5E{U7!p>}j^ao{^~e;ckQWry@j< z03|5zz=n;`l@Nm{g{27MI$}~>N&pGnmr_z%%1Bu$r=L4@a;@EJiDg?XJ7U=t%UQAP ziDh3b2VyxVmh)n{B$mr!xgwTBv0N3)wP4v6^xJ}dThMO{`fWkKE$Fue{kEXr7WCVK zep}FQ3;JzAzb)vu1^u?5-x2gXf__KP?+E%GLBAvDcLaT4i17E<5%fEPen-&n2>KmC zza!{(1pSVn-xc)XA>`KsJVme+^t*yS;4Xsgf__)f?+W@|LBA{LcLn{fpx+hryMlgK z(4Q6bX9fLPK_3oyPH$GwpB3~GXclZ2^k)VASwVkR(4Q6bX9fLPL4Q`zpB40bf__iX z?+N-yPT_QVf__iX?+N;dqz?8A`aMCvC+PPC{hpxT6ZCt6eoxTv3;KOQzc1(mNP}O$ zFX;CL{l1`&wC`ZQpx+nt`+|O7(C-WSeL=r3==TNvfuKJS^ap}IP`vo{2ZH`U&Js-e<0`&1pR@aKM?c>g8o3zpA+=w1pPTde@@V!6ZGc<{W(E@PSBqd^ydWq zIYEC;(4Q0Z=LG#ZL4QurpBMD!1^szJe_qg^7xd=^{dqxuUeKQx^ydZrc|m_((4QCd z=LP+FL4RJ*UlR0}1pOsJe@W0^67-h@{Ut$vNzh*s^p^zvB|(2l&|ebtmjwMKL4Qfm zUl#P21^s0~e_7C97W9_|{bfOaSsr=LqUHi=nn<`p`bq$^oN4}P|#l$^j8J_RY8AM&|ekwR|Wl5L4Q@yUlsIM z1^rb)e^t<574%mH{Z&DKRnT7(^w$LaH9>z(&|eeu*984FL4QrqUla7#1pPHZe@)O| z6ZF>v{WU>+{>+^#xk~`S$H^+Fbr$^2R72 literal 0 HcmV?d00001 diff --git a/volume/html/icon/foundation-icons.svg b/volume/html/icon/foundation-icons.svg new file mode 100644 index 0000000..4e014ff --- /dev/null +++ b/volume/html/icon/foundation-icons.svg @@ -0,0 +1,970 @@ + + + + + +Created by FontForge 20120731 at Fri Aug 23 09:25:55 2013 + By Jordan Humphreys +Created by Jordan Humphreys with FontForge 2.0 (http://fontforge.sf.net) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/volume/html/icon/foundation-icons.ttf b/volume/html/icon/foundation-icons.ttf new file mode 100644 index 0000000000000000000000000000000000000000..6cce217ddc2efe3411dc9fa34e294e48e4cdf4f5 GIT binary patch literal 56976 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 literal 0 HcmV?d00001 diff --git a/volume/html/icon/foundation-icons.woff b/volume/html/icon/foundation-icons.woff new file mode 100644 index 0000000000000000000000000000000000000000..e2cfe25dd392203f910d5deadd19beebe7e99984 GIT binary patch literal 32020 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 literal 0 HcmV?d00001 diff --git a/volume/html/index.html b/volume/html/index.html new file mode 100644 index 0000000..0e6d98c --- /dev/null +++ b/volume/html/index.html @@ -0,0 +1,29 @@ + + + + + + + + OVC CDN Transcode E2E Sample + + + + + + + + + + + + + + + + + + + + + diff --git a/volume/html/js/app-api.js b/volume/html/js/app-api.js new file mode 100644 index 0000000..34a1aff --- /dev/null +++ b/volume/html/js/app-api.js @@ -0,0 +1,16 @@ +"use strict"; + +var apiHost={ + playList: function (name) { + var url="api/playlist"; + var args= { name: name }; + console.log("GET "+url+"?"+JSON.stringify(args)); + return $.get(url, args); + }, + click: function (name, x, y, t) { + var url="api/click"; + var args= { x: x, y:y, name: name, t:t } + console.log("POST "+url+"?"+JSON.stringify(args)); + return $.post(url, args); + }, +}; diff --git a/volume/html/js/app-header.js b/volume/html/js/app-header.js new file mode 100644 index 0000000..488c334 --- /dev/null +++ b/volume/html/js/app-header.js @@ -0,0 +1,23 @@ +"use strict"; + +$(".top-bar").on(":initpage", function(e) { + $("#setting").find("[ui-header-setting-user] input").val(settings.user()); + $(this).find("[user-name-menu]").text(settings.user()); +}); + +$("#setting").find("form").submit(function() { + var page=$(this); + + var user=page.find("[ui-header-setting-user] input").val().toLowerCase(); + settings.user(user); + $(".top-bar").find("[user-name-menu]").text(user); + $("#player").trigger(":update"); + return false; +}); + +var settings={ + user: function (name) { + if (typeof name != "undefined") localStorage.user=name; + return typeof localStorage.user!="undefined"?localStorage.user:"guest"; + }, +} diff --git a/volume/html/js/app-player.js b/volume/html/js/app-player.js new file mode 100644 index 0000000..a3b4464 --- /dev/null +++ b/volume/html/js/app-player.js @@ -0,0 +1,86 @@ +"use strict"; + +function hls_play(page, video, url) { + if (Hls.isSupported()) { + var config = { + xhrSetup: function(xhr, url) { + xhr.setRequestHeader("X-USER", settings.user()); + } + }; + var player=new Hls(config); + player.loadSource(url); + player.attachMedia(video[0]); + player.on(Hls.Events.MANIFEST_PARSED,function () { + video[0].play(); + }); + } else if (video[0].canPlayType('application/vnd.apple.mpegurl')) { + video[0].src= url; + video[0].addEventListener('canplay', function() { + video[0].play(); + }); + } + + page.unbind(":close").on(":close", function (e) { + video[0].src=''; + if (typeof(video[0].pause)==='function') video[0].pause(); + }); +} + +function dash_play(page, video, url) { + var player=dashjs.MediaPlayer().create(); + player.extend("RequestModifier", function () { + return { + modifyRequestHeader: function (xhr) { + xhr.setRequestHeader("X-USER",settings.user()); + return xhr; + }, + modifyRequestURL: function (url) { + return url; + } + }; + },true); + + player.initialize(); + player.attachView(video[0]); + player.attachSource(url); + + page.unbind(":close").on(":close", function (e) { + player.attachSource(null); + }); +} + +$("#player").on(":play", function (e, url) { + var page=$(this); + var video=page.find("video"); + + page.trigger(":close"); + if (url.endsWith(".m3u8") || url.endsWith(".M3U8")) { + hls_play(page, video, url); + } + if (url.endsWith(".mpd") || url.endsWith(".MPD")) { + dash_play(page, video, url); + } +}).on(":update", function (e) { + var plist=$(this).find("[play-list]"); + plist.empty(); + apiHost.playList(settings.user()).then(function (data) { + $.each(data, function (k,v) { + var line=$(''+v.name+'

'+v.name+'
'); + line.find("a").click(function () { + var e = $.Event("keydown", { keyCode: 13 }); + $("#player input").val(v.url).trigger(e); + }); + plist.append(line); + }); + }); +}).find("input").keydown(function (e) { + if (e.keyCode!=13) return; + $("#player").trigger(":close").trigger(":play", [$(this).val()]); +}); + +$("#player video").click(function (e) { + var rect=e.target.getBoundingClientRect(); + var x=(e.clientX-rect.left)/rect.width; + var y=(e.clientY-rect.top)/rect.height; + apiHost.click(settings.user(), x, y, this.currentTime); +}); diff --git a/volume/html/js/app.js b/volume/html/js/app.js new file mode 100644 index 0000000..3564964 --- /dev/null +++ b/volume/html/js/app.js @@ -0,0 +1,7 @@ +"use strict"; + +$(document).foundation(); +$(window).bind("load", function () { + $(".top-bar").trigger(":initpage"); + $("#player").trigger(":update"); +}); diff --git a/volume/html/js/vendor/dash.all.min.js b/volume/html/js/vendor/dash.all.min.js new file mode 100644 index 0000000..e943960 --- /dev/null +++ b/volume/html/js/vendor/dash.all.min.js @@ -0,0 +1,32 @@ +/*! v2.9.2-bb3b8886, 2018-10-29T22:01:03Z */ +"use strict";!function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c||a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g>6),b.push(128|63&d)):d<65536?(b.push(224|d>>12),b.push(128|63&d>>6),b.push(128|63&d)):(b.push(240|d>>18),b.push(128|63&d>>12),b.push(128|63&d>>6),b.push(128|63&d))}return b},e.decode=function(a){for(var b=[],c=0;c>18)),d.push(b.charAt(63&f>>12)),d.push(b.charAt(63&f>>6)),d.push(b.charAt(63&f))}if(2==a.length-c){var f=(a[c]<<16)+(a[c+1]<<8);d.push(b.charAt(63&f>>18)),d.push(b.charAt(63&f>>12)),d.push(b.charAt(63&f>>6)),d.push("=")}else if(1==a.length-c){var f=a[c]<<16;d.push(b.charAt(63&f>>18)),d.push(b.charAt(63&f>>12)),d.push("==")}return d.join("")},d=function(){for(var a=[],c=0;c=c&&console.log(this.time+" ["+a+"] "+b)}},l=function(a){for(var b=[],c=0;ce&&(k.log("ERROR","Too large cursor position "+this.pos),this.pos=e)},moveCursor:function(a){var b=this.pos+a;if(a>1)for(var c=this.pos+1;c=144&&this.backSpace();var b=c(a);if(this.pos>=e)return void k.log("ERROR","Cannot insert "+a.toString(16)+" ("+b+") at position "+this.pos+". Skipping it!");this.chars[this.pos].setChar(b,this.currPenState),this.moveCursor(1)},clearFromPos:function(a){var b;for(b=a;b0&&(c=a?"["+b.join(" | ")+"]":b.join("\n")),c},getTextAndFormat:function(){return this.rows}};var q=function(a,b){this.chNr=a,this.outputFilter=b,this.mode=null,this.verbose=0,this.displayedMemory=new p,this.nonDisplayedMemory=new p,this.lastOutputScreen=new p,this.currRollUpRow=this.displayedMemory.rows[d-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null};q.prototype={modes:["MODE_ROLL-UP","MODE_POP-ON","MODE_PAINT-ON","MODE_TEXT"],reset:function(){this.mode=null,this.displayedMemory.reset(),this.nonDisplayedMemory.reset(),this.lastOutputScreen.reset(),this.currRollUpRow=this.displayedMemory.rows[d-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null,this.lastCueEndTime=null},getHandler:function(){return this.outputFilter},setHandler:function(a){this.outputFilter=a},setPAC:function(a){this.writeScreen.setPAC(a)},setBkgData:function(a){this.writeScreen.setBkgData(a)},setMode:function(a){a!==this.mode&&(this.mode=a,k.log("INFO","MODE="+a),"MODE_POP-ON"==this.mode?this.writeScreen=this.nonDisplayedMemory:(this.writeScreen=this.displayedMemory,this.writeScreen.reset()),"MODE_ROLL-UP"!==this.mode&&(this.displayedMemory.nrRollUpRows=null,this.nonDisplayedMemory.nrRollUpRows=null),this.mode=a)},insertChars:function(a){for(var b=0;b=46,b.italics)b.foreground="white";else{var c=Math.floor(a/2)-16,d=["white","green","blue","cyan","red","yellow","magenta"];b.foreground=d[c]}k.log("INFO","MIDROW: "+JSON.stringify(b)),this.writeScreen.setPen(b)},outputDataUpdate:function(){var a=k.time;null!==a&&this.outputFilter&&(this.outputFilter.updateData&&this.outputFilter.updateData(a,this.displayedMemory),null!==this.cueStartTime||this.displayedMemory.isEmpty()?this.displayedMemory.equals(this.lastOutputScreen)||(this.outputFilter.newCue&&this.outputFilter.newCue(this.cueStartTime,a,this.lastOutputScreen),this.cueStartTime=this.displayedMemory.isEmpty()?null:a):this.cueStartTime=a,this.lastOutputScreen.copy(this.displayedMemory))},cueSplitAtTime:function(a){this.outputFilter&&(this.displayedMemory.isEmpty()||(this.outputFilter.newCue&&this.outputFilter.newCue(this.cueStartTime,a,this.displayedMemory),this.cueStartTime=a))}};var r=function(a,b,c){this.field=a||1,this.outputs=[b,c],this.channels=[new q(1,b),new q(2,c)],this.currChNr=-1,this.lastCmdA=null,this.lastCmdB=null,this.bufferedData=[],this.startTime=null,this.lastTime=null,this.dataCounters={padding:0,char:0,cmd:0,other:0}};r.prototype={getHandler:function(a){return this.channels[a].getHandler()},setHandler:function(a,b){this.channels[a].setHandler(b)},addData:function(a,b){var c,d,e,f=!1;this.lastTime=a,k.setTime(a);for(var g=0;g=16&&d<=31&&d===this.lastCmdA&&e===this.lastCmdB)this.lastCmdA=null,this.lastCmdB=null,k.log("DEBUG","Repeated command ("+l([d,e])+") is dropped");else if(0!==d||0!==e){if(k.log("DATA","["+l([b[g],b[g+1]])+"] -> ("+l([d,e])+")"),c=this.parseCmd(d,e),c||(c=this.parseMidrow(d,e)),c||(c=this.parsePAC(d,e)),c||(c=this.parseBackgroundAttributes(d,e)),!c&&(f=this.parseChars(d,e)))if(this.currChNr&&this.currChNr>=0){var h=this.channels[this.currChNr-1];h.insertChars(f)}else k.log("WARNING","No channel found yet. TEXT-MODE?");c?this.dataCounters.cmd+=2:f?this.dataCounters.char+=2:(this.dataCounters.other+=2,k.log("WARNING","Couldn't parse cleaned data "+l([d,e])+" orig: "+l([b[g],b[g+1]])))}else this.dataCounters.padding+=2},parseCmd:function(a,b){var c=null,d=(20===a||21===a||28===a||29===a)&&32<=b&&b<=47,e=(23===a||31===a)&&33<=b&&b<=35;if(!d&&!e)return!1;c=20===a||21===a||23===a?1:2;var f=this.channels[c-1];return 20===a||21===a||28===a||29===a?32===b?f.cc_RCL():33===b?f.cc_BS():34===b?f.cc_AOF():35===b?f.cc_AON():36===b?f.cc_DER():37===b?f.cc_RU(2):38===b?f.cc_RU(3):39===b?f.cc_RU(4):40===b?f.cc_FON():41===b?f.cc_RDC():42===b?f.cc_TR():43===b?f.cc_RTD():44===b?f.cc_EDM():45===b?f.cc_CR():46===b?f.cc_ENM():47===b&&f.cc_EOC():f.cc_TO(b-32),this.lastCmdA=a,this.lastCmdB=b,this.currChNr=c,!0},parseMidrow:function(a,b){var c=null;if((17===a||25===a)&&32<=b&&b<=47){if((c=17===a?1:2)!==this.currChNr)return k.log("ERROR","Mismatch channel in midrow parsing"),!1;var d=this.channels[c-1];return d.insertChars([32]),d.cc_MIDROW(b),k.log("DEBUG","MIDROW ("+l([a,b])+")"),this.lastCmdA=a,this.lastCmdB=b,!0}return!1},parsePAC:function(a,b){var c=null,d=null,e=(17<=a&&a<=23||25<=a&&a<=31)&&64<=b&&b<=127,j=(16===a||24===a)&&64<=b&&b<=95;if(!e&&!j)return!1;c=a<=23?1:2,d=64<=b&&b<=95?1===c?f[a]:h[a]:1===c?g[a]:i[a];var k=this.interpretPAC(d,b);return this.channels[c-1].setPAC(k),this.lastCmdA=a,this.lastCmdB=b,this.currChNr=c,!0},interpretPAC:function(a,b){var c=b,d={color:null,italics:!1,indent:null,underline:!1,row:a};return c=b>95?b-96:b-64,d.underline=1==(1&c),c<=13?d.color=["white","green","blue","cyan","red","yellow","magenta","white"][Math.floor(c/2)]:c<=15?(d.italics=!0,d.color="white"):d.indent=4*Math.floor((c-16)/2),d},parseChars:function(a,b){var d=null,e=null,f=null;if(a>=25?(d=2,f=a-8):(d=1,f=a),17<=f&&f<=19){var g=b;g=17===f?b+80:18===f?b+112:b+144,k.log("INFO","Special char '"+c(g)+"' in channel "+d),e=[g],this.lastCmdA=a,this.lastCmdB=b}else 32<=a&&a<=127&&(e=0===b?[a]:[a,b],this.lastCmdA=null,this.lastCmdB=null);if(e){var h=l(e);k.log("DEBUG","Char codes = "+h.join(","))}return e},parseBackgroundAttributes:function(a,b){var c,d,e,f,g=(16===a||24===a)&&32<=b&&b<=47,h=(23===a||31===a)&&45<=b&&b<=47;return!(!g&&!h)&&(c={},16===a||24===a?(d=Math.floor((b-32)/2),c.background=j[d],b%2==1&&(c.background=c.background+"_semi")):45===b?c.background="transparent":(c.foreground="black",47===b&&(c.underline=!0)),e=a<24?1:2,f=this.channels[e-1],f.setBkgData(c),this.lastCmdA=a,this.lastCmdB=b,!0)},reset:function(){for(var a=0;a/g,">").replace(/"/g,""").replace(/'/g,"'"):a}function g(a,b,c,d){for(var e=0;e0&&g(a.arrayAccessFormPaths,b,c,d)&&(b[c]=[b[c]])}function i(a){var b=a.split(/[-T:+Z]/g),c=new Date(b[0],b[1]-1,b[2]),d=b[5].split(".");if(c.setHours(b[3],b[4],d[0]),d.length>1&&c.setMilliseconds(d[1]),b[6]&&b[7]){var e=60*b[6]+Number(b[7]);e=0+("-"==(/\d\d-\d\d:\d\d$/.test(a)?"-":"+")?-1*e:e),c.setMinutes(c.getMinutes()-e-c.getTimezoneOffset())}else-1!==a.indexOf("Z",a.length-1)&&(c=new Date(Date.UTC(c.getFullYear(),c.getMonth(),c.getDate(),c.getHours(),c.getMinutes(),c.getSeconds(),c.getMilliseconds())));return c}function j(b,c,d){if(a.datetimeAccessFormPaths.length>0){var e=d.split(".#")[0];return g(a.datetimeAccessFormPaths,b,c,e)?i(b):b}return b}function k(b,c,d,e){return!(c==z.ELEMENT_NODE&&a.xmlElementsFilter.length>0)||g(a.xmlElementsFilter,b,d,e)}function l(b,c){if(b.nodeType==z.DOCUMENT_NODE){for(var f=new Object,g=b.childNodes,i=0;i1&&null!=f.__text&&a.skipEmptyTextNodesForObj&&(a.stripWhitespaces&&""==f.__text||""==f.__text.trim())&&delete f.__text:f=f.__cdata,delete f.__cnt,!a.enableToStringFunc||null==f.__text&&null==f.__cdata||(f.toString=function(){return(null!=this.__text?this.__text:"")+(null!=this.__cdata?this.__cdata:"")}),f}if(b.nodeType==z.TEXT_NODE||b.nodeType==z.CDATA_SECTION_NODE)return b.nodeValue}function m(b,c,d,e){var g="<"+(null!=b&&null!=b.__prefix?b.__prefix+":":"")+c;if(null!=d)for(var h=0;h":">"}function n(a,b){return""}function o(a,b){return-1!==a.indexOf(b,a.length-b.length)}function p(b,c){return!!("property"==a.arrayAccessForm&&o(c.toString(),"_asArray")||0==c.toString().indexOf(a.attributePrefix)||0==c.toString().indexOf("__")||b[c]instanceof Function)}function q(a){var b=0;if(a instanceof Object)for(var c in a)p(a,c)||b++;return b}function r(b,c,d){return 0==a.jsonPropertiesFilter.length||""==d||g(a.jsonPropertiesFilter,b,c,d)}function s(b){var c=[];if(b instanceof Object)for(var d in b)-1==d.toString().indexOf("__")&&0==d.toString().indexOf(a.attributePrefix)&&c.push(d);return c}function t(b){var c="";return null!=b.__cdata&&(c+=""),null!=b.__text&&(a.escapeMode?c+=f(b.__text):c+=b.__text),c}function u(b){var c="";return b instanceof Object?c+=t(b):null!=b&&(a.escapeMode?c+=f(b):c+=b),c}function v(a,b){return""===a?b:a+"."+b}function w(a,b,c,d){var e="";if(0==a.length)e+=m(a,b,c,!0);else for(var f=0;f0)for(var d in a)if(!p(a,d)&&(""==b||r(a,d,v(b,d)))){var e=a[d],f=s(e);if(null==e||void 0==e)c+=m(e,d,f,!0);else if(e instanceof Object)if(e instanceof Array)c+=w(e,d,f,b);else if(e instanceof Date)c+=m(e,d,f,!1),c+=e.toISOString(),c+=n(e,d);else{var g=q(e);g>0||null!=e.__text||null!=e.__cdata?(c+=m(e,d,f,!1),c+=x(e,v(b,d)),c+=n(e,d)):c+=m(e,d,f,!0)}else c+=m(e,d,f,!1),c+=u(e),c+=n(e,d)}return c+=u(a)}var y="1.2.0";a=a||{},b(),c();var z={ELEMENT_NODE:1,TEXT_NODE:3,CDATA_SECTION_NODE:4,COMMENT_NODE:8,DOCUMENT_NODE:9};this.parseXmlString=function(a){window.ActiveXObject||window;if(void 0===a)return null;var b;if(window.DOMParser){var c=new window.DOMParser;try{b=c.parseFromString(a,"text/xml"),b.getElementsByTagNameNS("*","parsererror").length>0&&(b=null)}catch(d){b=null}}else 0==a.indexOf("")+2)),b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a);return b},this.asArray=function(a){return void 0===a||null==a?[]:a instanceof Array?a:[a]},this.toXmlDateTime=function(a){return a instanceof Date?a.toISOString():"number"==typeof a?new Date(a).toISOString():null},this.asDateTime=function(a){return"string"==typeof a?i(a):a},this.xml2json=function(a){return l(a)},this.xml_str2json=function(a){var b=this.parseXmlString(a);return null!=b?this.xml2json(b):null},this.json2xml_str=function(a){return x(a,"")},this.json2xml=function(a){var b=this.json2xml_str(a);return this.parseXmlString(b)},this.getVersion=function(){return y}}Object.defineProperty(c,"__esModule",{value:!0}),c.default=d,b.exports=c.default},{}],4:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}Object.defineProperty(c,"__esModule",{value:!0});var e=a(5),f=a(117),g=d(f),h=a(151),i=d(h),j=a(95),k=d(j),l=a(46),m=d(l);dashjs.Protection=i.default,dashjs.MetricsReporting=g.default,dashjs.MediaPlayerFactory=k.default,dashjs.Debug=m.default,c.default=dashjs,c.MediaPlayer=e.MediaPlayer,c.Protection=i.default,c.MetricsReporting=g.default,c.MediaPlayerFactory=k.default,c.Debug=m.default},{117:117,151:151,46:46,5:5,95:95}],5:[function(a,b,c){(function(b){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}Object.defineProperty(c,"__esModule",{value:!0});var e=a(93),f=d(e),g=a(48),h=d(g),i=a(46),j=d(i),k=a(49),l="undefined"!=typeof window&&window||b,m=l.dashjs;m||(m=l.dashjs={}),m.MediaPlayer=f.default,m.FactoryMaker=h.default,m.Debug=j.default,m.Version=(0,k.getVersionString)(),c.default=m,c.MediaPlayer=f.default,c.FactoryMaker=h.default,c.Debug=j.default}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{46:46,48:48,49:49,93:93}],6:[function(a,b,c){/*! codem-isoboxer v0.3.5 https://github.com/madebyhiro/codem-isoboxer/blob/master/LICENSE.txt */ +var d={};d.parseBuffer=function(a){return new e(a).parse()},d.addBoxProcessor=function(a,b){"string"==typeof a&&"function"==typeof b&&(f.prototype._boxProcessors[a]=b)},d.createFile=function(){return new e},d.createBox=function(a,b,c){var d=f.create(a);return b&&b.append(d,c),d},d.createFullBox=function(a,b,c){var e=d.createBox(a,b,c);return e.version=0,e.flags=0,e},d.Utils={},d.Utils.dataViewToString=function(a,b){var c=b||"utf-8";if("undefined"!=typeof TextDecoder)return new TextDecoder(c).decode(a);var d=[],e=0;if("utf-8"===c)for(;e>6),b.push(128|63&d)):d<65536?(b.push(224|d>>12),b.push(128|63&d>>6),b.push(128|63&d)):(b.push(240|d>>18),b.push(128|63&d>>12),b.push(128|63&d>>6),b.push(128|63&d))}return b},d.Utils.appendBox=function(a,b,c){if(b._offset=a._cursor.offset,b._root=a._root?a._root:a,b._raw=a._raw,b._parent=a,-1!==c){if(void 0===c||null===c)return void a.boxes.push(b);var d,e=-1;if("number"==typeof c)e=c;else{if("string"==typeof c)d=c;else{if("object"!=typeof c||!c.type)return void a.boxes.push(b);d=c.type}for(var f=0;f>3,b},f.prototype._readUint=function(a){var b,c,d=null,e=this._cursor.offset-this._raw.byteOffset;switch(a){case 8:d=this._raw.getUint8(e);break;case 16:d=this._raw.getUint16(e);break;case 24:b=this._raw.getUint16(e),c=this._raw.getUint8(e+2),d=(b<<8)+c;break;case 32:d=this._raw.getUint32(e);break;case 64:b=this._raw.getUint32(e),c=this._raw.getUint32(e+4),d=b*Math.pow(2,32)+c}return this._cursor.offset+=a>>3,d},f.prototype._readString=function(a){for(var b="",c=0;c0?a:this._raw.byteLength-(this._cursor.offset-this._offset);if(b>0){var c=new Uint8Array(this._raw.buffer,this._cursor.offset,b);return this._cursor.offset+=b,c}return null},f.prototype._readUTF8String=function(){var a=this._raw.byteLength-(this._cursor.offset-this._offset),b=null;return a>0&&(b=new DataView(this._raw.buffer,this._cursor.offset,a),this._cursor.offset+=a),b?d.Utils.dataViewToString(b):b},f.prototype._parseBox=function(){if(this._parsing=!0,this._cursor.offset=this._offset,this._offset+8>this._raw.buffer.byteLength)return void(this._root._incomplete=!0);switch(this._procField("size","uint",32),this._procField("type","string",4),1===this.size&&this._procField("largesize","uint",64),"uuid"===this.type&&this._procFieldArray("usertype",16,"uint",8),this.size){case 0:this._raw=new DataView(this._raw.buffer,this._offset,this._raw.byteLength-this._cursor.offset+8);break;case 1:this._offset+this.size>this._raw.buffer.byteLength?(this._incomplete=!0,this._root._incomplete=!0):this._raw=new DataView(this._raw.buffer,this._offset,this.largesize);break;default:this._offset+this.size>this._raw.buffer.byteLength?(this._incomplete=!0,this._root._incomplete=!0):this._raw=new DataView(this._raw.buffer,this._offset,this.size)}this._incomplete||(this._boxProcessors[this.type]&&this._boxProcessors[this.type].call(this),-1!==this._boxContainers.indexOf(this.type)?this._parseContainerBox():this._data=this._readData())},f.prototype._parseFullBox=function(){this.version=this._readUint(8),this.flags=this._readUint(24)},f.prototype._parseContainerBox=function(){for(this.boxes=[];this._cursor.offset-this._raw.byteOffset>3}else this.size+=a>>3},f.prototype._writeUint=function(a,b){if(this._rawo){var c,d,e=this._cursor.offset-this._rawo.byteOffset;switch(a){case 8:this._rawo.setUint8(e,b);break;case 16:this._rawo.setUint16(e,b);break;case 24:c=(16776960&b)>>8,d=255&b,this._rawo.setUint16(e,c),this._rawo.setUint8(e+2,d);break;case 32:this._rawo.setUint32(e,b);break;case 64:c=Math.floor(b/Math.pow(2,32)),d=b-c*Math.pow(2,32),this._rawo.setUint32(e,c),this._rawo.setUint32(e+4,d)}this._cursor.offset+=a>>3}else this.size+=a>>3},f.prototype._writeString=function(a,b){for(var c=0;c>10&31),96+(this.language>>5&31),96+(31&this.language))),this._procField("pre_defined","uint",16)},f.prototype._boxProcessors.mehd=function(){this._procFullBox(),this._procField("fragment_duration","uint",1==this.version?64:32)},f.prototype._boxProcessors.mfhd=function(){this._procFullBox(),this._procField("sequence_number","uint",32)},f.prototype._boxProcessors.mfro=function(){this._procFullBox(),this._procField("mfra_size","uint",32)},f.prototype._boxProcessors.mp4a=f.prototype._boxProcessors.enca=function(){this._procFieldArray("reserved1",6,"uint",8),this._procField("data_reference_index","uint",16),this._procFieldArray("reserved2",2,"uint",32),this._procField("channelcount","uint",16),this._procField("samplesize","uint",16),this._procField("pre_defined","uint",16),this._procField("reserved3","uint",16),this._procField("samplerate","template",32),this._procField("esds","data",-1)},f.prototype._boxProcessors.mvhd=function(){this._procFullBox(),this._procField("creation_time","uint",1==this.version?64:32),this._procField("modification_time","uint",1==this.version?64:32),this._procField("timescale","uint",32),this._procField("duration","uint",1==this.version?64:32),this._procField("rate","template",32),this._procField("volume","template",16),this._procField("reserved1","uint",16),this._procFieldArray("reserved2",2,"uint",32),this._procFieldArray("matrix",9,"template",32),this._procFieldArray("pre_defined",6,"uint",32),this._procField("next_track_ID","uint",32)},f.prototype._boxProcessors.payl=function(){this._procField("cue_text","utf8")},f.prototype._boxProcessors.pssh=function(){this._procFullBox(),this._procFieldArray("SystemID",16,"uint",8),this._procField("DataSize","uint",32),this._procFieldArray("Data",this.DataSize,"uint",8)},f.prototype._boxProcessors.schm=function(){this._procFullBox(),this._procField("scheme_type","uint",32),this._procField("scheme_version","uint",32),1&this.flags&&this._procField("scheme_uri","string",-1)},f.prototype._boxProcessors.sdtp=function(){this._procFullBox();var a=-1;this._parsing&&(a=this._raw.byteLength-(this._cursor.offset-this._raw.byteOffset)),this._procFieldArray("sample_dependency_table",a,"uint",8)},f.prototype._boxProcessors.sidx=function(){this._procFullBox(),this._procField("reference_ID","uint",32),this._procField("timescale","uint",32),this._procField("earliest_presentation_time","uint",1==this.version?64:32),this._procField("first_offset","uint",1==this.version?64:32),this._procField("reserved","uint",16),this._procField("reference_count","uint",16),this._procEntries("references",this.reference_count,function(a){this._parsing||(a.reference=(1&a.reference_type)<<31,a.reference|=2147483647&a.referenced_size,a.sap=(1&a.starts_with_SAP)<<31,a.sap|=(3&a.SAP_type)<<28,a.sap|=268435455&a.SAP_delta_time),this._procEntryField(a,"reference","uint",32),this._procEntryField(a,"subsegment_duration","uint",32),this._procEntryField(a,"sap","uint",32),this._parsing&&(a.reference_type=a.reference>>31&1,a.referenced_size=2147483647&a.reference,a.starts_with_SAP=a.sap>>31&1,a.SAP_type=a.sap>>28&7,a.SAP_delta_time=268435455&a.sap)})},f.prototype._boxProcessors.smhd=function(){this._procFullBox(),this._procField("balance","uint",16),this._procField("reserved","uint",16)},f.prototype._boxProcessors.ssix=function(){this._procFullBox(),this._procField("subsegment_count","uint",32),this._procEntries("subsegments",this.subsegment_count,function(a){this._procEntryField(a,"ranges_count","uint",32),this._procSubEntries(a,"ranges",a.ranges_count,function(a){this._procEntryField(a,"level","uint",8),this._procEntryField(a,"range_size","uint",24)})})},f.prototype._boxProcessors.stsd=function(){this._procFullBox(),this._procField("entry_count","uint",32),this._procSubBoxes("entries",this.entry_count)},f.prototype._boxProcessors.subs=function(){this._procFullBox(),this._procField("entry_count","uint",32),this._procEntries("entries",this.entry_count,function(a){this._procEntryField(a,"sample_delta","uint",32),this._procEntryField(a,"subsample_count","uint",16),this._procSubEntries(a,"subsamples",a.subsample_count,function(a){this._procEntryField(a,"subsample_size","uint",1===this.version?32:16),this._procEntryField(a,"subsample_priority","uint",8),this._procEntryField(a,"discardable","uint",8),this._procEntryField(a,"codec_specific_parameters","uint",32)})})},f.prototype._boxProcessors.tenc=function(){this._procFullBox(),this._procField("default_IsEncrypted","uint",24),this._procField("default_IV_size","uint",8),this._procFieldArray("default_KID",16,"uint",8)},f.prototype._boxProcessors.tfdt=function(){this._procFullBox(),this._procField("baseMediaDecodeTime","uint",1==this.version?64:32)},f.prototype._boxProcessors.tfhd=function(){this._procFullBox(),this._procField("track_ID","uint",32),1&this.flags&&this._procField("base_data_offset","uint",64),2&this.flags&&this._procField("sample_description_offset","uint",32),8&this.flags&&this._procField("default_sample_duration","uint",32),16&this.flags&&this._procField("default_sample_size","uint",32),32&this.flags&&this._procField("default_sample_flags","uint",32)},f.prototype._boxProcessors.tfra=function(){this._procFullBox(),this._procField("track_ID","uint",32),this._parsing||(this.reserved=0,this.reserved|=(48&this.length_size_of_traf_num)<<4,this.reserved|=(12&this.length_size_of_trun_num)<<2,this.reserved|=3&this.length_size_of_sample_num),this._procField("reserved","uint",32),this._parsing&&(this.length_size_of_traf_num=(48&this.reserved)>>4,this.length_size_of_trun_num=(12&this.reserved)>>2,this.length_size_of_sample_num=3&this.reserved),this._procField("number_of_entry","uint",32),this._procEntries("entries",this.number_of_entry,function(a){this._procEntryField(a,"time","uint",1===this.version?64:32),this._procEntryField(a,"moof_offset","uint",1===this.version?64:32),this._procEntryField(a,"traf_number","uint",8*(this.length_size_of_traf_num+1)),this._procEntryField(a,"trun_number","uint",8*(this.length_size_of_trun_num+1)),this._procEntryField(a,"sample_number","uint",8*(this.length_size_of_sample_num+1))})},f.prototype._boxProcessors.tkhd=function(){this._procFullBox(),this._procField("creation_time","uint",1==this.version?64:32),this._procField("modification_time","uint",1==this.version?64:32),this._procField("track_ID","uint",32),this._procField("reserved1","uint",32),this._procField("duration","uint",1==this.version?64:32),this._procFieldArray("reserved2",2,"uint",32),this._procField("layer","uint",16),this._procField("alternate_group","uint",16),this._procField("volume","template",16),this._procField("reserved3","uint",16),this._procFieldArray("matrix",9,"template",32),this._procField("width","template",32),this._procField("height","template",32)},f.prototype._boxProcessors.trex=function(){this._procFullBox(),this._procField("track_ID","uint",32),this._procField("default_sample_description_index","uint",32),this._procField("default_sample_duration","uint",32),this._procField("default_sample_size","uint",32),this._procField("default_sample_flags","uint",32)},f.prototype._boxProcessors.trun=function(){this._procFullBox(),this._procField("sample_count","uint",32),1&this.flags&&this._procField("data_offset","int",32),4&this.flags&&this._procField("first_sample_flags","uint",32),this._procEntries("samples",this.sample_count,function(a){256&this.flags&&this._procEntryField(a,"sample_duration","uint",32),512&this.flags&&this._procEntryField(a,"sample_size","uint",32),1024&this.flags&&this._procEntryField(a,"sample_flags","uint",32),2048&this.flags&&this._procEntryField(a,"sample_composition_time_offset",1===this.version?"int":"uint",32)})},f.prototype._boxProcessors["url "]=f.prototype._boxProcessors["urn "]=function(){this._procFullBox(),"urn "===this.type&&this._procField("name","string",-1),this._procField("location","string",-1)},f.prototype._boxProcessors.vlab=function(){this._procField("source_label","utf8")},f.prototype._boxProcessors.vmhd=function(){this._procFullBox(),this._procField("graphicsmode","uint",16),this._procFieldArray("opcolor",3,"uint",16)},f.prototype._boxProcessors.vttC=function(){this._procField("config","utf8")},f.prototype._boxProcessors.vtte=function(){}},{}],7:[function(a,b,c){"use strict";var d=Array.isArray,e=Object.keys,f=Object.prototype.hasOwnProperty;b.exports=function a(b,c){if(b===c)return!0;var g,h,i,j=d(b),k=d(c);if(j&&k){if((h=b.length)!=c.length)return!1;for(g=0;g0)throw new Error("Invalid string. Length must be a multiple of 4");var k=a.length;i="="===a.charAt(k-2)?2:"="===a.charAt(k-1)?1:0,j=new e(3*a.length/4-i),g=i>0?a.length-4:a.length;var l=0;for(d=0,f=0;d>16),c((65280&h)>>8),c(255&h);return 2===i?(h=b(a.charAt(d))<<2|b(a.charAt(d+1))>>4,c(255&h)):1===i&&(h=b(a.charAt(d))<<10|b(a.charAt(d+1))<<4|b(a.charAt(d+2))>>2,c(h>>8&255),c(255&h)),j}function d(a){function b(a){return"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(a)}function c(a){return b(a>>18&63)+b(a>>12&63)+b(a>>6&63)+b(63&a)}var d,e,f,g=a.length%3,h="";for(d=0,f=a.length-g;d>2),h+=b(e<<4&63),h+="==";break;case 2:e=(a[a.length-2]<<8)+a[a.length-1],h+=b(e>>10),h+=b(e>>4&63),h+=b(e<<2&63),h+="="}return h}var e="undefined"!=typeof Uint8Array?Uint8Array:Array,f="+".charCodeAt(0),g="/".charCodeAt(0),h="0".charCodeAt(0),i="a".charCodeAt(0),j="A".charCodeAt(0),k="-".charCodeAt(0),l="_".charCodeAt(0);a.toByteArray=c,a.fromByteArray=d}(void 0===c?this.base64js={}:c)},{}],9:[function(a,b,c){},{}],10:[function(a,b,c){(function(b){/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ +"use strict";function d(){function a(){}try{var b=new Uint8Array(1);return b.foo=function(){return 42},b.constructor=a,42===b.foo()&&b.constructor===a&&"function"==typeof b.subarray&&0===b.subarray(1,1).byteLength}catch(c){return!1}}function e(){return f.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function f(a){return this instanceof f?(f.TYPED_ARRAY_SUPPORT||(this.length=0,this.parent=void 0),"number"==typeof a?g(this,a):"string"==typeof a?h(this,a,arguments.length>1?arguments[1]:"utf8"):i(this,a)):arguments.length>1?new f(a,arguments[1]):new f(a)}function g(a,b){if(a=p(a,b<0?0:0|q(b)),!f.TYPED_ARRAY_SUPPORT)for(var c=0;c>>1&&(a.parent=Z),a}function q(a){if(a>=e())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+e().toString(16)+" bytes");return 0|a}function r(a,b){if(!(this instanceof r))return new r(a,b);var c=new f(a,b);return delete c.parent,c}function s(a,b){"string"!=typeof a&&(a=""+a);var c=a.length;if(0===c)return 0;for(var d=!1;;)switch(b){case"ascii":case"binary":case"raw":case"raws":return c;case"utf8":case"utf-8":return R(a).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*c;case"hex":return c>>>1;case"base64":return U(a).length;default:if(d)return R(a).length;b=(""+b).toLowerCase(),d=!0}}function t(a,b,c){var d=!1;if(b|=0,c=void 0===c||c===1/0?this.length:0|c,a||(a="utf8"),b<0&&(b=0),c>this.length&&(c=this.length),c<=b)return"";for(;;)switch(a){case"hex":return F(this,b,c);case"utf8":case"utf-8":return B(this,b,c);case"ascii":return D(this,b,c);case"binary":return E(this,b,c);case"base64":return A(this,b,c);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return G(this,b,c);default:if(d)throw new TypeError("Unknown encoding: "+a);a=(a+"").toLowerCase(),d=!0}}function u(a,b,c,d){c=Number(c)||0;var e=a.length-c;d?(d=Number(d))>e&&(d=e):d=e;var f=b.length;if(f%2!=0)throw new Error("Invalid hex string");d>f/2&&(d=f/2);for(var g=0;g239?4:f>223?3:f>191?2:1;if(e+h<=c){var i,j,k,l;switch(h){case 1:f<128&&(g=f);break;case 2:i=a[e+1],128==(192&i)&&(l=(31&f)<<6|63&i)>127&&(g=l);break;case 3:i=a[e+1],j=a[e+2],128==(192&i)&&128==(192&j)&&(l=(15&f)<<12|(63&i)<<6|63&j)>2047&&(l<55296||l>57343)&&(g=l);break;case 4:i=a[e+1],j=a[e+2],k=a[e+3],128==(192&i)&&128==(192&j)&&128==(192&k)&&(l=(15&f)<<18|(63&i)<<12|(63&j)<<6|63&k)>65535&&l<1114112&&(g=l)}}null===g?(g=65533,h=1):g>65535&&(g-=65536,d.push(g>>>10&1023|55296),g=56320|1023&g),d.push(g),e+=h}return C(d)}function C(a){var b=a.length;if(b<=$)return String.fromCharCode.apply(String,a);for(var c="",d=0;dd)&&(c=d);for(var e="",f=b;fc)throw new RangeError("Trying to access beyond buffer length")}function I(a,b,c,d,e,g){if(!f.isBuffer(a))throw new TypeError("buffer must be a Buffer instance");if(b>e||ba.length)throw new RangeError("index out of range")}function J(a,b,c,d){b<0&&(b=65535+b+1);for(var e=0,f=Math.min(a.length-c,2);e>>8*(d?e:1-e)}function K(a,b,c,d){b<0&&(b=4294967295+b+1);for(var e=0,f=Math.min(a.length-c,4);e>>8*(d?e:3-e)&255}function L(a,b,c,d,e,f){if(b>e||ba.length)throw new RangeError("index out of range");if(c<0)throw new RangeError("index out of range")}function M(a,b,c,d,e){return e||L(a,b,c,4,3.4028234663852886e38,-3.4028234663852886e38),X.write(a,b,c,d,23,4),c+4}function N(a,b,c,d,e){return e||L(a,b,c,8,1.7976931348623157e308,-1.7976931348623157e308),X.write(a,b,c,d,52,8),c+8}function O(a){if(a=P(a).replace(aa,""),a.length<2)return"";for(;a.length%4!=0;)a+="=";return a}function P(a){return a.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}function Q(a){return a<16?"0"+a.toString(16):a.toString(16)}function R(a,b){b=b||1/0;for(var c,d=a.length,e=null,f=[],g=0;g55295&&c<57344){if(!e){if(c>56319){(b-=3)>-1&&f.push(239,191,189);continue}if(g+1===d){(b-=3)>-1&&f.push(239,191,189);continue}e=c;continue}if(c<56320){(b-=3)>-1&&f.push(239,191,189),e=c;continue}c=65536+(e-55296<<10|c-56320)}else e&&(b-=3)>-1&&f.push(239,191,189);if(e=null,c<128){if((b-=1)<0)break;f.push(c)}else if(c<2048){if((b-=2)<0)break;f.push(c>>6|192,63&c|128)}else if(c<65536){if((b-=3)<0)break;f.push(c>>12|224,c>>6&63|128,63&c|128)}else{if(!(c<1114112))throw new Error("Invalid code point");if((b-=4)<0)break;f.push(c>>18|240,c>>12&63|128,c>>6&63|128,63&c|128)}}return f}function S(a){for(var b=[],c=0;c>8,e=c%256,f.push(e),f.push(d);return f}function U(a){return W.toByteArray(O(a))}function V(a,b,c,d){for(var e=0;e=b.length||e>=a.length);e++)b[e+c]=a[e];return e}var W=a(8),X=a(14),Y=a(11);c.Buffer=f,c.SlowBuffer=r,c.INSPECT_MAX_BYTES=50,f.poolSize=8192;var Z={};f.TYPED_ARRAY_SUPPORT=void 0!==b.TYPED_ARRAY_SUPPORT?b.TYPED_ARRAY_SUPPORT:d(),f.TYPED_ARRAY_SUPPORT?(f.prototype.__proto__=Uint8Array.prototype,f.__proto__=Uint8Array):(f.prototype.length=void 0,f.prototype.parent=void 0),f.isBuffer=function(a){return!(null==a||!a._isBuffer)},f.compare=function(a,b){if(!f.isBuffer(a)||!f.isBuffer(b))throw new TypeError("Arguments must be Buffers");if(a===b)return 0;for(var c=a.length,d=b.length,e=0,g=Math.min(c,d);e0&&(a=this.toString("hex",0,b).match(/.{2}/g).join(" "),this.length>b&&(a+=" ... ")),""},f.prototype.compare=function(a){if(!f.isBuffer(a))throw new TypeError("Argument must be a Buffer");return this===a?0:f.compare(this,a)},f.prototype.indexOf=function(a,b){function c(a,b,c){for(var d=-1,e=0;c+e2147483647?b=2147483647:b<-2147483648&&(b=-2147483648),b>>=0,0===this.length)return-1;if(b>=this.length)return-1;if(b<0&&(b=Math.max(this.length+b,0)),"string"==typeof a)return 0===a.length?-1:String.prototype.indexOf.call(this,a,b);if(f.isBuffer(a))return c(this,a,b);if("number"==typeof a)return f.TYPED_ARRAY_SUPPORT&&"function"===Uint8Array.prototype.indexOf?Uint8Array.prototype.indexOf.call(this,a,b):c(this,[a],b);throw new TypeError("val must be string, number or Buffer")},f.prototype.get=function(a){return console.log(".get() is deprecated. Access using array indexes instead."),this.readUInt8(a)},f.prototype.set=function(a,b){return console.log(".set() is deprecated. Access using array indexes instead."),this.writeUInt8(a,b)},f.prototype.write=function(a,b,c,d){if(void 0===b)d="utf8",c=this.length,b=0;else if(void 0===c&&"string"==typeof b)d=b,c=this.length,b=0;else if(isFinite(b))b|=0,isFinite(c)?(c|=0,void 0===d&&(d="utf8")):(d=c,c=void 0);else{var e=d;d=b,b=0|c,c=e}var f=this.length-b;if((void 0===c||c>f)&&(c=f),a.length>0&&(c<0||b<0)||b>this.length)throw new RangeError("attempt to write outside buffer bounds");d||(d="utf8");for(var g=!1;;)switch(d){case"hex":return u(this,a,b,c);case"utf8":case"utf-8":return v(this,a,b,c);case"ascii":return w(this,a,b,c);case"binary":return x(this,a,b,c);case"base64":return y(this,a,b,c);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return z(this,a,b,c);default:if(g)throw new TypeError("Unknown encoding: "+d);d=(""+d).toLowerCase(),g=!0}},f.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var $=4096;f.prototype.slice=function(a,b){var c=this.length;a=~~a,b=void 0===b?c:~~b,a<0?(a+=c)<0&&(a=0):a>c&&(a=c),b<0?(b+=c)<0&&(b=0):b>c&&(b=c),b0&&(e*=256);)d+=this[a+--b]*e;return d},f.prototype.readUInt8=function(a,b){return b||H(a,1,this.length),this[a]},f.prototype.readUInt16LE=function(a,b){return b||H(a,2,this.length),this[a]|this[a+1]<<8},f.prototype.readUInt16BE=function(a,b){return b||H(a,2,this.length),this[a]<<8|this[a+1]},f.prototype.readUInt32LE=function(a,b){return b||H(a,4,this.length),(this[a]|this[a+1]<<8|this[a+2]<<16)+16777216*this[a+3]},f.prototype.readUInt32BE=function(a,b){return b||H(a,4,this.length),16777216*this[a]+(this[a+1]<<16|this[a+2]<<8|this[a+3])},f.prototype.readIntLE=function(a,b,c){a|=0,b|=0,c||H(a,b,this.length);for(var d=this[a],e=1,f=0;++f=e&&(d-=Math.pow(2,8*b)),d},f.prototype.readIntBE=function(a,b,c){a|=0,b|=0,c||H(a,b,this.length);for(var d=b,e=1,f=this[a+--d];d>0&&(e*=256);)f+=this[a+--d]*e;return e*=128,f>=e&&(f-=Math.pow(2,8*b)),f},f.prototype.readInt8=function(a,b){return b||H(a,1,this.length),128&this[a]?-1*(255-this[a]+1):this[a]},f.prototype.readInt16LE=function(a,b){b||H(a,2,this.length);var c=this[a]|this[a+1]<<8;return 32768&c?4294901760|c:c},f.prototype.readInt16BE=function(a,b){b||H(a,2,this.length);var c=this[a+1]|this[a]<<8;return 32768&c?4294901760|c:c},f.prototype.readInt32LE=function(a,b){return b||H(a,4,this.length),this[a]|this[a+1]<<8|this[a+2]<<16|this[a+3]<<24},f.prototype.readInt32BE=function(a,b){return b||H(a,4,this.length),this[a]<<24|this[a+1]<<16|this[a+2]<<8|this[a+3]},f.prototype.readFloatLE=function(a,b){return b||H(a,4,this.length),X.read(this,a,!0,23,4)},f.prototype.readFloatBE=function(a,b){return b||H(a,4,this.length),X.read(this,a,!1,23,4)},f.prototype.readDoubleLE=function(a,b){return b||H(a,8,this.length),X.read(this,a,!0,52,8)},f.prototype.readDoubleBE=function(a,b){return b||H(a,8,this.length),X.read(this,a,!1,52,8)},f.prototype.writeUIntLE=function(a,b,c,d){a=+a,b|=0,c|=0,d||I(this,a,b,c,Math.pow(2,8*c),0);var e=1,f=0;for(this[b]=255&a;++f=0&&(f*=256);)this[b+e]=a/f&255;return b+c},f.prototype.writeUInt8=function(a,b,c){return a=+a,b|=0,c||I(this,a,b,1,255,0),f.TYPED_ARRAY_SUPPORT||(a=Math.floor(a)),this[b]=255&a,b+1},f.prototype.writeUInt16LE=function(a,b,c){return a=+a,b|=0,c||I(this,a,b,2,65535,0),f.TYPED_ARRAY_SUPPORT?(this[b]=255&a,this[b+1]=a>>>8):J(this,a,b,!0),b+2},f.prototype.writeUInt16BE=function(a,b,c){return a=+a,b|=0,c||I(this,a,b,2,65535,0),f.TYPED_ARRAY_SUPPORT?(this[b]=a>>>8,this[b+1]=255&a):J(this,a,b,!1),b+2},f.prototype.writeUInt32LE=function(a,b,c){return a=+a,b|=0,c||I(this,a,b,4,4294967295,0),f.TYPED_ARRAY_SUPPORT?(this[b+3]=a>>>24,this[b+2]=a>>>16,this[b+1]=a>>>8,this[b]=255&a):K(this,a,b,!0),b+4},f.prototype.writeUInt32BE=function(a,b,c){return a=+a,b|=0,c||I(this,a,b,4,4294967295,0),f.TYPED_ARRAY_SUPPORT?(this[b]=a>>>24,this[b+1]=a>>>16,this[b+2]=a>>>8,this[b+3]=255&a):K(this,a,b,!1),b+4},f.prototype.writeIntLE=function(a,b,c,d){if(a=+a,b|=0,!d){var e=Math.pow(2,8*c-1);I(this,a,b,c,e-1,-e)}var f=0,g=1,h=a<0?1:0;for(this[b]=255&a;++f>0)-h&255;return b+c},f.prototype.writeIntBE=function(a,b,c,d){if(a=+a,b|=0,!d){var e=Math.pow(2,8*c-1);I(this,a,b,c,e-1,-e)}var f=c-1,g=1,h=a<0?1:0;for(this[b+f]=255&a;--f>=0&&(g*=256);)this[b+f]=(a/g>>0)-h&255;return b+c},f.prototype.writeInt8=function(a,b,c){return a=+a,b|=0,c||I(this,a,b,1,127,-128),f.TYPED_ARRAY_SUPPORT||(a=Math.floor(a)),a<0&&(a=255+a+1),this[b]=255&a,b+1},f.prototype.writeInt16LE=function(a,b,c){return a=+a,b|=0,c||I(this,a,b,2,32767,-32768),f.TYPED_ARRAY_SUPPORT?(this[b]=255&a,this[b+1]=a>>>8):J(this,a,b,!0),b+2},f.prototype.writeInt16BE=function(a,b,c){return a=+a,b|=0,c||I(this,a,b,2,32767,-32768),f.TYPED_ARRAY_SUPPORT?(this[b]=a>>>8,this[b+1]=255&a):J(this,a,b,!1),b+2},f.prototype.writeInt32LE=function(a,b,c){return a=+a,b|=0,c||I(this,a,b,4,2147483647,-2147483648),f.TYPED_ARRAY_SUPPORT?(this[b]=255&a,this[b+1]=a>>>8,this[b+2]=a>>>16,this[b+3]=a>>>24):K(this,a,b,!0),b+4},f.prototype.writeInt32BE=function(a,b,c){return a=+a,b|=0,c||I(this,a,b,4,2147483647,-2147483648),a<0&&(a=4294967295+a+1),f.TYPED_ARRAY_SUPPORT?(this[b]=a>>>24,this[b+1]=a>>>16,this[b+2]=a>>>8,this[b+3]=255&a):K(this,a,b,!1),b+4},f.prototype.writeFloatLE=function(a,b,c){return M(this,a,b,!0,c)},f.prototype.writeFloatBE=function(a,b,c){return M(this,a,b,!1,c)},f.prototype.writeDoubleLE=function(a,b,c){return N(this,a,b,!0,c)},f.prototype.writeDoubleBE=function(a,b,c){return N(this,a,b,!1,c)},f.prototype.copy=function(a,b,c,d){if(c||(c=0),d||0===d||(d=this.length),b>=a.length&&(b=a.length),b||(b=0),d>0&&d=this.length)throw new RangeError("sourceStart out of bounds");if(d<0)throw new RangeError("sourceEnd out of bounds");d>this.length&&(d=this.length),a.length-b=0;e--)a[e+b]=this[e+c];else if(g<1e3||!f.TYPED_ARRAY_SUPPORT)for(e=0;e=this.length)throw new RangeError("start out of bounds");if(c<0||c>this.length)throw new RangeError("end out of bounds");var d;if("number"==typeof a)for(d=b;d0&&this._events[a].length>c&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),"function"==typeof console.trace&&console.trace())}return this},d.prototype.on=d.prototype.addListener,d.prototype.once=function(a,b){function c(){this.removeListener(a,c),d||(d=!0,b.apply(this,arguments))}if(!e(b))throw TypeError("listener must be a function");var d=!1;return c.listener=b,this.on(a,c),this},d.prototype.removeListener=function(a,b){var c,d,f,h;if(!e(b))throw TypeError("listener must be a function");if(!this._events||!this._events[a])return this;if(c=this._events[a],f=c.length,d=-1,c===b||e(c.listener)&&c.listener===b)delete this._events[a],this._events.removeListener&&this.emit("removeListener",a,b);else if(g(c)){for(h=f;h-- >0;)if(c[h]===b||c[h].listener&&c[h].listener===b){d=h;break}if(d<0)return this;1===c.length?(c.length=0,delete this._events[a]):c.splice(d,1),this._events.removeListener&&this.emit("removeListener",a,b)}return this},d.prototype.removeAllListeners=function(a){var b,c;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[a]&&delete this._events[a],this;if(0===arguments.length){for(b in this._events)"removeListener"!==b&&this.removeAllListeners(b);return this.removeAllListeners("removeListener"),this._events={},this}if(c=this._events[a],e(c))this.removeListener(a,c);else for(;c.length;)this.removeListener(a,c[c.length-1]);return delete this._events[a],this},d.prototype.listeners=function(a){return this._events&&this._events[a]?e(this._events[a])?[this._events[a]]:this._events[a].slice():[]},d.listenerCount=function(a,b){return a._events&&a._events[b]?e(a._events[b])?1:a._events[b].length:0}},{}],14:[function(a,b,c){c.read=function(a,b,c,d,e){var f,g,h=8*e-d-1,i=(1<>1,k=-7,l=c?e-1:0,m=c?-1:1,n=a[b+l];for(l+=m,f=n&(1<<-k)-1,n>>=-k,k+=h;k>0;f=256*f+a[b+l],l+=m,k-=8);for(g=f&(1<<-k)-1,f>>=-k,k+=d;k>0;g=256*g+a[b+l],l+=m,k-=8);if(0===f)f=1-j;else{if(f===i)return g?NaN:1/0*(n?-1:1);g+=Math.pow(2,d),f-=j}return(n?-1:1)*g*Math.pow(2,f-d)},c.write=function(a,b,c,d,e,f){var g,h,i,j=8*f-e-1,k=(1<>1,m=23===e?Math.pow(2,-24)-Math.pow(2,-77):0,n=d?0:f-1,o=d?1:-1,p=b<0||0===b&&1/b<0?1:0;for(b=Math.abs(b),isNaN(b)||b===1/0?(h=isNaN(b)?1:0,g=k):(g=Math.floor(Math.log(b)/Math.LN2),b*(i=Math.pow(2,-g))<1&&(g--,i*=2),b+=g+l>=1?m/i:m*Math.pow(2,1-l),b*i>=2&&(g++,i/=2),g+l>=k?(h=0,g=k):g+l>=1?(h=(b*i-1)*Math.pow(2,e),g+=l):(h=b*Math.pow(2,l-1)*Math.pow(2,e),g=0));e>=8;a[c+n]=255&h,n+=o,h/=256,e-=8);for(g=g<0;a[c+n]=255&g,n+=o,g/=256,j-=8);a[c+n-o]|=128*p}},{}],15:[function(a,b,c){"function"==typeof Object.create?b.exports=function(a,b){a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}})}:b.exports=function(a,b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}},{}],16:[function(a,b,c){function d(a){return!!a.constructor&&"function"==typeof a.constructor.isBuffer&&a.constructor.isBuffer(a)}function e(a){return"function"==typeof a.readFloatLE&&"function"==typeof a.slice&&d(a.slice(0,0))}/*! + * Determine if an object is a Buffer + * + * @author Feross Aboukhadijeh + * @license MIT + */ +b.exports=function(a){return null!=a&&(d(a)||e(a)||!!a._isBuffer)}},{}],17:[function(a,b,c){(function(a){"use strict";function c(b,c,d,e){if("function"!=typeof b)throw new TypeError('"callback" argument must be a function');var f,g,h=arguments.length;switch(h){case 0:case 1:return a.nextTick(b);case 2:return a.nextTick(function(){b.call(null,c)});case 3:return a.nextTick(function(){b.call(null,c,d)});case 4:return a.nextTick(function(){b.call(null,c,d,e)});default:for(f=new Array(h-1),g=0;g1)for(var c=1;c0?("string"==typeof b||g.objectMode||Object.getPrototypeOf(b)===L.prototype||(b=e(b)),d?g.endEmitted?a.emit("error",new Error("stream.unshift() after end event")):k(a,g,b,!0):g.ended?a.emit("error",new Error("stream.push() after EOF")):(g.reading=!1,g.decoder&&!c?(b=g.decoder.write(b),g.objectMode||0!==b.length?k(a,g,b,!1):s(a,g)):k(a,g,b,!1))):d||(g.reading=!1)}return m(g)}function k(a,b,c,d){b.flowing&&0===b.length&&!b.sync?(a.emit("data",c),a.read(0)):(b.length+=b.objectMode?1:c.length,d?b.buffer.unshift(c):b.buffer.push(c),b.needReadable&&q(a)),s(a,b)}function l(a,b){var c;return f(b)||"string"==typeof b||void 0===b||a.objectMode||(c=new TypeError("Invalid non-string/buffer chunk")),c}function m(a){return!a.ended&&(a.needReadable||a.length=U?a=U:(a--,a|=a>>>1,a|=a>>>2,a|=a>>>4,a|=a>>>8,a|=a>>>16,a++),a}function o(a,b){return a<=0||0===b.length&&b.ended?0:b.objectMode?1:a!==a?b.flowing&&b.length?b.buffer.head.data.length:b.length:(a>b.highWaterMark&&(b.highWaterMark=n(a)),a<=b.length?a:b.ended?b.length:(b.needReadable=!0,0))}function p(a,b){if(!b.ended){if(b.decoder){var c=b.decoder.end();c&&c.length&&(b.buffer.push(c),b.length+=b.objectMode?1:c.length)}b.ended=!0,q(a)}}function q(a){var b=a._readableState;b.needReadable=!1,b.emittedReadable||(P("emitReadable",b.flowing),b.emittedReadable=!0,b.sync?G.nextTick(r,a):r(a))}function r(a){P("emit readable"),a.emit("readable"),y(a)}function s(a,b){b.readingMore||(b.readingMore=!0,G.nextTick(t,a,b))}function t(a,b){for(var c=b.length;!b.reading&&!b.flowing&&!b.ended&&b.length=b.length?(c=b.decoder?b.buffer.join(""):1===b.buffer.length?b.buffer.head.data:b.buffer.concat(b.length),b.buffer.clear()):c=A(a,b.buffer,b.decoder),c}function A(a,b,c){var d;return af.length?f.length:a;if(g===f.length?e+=f:e+=f.slice(0,a),0===(a-=g)){g===f.length?(++d,c.next?b.head=c.next:b.head=b.tail=null):(b.head=c,c.data=f.slice(g));break}++d}return b.length-=d,e}function C(a,b){var c=L.allocUnsafe(a),d=b.head,e=1;for(d.data.copy(c),a-=d.data.length;d=d.next;){var f=d.data,g=a>f.length?f.length:a;if(f.copy(c,c.length-a,0,g),0===(a-=g)){g===f.length?(++e,d.next?b.head=d.next:b.head=b.tail=null):(b.head=d,d.data=f.slice(g));break}++e}return b.length-=e,c}function D(a){var b=a._readableState;if(b.length>0)throw new Error('"endReadable()" called on non-empty stream');b.endEmitted||(b.ended=!0,G.nextTick(E,b,a))}function E(a,b){a.endEmitted||0!==a.length||(a.endEmitted=!0,b.readable=!1,b.emit("end"))}function F(a,b){for(var c=0,d=a.length;c=b.highWaterMark||b.ended))return P("read: emitReadable",b.length,b.ended),0===b.length&&b.ended?D(this):q(this),null;if(0===(a=o(a,b))&&b.ended)return 0===b.length&&D(this),null;var d=b.needReadable;P("need readable",d),(0===b.length||b.length-a0?z(a,b):null,null===e?(b.needReadable=!0,a=0):b.length-=a,0===b.length&&(b.ended||(b.needReadable=!0),c!==a&&b.ended&&D(this)),null!==e&&this.emit("data",e),e},i.prototype._read=function(a){this.emit("error",new Error("_read() is not implemented"))},i.prototype.pipe=function(a,b){function d(a,b){P("onunpipe"),a===m&&b&&!1===b.hasUnpiped&&(b.hasUnpiped=!0,f())}function e(){P("onend"),a.end()}function f(){P("cleanup"),a.removeListener("close",j),a.removeListener("finish",k),a.removeListener("drain",q),a.removeListener("error",i),a.removeListener("unpipe",d),m.removeListener("end",e),m.removeListener("end",l),m.removeListener("data",h),r=!0,!n.awaitDrain||a._writableState&&!a._writableState.needDrain||q()}function h(b){P("ondata"),s=!1,!1!==a.write(b)||s||((1===n.pipesCount&&n.pipes===a||n.pipesCount>1&&-1!==F(n.pipes,a))&&!r&&(P("false write response, pause",m._readableState.awaitDrain),m._readableState.awaitDrain++,s=!0),m.pause())}function i(b){P("onerror",b),l(),a.removeListener("error",i),0===J(a,"error")&&a.emit("error",b)}function j(){a.removeListener("finish",k),l()}function k(){P("onfinish"),a.removeListener("close",j),l()}function l(){P("unpipe"),m.unpipe(a)}var m=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=a;break;case 1:n.pipes=[n.pipes,a];break;default:n.pipes.push(a)}n.pipesCount+=1,P("pipe count=%d opts=%j",n.pipesCount,b);var o=(!b||!1!==b.end)&&a!==c.stdout&&a!==c.stderr,p=o?e:l;n.endEmitted?G.nextTick(p):m.once("end",p),a.on("unpipe",d);var q=u(m);a.on("drain",q);var r=!1,s=!1;return m.on("data",h),g(a,"error",i),a.once("close",j),a.once("finish",k),a.emit("pipe",m),n.flowing||(P("pipe resume"),m.resume()),a},i.prototype.unpipe=function(a){var b=this._readableState,c={hasUnpiped:!1};if(0===b.pipesCount)return this;if(1===b.pipesCount)return a&&a!==b.pipes?this:(a||(a=b.pipes),b.pipes=null,b.pipesCount=0,b.flowing=!1,a&&a.emit("unpipe",this,c),this);if(!a){var d=b.pipes,e=b.pipesCount;b.pipes=null,b.pipesCount=0,b.flowing=!1;for(var f=0;f-1?setImmediate:B.nextTick;j.WritableState=i;var E=a(12);E.inherits=a(15);var F={deprecate:a(37)},G=a(27),H=a(34).Buffer,I=d.Uint8Array||function(){},J=a(26);E.inherits(j,G),i.prototype.getBuffer=function(){for(var a=this.bufferedRequest,b=[];a;)b.push(a),a=a.next;return b},function(){try{Object.defineProperty(i.prototype,"buffer",{get:F.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(a){}}();var K;"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(K=Function.prototype[Symbol.hasInstance],Object.defineProperty(j,Symbol.hasInstance,{value:function(a){return!!K.call(this,a)||this===j&&(a&&a._writableState instanceof i)}})):K=function(a){return a instanceof this},j.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},j.prototype.write=function(a,b,c){var d=this._writableState,e=!1,i=!d.objectMode&&g(a);return i&&!H.isBuffer(a)&&(a=f(a)),"function"==typeof b&&(c=b,b=null),i?b="buffer":b||(b=d.defaultEncoding),"function"!=typeof c&&(c=h),d.ended?k(this,c):(i||l(this,d,a,c))&&(d.pendingcb++,e=n(this,d,i,a,b,c)),e},j.prototype.cork=function(){this._writableState.corked++},j.prototype.uncork=function(){var a=this._writableState;a.corked&&(a.corked--,a.writing||a.corked||a.finished||a.bufferProcessing||!a.bufferedRequest||u(this,a))},j.prototype.setDefaultEncoding=function(a){if("string"==typeof a&&(a=a.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((a+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+a);return this._writableState.defaultEncoding=a,this},Object.defineProperty(j.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),j.prototype._write=function(a,b,c){c(new Error("_write() is not implemented"))},j.prototype._writev=null,j.prototype.end=function(a,b,c){var d=this._writableState;"function"==typeof a?(c=a,a=null,b=null):"function"==typeof b&&(c=b,b=null),null!==a&&void 0!==a&&this.write(a,b),d.corked&&(d.corked=1,this.uncork()),d.ending||d.finished||z(this,d,c)},Object.defineProperty(j.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(a){this._writableState&&(this._writableState.destroyed=a)}}),j.prototype.destroy=J.destroy,j.prototype._undestroy=J.undestroy,j.prototype._destroy=function(a,b){this.end(),b(a)}}).call(this,a(18),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{12:12,15:15,17:17,18:18,20:20,26:26,27:27,34:34,37:37}],25:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b,c){a.copy(b,c)}var f=a(34).Buffer,g=a(9);b.exports=function(){function a(){d(this,a),this.head=null,this.tail=null,this.length=0}return a.prototype.push=function(a){var b={data:a,next:null};this.length>0?this.tail.next=b:this.head=b,this.tail=b,++this.length},a.prototype.unshift=function(a){var b={data:a,next:this.head};0===this.length&&(this.tail=b),this.head=b,++this.length},a.prototype.shift=function(){if(0!==this.length){var a=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,a}},a.prototype.clear=function(){this.head=this.tail=null,this.length=0},a.prototype.join=function(a){if(0===this.length)return"";for(var b=this.head,c=""+b.data;b=b.next;)c+=a+b.data;return c},a.prototype.concat=function(a){if(0===this.length)return f.alloc(0);if(1===this.length)return this.head.data;for(var b=f.allocUnsafe(a>>>0),c=this.head,d=0;c;)e(c.data,b,d),d+=c.data.length,c=c.next;return b},a}(),g&&g.inspect&&g.inspect.custom&&(b.exports.prototype[g.inspect.custom]=function(){var a=g.inspect({length:this.length});return this.constructor.name+" "+a})},{34:34,9:9}],26:[function(a,b,c){"use strict";function d(a,b){var c=this,d=this._readableState&&this._readableState.destroyed,e=this._writableState&&this._writableState.destroyed;return d||e?(b?b(a):!a||this._writableState&&this._writableState.errorEmitted||g.nextTick(f,this,a),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(a||null,function(a){!b&&a?(g.nextTick(f,c,a),c._writableState&&(c._writableState.errorEmitted=!0)):b&&b(a)}),this)}function e(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function f(a,b){a.emit("error",b)}var g=a(17);b.exports={destroy:d,undestroy:e}},{17:17}],27:[function(a,b,c){b.exports=a(13).EventEmitter},{13:13}],28:[function(a,b,c){arguments[4][11][0].apply(c,arguments)},{11:11}],29:[function(a,b,c){"use strict";function d(a){if(!a)return"utf8";for(var b;;)switch(a){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return a;default:if(b)return;a=(""+a).toLowerCase(),b=!0}}function e(a){var b=d(a);if("string"!=typeof b&&(s.isEncoding===t||!t(a)))throw new Error("Unknown encoding: "+a);return b||a}function f(a){this.encoding=e(a);var b;switch(this.encoding){case"utf16le":this.text=m,this.end=n,b=4;break;case"utf8":this.fillLast=j,b=4;break;case"base64":this.text=o,this.end=p,b=3;break;default:return this.write=q,void(this.end=r)}this.lastNeed=0,this.lastTotal=0,this.lastChar=s.allocUnsafe(b)}function g(a){return a<=127?0:a>>5==6?2:a>>4==14?3:a>>3==30?4:a>>6==2?-1:-2}function h(a,b,c){var d=b.length-1;if(d=0?(e>0&&(a.lastNeed=e-1),e):--d=0?(e>0&&(a.lastNeed=e-2),e):--d=0?(e>0&&(2===e?e=0:a.lastNeed=e-3),e):0)}function i(a,b,c){if(128!=(192&b[0]))return a.lastNeed=0,"�";if(a.lastNeed>1&&b.length>1){if(128!=(192&b[1]))return a.lastNeed=1,"�";if(a.lastNeed>2&&b.length>2&&128!=(192&b[2]))return a.lastNeed=2,"�"}}function j(a){var b=this.lastTotal-this.lastNeed,c=i(this,a,b);return void 0!==c?c:this.lastNeed<=a.length?(a.copy(this.lastChar,b,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(a.copy(this.lastChar,b,0,a.length),void(this.lastNeed-=a.length))}function k(a,b){var c=h(this,a,b);if(!this.lastNeed)return a.toString("utf8",b);this.lastTotal=c;var d=a.length-(c-this.lastNeed);return a.copy(this.lastChar,0,d),a.toString("utf8",b,d)}function l(a){var b=a&&a.length?this.write(a):"";return this.lastNeed?b+"�":b}function m(a,b){if((a.length-b)%2==0){var c=a.toString("utf16le",b);if(c){var d=c.charCodeAt(c.length-1);if(d>=55296&&d<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=a[a.length-2],this.lastChar[1]=a[a.length-1],c.slice(0,-1)}return c}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=a[a.length-1],a.toString("utf16le",b,a.length-1)}function n(a){var b=a&&a.length?this.write(a):"";if(this.lastNeed){var c=this.lastTotal-this.lastNeed;return b+this.lastChar.toString("utf16le",0,c)}return b}function o(a,b){var c=(a.length-b)%3;return 0===c?a.toString("base64",b):(this.lastNeed=3-c,this.lastTotal=3,1===c?this.lastChar[0]=a[a.length-1]:(this.lastChar[0]=a[a.length-2],this.lastChar[1]=a[a.length-1]),a.toString("base64",b,a.length-c))}function p(a){var b=a&&a.length?this.write(a):"";return this.lastNeed?b+this.lastChar.toString("base64",0,3-this.lastNeed):b}function q(a){return a.toString(this.encoding)}function r(a){return a&&a.length?this.write(a):""}var s=a(34).Buffer,t=s.isEncoding||function(a){switch((a=""+a)&&a.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};c.StringDecoder=f,f.prototype.write=function(a){if(0===a.length)return"";var b,c;if(this.lastNeed){if(void 0===(b=this.fillLast(a)))return"";c=this.lastNeed,this.lastNeed=0}else c=0;return c=this.charLength-this.charReceived?this.charLength-this.charReceived:a.length;if(a.copy(this.charBuffer,this.charReceived,0,c),this.charReceived+=c,this.charReceived=55296&&d<=56319)){if(this.charReceived=this.charLength=0,0===a.length)return b;break}this.charLength+=this.surrogateSize,b=""}this.detectIncompleteChar(a);var e=a.length;this.charLength&&(a.copy(this.charBuffer,0,a.length-this.charReceived,e),e-=this.charReceived),b+=a.toString(this.encoding,0,e);var e=b.length-1,d=b.charCodeAt(e);if(d>=55296&&d<=56319){var f=this.surrogateSize;return this.charLength+=f,this.charReceived+=f,this.charBuffer.copy(this.charBuffer,f,0,f),a.copy(this.charBuffer,0,0,f),b.substring(0,e)}return b},j.prototype.detectIncompleteChar=function(a){for(var b=a.length>=3?3:a.length;b>0;b--){var c=a[a.length-b];if(1==b&&c>>5==6){this.charLength=2;break}if(b<=2&&c>>4==14){this.charLength=3;break}if(b<=3&&c>>3==30){this.charLength=4;break}}this.charReceived=b},j.prototype.end=function(a){var b="";if(a&&a.length&&(b=this.write(a)),this.charReceived){var c=this.charReceived,d=this.charBuffer,e=this.encoding;b+=d.slice(0,c).toString(e)}return b}},{10:10}],37:[function(a,b,c){(function(a){function c(a,b){function c(){if(!e){if(d("throwDeprecation"))throw new Error(b);d("traceDeprecation")?console.trace(b):console.warn(b),e=!0}return a.apply(this,arguments)}if(d("noDeprecation"))return a;var e=!1;return c}function d(b){try{if(!a.localStorage)return!1}catch(d){return!1}var c=a.localStorage[b];return null!=c&&"true"===String(c).toLowerCase()}b.exports=c}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],38:[function(a,b,c){!function(a,b,c,d,e){function f(a){this.node=a}function g(){this.events=[],this.head=null,this.body=null}function h(){this.styling=null,this.layout=null}function i(){this.styles={}}function j(){this.id=null,this.styleAttrs=null,this.styleRefs=null}function k(){this.regions={}}function l(a){this.kind=a,this.begin=null,this.end=null,this.styleAttrs=null,this.regionID=null,this.sets=null,this.timeContainer=null}function m(){l.call(this,"body")}function n(){l.call(this,"div")}function o(){l.call(this,"p")}function p(){l.call(this,"span"),this.space=null}function q(){l.call(this,"span"),this.space=null,this.text=null}function r(){l.call(this,"br")}function s(){this.id=null,this.begin=null,this.end=null,this.styleAttrs=null,this.sets=null}function t(){this.begin=null,this.end=null,this.qname=null,this.value=null}function u(a){return a&&"xml:id"in a.attributes?a.attributes["xml:id"].value||null:null}function v(a){return a&&"region"in a.attributes?a.attributes.region.value:""}function w(a,b){var c=a&&"timeContainer"in a.attributes?a.attributes.timeContainer.value:null;return c&&"par"!==c?"seq"===c?"seq":(K(b,"Illegal value of timeContainer (assuming 'par')"),"par"):"par"}function x(a){return a&&"style"in a.attributes?a.attributes.style.value.split(" "):[]}function y(a,b){var c={};if(null!==a)for(var e in a.attributes){var f=a.attributes[e].uri+" "+a.attributes[e].local,g=d.byQName[f];if(void 0!==g){var h=g.parse(a.attributes[e].value);null!==h?(c[f]=h,g===d.byName.zIndex&&J(b,"zIndex attribute present but not used by IMSC1 since regions do not overlap")):K(b,"Cannot parse styling attribute "+f+" --\x3e "+a.attributes[e].value)}}return c}function z(a,b,c){for(var d in a.attributes)if(a.attributes[d].uri===b&&a.attributes[d].local===c)return a.attributes[d].value;return null}function A(a,b){var d=z(a,c.ns_ittp,"aspectRatio"),e=null;if(null!==d){var f=/(\d+) (\d+)/,g=f.exec(d);if(null!==g){var h=parseInt(g[1]),i=parseInt(g[2]);0!==h&&0!==i?e=h/i:K(b,"Illegal aspectRatio values (ignoring)")}else K(b,"Malformed aspectRatio attribute (ignoring)")}return e}function B(a,b){var d=z(a,c.ns_ttp,"cellResolution"),e=15,f=32;if(null!==d){var g=/(\d+) (\d+)/,h=g.exec(d);null!==h?(f=parseInt(h[1]),e=parseInt(h[2])):J(b,"Malformed cellResolution value (using initial value instead)")}return{w:f,h:e}}function C(a,b){var d,e=z(a,c.ns_ttp,"frameRate"),f=30;if(null!==e){d=/(\d+)/.exec(e),null!==d?f=parseInt(d[1]):J(b,"Malformed frame rate attribute (using initial value instead)")}var g=z(a,c.ns_ttp,"frameRateMultiplier"),h=1;if(null!==g){d=/(\d+) (\d+)/.exec(g),null!==d?h=parseInt(d[1])/parseInt(d[2]):J(b,"Malformed frame rate multiplier attribute (using initial value instead)")}var i=h*f,j=1,k=z(a,c.ns_ttp,"tickRate");if(null===k)null!==e&&(j=i);else{d=/(\d+)/.exec(k),null!==d?j=parseInt(d[1]):J(b,"Malformed tick rate attribute (using initial value instead)")}return{effectiveFrameRate:i,tickRate:j}}function D(a,b){var d=z(a,c.ns_tts,"extent");if(null===d)return null;var f=d.split(" ");if(2!==f.length)return J(b,"Malformed extent (ignoring)"),null;var g=e.parseLength(f[0]),h=e.parseLength(f[1]);return h&&g?{h:h,w:g}:(J(b,"Malformed extent values (ignoring)"),null)}function E(a,b,c){var d,e=/^(\d{2,}):(\d\d):(\d\d(?:\.\d+)?)$/,f=/^(\d{2,}):(\d\d):(\d\d)\:(\d{2,})$/,g=/^(\d+(?:\.\d+)?)f$/,h=/^(\d+(?:\.\d+)?)t$/,i=/^(\d+(?:\.\d+)?)ms$/,j=/^(\d+(?:\.\d+)?)s$/,k=/^(\d+(?:\.\d+)?)h$/,l=/^(\d+(?:\.\d+)?)m$/,m=null;return null!==(d=g.exec(c))?null!==b&&(m=parseFloat(d[1])/b):null!==(d=h.exec(c))?null!==a&&(m=parseFloat(d[1])/a):null!==(d=i.exec(c))?m=parseFloat(d[1])/1e3:null!==(d=j.exec(c))?m=parseFloat(d[1]):null!==(d=k.exec(c))?m=3600*parseFloat(d[1]):null!==(d=l.exec(c))?m=60*parseFloat(d[1]):null!==(d=e.exec(c))?m=3600*parseInt(d[1])+60*parseInt(d[2])+parseFloat(d[3]):null!==(d=f.exec(c))&&null!==b&&(m=3600*parseInt(d[1])+60*parseInt(d[2])+parseInt(d[3])+(null===d[4]?0:parseInt(d[4])/b)),m}function F(a,b,c,d){var e=b&&"seq"===b.timeContainer,f=0;c&&"begin"in c.attributes&&null===(f=E(a.tickRate,a.effectiveFrameRate,c.attributes.begin.value))&&(J(d,"Malformed begin value "+c.attributes.begin.value+" (using 0)"),f=0);var g=e?0:null;c&&"dur"in c.attributes&&null===(g=E(a.tickRate,a.effectiveFrameRate,c.attributes.dur.value))&&J(d,"Malformed dur value "+c.attributes.dur.value+" (ignoring)");var h=null;c&&"end"in c.attributes&&null===(h=E(a.tickRate,a.effectiveFrameRate,c.attributes.end.value))&&J(d,"Malformed end value (ignoring)");var i=0;if(b&&(i=e&&"contents"in b&&b.contents.length>0?b.contents[b.contents.length-1].end:b.begin||0),f+=i,null!==g)h=f+g;else{var j=b&&"end"in b?b.end:Number.POSITIVE_INFINITY;h=null!==h?h+i:j}return{begin:f,end:h}}function G(a,b,c){for(;b.styleRefs.length>0;){var d=b.styleRefs.pop();d in a.styles?(G(a,a.styles[d],c),I(a.styles[d].styleAttrs,b.styleAttrs)):K(c,"Non-existant style id referenced")}}function H(a,b,c,d){for(var e=b.length-1;e>=0;e--){var f=b[e];f in a.styles?I(a.styles[f].styleAttrs,c):K(d,"Non-existant style id referenced")}}function I(a,b){for(var c in a)c in b||(b[c]=a[c])}function J(a,b){if(a&&a.warn&&a.warn(b))throw b}function K(a,b){if(a&&a.error&&a.error(b))throw b}function L(a,b){throw a&&a.fatal&&a.fatal(b),b}function M(a,b){for(var c,d=0,e=a.length-1;d<=e;){c=Math.floor((d+e)/2);var f=a[c];if(fb))return{found:!0,index:c};e=c-1}}return{found:!1,index:d}}a.fromXML=function(a,d,e){var l=b.parser(!0,{xmlns:!0}),u=[],v=[],w=[],x=0,y=null;l.onclosetag=function(a){if(u[0]instanceof i)for(var b in u[0].styles)G(u[0],u[0].styles[b],d);else if(u[0]instanceof o||u[0]instanceof p){if(u[0].contents.length>1){var g,h=[u[0].contents[0]];for(g=1;g0&&e&&"onCloseTag"in e&&e.onCloseTag());w.shift(),v.shift(),u.shift()},l.ontext=function(a){if(void 0===u[0]);else if(u[0]instanceof p||u[0]instanceof o){var b=new q;b.initFromText(y,u[0],a,w[0],d),u[0].contents.push(b)}else u[0]instanceof f&&x>0&&e&&"onText"in e&&e.onText(a)},l.onopentag=function(a){var b=a.attributes["xml:space"];b?w.unshift(b.value):0===w.length?w.unshift("default"):w.unshift(w[0]);var l=a.attributes["xml:lang"];if(l?v.unshift(l.value):0===v.length?v.unshift(""):v.unshift(v[0]),a.uri===c.ns_tt)if("tt"===a.local)null!==y&&L("Two elements at ("+this.line+","+this.column+")"),y=new g,y.initFromNode(a,d),u.unshift(y);else if("head"===a.local)u[0]instanceof g||L("Parent of element is not at ("+this.line+","+this.column+")"),null!==y.head&&L("Second element at ("+this.line+","+this.column+")"),y.head=new h,u.unshift(y.head);else if("styling"===a.local)u[0]instanceof h||L("Parent of element is not at ("+this.line+","+this.column+")"),null!==y.head.styling&&L("Second element at ("+this.line+","+this.column+")"),y.head.styling=new i,u.unshift(y.head.styling);else if("style"===a.local){var q;u[0]instanceof i?(q=new j,q.initFromNode(a,d),q.id?y.head.styling.styles[q.id]=q:K("