From e08597fc72115136777f0cc905412c454ea5f62c Mon Sep 17 00:00:00 2001 From: denis Date: Mon, 13 Apr 2026 23:14:05 +0200 Subject: [PATCH] second commit --- LICENSE | 674 ++ browser.py | 21 + etc/cargo-reductstore-install.sh | 12 + etc/install-sys.sh | 36 + etc/reductstore_service.conf | 13 + etc/requirements.txt | 21 + etc/samba_mount.txt | 17 + etc/scanner_configuration.json | 1 + etc/scanner_multiwell.json | 1 + etc/scanner_service.conf | 46 + etc/scanner_well.json | 1 + etc/supervisor-inet_http.conf | 4 + run-workers.sh | 11 + test_tube_scanner/home/__init__.py | 6 + test_tube_scanner/home/apps.py | 7 + test_tube_scanner/home/asgi.py | 29 + test_tube_scanner/home/celerymodule.py | 10 + test_tube_scanner/home/context_processors.py | 11 + .../home/locale/en/LC_MESSAGES/django.po | 89 + test_tube_scanner/home/management/__init__.py | 0 .../home/management/commands/__init__.py | 0 .../home/management/commands/export_jpg.py | 36 + .../home/management/commands/export_video.py | 37 + .../home/management/commands/init_data.py | 90 + .../home/management/commands/list_urls.py | 20 + .../home/management/commands/rem_records.py | 38 + .../home/management/commands/secret_key.py | 23 + .../home/management/commands/start_workers.py | 26 + .../home/management/commands/test_L2544.py | 68 + test_tube_scanner/home/middleware.py | 15 + test_tube_scanner/home/settings.py | 389 + test_tube_scanner/home/static/css/all.css | 7831 +++++++++++++++++ test_tube_scanner/home/static/css/all.min.css | 6 + .../home/static/css/w3-custom.css | 220 + test_tube_scanner/home/static/css/w3.css | 251 + test_tube_scanner/home/static/img/adminer.png | Bin 0 -> 83670 bytes .../home/static/img/black-screen.jpg | Bin 0 -> 32051 bytes test_tube_scanner/home/static/img/logo.png | Bin 0 -> 6207 bytes test_tube_scanner/home/static/img/mariadb.png | Bin 0 -> 8263 bytes test_tube_scanner/home/static/img/mire.jpg | Bin 0 -> 34205 bytes .../home/static/img/no-image.png | Bin 0 -> 8710 bytes test_tube_scanner/home/static/img/nobody.png | Bin 0 -> 27004 bytes .../home/static/img/portainer.png | Bin 0 -> 4029 bytes .../home/static/img/reductstore.png | Bin 0 -> 19475 bytes .../home/static/img/websocket.png | Bin 0 -> 28321 bytes .../home/static/img/zigbee2mqtt.png | Bin 0 -> 7023 bytes test_tube_scanner/home/static/js/w3-custom.js | 42 + test_tube_scanner/home/static/js/w3.js | 400 + .../home/static/webfonts/fa-brands-400.eot | Bin 0 -> 129590 bytes .../home/static/webfonts/fa-brands-400.svg | 3449 ++++++++ .../home/static/webfonts/fa-brands-400.ttf | Bin 0 -> 129284 bytes .../home/static/webfonts/fa-brands-400.woff | Bin 0 -> 87520 bytes .../home/static/webfonts/fa-brands-400.woff2 | Bin 0 -> 74524 bytes .../home/static/webfonts/fa-regular-400.eot | Bin 0 -> 34394 bytes .../home/static/webfonts/fa-regular-400.svg | 803 ++ .../home/static/webfonts/fa-regular-400.ttf | Bin 0 -> 34096 bytes .../home/static/webfonts/fa-regular-400.woff | Bin 0 -> 16804 bytes .../home/static/webfonts/fa-regular-400.woff2 | Bin 0 -> 13584 bytes .../home/static/webfonts/fa-solid-900.eot | Bin 0 -> 192122 bytes .../home/static/webfonts/fa-solid-900.svg | 4649 ++++++++++ .../home/static/webfonts/fa-solid-900.ttf | Bin 0 -> 191836 bytes .../home/static/webfonts/fa-solid-900.woff | Bin 0 -> 98016 bytes .../home/static/webfonts/fa-solid-900.woff2 | Bin 0 -> 75408 bytes .../static/webfonts/fa-v4compatibility.ttf | Bin 0 -> 10556 bytes .../static/webfonts/fa-v4compatibility.woff2 | Bin 0 -> 4960 bytes test_tube_scanner/home/templates/base.html | 28 + test_tube_scanner/home/templates/inc/404.html | 20 + test_tube_scanner/home/templates/inc/500.html | 23 + .../home/templates/inc/alert.html | 13 + .../home/templates/inc/image-preview.html | 7 + test_tube_scanner/home/templates/layout.html | 33 + .../home/templatetags/__init__.py | 0 .../home/templatetags/home_tags.py | 131 + test_tube_scanner/home/urls.py | 52 + test_tube_scanner/home/views.py | 11 + test_tube_scanner/home/wsgi.py | 16 + test_tube_scanner/manage.py | 22 + test_tube_scanner/modules/__init__.py | 0 .../modules/capture_interface.py | 304 + test_tube_scanner/modules/circular_crop.py | 245 + test_tube_scanner/modules/grbl.py | 356 + .../modules/picamera2_capture.py | 339 + .../modules/picamera2_capture_basic.py | 227 + test_tube_scanner/modules/reductstore.py | 122 + test_tube_scanner/modules/system_stats.py | 138 + test_tube_scanner/modules/utils.py | 261 + test_tube_scanner/modules/webcam_capture.py | 152 + test_tube_scanner/scanner/__init__.py | 0 test_tube_scanner/scanner/admin.py | 64 + test_tube_scanner/scanner/apps.py | 8 + test_tube_scanner/scanner/consumers.py | 62 + test_tube_scanner/scanner/export_tasks.py | 604 ++ test_tube_scanner/scanner/models.py | 308 + test_tube_scanner/scanner/process.py | 812 ++ test_tube_scanner/scanner/routing.py | 13 + .../static/scanner/css/calibration.css | 34 + .../scanner/static/scanner/css/images.css | 28 + .../scanner/static/scanner/css/main.css | 30 + .../static/scanner/css/range-slider.css | 21 + .../scanner/static/scanner/css/replay.css | 39 + .../scanner/static/scanner/css/scanner.css | 31 + .../scanner/static/scanner/js/calibration.js | 138 + .../scanner/static/scanner/js/main.js | 92 + .../static/scanner/js/range-slider-num.js | 220 + .../static/scanner/js/range-slider-time.js | 265 + .../scanner/static/scanner/js/replay.js | 260 + .../scanner/static/scanner/js/scanner.js | 132 + .../scanner/static/scanner/js/stats.js | 31 + test_tube_scanner/scanner/tasks.py | 243 + .../scanner/templates/scanner/base.html | 128 + .../templates/scanner/calibration.html | 122 + .../scanner/templates/scanner/iframe.html | 6 + .../templates/scanner/image-preview.html | 14 + .../scanner/templates/scanner/images.html | 114 + .../templates/scanner/logtail-workers.html | 0 .../scanner/templates/scanner/main.html | 63 + .../templates/scanner/range-slider.html | 22 + .../templates/scanner/redirection.html | 8 + .../scanner/templates/scanner/replay.html | 134 + .../scanner/templatetags/__init__.py | 0 .../scanner/templatetags/scanner_tags.py | 27 + test_tube_scanner/scanner/tests.py | 3 + test_tube_scanner/scanner/urls.py | 23 + test_tube_scanner/scanner/views.py | 199 + .../templates/admin/base_site.html | 20 + 125 files changed, 26221 insertions(+) create mode 100644 LICENSE create mode 100755 browser.py create mode 100755 etc/cargo-reductstore-install.sh create mode 100755 etc/install-sys.sh create mode 100644 etc/reductstore_service.conf create mode 100644 etc/requirements.txt create mode 100644 etc/samba_mount.txt create mode 100644 etc/scanner_configuration.json create mode 100644 etc/scanner_multiwell.json create mode 100644 etc/scanner_service.conf create mode 100644 etc/scanner_well.json create mode 100644 etc/supervisor-inet_http.conf create mode 100755 run-workers.sh create mode 100644 test_tube_scanner/home/__init__.py create mode 100644 test_tube_scanner/home/apps.py create mode 100644 test_tube_scanner/home/asgi.py create mode 100644 test_tube_scanner/home/celerymodule.py create mode 100644 test_tube_scanner/home/context_processors.py create mode 100644 test_tube_scanner/home/locale/en/LC_MESSAGES/django.po create mode 100644 test_tube_scanner/home/management/__init__.py create mode 100644 test_tube_scanner/home/management/commands/__init__.py create mode 100644 test_tube_scanner/home/management/commands/export_jpg.py create mode 100644 test_tube_scanner/home/management/commands/export_video.py create mode 100644 test_tube_scanner/home/management/commands/init_data.py create mode 100644 test_tube_scanner/home/management/commands/list_urls.py create mode 100644 test_tube_scanner/home/management/commands/rem_records.py create mode 100644 test_tube_scanner/home/management/commands/secret_key.py create mode 100644 test_tube_scanner/home/management/commands/start_workers.py create mode 100644 test_tube_scanner/home/management/commands/test_L2544.py create mode 100644 test_tube_scanner/home/middleware.py create mode 100644 test_tube_scanner/home/settings.py create mode 100644 test_tube_scanner/home/static/css/all.css create mode 100644 test_tube_scanner/home/static/css/all.min.css create mode 100644 test_tube_scanner/home/static/css/w3-custom.css create mode 100644 test_tube_scanner/home/static/css/w3.css create mode 100644 test_tube_scanner/home/static/img/adminer.png create mode 100644 test_tube_scanner/home/static/img/black-screen.jpg create mode 100644 test_tube_scanner/home/static/img/logo.png create mode 100644 test_tube_scanner/home/static/img/mariadb.png create mode 100644 test_tube_scanner/home/static/img/mire.jpg create mode 100644 test_tube_scanner/home/static/img/no-image.png create mode 100644 test_tube_scanner/home/static/img/nobody.png create mode 100644 test_tube_scanner/home/static/img/portainer.png create mode 100644 test_tube_scanner/home/static/img/reductstore.png create mode 100644 test_tube_scanner/home/static/img/websocket.png create mode 100644 test_tube_scanner/home/static/img/zigbee2mqtt.png create mode 100644 test_tube_scanner/home/static/js/w3-custom.js create mode 100644 test_tube_scanner/home/static/js/w3.js create mode 100644 test_tube_scanner/home/static/webfonts/fa-brands-400.eot create mode 100644 test_tube_scanner/home/static/webfonts/fa-brands-400.svg create mode 100644 test_tube_scanner/home/static/webfonts/fa-brands-400.ttf create mode 100644 test_tube_scanner/home/static/webfonts/fa-brands-400.woff create mode 100644 test_tube_scanner/home/static/webfonts/fa-brands-400.woff2 create mode 100644 test_tube_scanner/home/static/webfonts/fa-regular-400.eot create mode 100644 test_tube_scanner/home/static/webfonts/fa-regular-400.svg create mode 100644 test_tube_scanner/home/static/webfonts/fa-regular-400.ttf create mode 100644 test_tube_scanner/home/static/webfonts/fa-regular-400.woff create mode 100644 test_tube_scanner/home/static/webfonts/fa-regular-400.woff2 create mode 100644 test_tube_scanner/home/static/webfonts/fa-solid-900.eot create mode 100644 test_tube_scanner/home/static/webfonts/fa-solid-900.svg create mode 100644 test_tube_scanner/home/static/webfonts/fa-solid-900.ttf create mode 100644 test_tube_scanner/home/static/webfonts/fa-solid-900.woff create mode 100644 test_tube_scanner/home/static/webfonts/fa-solid-900.woff2 create mode 100644 test_tube_scanner/home/static/webfonts/fa-v4compatibility.ttf create mode 100644 test_tube_scanner/home/static/webfonts/fa-v4compatibility.woff2 create mode 100644 test_tube_scanner/home/templates/base.html create mode 100644 test_tube_scanner/home/templates/inc/404.html create mode 100644 test_tube_scanner/home/templates/inc/500.html create mode 100644 test_tube_scanner/home/templates/inc/alert.html create mode 100644 test_tube_scanner/home/templates/inc/image-preview.html create mode 100644 test_tube_scanner/home/templates/layout.html create mode 100644 test_tube_scanner/home/templatetags/__init__.py create mode 100644 test_tube_scanner/home/templatetags/home_tags.py create mode 100644 test_tube_scanner/home/urls.py create mode 100644 test_tube_scanner/home/views.py create mode 100644 test_tube_scanner/home/wsgi.py create mode 100755 test_tube_scanner/manage.py create mode 100644 test_tube_scanner/modules/__init__.py create mode 100644 test_tube_scanner/modules/capture_interface.py create mode 100644 test_tube_scanner/modules/circular_crop.py create mode 100644 test_tube_scanner/modules/grbl.py create mode 100644 test_tube_scanner/modules/picamera2_capture.py create mode 100644 test_tube_scanner/modules/picamera2_capture_basic.py create mode 100644 test_tube_scanner/modules/reductstore.py create mode 100644 test_tube_scanner/modules/system_stats.py create mode 100644 test_tube_scanner/modules/utils.py create mode 100644 test_tube_scanner/modules/webcam_capture.py create mode 100644 test_tube_scanner/scanner/__init__.py create mode 100644 test_tube_scanner/scanner/admin.py create mode 100644 test_tube_scanner/scanner/apps.py create mode 100644 test_tube_scanner/scanner/consumers.py create mode 100644 test_tube_scanner/scanner/export_tasks.py create mode 100644 test_tube_scanner/scanner/models.py create mode 100644 test_tube_scanner/scanner/process.py create mode 100644 test_tube_scanner/scanner/routing.py create mode 100644 test_tube_scanner/scanner/static/scanner/css/calibration.css create mode 100644 test_tube_scanner/scanner/static/scanner/css/images.css create mode 100644 test_tube_scanner/scanner/static/scanner/css/main.css create mode 100644 test_tube_scanner/scanner/static/scanner/css/range-slider.css create mode 100644 test_tube_scanner/scanner/static/scanner/css/replay.css create mode 100644 test_tube_scanner/scanner/static/scanner/css/scanner.css create mode 100644 test_tube_scanner/scanner/static/scanner/js/calibration.js create mode 100644 test_tube_scanner/scanner/static/scanner/js/main.js create mode 100644 test_tube_scanner/scanner/static/scanner/js/range-slider-num.js create mode 100644 test_tube_scanner/scanner/static/scanner/js/range-slider-time.js create mode 100644 test_tube_scanner/scanner/static/scanner/js/replay.js create mode 100644 test_tube_scanner/scanner/static/scanner/js/scanner.js create mode 100644 test_tube_scanner/scanner/static/scanner/js/stats.js create mode 100644 test_tube_scanner/scanner/tasks.py create mode 100644 test_tube_scanner/scanner/templates/scanner/base.html create mode 100644 test_tube_scanner/scanner/templates/scanner/calibration.html create mode 100644 test_tube_scanner/scanner/templates/scanner/iframe.html create mode 100644 test_tube_scanner/scanner/templates/scanner/image-preview.html create mode 100644 test_tube_scanner/scanner/templates/scanner/images.html create mode 100644 test_tube_scanner/scanner/templates/scanner/logtail-workers.html create mode 100644 test_tube_scanner/scanner/templates/scanner/main.html create mode 100644 test_tube_scanner/scanner/templates/scanner/range-slider.html create mode 100644 test_tube_scanner/scanner/templates/scanner/redirection.html create mode 100644 test_tube_scanner/scanner/templates/scanner/replay.html create mode 100644 test_tube_scanner/scanner/templatetags/__init__.py create mode 100644 test_tube_scanner/scanner/templatetags/scanner_tags.py create mode 100644 test_tube_scanner/scanner/tests.py create mode 100644 test_tube_scanner/scanner/urls.py create mode 100644 test_tube_scanner/scanner/views.py create mode 100644 test_tube_scanner/templates/admin/base_site.html diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/browser.py b/browser.py new file mode 100755 index 0000000..055be0e --- /dev/null +++ b/browser.py @@ -0,0 +1,21 @@ +#!/usr/bin/python3 +import argparse, webbrowser + +WEB_BROWSER_PATH = { + 'chromium': '/usr/bin/chromium --start-fullscreen %s', + 'chrome': '/usr/bin/google-chrome --start-fullscreen %s', + 'firefox': '/usr/bin/firefox --start-fullscreen %s', +} + +def main(browser_path, url): + webbrowser.get(browser_path).open(url) + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Web browser service") + parser.add_argument("--host", default="127.0.0.1", help=f"Host for HTTP server (default: 127.0.0.1") + parser.add_argument("--port", type=int, default=8000, help=f"Port for HTTP server (default: 8000)") + parser.add_argument("--browser", default="chromium", help=f"default browser: chromium") + args = parser.parse_args() + + main(WEB_BROWSER_PATH.get(args.browser, 'chromium'), f'http://{args.host}:{args.port}/') + diff --git a/etc/cargo-reductstore-install.sh b/etc/cargo-reductstore-install.sh new file mode 100755 index 0000000..c1674d9 --- /dev/null +++ b/etc/cargo-reductstore-install.sh @@ -0,0 +1,12 @@ +!/bin/bash +echo "--- install reductstore" + +sudo apt install libprotobuf-dev protobuf-compiler + +curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + +source .cargo/env +cargo --version +rustc --version +cargo install reductstore + diff --git a/etc/install-sys.sh b/etc/install-sys.sh new file mode 100755 index 0000000..bf90541 --- /dev/null +++ b/etc/install-sys.sh @@ -0,0 +1,36 @@ +!/bin/bash + +echo "==== System installation for rpi 4/5" +echo + +sudo apt update +#sudo apt upgrade + +# system +echo "==== system essential" +sudo apt -y install build-essential openssl git pkg-config redis supervisor sqlitebrowser samba-client cifs-utils + +echo "==== python3 install" +sudo apt -y install python3-dev python3-pip python3-venv default-libmysqlclient-dev libmariadb-dev libpq-dev python3-picamera2 + +echo "==== supervisor http access config" +sudo cp supervisor-inet_http.conf /etc/supervisor/conf.d/ +sudo ln -s scanner_service.conf /etc/supervisor/conf.d/ +sudo ln -s reductstore_service.conf /etc/supervisor/conf.d/ + +echo "==== restart supervisor " +sudo systemctl restart supervisor + +echo "==== python env with system site packages for picamera2" +rm -rf ../.venv +python -m venv --system-site-packages ../.venv +source ../.venv/bin/activate + +echo "==== pip requirements" +pip install -r ./requirements.txt + +echo "==== restart services if possible" +sudo supervisorctl reread && sudo supervisorctl update + +echo "==== End " +echo diff --git a/etc/reductstore_service.conf b/etc/reductstore_service.conf new file mode 100644 index 0000000..1e55d59 --- /dev/null +++ b/etc/reductstore_service.conf @@ -0,0 +1,13 @@ + +[program:reductstore] +process_name=%(program_name)s +priority=10 +environment=RS_DATA_PATH="/home/rpi4/medias" +directory=/home/rpi4/medias +command=/home/rpi4/.cargo/bin/reductstore +user=rpi4 +group=rpi4 +stopasgroup=true +stopsignal=SIGINT +autostart=true +autorestart=true \ No newline at end of file diff --git a/etc/requirements.txt b/etc/requirements.txt new file mode 100644 index 0000000..57d4fda --- /dev/null +++ b/etc/requirements.txt @@ -0,0 +1,21 @@ +django +pillow +django-timezone-field +django-resized +django-colorfield +django-celery-beat +django-celery-results +channels[daphne] +channels-redis +twisted[tls,http2] +celery[redis] +python-decouple +PyYaml +reduct-py +python-dateutil +psutil +posix_ipc +opencv-python-headless +mysqlclient +psycopg2 +pyserial diff --git a/etc/samba_mount.txt b/etc/samba_mount.txt new file mode 100644 index 0000000..413706c --- /dev/null +++ b/etc/samba_mount.txt @@ -0,0 +1,17 @@ +Montage samba: +============= + +sudo nano /etc/samba/.smb_creds +username=user_windows +password=mot_de_passe +domain=WORKGROUP + +sudo chmod 600 /etc/samba/.smb_creds +sudo chown root:root /etc/samba/.smb_creds + +sudo mkdir -p /mnt/exports +sudo chown django:django /mnt/exports + +sudo nano /etc/fstab +//192.168.1.210/scanner /mnt/exports_cam cifs credentials=/etc/samba/.smb_creds,uid=django,gid=django,file_mode=0664,dir_mode=0775,iocharset=utf8,vers=3.0,_netdev,nofail 0 0 + diff --git a/etc/scanner_configuration.json b/etc/scanner_configuration.json new file mode 100644 index 0000000..5e67562 --- /dev/null +++ b/etc/scanner_configuration.json @@ -0,0 +1 @@ +[{"model": "scanner.configuration", "pk": 1, "fields": {"name": "Configuration par défaut", "author": 1, "sidebar_width": "360px", "default_grid_columns": 3, "opencv_fourcc_format": "mp4v", "opencv_video_type": "mp4", "grbl_xmax": 350.0, "grbl_ymax": 250.0, "use_rpicam": true, "webcam_device_index": 2, "image_quality": 90, "video_jpeg_quality": 90, "video_frame_rate": 5.0, "video_width_capture": 2028, "video_height_capture": 1520, "calibration_crop_radius": 512, "calibration_default_multiwell": "HG", "calibration_default_feed": 1000, "calibration_default_step": 1.0, "active": true}}] diff --git a/etc/scanner_multiwell.json b/etc/scanner_multiwell.json new file mode 100644 index 0000000..24886af --- /dev/null +++ b/etc/scanner_multiwell.json @@ -0,0 +1 @@ +[{"model": "scanner.multiwell", "pk": 2, "fields": {"label": "Haut gauche", "position": "HG", "duration": 1, "order": 2, "xbase": 51.0, "ybase": 119.25, "cols": 6, "rows": 4, "dx": 19.55, "dy": 19.55, "feed": 1000, "active": true}}, {"model": "scanner.multiwell", "pk": 3, "fields": {"label": "Haut droit", "position": "HD", "duration": 1, "order": 0, "xbase": 36.0, "ybase": 97.25, "cols": 6, "rows": 4, "dx": 19.55, "dy": 19.55, "feed": 1000, "active": true}}, {"model": "scanner.multiwell", "pk": 4, "fields": {"label": "Bas gauche", "position": "BG", "duration": 1, "order": 3, "xbase": 36.0, "ybase": 97.25, "cols": 6, "rows": 4, "dx": 19.55, "dy": 19.55, "feed": 1000, "active": true}}, {"model": "scanner.multiwell", "pk": 5, "fields": {"label": "Bas droit", "position": "BD", "duration": 1, "order": 1, "xbase": 36.0, "ybase": 97.25, "cols": 6, "rows": 4, "dx": 19.55, "dy": 19.55, "feed": 1000, "active": true}}] diff --git a/etc/scanner_service.conf b/etc/scanner_service.conf new file mode 100644 index 0000000..55d15da --- /dev/null +++ b/etc/scanner_service.conf @@ -0,0 +1,46 @@ +[group:test_tube] +programs=scanner,beat,workers + +[program:scanner] +process_name=%(program_name)s +priority=500 +directory=/home/rpi4/django-test-tube-scanner/test_tube_scanner +command= + /home/rpi4/django-test-tube-scanner/.venv/bin/daphne + -b 0.0.0.0 + -p 8000 + home.asgi:application +user=rpi4 +group=rpi4 +stopasgroup=true +stopsignal=SIGINT +autostart=true +autorestart=true +redirect_stderr=true + +[program:beat] +process_name=%(program_name)s +priority=800 +directory=/home/rpi4/django-test-tube-scanner/test_tube_scanner +command=/home/rpi4/django-test-tube-scanner/.venv/bin/celery -A home beat -l info +user=rpi4 +group=rpi4 +stopasgroup=true +stopsignal=SIGINT +autostart=true +autorestart=true +redirect_stderr=true + +[program:workers] +process_name=%(program_name)s +priority=900 +directory=/home/rpi4/django-test-tube-scanner/test_tube_scanner +command=/home/rpi4/django-test-tube-scanner/run-workers.sh +user=rpi4 +group=rpi4 +stopasgroup=true +stopsignal=SIGINT +autostart=true +autorestart=true +redirect_stderr=true + diff --git a/etc/scanner_well.json b/etc/scanner_well.json new file mode 100644 index 0000000..1c32ba1 --- /dev/null +++ b/etc/scanner_well.json @@ -0,0 +1 @@ +[{"model": "scanner.well", "pk": 1, "fields": {"author": 1, "name": "A1"}}, {"model": "scanner.well", "pk": 2, "fields": {"author": 1, "name": "A2"}}, {"model": "scanner.well", "pk": 3, "fields": {"author": 1, "name": "A3"}}, {"model": "scanner.well", "pk": 4, "fields": {"author": 1, "name": "A4"}}, {"model": "scanner.well", "pk": 5, "fields": {"author": 1, "name": "A5"}}, {"model": "scanner.well", "pk": 6, "fields": {"author": 1, "name": "A6"}}, {"model": "scanner.well", "pk": 7, "fields": {"author": 1, "name": "B1"}}, {"model": "scanner.well", "pk": 8, "fields": {"author": 1, "name": "B2"}}, {"model": "scanner.well", "pk": 9, "fields": {"author": 1, "name": "B3"}}, {"model": "scanner.well", "pk": 10, "fields": {"author": 1, "name": "B4"}}, {"model": "scanner.well", "pk": 11, "fields": {"author": 1, "name": "B5"}}, {"model": "scanner.well", "pk": 12, "fields": {"author": 1, "name": "B6"}}, {"model": "scanner.well", "pk": 13, "fields": {"author": 1, "name": "C1"}}, {"model": "scanner.well", "pk": 14, "fields": {"author": 1, "name": "C2"}}, {"model": "scanner.well", "pk": 15, "fields": {"author": 1, "name": "C3"}}, {"model": "scanner.well", "pk": 16, "fields": {"author": 1, "name": "C4"}}, {"model": "scanner.well", "pk": 17, "fields": {"author": 1, "name": "C5"}}, {"model": "scanner.well", "pk": 18, "fields": {"author": 1, "name": "C6"}}, {"model": "scanner.well", "pk": 19, "fields": {"author": 1, "name": "D1"}}, {"model": "scanner.well", "pk": 20, "fields": {"author": 1, "name": "D2"}}, {"model": "scanner.well", "pk": 21, "fields": {"author": 1, "name": "D3"}}, {"model": "scanner.well", "pk": 22, "fields": {"author": 1, "name": "D4"}}, {"model": "scanner.well", "pk": 23, "fields": {"author": 1, "name": "D5"}}, {"model": "scanner.well", "pk": 24, "fields": {"author": 1, "name": "D6"}}] diff --git a/etc/supervisor-inet_http.conf b/etc/supervisor-inet_http.conf new file mode 100644 index 0000000..b4c9812 --- /dev/null +++ b/etc/supervisor-inet_http.conf @@ -0,0 +1,4 @@ +[inet_http_server] + port=*:9001 + username=root + password=toor diff --git a/run-workers.sh b/run-workers.sh new file mode 100755 index 0000000..1338cdf --- /dev/null +++ b/run-workers.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +APP_DIR="/home/rpi4/django-test-tube-scanner" + +cd "$APP_DIR/test_tube_scanner" + +echo "start workers" +$APP_DIR/.venv/bin/python manage.py start_workers + +echo "start celery" +$APP_DIR/.venv/bin/celery -A home worker -l info diff --git a/test_tube_scanner/home/__init__.py b/test_tube_scanner/home/__init__.py new file mode 100644 index 0000000..9f65564 --- /dev/null +++ b/test_tube_scanner/home/__init__.py @@ -0,0 +1,6 @@ +from .celerymodule import appc as celery_app + +__all__ = ('celery_app',) +__version__ = "0.1" + +default_app_config = 'home.apps.HomeConfig' \ No newline at end of file diff --git a/test_tube_scanner/home/apps.py b/test_tube_scanner/home/apps.py new file mode 100644 index 0000000..b8c7d06 --- /dev/null +++ b/test_tube_scanner/home/apps.py @@ -0,0 +1,7 @@ +from django.apps import AppConfig +from django.utils.translation import gettext_lazy as _ + +class HomeConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'home' + verbose_name = _('Scanner de tube à essais') diff --git a/test_tube_scanner/home/asgi.py b/test_tube_scanner/home/asgi.py new file mode 100644 index 0000000..5b9d784 --- /dev/null +++ b/test_tube_scanner/home/asgi.py @@ -0,0 +1,29 @@ +""" +ASGI config for home_automation project. + +It exposes the ASGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/5.2/howto/deployment/asgi/ +""" +import os +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'home.settings') + +from django.core.asgi import get_asgi_application +django_asgi_app = get_asgi_application() + +from channels.auth import AuthMiddlewareStack +from channels.routing import ProtocolTypeRouter, URLRouter +from channels.security.websocket import AllowedHostsOriginValidator + +import scanner.routing + + +application = ProtocolTypeRouter({ + "http": django_asgi_app, + 'websocket': AllowedHostsOriginValidator( + AuthMiddlewareStack( + URLRouter(scanner.routing.websocket_urlpatterns) + ), + ), +}) \ No newline at end of file diff --git a/test_tube_scanner/home/celerymodule.py b/test_tube_scanner/home/celerymodule.py new file mode 100644 index 0000000..05eaf15 --- /dev/null +++ b/test_tube_scanner/home/celerymodule.py @@ -0,0 +1,10 @@ +# +# encoding: utf-8 +import os +from celery import Celery + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'home.settings') + +appc = Celery('home') +appc.config_from_object('django.conf:settings', namespace='CELERY') +appc.autodiscover_tasks() diff --git a/test_tube_scanner/home/context_processors.py b/test_tube_scanner/home/context_processors.py new file mode 100644 index 0000000..8b1819b --- /dev/null +++ b/test_tube_scanner/home/context_processors.py @@ -0,0 +1,11 @@ +# +# encoding: utf-8 +from django.conf import settings + +def params(request): + return { + 'APP_TITLE': settings.APP_TITLE, + 'APP_SUB_TITLE': settings.APP_SUB_TITLE, + 'self_url': request.build_absolute_uri(), + } + diff --git a/test_tube_scanner/home/locale/en/LC_MESSAGES/django.po b/test_tube_scanner/home/locale/en/LC_MESSAGES/django.po new file mode 100644 index 0000000..0254c44 --- /dev/null +++ b/test_tube_scanner/home/locale/en/LC_MESSAGES/django.po @@ -0,0 +1,89 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-02-24 08:51+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: home/apps.py:7 +msgid "Automation" +msgstr "" + +#: home/management/commands/init_data.py:63 +msgid "Base configuration" +msgstr "" + +#: home/management/commands/init_data.py:144 +msgid "Non" +msgstr "" + +#: home/management/commands/init_data.py:145 +#: home/management/commands/init_data.py:148 +msgid "Salon" +msgstr "" + +#: home/management/commands/init_data.py:146 +msgid "Cellier" +msgstr "" + +#: home/management/commands/init_data.py:147 +msgid "Cuisine" +msgstr "" + +#: home/management/commands/init_data.py:149 +msgid "Entrée" +msgstr "" + +#: home/management/commands/init_data.py:150 +msgid "Repas" +msgstr "" + +#: home/management/commands/init_data.py:151 +msgid "Chambre 1" +msgstr "" + +#: home/management/commands/init_data.py:152 +msgid "Chambre 2" +msgstr "" + +#: home/management/commands/init_data.py:153 +msgid "Chambre 3" +msgstr "" + +#: home/templates/inc/404.html:9 +msgid "Error: missing page." +msgstr "" + +#: home/templates/inc/404.html:17 +msgid "This page does not exist.
Please re-enter a new address." +msgstr "" + +#: home/templates/inc/500.html:9 +msgid "System error" +msgstr "" + +#: home/templates/inc/500.html:17 +msgid "" +"This page server can't run correctly.
Please contact the site " +"administrator." +msgstr "" + +#: templates/admin/base_site.html:4 +msgid "Django site admin" +msgstr "" + +#: templates/admin/base_site.html:10 +msgid "Django administration" +msgstr "" diff --git a/test_tube_scanner/home/management/__init__.py b/test_tube_scanner/home/management/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/test_tube_scanner/home/management/commands/__init__.py b/test_tube_scanner/home/management/commands/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/test_tube_scanner/home/management/commands/export_jpg.py b/test_tube_scanner/home/management/commands/export_jpg.py new file mode 100644 index 0000000..92de2e3 --- /dev/null +++ b/test_tube_scanner/home/management/commands/export_jpg.py @@ -0,0 +1,36 @@ +''' +Created on 19 janv. 2026 + +@author: denis +''' +from django.core.management.base import BaseCommand +#from django.conf import settings +from scanner.tasks import export_images +from scanner.models import Configuration + +class Command(BaseCommand): + help = "Exporter les images jpg dans un fichier ZIP" + + def add_arguments(self, parser): + super(Command, self).add_arguments(parser) + parser.add_argument("--uuid", type=str, help=f"Export video to jpg zip file with uuid") + + def handle(self, *args, **options): # @UnusedVariable + try: + uuid = options.get('uuid') + conf = Configuration.objects.filter(active=True).first() + + print(f"Export video to jpg zip file with uuid: {uuid}") + # Export images ZIP + job_zip = export_images( + uuid, + start_ts=None, + end_ts=None, + jpeg_quality=conf.video_jpeg_quality, # Qualité JPEG + ) + print() + print(job_zip) + + except Exception as e: + print("Export video to jpg zip file with uuid error", e) + diff --git a/test_tube_scanner/home/management/commands/export_video.py b/test_tube_scanner/home/management/commands/export_video.py new file mode 100644 index 0000000..bbd5361 --- /dev/null +++ b/test_tube_scanner/home/management/commands/export_video.py @@ -0,0 +1,37 @@ +''' +Created on 19 janv. 2026 + +@author: denis +''' +from django.core.management.base import BaseCommand +#from django.conf import settings +from scanner.tasks import export_videos +from scanner.models import Configuration + +class Command(BaseCommand): + help = "Exporter les videos" + + def add_arguments(self, parser): + super(Command, self).add_arguments(parser) + parser.add_argument("--uuid", type=str, help=f"Export video") + + def handle(self, *args, **options): # @UnusedVariable + try: + uuid = options.get('uuid') + conf = Configuration.objects.filter(active=True).first() + + print(f"Export video uuid: {uuid}", conf) + job = export_videos( + uuid, + start_ts=None, + end_ts=None, + frame_rate=conf.video_frame_rate, # Frame rate de la vidéo exportée + opencv_fourcc_format=conf.opencv_fourcc_format, # Format de compression vidéo (ex: 'mp4v' pour MP4), + opencv_video_type=conf.opencv_video_type, # Type de vidéo exportée (ex: 'mp4', 'avi', 'mkv'), + + ) + print() + print(f"Export video: {job.id}") + except Exception as e: + print("Export video uuid error", e) + diff --git a/test_tube_scanner/home/management/commands/init_data.py b/test_tube_scanner/home/management/commands/init_data.py new file mode 100644 index 0000000..4c8da0f --- /dev/null +++ b/test_tube_scanner/home/management/commands/init_data.py @@ -0,0 +1,90 @@ +# +# encoding: utf-8 +#import re +#from django.utils.translation import gettext_lazy as _ +from django.conf import settings +from django.core.management import BaseCommand +from django_celery_beat.models import IntervalSchedule, CrontabSchedule, SolarSchedule +from django.contrib.auth import get_user_model +from scanner.models import Well + +def create_Well(): + try: + if Well.objects.count() == 0: + for name in [ + 'A1', 'A2', 'A3', 'A4', 'A5', 'A6', + 'B1', 'B2', 'B3', 'B4', 'B5', 'B6', + 'C1', 'C2', 'C3', 'C4', 'C5', 'C6', + 'D1', 'D2', 'D3', 'D4', 'D5', 'D6', + ]: + Well.objects.create(name=name, user_id=1) + print('Creating Well') + except Exception as e: + print(f'Creating well error {e}') + + +def create_user(): + try: + User = get_user_model() + if User.objects.count() == 0: + for email, username, password, is_superuser in settings.ADMINS: + if is_superuser: + User.objects.create_superuser( + email=email, + username=username, + password=password, + is_active=True, + is_superuser=is_superuser, + ) + else: + User.objects.create_user( + email=email, + username=username, + password=password, + is_active=True, + ) + print(f'Creating {username} user with {password} password and email: {email} superuser: {is_superuser}') + except Exception as e: + print(f'Creating user error {e}') + +def create_schedule(): + try: + for n in [1, 2, 5, 10, 15, 20, 30, 40, 45, 50]: + IntervalSchedule.objects.create(every=n, period='minutes') + print('Creating IntervalSchedule minutes') + + for n in [1, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22]: + IntervalSchedule.objects.create(every=n, period='hours') + print('Creating IntervalSchedule hours') + + for n in [1, 2, 3, 7, 15, 30, 60, 90, 180, 360]: + IntervalSchedule.objects.create(every=n, period='days') + print('Creating IntervalSchedule days') + + CrontabSchedule.objects.create(minute='0', hour='4', day_of_week='*', timezone=settings.TIME_ZONE) + CrontabSchedule.objects.create(minute='0', hour='4', day_of_week='*/3', timezone=settings.TIME_ZONE) + CrontabSchedule.objects.create(minute='15', hour='4', day_of_week='*/3', timezone=settings.TIME_ZONE) + CrontabSchedule.objects.create(minute='30', hour='4', day_of_week='*/3', timezone=settings.TIME_ZONE) + CrontabSchedule.objects.create(minute='0', hour='18', day_of_week='*', timezone=settings.TIME_ZONE) + CrontabSchedule.objects.create(minute='15', hour='18', day_of_week='*/3', timezone=settings.TIME_ZONE) + CrontabSchedule.objects.create(minute='30', hour='18', day_of_week='*/3', timezone=settings.TIME_ZONE) + print('Creating CrontabSchedule') + + SolarSchedule.objects.create(event='sunset', latitude=43.8, longitude=2.3) + SolarSchedule.objects.create(event='sunrise', latitude=43.8, longitude=2.3) + print('Creating SolarSchedule') + + except Exception as e: + print(f'Creating schedule error {e}') + + +class Command(BaseCommand): + + def handle(self, *args, **options): + try: + create_user() + create_schedule() + create_Well() + + except Exception as e: + print(f'Creating monitor error {e}') diff --git a/test_tube_scanner/home/management/commands/list_urls.py b/test_tube_scanner/home/management/commands/list_urls.py new file mode 100644 index 0000000..a402bc7 --- /dev/null +++ b/test_tube_scanner/home/management/commands/list_urls.py @@ -0,0 +1,20 @@ +# +# encoding: utf-8 +from django.core.management import BaseCommand +from django.urls import get_resolver + +class Command(BaseCommand): + def handle(self, *args, **kwargs): + + def show_urls(urllist, depth=0): + for entry in urllist: + print(entry.pattern) + if hasattr(entry, 'url_patterns'): + show_urls(entry.url_patterns, depth + 1) + + show_urls(get_resolver().url_patterns) + + + + + diff --git a/test_tube_scanner/home/management/commands/rem_records.py b/test_tube_scanner/home/management/commands/rem_records.py new file mode 100644 index 0000000..b613f79 --- /dev/null +++ b/test_tube_scanner/home/management/commands/rem_records.py @@ -0,0 +1,38 @@ +''' +Created on 19 janv. 2026 + +@author: denis +''' +import asyncio +from django.core.management.base import BaseCommand +from scanner.export_tasks import remove_video_by_uuid +from scanner.models import MultiWell + + +async def remove_video(sid, multiwells): + for m in multiwells: + row_to_char = m.row_order.split(',') + for row in range(m.rows): + for col in range(m.cols): + uuid = f'{sid}-{m.position}-{row_to_char[row]}{col+1}' + filters = {"$and": [{"&session": { "$eq": sid} }]} + print(f"Delete video for {uuid} with filters {filters}") + await remove_video_by_uuid(uuid, when=filters) + + +class Command(BaseCommand): + help = "Démarre les tâches Celery." + + def add_arguments(self, parser): + super(Command, self).add_arguments(parser) + parser.add_argument("--session", type=int, default=0, help=f"Delete all videos from Session id") + + def handle(self, *args, **options): # @UnusedVariable + try: + sid = options.get('session') + multiwels = [m for m in MultiWell.objects.filter(active=True).all() ] + asyncio.run(remove_video(sid, multiwels)) + + except Exception as e: + print("Delete all videos from Session error", e) + diff --git a/test_tube_scanner/home/management/commands/secret_key.py b/test_tube_scanner/home/management/commands/secret_key.py new file mode 100644 index 0000000..7341945 --- /dev/null +++ b/test_tube_scanner/home/management/commands/secret_key.py @@ -0,0 +1,23 @@ +# +# encoding: utf-8 +from uuid import uuid4 +from django.core.management import BaseCommand +from django.core.management.utils import get_random_string; + +class Command(BaseCommand): + def add_arguments(self, parser): + super().add_arguments(parser) + parser.add_argument("--app", type=str, default='django', help=f"Default application django/reductstore") + parser.add_argument("--head", type=str, default='scanner', help=f"Default application django/reductstore") + + def handle(self, *args, **options): + if options.get('app')=='django': + chars = "abcdefghijklmnopqrstuvwxyz0123456789!@#€%^&*(-_=+)" + + sk = get_random_string(50, chars) + print(f'django-insecure-{sk}') + + elif options.get('app')=='reductstore': + head = options.get('head') + print(f'{head}-{uuid4()}') + diff --git a/test_tube_scanner/home/management/commands/start_workers.py b/test_tube_scanner/home/management/commands/start_workers.py new file mode 100644 index 0000000..84f18ef --- /dev/null +++ b/test_tube_scanner/home/management/commands/start_workers.py @@ -0,0 +1,26 @@ +''' +Created on 19 janv. 2026 + +@author: denis +''' +from django.core.management.base import BaseCommand +from scanner import tasks as scanner_tasks + + + +class Command(BaseCommand): + help = "Démarre les tâches Celery." + + def add_arguments(self, parser): + super(Command, self).add_arguments(parser) + #parser.add_argument("--task", action="store", dest="task", default='start_all') + + def handle(self, *args, **options): # @UnusedVariable + #task = options['task'] + try: + + scanner_tasks.scanner_start.delay() # @UndefinedVariable + scanner_tasks.replay_start.delay() # @UndefinedVariable + except Exception as e: + print(e) + diff --git a/test_tube_scanner/home/management/commands/test_L2544.py b/test_tube_scanner/home/management/commands/test_L2544.py new file mode 100644 index 0000000..8b6ec01 --- /dev/null +++ b/test_tube_scanner/home/management/commands/test_L2544.py @@ -0,0 +1,68 @@ +''' +Created on 19 janv. 2026 + +@author: denis +''' +from django.core.management.base import BaseCommand +from modules.grbl import GRBLController, wait_for +import time + + +class Command(BaseCommand): + help = "Démarre les tâches Celery." + + def add_arguments(self, parser): + super(Command, self).add_arguments(parser) + #parser.add_argument("--task", action="store", dest="task", default='start_all') + + def handle(self, *args, **options): # @UnusedVariable + def check_limits(grbl): + grbl.send("$130=") # Limite max X + grbl.send("$131=") # Limite max Y + + def check_speed_limits(grbl): + grbl.send("$110") # Vitesse max X + grbl.send("$111") # Vitesse max Y + grbl.send("$112") # Vitesse max Z + + #task = options['task'] + try: + grbl = GRBLController() + grbl.send("$$") + + #print("clear_alarm") + #grbl.clear_alarm() + #print("home_machine") + #grbl.home_machine() + + grbl.go_origin(feed=1000) + wait_for(4.0) + print("go_origin pos", grbl.get_mpos()) + + #grbl.go_origin(feed=1000) + #check_limits(grbl) + + + #print("home_machine") + #grbl.home_machine() + + print("move_to 100, 100") + grbl.move_to(100, 100, feed=1500) + wait_for(4.0) + + #print("halt") + #grbl.halt() + #wait_for(2.0) + #print("pos", grbl.get_mpos()) + + print("go_origin") + #grbl.go_origin(feed=2000) + grbl.move_to(0, 0, feed=3000) + wait_for(2.0) + print("pos", grbl.get_mpos()) + + + + except Exception as e: + print(e) + diff --git a/test_tube_scanner/home/middleware.py b/test_tube_scanner/home/middleware.py new file mode 100644 index 0000000..a05586e --- /dev/null +++ b/test_tube_scanner/home/middleware.py @@ -0,0 +1,15 @@ +from django.conf import settings +from django.utils import translation + +def SetDefaultLangMiddleware(get_response): + + def middleware(request): + if not request.COOKIES.get('django_language'): + request.COOKIES['django_language'] = settings.LANGUAGE_CODE + translation.activate(settings.LANGUAGE_CODE) + elif request.COOKIES['django_language'] != settings.LANGUAGE_CODE: + request.COOKIES['django_language'] = settings.LANGUAGE_CODE + translation.activate(settings.LANGUAGE_CODE) + response = get_response(request) + return response + return middleware diff --git a/test_tube_scanner/home/settings.py b/test_tube_scanner/home/settings.py new file mode 100644 index 0000000..9dc5041 --- /dev/null +++ b/test_tube_scanner/home/settings.py @@ -0,0 +1,389 @@ +""" +Django settings for monitoring project. + +Generated by 'django-admin startproject' using Django 5.1.6. + +For more information on this file, see +https://docs.djangoproject.com/en/5.1/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/5.1/ref/settings/ +""" + +from django.contrib.messages import constants as message_constants +from pathlib import Path +from decouple import config, Csv + +# Build paths inside the project like this: BASE_DIR / 'subdir'. +BASE_DIR = Path(__file__).resolve().parent.parent +PACKAGE_DIR = BASE_DIR.parent + + +APP_DATAS = PACKAGE_DIR / config('APP_DATAS') +print("Django application data:", APP_DATAS) + + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/5.0/howto/deployment/checklist/ + +DJANGO_APP = config('DJANGO_APP') +APP_NAME = DJANGO_APP + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/3.2/howto/deployment/checklist/ +SECRET_KEY = config("SECRET_KEY") + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = config('DEBUG', cast=bool) + +DOMAIN_SERVER = config("DOMAIN_SERVER") +ALLOWED_HOSTS = config('ALLOWED_HOSTS', cast=Csv()) +ALLOWED_HOSTS += [DOMAIN_SERVER, '*'] + +CSRF_TRUSTED_ORIGINS = config('CSRF_TRUSTED_ORIGINS', cast=Csv()) +CSRF_TRUSTED_ORIGINS += [f'http://{DOMAIN_SERVER}', f'https://{DOMAIN_SERVER}'] + +SECURE_CROSS_ORIGIN_OPENER_POLICY = 'same-origin' +X_FRAME_OPTIONS = 'SAMEORIGIN' + + +# Application definition +INSTALLED_APPS = [ + 'daphne', + 'channels', + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', + 'django_celery_beat', + 'django_celery_results', + 'celery', + 'home', + 'scanner', + +] + + +AUTHENTICATION_BACKENDS = ( + 'django.contrib.auth.backends.ModelBackend', + #'contrib.auth.EmailBackend', +) + +MIDDLEWARE = [ + 'django.middleware.security.SecurityMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.locale.LocaleMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', + 'home.middleware.SetDefaultLangMiddleware', +] + +ROOT_URLCONF = 'home.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [BASE_DIR / 'templates', ], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + 'home.context_processors.params', + ], + }, + }, +] + +WSGI_APPLICATION = 'home.wsgi.application' +ASGI_APPLICATION = 'home.asgi.application' + +MESSAGE_STORAGE = 'django.contrib.messages.storage.cookie.CookieStorage' + +# Redis +# +REDIS_HOST=config("REDIS_HOST") +REDIS_PORT=int(config("REDIS_PORT")) + +CHANNEL_LAYERS = { + 'default': { + 'BACKEND': 'channels_redis.core.RedisChannelLayer', + 'CONFIG': { + "hosts": [(REDIS_HOST, REDIS_PORT)], + "capacity": 5000, # default 100 + "expiry": 10, # default 60 + }, + }, +} + + +# Database +# https://docs.djangoproject.com/en/5.1/ref/settings/#databases + +DATABASE_NAME = config('DATABASE_NAME') +DATABASE_USER = config('DATABASE_USER') +DATABASE_PASSWORD = config('DATABASE_PASSWORD') + +SQLITE3=config('SQLITE3') +SQLITE3_PATH=config('SQLITE3_PATH') +MARIADB=config('MARIADB') +POSTGRES=config('POSTGRES') + + +DATABASES = { + SQLITE3: { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': f'{SQLITE3_PATH}db.sqlite3', + "OPTIONS": { + "timeout": 20, + }, + }, + MARIADB: { + 'ENGINE': 'django.db.backends.mysql', + 'OPTIONS' : { + "init_command": "SET foreign_key_checks = 0;SET sql_mode='STRICT_TRANS_TABLES';", + 'charset': 'utf8mb4', + }, + 'NAME': DATABASE_NAME, + 'USER': DATABASE_USER, + 'PASSWORD': DATABASE_PASSWORD, + 'HOST': config("DATABASE_MARIADB_HOST"), + 'PORT': config("DATABASE_MARIADB_PORT", cast=int), + }, + POSTGRES: { + 'ENGINE': 'django.db.backends.postgresql_psycopg2', + 'NAME': DATABASE_NAME, + 'USER': DATABASE_USER, + 'PASSWORD': DATABASE_PASSWORD, + 'HOST': config("DATABASE_POSTGRES_HOST"), + 'PORT': config("DATABASE_POSTGRES_PORT", cast=int), + }, +} + + +# Password validation +# https://docs.djangoproject.com/en/5.1/ref/settings/#auth-password-validators + +AUTH_PASSWORD_VALIDATORS = [ + { + 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + }, +] + + +# Internationalization +# https://docs.djangoproject.com/en/5.1/topics/i18n/ +#LANGUAGE_CODE = 'en-US' +LANGUAGE_CODE = config('LANGUAGE_CODE') + +LANGUAGES = ( + ('fr', 'Français'), + ('en', 'English'), +) + +TIME_ZONE = config('TIME_ZONE') +USE_I18N = True +USE_L10N = True +USE_TZ = True + +LOCALE_CODE = config('LOCALE_CODE') +LOCALE_LC_ALL = config('LOCALE_LC_ALL') + +LOCALE_PATHS = ( + BASE_DIR / 'home' / 'locale', +) + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/5.1/howto/static-files/ + +STATIC_URL = '/static/' +STATIC_ROOT = APP_DATAS / 'staticfiles' + +MEDIA_URL = '/media/' +MEDIA_ROOT = APP_DATAS / 'media' + +""" +STATICFILES_DIRS = [ + BASE_DIR / 'xxx', +] +""" + +# Default primary key field type +# https://docs.djangoproject.com/en/5.1/ref/settings/#default-auto-field + +DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' + + +## LOGGING +# CRITICAL=50, ERROR=40, WARN=30, INFO=20, DEBUG=10 and NOTSET=0 + +LOGGING_FILE = config('LOGGING_FILE') +IS_LOGGING = config('IS_LOGGING', cast=bool) + +LOGGING = None if not IS_LOGGING else { + 'version': 1, + 'disable_existing_loggers': False, + 'formatters': { + 'simple': { + 'format': '%(asctime)s - %(message)s' + }, + "celery": { + "format": "%(asctime)s [%(levelname)s] %(name)s — %(message)s", + "datefmt": "%Y-%m-%d %H:%M:%S", + }, + }, + 'handlers': { + "celery_file": { + "class" : "logging.handlers.RotatingFileHandler", + "filename" : BASE_DIR / "logs" / "celery.log", + "maxBytes" : 10 * 1024 * 1024, # 10 Mo par fichier + "backupCount": 5, # 5 fichiers max en rotation + "formatter" : "celery", + "encoding" : "utf-8", + }, + 'file': { + 'level': 'INFO', + 'class':'logging.handlers.RotatingFileHandler', + 'filename': BASE_DIR / "logs" / LOGGING_FILE, + 'maxBytes': 1024*1024*15, # 15MB + 'backupCount': 10, + 'formatter': 'simple', + }, + 'null': {'class': 'logging.NullHandler', }, + 'console': {'class': 'logging.StreamHandler',}, + }, + 'loggers': { + "django": {"handlers": ["null"], "level": "ERROR", "propagate": False,}, + "uvicorn": {"handlers": ["null"], "level": "ERROR", "propagate": False,}, + "daphne": {"handlers": ["null"], "level": "ERROR", "propagate": False,}, + 'axes': {"handlers": ['file',],"level": "INFO", "propagate": True, }, + "celery": {"handlers": ["celery_file"], "level": "INFO", "propagate": False,}, + "celery.task": {"handlers": ["celery_file"], "level": "INFO", "propagate": False, }, + "celery.worker": {"handlers": ["celery_file"], "level": "INFO", "propagate": False, }, + "scanner": {"handlers": ["file"], "level": "INFO", "propagate": False,}, + }, +} + +# ACCOUNT +# +LOGIN_URL = 'login' +LOGIN_REDIRECT_URL = '/' +LOGOUT_REDIRECT_URL = "/" + +## +# application +SUPERADMIN_MAIL = config('SUPERADMIN_MAIL') +ADMINS = [ + (SUPERADMIN_MAIL, config('SUPERADMIN'), config('SUPERADMIN_PASS'), True), +] +MANAGERS = ADMINS + +# w3 css +MESSAGE_TAGS = { + message_constants.DEBUG: 'w3-purple', + message_constants.INFO: 'w3-blue', + message_constants.SUCCESS: 'w3-green', + message_constants.WARNING: 'w3-orange', + message_constants.ERROR: 'w3-red', +} + +# Default css classes for widgets and labels +DEFAULT_CSS = { + 'error': 'w3-panel w3-red', # displayed in the label + 'errorlist': 'w3-padding-8 w3-red', # encloses the error list + 'required': 'w3-text-indigo', # used in the label and label + input enclosing box. NB: w3-validate only works if the input precedes the label! + 'label': 'w3-label', + 'Textarea': 'w3-input w3-border', + 'TextInput': 'w3-input w3-border', + 'Select': 'w3-select w3-border', +} + +# django mail +# +DEFAULT_TO_EMAIL = config("DEFAULT_TO_EMAIL") +DEFAULT_FROM_EMAIL = config("DEFAULT_FROM_EMAIL") +DEFAULT_EMAIL_CONTACT = config("DEFAULT_EMAIL_CONTACT") + +EMAIL_BACKEND = config("EMAIL_BACKEND") +EMAIL_HOST = config("EMAIL_HOST") +EMAIL_PORT = config("EMAIL_PORT", cast=int) +EMAIL_HOST_USER = config("EMAIL_HOST_USER") +EMAIL_HOST_PASSWORD = config("EMAIL_HOST_PASSWORD") +EMAIL_USE_TLS = config('EMAIL_USE_TLS', cast=bool) + +## CELERY tasks +# +#from celery.schedules import crontab +REDIS_HOST_PORT = f'{config("REDIS_HOST")}:{config("REDIS_PORT")}' +CELERY_RESULT_BACKEND = f"redis://{REDIS_HOST_PORT}/1" +CELERY_BROKER_URL = f"redis://{REDIS_HOST_PORT}/0" +CELERY_TASK_RESULT_EXPIRES=3600 +CELERY_BROKER_CONNECTION_RETRY_ON_STARTUP = False +CELERY_TIMEZONE=TIME_ZONE + +DJANGO_CELERY_BEAT_TZ_AWARE = False +CELERY_ENABLE_UTC = True +CELERY_TASK_TRACK_STARTED = True +CELERY_TASK_TIME_LIMIT = 30 * 60 +CELERY_BEAT_SCHEDULER = 'django_celery_beat.schedulers:DatabaseScheduler' +CELERY_ACCEPT_CONTENT = ['application/json'] +CELERY_RESULT_SERIALIZER = 'json' +CELERY_TASK_SERIALIZER = 'json' + +CELERY_RESULT_EXTENDED = True +CELERY_RESULT_BACKEND = 'django-db' +DJANGO_CELERY_RESULTS_TASK_ID_MAX_LENGTH=191 + +## reductstore +# +REDUCTSTORE_TOKEN = config('REDUCTSTORE_TOKEN') +REDUCTSTORE_HOST = config('REDUCTSTORE_HOST') +REDUCTSTORE_PORT = config('REDUCTSTORE_PORT', cast=int) +REDUCTSTORE_URL = f'http://{REDUCTSTORE_HOST}:{REDUCTSTORE_PORT}' +REDUCTSTORE_PATH = config("REDUCTSTORE_PATH") + +## servers app +# +USER = config('USER') +GROUP = config('GROUP') +SERVER_HOST_PORT = config('SERVER_HOST_PORT', cast=int) +SERVER_HOST_IP = config('SERVER_HOST_IP') + +# ws +SCANNER_WEBSOCKET_ROUTE = 'ws/scanner' +REPLAY_WEBSOCKET_ROUTE = 'ws/replay' + +# app +# +DATA_UPLOAD_MAX_NUMBER_FIELDS = 10240 +APP_TITLE = config("APP_TITLE") +APP_SUB_TITLE = config("APP_SUB_TITLE") +DATETIME_FORMAT = '%d-%m-%Y-%m %H:%M:%S' + +#=========================== +# default configuration +# +#=========================== +# rpicam 4056x3040 2028x1080 2028x1520 + +EXPORTS_LOCAL_PATH = config("EXPORTS_LOCAL_PATH") +EXPORT_REMOTE_PATH = config("EXPORT_REMOTE_PATH") + +EXPORT_DESTINATIONS = ["local", "remote"] diff --git a/test_tube_scanner/home/static/css/all.css b/test_tube_scanner/home/static/css/all.css new file mode 100644 index 0000000..9c2adee --- /dev/null +++ b/test_tube_scanner/home/static/css/all.css @@ -0,0 +1,7831 @@ +/*! + * Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2022 Fonticons, Inc. + */ +.fa { + font-family: var(--fa-style-family, "Font Awesome 6 Free"); + font-weight: var(--fa-style, 900); } + +.fa, +.fas, +.fa-solid, +.far, +.fa-regular, +.fal, +.fa-light, +.fat, +.fa-thin, +.fad, +.fa-duotone, +.fab, +.fa-brands { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: var(--fa-display, inline-block); + font-style: normal; + font-variant: normal; + line-height: 1; + text-rendering: auto; } + +.fa-1x { + font-size: 1em; } + +.fa-2x { + font-size: 2em; } + +.fa-3x { + font-size: 3em; } + +.fa-4x { + font-size: 4em; } + +.fa-5x { + font-size: 5em; } + +.fa-6x { + font-size: 6em; } + +.fa-7x { + font-size: 7em; } + +.fa-8x { + font-size: 8em; } + +.fa-9x { + font-size: 9em; } + +.fa-10x { + font-size: 10em; } + +.fa-2xs { + font-size: 0.625em; + line-height: 0.1em; + vertical-align: 0.225em; } + +.fa-xs { + font-size: 0.75em; + line-height: 0.08333em; + vertical-align: 0.125em; } + +.fa-sm { + font-size: 0.875em; + line-height: 0.07143em; + vertical-align: 0.05357em; } + +.fa-lg { + font-size: 1.25em; + line-height: 0.05em; + vertical-align: -0.075em; } + +.fa-xl { + font-size: 1.5em; + line-height: 0.04167em; + vertical-align: -0.125em; } + +.fa-2xl { + font-size: 2em; + line-height: 0.03125em; + vertical-align: -0.1875em; } + +.fa-fw { + text-align: center; + width: 1.25em; } + +.fa-ul { + list-style-type: none; + margin-left: var(--fa-li-margin, 2.5em); + padding-left: 0; } + .fa-ul > li { + position: relative; } + +.fa-li { + left: calc(var(--fa-li-width, 2em) * -1); + position: absolute; + text-align: center; + width: var(--fa-li-width, 2em); + line-height: inherit; } + +.fa-border { + border-color: var(--fa-border-color, #eee); + border-radius: var(--fa-border-radius, 0.1em); + border-style: var(--fa-border-style, solid); + border-width: var(--fa-border-width, 0.08em); + padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); } + +.fa-pull-left { + float: left; + margin-right: var(--fa-pull-margin, 0.3em); } + +.fa-pull-right { + float: right; + margin-left: var(--fa-pull-margin, 0.3em); } + +.fa-beat { + -webkit-animation-name: fa-beat; + animation-name: fa-beat; + -webkit-animation-delay: var(--fa-animation-delay, 0); + animation-delay: var(--fa-animation-delay, 0); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out); + animation-timing-function: var(--fa-animation-timing, ease-in-out); } + +.fa-bounce { + -webkit-animation-name: fa-bounce; + animation-name: fa-bounce; + -webkit-animation-delay: var(--fa-animation-delay, 0); + animation-delay: var(--fa-animation-delay, 0); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); } + +.fa-fade { + -webkit-animation-name: fa-fade; + animation-name: fa-fade; + -webkit-animation-delay: var(--fa-animation-delay, 0); + animation-delay: var(--fa-animation-delay, 0); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } + +.fa-beat-fade { + -webkit-animation-name: fa-beat-fade; + animation-name: fa-beat-fade; + -webkit-animation-delay: var(--fa-animation-delay, 0); + animation-delay: var(--fa-animation-delay, 0); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } + +.fa-flip { + -webkit-animation-name: fa-flip; + animation-name: fa-flip; + -webkit-animation-delay: var(--fa-animation-delay, 0); + animation-delay: var(--fa-animation-delay, 0); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out); + animation-timing-function: var(--fa-animation-timing, ease-in-out); } + +.fa-shake { + -webkit-animation-name: fa-shake; + animation-name: fa-shake; + -webkit-animation-delay: var(--fa-animation-delay, 0); + animation-delay: var(--fa-animation-delay, 0); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, linear); + animation-timing-function: var(--fa-animation-timing, linear); } + +.fa-spin { + -webkit-animation-name: fa-spin; + animation-name: fa-spin; + -webkit-animation-delay: var(--fa-animation-delay, 0); + animation-delay: var(--fa-animation-delay, 0); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 2s); + animation-duration: var(--fa-animation-duration, 2s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, linear); + animation-timing-function: var(--fa-animation-timing, linear); } + +.fa-spin-reverse { + --fa-animation-direction: reverse; } + +.fa-pulse, +.fa-spin-pulse { + -webkit-animation-name: fa-spin; + animation-name: fa-spin; + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, steps(8)); + animation-timing-function: var(--fa-animation-timing, steps(8)); } + +@media (prefers-reduced-motion: reduce) { + .fa-beat, + .fa-bounce, + .fa-fade, + .fa-beat-fade, + .fa-flip, + .fa-pulse, + .fa-shake, + .fa-spin, + .fa-spin-pulse { + -webkit-animation-delay: -1ms; + animation-delay: -1ms; + -webkit-animation-duration: 1ms; + animation-duration: 1ms; + -webkit-animation-iteration-count: 1; + animation-iteration-count: 1; + transition-delay: 0s; + transition-duration: 0s; } } + +@-webkit-keyframes fa-beat { + 0%, 90% { + -webkit-transform: scale(1); + transform: scale(1); } + 45% { + -webkit-transform: scale(var(--fa-beat-scale, 1.25)); + transform: scale(var(--fa-beat-scale, 1.25)); } } + +@keyframes fa-beat { + 0%, 90% { + -webkit-transform: scale(1); + transform: scale(1); } + 45% { + -webkit-transform: scale(var(--fa-beat-scale, 1.25)); + transform: scale(var(--fa-beat-scale, 1.25)); } } + +@-webkit-keyframes fa-bounce { + 0% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 10% { + -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); } + 30% { + -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); + transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); } + 50% { + -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); } + 57% { + -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); + transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); } + 64% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 100% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } } + +@keyframes fa-bounce { + 0% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 10% { + -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); } + 30% { + -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); + transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); } + 50% { + -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); } + 57% { + -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); + transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); } + 64% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 100% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } } + +@-webkit-keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, 0.4); } } + +@keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, 0.4); } } + +@-webkit-keyframes fa-beat-fade { + 0%, 100% { + opacity: var(--fa-beat-fade-opacity, 0.4); + -webkit-transform: scale(1); + transform: scale(1); } + 50% { + opacity: 1; + -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125)); + transform: scale(var(--fa-beat-fade-scale, 1.125)); } } + +@keyframes fa-beat-fade { + 0%, 100% { + opacity: var(--fa-beat-fade-opacity, 0.4); + -webkit-transform: scale(1); + transform: scale(1); } + 50% { + opacity: 1; + -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125)); + transform: scale(var(--fa-beat-fade-scale, 1.125)); } } + +@-webkit-keyframes fa-flip { + 50% { + -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); + transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } } + +@keyframes fa-flip { + 50% { + -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); + transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } } + +@-webkit-keyframes fa-shake { + 0% { + -webkit-transform: rotate(-15deg); + transform: rotate(-15deg); } + 4% { + -webkit-transform: rotate(15deg); + transform: rotate(15deg); } + 8%, 24% { + -webkit-transform: rotate(-18deg); + transform: rotate(-18deg); } + 12%, 28% { + -webkit-transform: rotate(18deg); + transform: rotate(18deg); } + 16% { + -webkit-transform: rotate(-22deg); + transform: rotate(-22deg); } + 20% { + -webkit-transform: rotate(22deg); + transform: rotate(22deg); } + 32% { + -webkit-transform: rotate(-12deg); + transform: rotate(-12deg); } + 36% { + -webkit-transform: rotate(12deg); + transform: rotate(12deg); } + 40%, 100% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } } + +@keyframes fa-shake { + 0% { + -webkit-transform: rotate(-15deg); + transform: rotate(-15deg); } + 4% { + -webkit-transform: rotate(15deg); + transform: rotate(15deg); } + 8%, 24% { + -webkit-transform: rotate(-18deg); + transform: rotate(-18deg); } + 12%, 28% { + -webkit-transform: rotate(18deg); + transform: rotate(18deg); } + 16% { + -webkit-transform: rotate(-22deg); + transform: rotate(-22deg); } + 20% { + -webkit-transform: rotate(22deg); + transform: rotate(22deg); } + 32% { + -webkit-transform: rotate(-12deg); + transform: rotate(-12deg); } + 36% { + -webkit-transform: rotate(12deg); + transform: rotate(12deg); } + 40%, 100% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } } + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +.fa-rotate-90 { + -webkit-transform: rotate(90deg); + transform: rotate(90deg); } + +.fa-rotate-180 { + -webkit-transform: rotate(180deg); + transform: rotate(180deg); } + +.fa-rotate-270 { + -webkit-transform: rotate(270deg); + transform: rotate(270deg); } + +.fa-flip-horizontal { + -webkit-transform: scale(-1, 1); + transform: scale(-1, 1); } + +.fa-flip-vertical { + -webkit-transform: scale(1, -1); + transform: scale(1, -1); } + +.fa-flip-both, +.fa-flip-horizontal.fa-flip-vertical { + -webkit-transform: scale(-1, -1); + transform: scale(-1, -1); } + +.fa-rotate-by { + -webkit-transform: rotate(var(--fa-rotate-angle, none)); + transform: rotate(var(--fa-rotate-angle, none)); } + +.fa-stack { + display: inline-block; + height: 2em; + line-height: 2em; + position: relative; + vertical-align: middle; + width: 2.5em; } + +.fa-stack-1x, +.fa-stack-2x { + left: 0; + position: absolute; + text-align: center; + width: 100%; + z-index: var(--fa-stack-z-index, auto); } + +.fa-stack-1x { + line-height: inherit; } + +.fa-stack-2x { + font-size: 2em; } + +.fa-inverse { + color: var(--fa-inverse, #fff); } + +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen +readers do not read off random characters that represent icons */ +.fa-0::before { + content: "\30"; } + +.fa-1::before { + content: "\31"; } + +.fa-2::before { + content: "\32"; } + +.fa-3::before { + content: "\33"; } + +.fa-4::before { + content: "\34"; } + +.fa-5::before { + content: "\35"; } + +.fa-6::before { + content: "\36"; } + +.fa-7::before { + content: "\37"; } + +.fa-8::before { + content: "\38"; } + +.fa-9::before { + content: "\39"; } + +.fa-a::before { + content: "\41"; } + +.fa-address-book::before { + content: "\f2b9"; } + +.fa-contact-book::before { + content: "\f2b9"; } + +.fa-address-card::before { + content: "\f2bb"; } + +.fa-contact-card::before { + content: "\f2bb"; } + +.fa-vcard::before { + content: "\f2bb"; } + +.fa-align-center::before { + content: "\f037"; } + +.fa-align-justify::before { + content: "\f039"; } + +.fa-align-left::before { + content: "\f036"; } + +.fa-align-right::before { + content: "\f038"; } + +.fa-anchor::before { + content: "\f13d"; } + +.fa-anchor-circle-check::before { + content: "\e4aa"; } + +.fa-anchor-circle-exclamation::before { + content: "\e4ab"; } + +.fa-anchor-circle-xmark::before { + content: "\e4ac"; } + +.fa-anchor-lock::before { + content: "\e4ad"; } + +.fa-angle-down::before { + content: "\f107"; } + +.fa-angle-left::before { + content: "\f104"; } + +.fa-angle-right::before { + content: "\f105"; } + +.fa-angle-up::before { + content: "\f106"; } + +.fa-angles-down::before { + content: "\f103"; } + +.fa-angle-double-down::before { + content: "\f103"; } + +.fa-angles-left::before { + content: "\f100"; } + +.fa-angle-double-left::before { + content: "\f100"; } + +.fa-angles-right::before { + content: "\f101"; } + +.fa-angle-double-right::before { + content: "\f101"; } + +.fa-angles-up::before { + content: "\f102"; } + +.fa-angle-double-up::before { + content: "\f102"; } + +.fa-ankh::before { + content: "\f644"; } + +.fa-apple-whole::before { + content: "\f5d1"; } + +.fa-apple-alt::before { + content: "\f5d1"; } + +.fa-archway::before { + content: "\f557"; } + +.fa-arrow-down::before { + content: "\f063"; } + +.fa-arrow-down-1-9::before { + content: "\f162"; } + +.fa-sort-numeric-asc::before { + content: "\f162"; } + +.fa-sort-numeric-down::before { + content: "\f162"; } + +.fa-arrow-down-9-1::before { + content: "\f886"; } + +.fa-sort-numeric-desc::before { + content: "\f886"; } + +.fa-sort-numeric-down-alt::before { + content: "\f886"; } + +.fa-arrow-down-a-z::before { + content: "\f15d"; } + +.fa-sort-alpha-asc::before { + content: "\f15d"; } + +.fa-sort-alpha-down::before { + content: "\f15d"; } + +.fa-arrow-down-long::before { + content: "\f175"; } + +.fa-long-arrow-down::before { + content: "\f175"; } + +.fa-arrow-down-short-wide::before { + content: "\f884"; } + +.fa-sort-amount-desc::before { + content: "\f884"; } + +.fa-sort-amount-down-alt::before { + content: "\f884"; } + +.fa-arrow-down-up-across-line::before { + content: "\e4af"; } + +.fa-arrow-down-up-lock::before { + content: "\e4b0"; } + +.fa-arrow-down-wide-short::before { + content: "\f160"; } + +.fa-sort-amount-asc::before { + content: "\f160"; } + +.fa-sort-amount-down::before { + content: "\f160"; } + +.fa-arrow-down-z-a::before { + content: "\f881"; } + +.fa-sort-alpha-desc::before { + content: "\f881"; } + +.fa-sort-alpha-down-alt::before { + content: "\f881"; } + +.fa-arrow-left::before { + content: "\f060"; } + +.fa-arrow-left-long::before { + content: "\f177"; } + +.fa-long-arrow-left::before { + content: "\f177"; } + +.fa-arrow-pointer::before { + content: "\f245"; } + +.fa-mouse-pointer::before { + content: "\f245"; } + +.fa-arrow-right::before { + content: "\f061"; } + +.fa-arrow-right-arrow-left::before { + content: "\f0ec"; } + +.fa-exchange::before { + content: "\f0ec"; } + +.fa-arrow-right-from-bracket::before { + content: "\f08b"; } + +.fa-sign-out::before { + content: "\f08b"; } + +.fa-arrow-right-long::before { + content: "\f178"; } + +.fa-long-arrow-right::before { + content: "\f178"; } + +.fa-arrow-right-to-bracket::before { + content: "\f090"; } + +.fa-sign-in::before { + content: "\f090"; } + +.fa-arrow-right-to-city::before { + content: "\e4b3"; } + +.fa-arrow-rotate-left::before { + content: "\f0e2"; } + +.fa-arrow-left-rotate::before { + content: "\f0e2"; } + +.fa-arrow-rotate-back::before { + content: "\f0e2"; } + +.fa-arrow-rotate-backward::before { + content: "\f0e2"; } + +.fa-undo::before { + content: "\f0e2"; } + +.fa-arrow-rotate-right::before { + content: "\f01e"; } + +.fa-arrow-right-rotate::before { + content: "\f01e"; } + +.fa-arrow-rotate-forward::before { + content: "\f01e"; } + +.fa-redo::before { + content: "\f01e"; } + +.fa-arrow-trend-down::before { + content: "\e097"; } + +.fa-arrow-trend-up::before { + content: "\e098"; } + +.fa-arrow-turn-down::before { + content: "\f149"; } + +.fa-level-down::before { + content: "\f149"; } + +.fa-arrow-turn-up::before { + content: "\f148"; } + +.fa-level-up::before { + content: "\f148"; } + +.fa-arrow-up::before { + content: "\f062"; } + +.fa-arrow-up-1-9::before { + content: "\f163"; } + +.fa-sort-numeric-up::before { + content: "\f163"; } + +.fa-arrow-up-9-1::before { + content: "\f887"; } + +.fa-sort-numeric-up-alt::before { + content: "\f887"; } + +.fa-arrow-up-a-z::before { + content: "\f15e"; } + +.fa-sort-alpha-up::before { + content: "\f15e"; } + +.fa-arrow-up-from-bracket::before { + content: "\e09a"; } + +.fa-arrow-up-from-ground-water::before { + content: "\e4b5"; } + +.fa-arrow-up-from-water-pump::before { + content: "\e4b6"; } + +.fa-arrow-up-long::before { + content: "\f176"; } + +.fa-long-arrow-up::before { + content: "\f176"; } + +.fa-arrow-up-right-dots::before { + content: "\e4b7"; } + +.fa-arrow-up-right-from-square::before { + content: "\f08e"; } + +.fa-external-link::before { + content: "\f08e"; } + +.fa-arrow-up-short-wide::before { + content: "\f885"; } + +.fa-sort-amount-up-alt::before { + content: "\f885"; } + +.fa-arrow-up-wide-short::before { + content: "\f161"; } + +.fa-sort-amount-up::before { + content: "\f161"; } + +.fa-arrow-up-z-a::before { + content: "\f882"; } + +.fa-sort-alpha-up-alt::before { + content: "\f882"; } + +.fa-arrows-down-to-line::before { + content: "\e4b8"; } + +.fa-arrows-down-to-people::before { + content: "\e4b9"; } + +.fa-arrows-left-right::before { + content: "\f07e"; } + +.fa-arrows-h::before { + content: "\f07e"; } + +.fa-arrows-left-right-to-line::before { + content: "\e4ba"; } + +.fa-arrows-rotate::before { + content: "\f021"; } + +.fa-refresh::before { + content: "\f021"; } + +.fa-sync::before { + content: "\f021"; } + +.fa-arrows-spin::before { + content: "\e4bb"; } + +.fa-arrows-split-up-and-left::before { + content: "\e4bc"; } + +.fa-arrows-to-circle::before { + content: "\e4bd"; } + +.fa-arrows-to-dot::before { + content: "\e4be"; } + +.fa-arrows-to-eye::before { + content: "\e4bf"; } + +.fa-arrows-turn-right::before { + content: "\e4c0"; } + +.fa-arrows-turn-to-dots::before { + content: "\e4c1"; } + +.fa-arrows-up-down::before { + content: "\f07d"; } + +.fa-arrows-v::before { + content: "\f07d"; } + +.fa-arrows-up-down-left-right::before { + content: "\f047"; } + +.fa-arrows::before { + content: "\f047"; } + +.fa-arrows-up-to-line::before { + content: "\e4c2"; } + +.fa-asterisk::before { + content: "\2a"; } + +.fa-at::before { + content: "\40"; } + +.fa-atom::before { + content: "\f5d2"; } + +.fa-audio-description::before { + content: "\f29e"; } + +.fa-austral-sign::before { + content: "\e0a9"; } + +.fa-award::before { + content: "\f559"; } + +.fa-b::before { + content: "\42"; } + +.fa-baby::before { + content: "\f77c"; } + +.fa-baby-carriage::before { + content: "\f77d"; } + +.fa-carriage-baby::before { + content: "\f77d"; } + +.fa-backward::before { + content: "\f04a"; } + +.fa-backward-fast::before { + content: "\f049"; } + +.fa-fast-backward::before { + content: "\f049"; } + +.fa-backward-step::before { + content: "\f048"; } + +.fa-step-backward::before { + content: "\f048"; } + +.fa-bacon::before { + content: "\f7e5"; } + +.fa-bacteria::before { + content: "\e059"; } + +.fa-bacterium::before { + content: "\e05a"; } + +.fa-bag-shopping::before { + content: "\f290"; } + +.fa-shopping-bag::before { + content: "\f290"; } + +.fa-bahai::before { + content: "\f666"; } + +.fa-baht-sign::before { + content: "\e0ac"; } + +.fa-ban::before { + content: "\f05e"; } + +.fa-cancel::before { + content: "\f05e"; } + +.fa-ban-smoking::before { + content: "\f54d"; } + +.fa-smoking-ban::before { + content: "\f54d"; } + +.fa-bandage::before { + content: "\f462"; } + +.fa-band-aid::before { + content: "\f462"; } + +.fa-barcode::before { + content: "\f02a"; } + +.fa-bars::before { + content: "\f0c9"; } + +.fa-navicon::before { + content: "\f0c9"; } + +.fa-bars-progress::before { + content: "\f828"; } + +.fa-tasks-alt::before { + content: "\f828"; } + +.fa-bars-staggered::before { + content: "\f550"; } + +.fa-reorder::before { + content: "\f550"; } + +.fa-stream::before { + content: "\f550"; } + +.fa-baseball::before { + content: "\f433"; } + +.fa-baseball-ball::before { + content: "\f433"; } + +.fa-baseball-bat-ball::before { + content: "\f432"; } + +.fa-basket-shopping::before { + content: "\f291"; } + +.fa-shopping-basket::before { + content: "\f291"; } + +.fa-basketball::before { + content: "\f434"; } + +.fa-basketball-ball::before { + content: "\f434"; } + +.fa-bath::before { + content: "\f2cd"; } + +.fa-bathtub::before { + content: "\f2cd"; } + +.fa-battery-empty::before { + content: "\f244"; } + +.fa-battery-0::before { + content: "\f244"; } + +.fa-battery-full::before { + content: "\f240"; } + +.fa-battery::before { + content: "\f240"; } + +.fa-battery-5::before { + content: "\f240"; } + +.fa-battery-half::before { + content: "\f242"; } + +.fa-battery-3::before { + content: "\f242"; } + +.fa-battery-quarter::before { + content: "\f243"; } + +.fa-battery-2::before { + content: "\f243"; } + +.fa-battery-three-quarters::before { + content: "\f241"; } + +.fa-battery-4::before { + content: "\f241"; } + +.fa-bed::before { + content: "\f236"; } + +.fa-bed-pulse::before { + content: "\f487"; } + +.fa-procedures::before { + content: "\f487"; } + +.fa-beer-mug-empty::before { + content: "\f0fc"; } + +.fa-beer::before { + content: "\f0fc"; } + +.fa-bell::before { + content: "\f0f3"; } + +.fa-bell-concierge::before { + content: "\f562"; } + +.fa-concierge-bell::before { + content: "\f562"; } + +.fa-bell-slash::before { + content: "\f1f6"; } + +.fa-bezier-curve::before { + content: "\f55b"; } + +.fa-bicycle::before { + content: "\f206"; } + +.fa-binoculars::before { + content: "\f1e5"; } + +.fa-biohazard::before { + content: "\f780"; } + +.fa-bitcoin-sign::before { + content: "\e0b4"; } + +.fa-blender::before { + content: "\f517"; } + +.fa-blender-phone::before { + content: "\f6b6"; } + +.fa-blog::before { + content: "\f781"; } + +.fa-bold::before { + content: "\f032"; } + +.fa-bolt::before { + content: "\f0e7"; } + +.fa-zap::before { + content: "\f0e7"; } + +.fa-bolt-lightning::before { + content: "\e0b7"; } + +.fa-bomb::before { + content: "\f1e2"; } + +.fa-bone::before { + content: "\f5d7"; } + +.fa-bong::before { + content: "\f55c"; } + +.fa-book::before { + content: "\f02d"; } + +.fa-book-atlas::before { + content: "\f558"; } + +.fa-atlas::before { + content: "\f558"; } + +.fa-book-bible::before { + content: "\f647"; } + +.fa-bible::before { + content: "\f647"; } + +.fa-book-bookmark::before { + content: "\e0bb"; } + +.fa-book-journal-whills::before { + content: "\f66a"; } + +.fa-journal-whills::before { + content: "\f66a"; } + +.fa-book-medical::before { + content: "\f7e6"; } + +.fa-book-open::before { + content: "\f518"; } + +.fa-book-open-reader::before { + content: "\f5da"; } + +.fa-book-reader::before { + content: "\f5da"; } + +.fa-book-quran::before { + content: "\f687"; } + +.fa-quran::before { + content: "\f687"; } + +.fa-book-skull::before { + content: "\f6b7"; } + +.fa-book-dead::before { + content: "\f6b7"; } + +.fa-bookmark::before { + content: "\f02e"; } + +.fa-border-all::before { + content: "\f84c"; } + +.fa-border-none::before { + content: "\f850"; } + +.fa-border-top-left::before { + content: "\f853"; } + +.fa-border-style::before { + content: "\f853"; } + +.fa-bore-hole::before { + content: "\e4c3"; } + +.fa-bottle-droplet::before { + content: "\e4c4"; } + +.fa-bottle-water::before { + content: "\e4c5"; } + +.fa-bowl-food::before { + content: "\e4c6"; } + +.fa-bowl-rice::before { + content: "\e2eb"; } + +.fa-bowling-ball::before { + content: "\f436"; } + +.fa-box::before { + content: "\f466"; } + +.fa-box-archive::before { + content: "\f187"; } + +.fa-archive::before { + content: "\f187"; } + +.fa-box-open::before { + content: "\f49e"; } + +.fa-box-tissue::before { + content: "\e05b"; } + +.fa-boxes-packing::before { + content: "\e4c7"; } + +.fa-boxes-stacked::before { + content: "\f468"; } + +.fa-boxes::before { + content: "\f468"; } + +.fa-boxes-alt::before { + content: "\f468"; } + +.fa-braille::before { + content: "\f2a1"; } + +.fa-brain::before { + content: "\f5dc"; } + +.fa-brazilian-real-sign::before { + content: "\e46c"; } + +.fa-bread-slice::before { + content: "\f7ec"; } + +.fa-bridge::before { + content: "\e4c8"; } + +.fa-bridge-circle-check::before { + content: "\e4c9"; } + +.fa-bridge-circle-exclamation::before { + content: "\e4ca"; } + +.fa-bridge-circle-xmark::before { + content: "\e4cb"; } + +.fa-bridge-lock::before { + content: "\e4cc"; } + +.fa-bridge-water::before { + content: "\e4ce"; } + +.fa-briefcase::before { + content: "\f0b1"; } + +.fa-briefcase-medical::before { + content: "\f469"; } + +.fa-broom::before { + content: "\f51a"; } + +.fa-broom-ball::before { + content: "\f458"; } + +.fa-quidditch::before { + content: "\f458"; } + +.fa-quidditch-broom-ball::before { + content: "\f458"; } + +.fa-brush::before { + content: "\f55d"; } + +.fa-bucket::before { + content: "\e4cf"; } + +.fa-bug::before { + content: "\f188"; } + +.fa-bug-slash::before { + content: "\e490"; } + +.fa-bugs::before { + content: "\e4d0"; } + +.fa-building::before { + content: "\f1ad"; } + +.fa-building-circle-arrow-right::before { + content: "\e4d1"; } + +.fa-building-circle-check::before { + content: "\e4d2"; } + +.fa-building-circle-exclamation::before { + content: "\e4d3"; } + +.fa-building-circle-xmark::before { + content: "\e4d4"; } + +.fa-building-columns::before { + content: "\f19c"; } + +.fa-bank::before { + content: "\f19c"; } + +.fa-institution::before { + content: "\f19c"; } + +.fa-museum::before { + content: "\f19c"; } + +.fa-university::before { + content: "\f19c"; } + +.fa-building-flag::before { + content: "\e4d5"; } + +.fa-building-lock::before { + content: "\e4d6"; } + +.fa-building-ngo::before { + content: "\e4d7"; } + +.fa-building-shield::before { + content: "\e4d8"; } + +.fa-building-un::before { + content: "\e4d9"; } + +.fa-building-user::before { + content: "\e4da"; } + +.fa-building-wheat::before { + content: "\e4db"; } + +.fa-bullhorn::before { + content: "\f0a1"; } + +.fa-bullseye::before { + content: "\f140"; } + +.fa-burger::before { + content: "\f805"; } + +.fa-hamburger::before { + content: "\f805"; } + +.fa-burst::before { + content: "\e4dc"; } + +.fa-bus::before { + content: "\f207"; } + +.fa-bus-simple::before { + content: "\f55e"; } + +.fa-bus-alt::before { + content: "\f55e"; } + +.fa-business-time::before { + content: "\f64a"; } + +.fa-briefcase-clock::before { + content: "\f64a"; } + +.fa-c::before { + content: "\43"; } + +.fa-cake-candles::before { + content: "\f1fd"; } + +.fa-birthday-cake::before { + content: "\f1fd"; } + +.fa-cake::before { + content: "\f1fd"; } + +.fa-calculator::before { + content: "\f1ec"; } + +.fa-calendar::before { + content: "\f133"; } + +.fa-calendar-check::before { + content: "\f274"; } + +.fa-calendar-day::before { + content: "\f783"; } + +.fa-calendar-days::before { + content: "\f073"; } + +.fa-calendar-alt::before { + content: "\f073"; } + +.fa-calendar-minus::before { + content: "\f272"; } + +.fa-calendar-plus::before { + content: "\f271"; } + +.fa-calendar-week::before { + content: "\f784"; } + +.fa-calendar-xmark::before { + content: "\f273"; } + +.fa-calendar-times::before { + content: "\f273"; } + +.fa-camera::before { + content: "\f030"; } + +.fa-camera-alt::before { + content: "\f030"; } + +.fa-camera-retro::before { + content: "\f083"; } + +.fa-camera-rotate::before { + content: "\e0d8"; } + +.fa-campground::before { + content: "\f6bb"; } + +.fa-candy-cane::before { + content: "\f786"; } + +.fa-cannabis::before { + content: "\f55f"; } + +.fa-capsules::before { + content: "\f46b"; } + +.fa-car::before { + content: "\f1b9"; } + +.fa-automobile::before { + content: "\f1b9"; } + +.fa-car-battery::before { + content: "\f5df"; } + +.fa-battery-car::before { + content: "\f5df"; } + +.fa-car-burst::before { + content: "\f5e1"; } + +.fa-car-crash::before { + content: "\f5e1"; } + +.fa-car-on::before { + content: "\e4dd"; } + +.fa-car-rear::before { + content: "\f5de"; } + +.fa-car-alt::before { + content: "\f5de"; } + +.fa-car-side::before { + content: "\f5e4"; } + +.fa-car-tunnel::before { + content: "\e4de"; } + +.fa-caravan::before { + content: "\f8ff"; } + +.fa-caret-down::before { + content: "\f0d7"; } + +.fa-caret-left::before { + content: "\f0d9"; } + +.fa-caret-right::before { + content: "\f0da"; } + +.fa-caret-up::before { + content: "\f0d8"; } + +.fa-carrot::before { + content: "\f787"; } + +.fa-cart-arrow-down::before { + content: "\f218"; } + +.fa-cart-flatbed::before { + content: "\f474"; } + +.fa-dolly-flatbed::before { + content: "\f474"; } + +.fa-cart-flatbed-suitcase::before { + content: "\f59d"; } + +.fa-luggage-cart::before { + content: "\f59d"; } + +.fa-cart-plus::before { + content: "\f217"; } + +.fa-cart-shopping::before { + content: "\f07a"; } + +.fa-shopping-cart::before { + content: "\f07a"; } + +.fa-cash-register::before { + content: "\f788"; } + +.fa-cat::before { + content: "\f6be"; } + +.fa-cedi-sign::before { + content: "\e0df"; } + +.fa-cent-sign::before { + content: "\e3f5"; } + +.fa-certificate::before { + content: "\f0a3"; } + +.fa-chair::before { + content: "\f6c0"; } + +.fa-chalkboard::before { + content: "\f51b"; } + +.fa-blackboard::before { + content: "\f51b"; } + +.fa-chalkboard-user::before { + content: "\f51c"; } + +.fa-chalkboard-teacher::before { + content: "\f51c"; } + +.fa-champagne-glasses::before { + content: "\f79f"; } + +.fa-glass-cheers::before { + content: "\f79f"; } + +.fa-charging-station::before { + content: "\f5e7"; } + +.fa-chart-area::before { + content: "\f1fe"; } + +.fa-area-chart::before { + content: "\f1fe"; } + +.fa-chart-bar::before { + content: "\f080"; } + +.fa-bar-chart::before { + content: "\f080"; } + +.fa-chart-column::before { + content: "\e0e3"; } + +.fa-chart-gantt::before { + content: "\e0e4"; } + +.fa-chart-line::before { + content: "\f201"; } + +.fa-line-chart::before { + content: "\f201"; } + +.fa-chart-pie::before { + content: "\f200"; } + +.fa-pie-chart::before { + content: "\f200"; } + +.fa-chart-simple::before { + content: "\e473"; } + +.fa-check::before { + content: "\f00c"; } + +.fa-check-double::before { + content: "\f560"; } + +.fa-check-to-slot::before { + content: "\f772"; } + +.fa-vote-yea::before { + content: "\f772"; } + +.fa-cheese::before { + content: "\f7ef"; } + +.fa-chess::before { + content: "\f439"; } + +.fa-chess-bishop::before { + content: "\f43a"; } + +.fa-chess-board::before { + content: "\f43c"; } + +.fa-chess-king::before { + content: "\f43f"; } + +.fa-chess-knight::before { + content: "\f441"; } + +.fa-chess-pawn::before { + content: "\f443"; } + +.fa-chess-queen::before { + content: "\f445"; } + +.fa-chess-rook::before { + content: "\f447"; } + +.fa-chevron-down::before { + content: "\f078"; } + +.fa-chevron-left::before { + content: "\f053"; } + +.fa-chevron-right::before { + content: "\f054"; } + +.fa-chevron-up::before { + content: "\f077"; } + +.fa-child::before { + content: "\f1ae"; } + +.fa-child-dress::before { + content: "\e59c"; } + +.fa-child-reaching::before { + content: "\e59d"; } + +.fa-child-rifle::before { + content: "\e4e0"; } + +.fa-children::before { + content: "\e4e1"; } + +.fa-church::before { + content: "\f51d"; } + +.fa-circle::before { + content: "\f111"; } + +.fa-circle-arrow-down::before { + content: "\f0ab"; } + +.fa-arrow-circle-down::before { + content: "\f0ab"; } + +.fa-circle-arrow-left::before { + content: "\f0a8"; } + +.fa-arrow-circle-left::before { + content: "\f0a8"; } + +.fa-circle-arrow-right::before { + content: "\f0a9"; } + +.fa-arrow-circle-right::before { + content: "\f0a9"; } + +.fa-circle-arrow-up::before { + content: "\f0aa"; } + +.fa-arrow-circle-up::before { + content: "\f0aa"; } + +.fa-circle-check::before { + content: "\f058"; } + +.fa-check-circle::before { + content: "\f058"; } + +.fa-circle-chevron-down::before { + content: "\f13a"; } + +.fa-chevron-circle-down::before { + content: "\f13a"; } + +.fa-circle-chevron-left::before { + content: "\f137"; } + +.fa-chevron-circle-left::before { + content: "\f137"; } + +.fa-circle-chevron-right::before { + content: "\f138"; } + +.fa-chevron-circle-right::before { + content: "\f138"; } + +.fa-circle-chevron-up::before { + content: "\f139"; } + +.fa-chevron-circle-up::before { + content: "\f139"; } + +.fa-circle-dollar-to-slot::before { + content: "\f4b9"; } + +.fa-donate::before { + content: "\f4b9"; } + +.fa-circle-dot::before { + content: "\f192"; } + +.fa-dot-circle::before { + content: "\f192"; } + +.fa-circle-down::before { + content: "\f358"; } + +.fa-arrow-alt-circle-down::before { + content: "\f358"; } + +.fa-circle-exclamation::before { + content: "\f06a"; } + +.fa-exclamation-circle::before { + content: "\f06a"; } + +.fa-circle-h::before { + content: "\f47e"; } + +.fa-hospital-symbol::before { + content: "\f47e"; } + +.fa-circle-half-stroke::before { + content: "\f042"; } + +.fa-adjust::before { + content: "\f042"; } + +.fa-circle-info::before { + content: "\f05a"; } + +.fa-info-circle::before { + content: "\f05a"; } + +.fa-circle-left::before { + content: "\f359"; } + +.fa-arrow-alt-circle-left::before { + content: "\f359"; } + +.fa-circle-minus::before { + content: "\f056"; } + +.fa-minus-circle::before { + content: "\f056"; } + +.fa-circle-nodes::before { + content: "\e4e2"; } + +.fa-circle-notch::before { + content: "\f1ce"; } + +.fa-circle-pause::before { + content: "\f28b"; } + +.fa-pause-circle::before { + content: "\f28b"; } + +.fa-circle-play::before { + content: "\f144"; } + +.fa-play-circle::before { + content: "\f144"; } + +.fa-circle-plus::before { + content: "\f055"; } + +.fa-plus-circle::before { + content: "\f055"; } + +.fa-circle-question::before { + content: "\f059"; } + +.fa-question-circle::before { + content: "\f059"; } + +.fa-circle-radiation::before { + content: "\f7ba"; } + +.fa-radiation-alt::before { + content: "\f7ba"; } + +.fa-circle-right::before { + content: "\f35a"; } + +.fa-arrow-alt-circle-right::before { + content: "\f35a"; } + +.fa-circle-stop::before { + content: "\f28d"; } + +.fa-stop-circle::before { + content: "\f28d"; } + +.fa-circle-up::before { + content: "\f35b"; } + +.fa-arrow-alt-circle-up::before { + content: "\f35b"; } + +.fa-circle-user::before { + content: "\f2bd"; } + +.fa-user-circle::before { + content: "\f2bd"; } + +.fa-circle-xmark::before { + content: "\f057"; } + +.fa-times-circle::before { + content: "\f057"; } + +.fa-xmark-circle::before { + content: "\f057"; } + +.fa-city::before { + content: "\f64f"; } + +.fa-clapperboard::before { + content: "\e131"; } + +.fa-clipboard::before { + content: "\f328"; } + +.fa-clipboard-check::before { + content: "\f46c"; } + +.fa-clipboard-list::before { + content: "\f46d"; } + +.fa-clipboard-question::before { + content: "\e4e3"; } + +.fa-clipboard-user::before { + content: "\f7f3"; } + +.fa-clock::before { + content: "\f017"; } + +.fa-clock-four::before { + content: "\f017"; } + +.fa-clock-rotate-left::before { + content: "\f1da"; } + +.fa-history::before { + content: "\f1da"; } + +.fa-clone::before { + content: "\f24d"; } + +.fa-closed-captioning::before { + content: "\f20a"; } + +.fa-cloud::before { + content: "\f0c2"; } + +.fa-cloud-arrow-down::before { + content: "\f0ed"; } + +.fa-cloud-download::before { + content: "\f0ed"; } + +.fa-cloud-download-alt::before { + content: "\f0ed"; } + +.fa-cloud-arrow-up::before { + content: "\f0ee"; } + +.fa-cloud-upload::before { + content: "\f0ee"; } + +.fa-cloud-upload-alt::before { + content: "\f0ee"; } + +.fa-cloud-bolt::before { + content: "\f76c"; } + +.fa-thunderstorm::before { + content: "\f76c"; } + +.fa-cloud-meatball::before { + content: "\f73b"; } + +.fa-cloud-moon::before { + content: "\f6c3"; } + +.fa-cloud-moon-rain::before { + content: "\f73c"; } + +.fa-cloud-rain::before { + content: "\f73d"; } + +.fa-cloud-showers-heavy::before { + content: "\f740"; } + +.fa-cloud-showers-water::before { + content: "\e4e4"; } + +.fa-cloud-sun::before { + content: "\f6c4"; } + +.fa-cloud-sun-rain::before { + content: "\f743"; } + +.fa-clover::before { + content: "\e139"; } + +.fa-code::before { + content: "\f121"; } + +.fa-code-branch::before { + content: "\f126"; } + +.fa-code-commit::before { + content: "\f386"; } + +.fa-code-compare::before { + content: "\e13a"; } + +.fa-code-fork::before { + content: "\e13b"; } + +.fa-code-merge::before { + content: "\f387"; } + +.fa-code-pull-request::before { + content: "\e13c"; } + +.fa-coins::before { + content: "\f51e"; } + +.fa-colon-sign::before { + content: "\e140"; } + +.fa-comment::before { + content: "\f075"; } + +.fa-comment-dollar::before { + content: "\f651"; } + +.fa-comment-dots::before { + content: "\f4ad"; } + +.fa-commenting::before { + content: "\f4ad"; } + +.fa-comment-medical::before { + content: "\f7f5"; } + +.fa-comment-slash::before { + content: "\f4b3"; } + +.fa-comment-sms::before { + content: "\f7cd"; } + +.fa-sms::before { + content: "\f7cd"; } + +.fa-comments::before { + content: "\f086"; } + +.fa-comments-dollar::before { + content: "\f653"; } + +.fa-compact-disc::before { + content: "\f51f"; } + +.fa-compass::before { + content: "\f14e"; } + +.fa-compass-drafting::before { + content: "\f568"; } + +.fa-drafting-compass::before { + content: "\f568"; } + +.fa-compress::before { + content: "\f066"; } + +.fa-computer::before { + content: "\e4e5"; } + +.fa-computer-mouse::before { + content: "\f8cc"; } + +.fa-mouse::before { + content: "\f8cc"; } + +.fa-cookie::before { + content: "\f563"; } + +.fa-cookie-bite::before { + content: "\f564"; } + +.fa-copy::before { + content: "\f0c5"; } + +.fa-copyright::before { + content: "\f1f9"; } + +.fa-couch::before { + content: "\f4b8"; } + +.fa-cow::before { + content: "\f6c8"; } + +.fa-credit-card::before { + content: "\f09d"; } + +.fa-credit-card-alt::before { + content: "\f09d"; } + +.fa-crop::before { + content: "\f125"; } + +.fa-crop-simple::before { + content: "\f565"; } + +.fa-crop-alt::before { + content: "\f565"; } + +.fa-cross::before { + content: "\f654"; } + +.fa-crosshairs::before { + content: "\f05b"; } + +.fa-crow::before { + content: "\f520"; } + +.fa-crown::before { + content: "\f521"; } + +.fa-crutch::before { + content: "\f7f7"; } + +.fa-cruzeiro-sign::before { + content: "\e152"; } + +.fa-cube::before { + content: "\f1b2"; } + +.fa-cubes::before { + content: "\f1b3"; } + +.fa-cubes-stacked::before { + content: "\e4e6"; } + +.fa-d::before { + content: "\44"; } + +.fa-database::before { + content: "\f1c0"; } + +.fa-delete-left::before { + content: "\f55a"; } + +.fa-backspace::before { + content: "\f55a"; } + +.fa-democrat::before { + content: "\f747"; } + +.fa-desktop::before { + content: "\f390"; } + +.fa-desktop-alt::before { + content: "\f390"; } + +.fa-dharmachakra::before { + content: "\f655"; } + +.fa-diagram-next::before { + content: "\e476"; } + +.fa-diagram-predecessor::before { + content: "\e477"; } + +.fa-diagram-project::before { + content: "\f542"; } + +.fa-project-diagram::before { + content: "\f542"; } + +.fa-diagram-successor::before { + content: "\e47a"; } + +.fa-diamond::before { + content: "\f219"; } + +.fa-diamond-turn-right::before { + content: "\f5eb"; } + +.fa-directions::before { + content: "\f5eb"; } + +.fa-dice::before { + content: "\f522"; } + +.fa-dice-d20::before { + content: "\f6cf"; } + +.fa-dice-d6::before { + content: "\f6d1"; } + +.fa-dice-five::before { + content: "\f523"; } + +.fa-dice-four::before { + content: "\f524"; } + +.fa-dice-one::before { + content: "\f525"; } + +.fa-dice-six::before { + content: "\f526"; } + +.fa-dice-three::before { + content: "\f527"; } + +.fa-dice-two::before { + content: "\f528"; } + +.fa-disease::before { + content: "\f7fa"; } + +.fa-display::before { + content: "\e163"; } + +.fa-divide::before { + content: "\f529"; } + +.fa-dna::before { + content: "\f471"; } + +.fa-dog::before { + content: "\f6d3"; } + +.fa-dollar-sign::before { + content: "\24"; } + +.fa-dollar::before { + content: "\24"; } + +.fa-usd::before { + content: "\24"; } + +.fa-dolly::before { + content: "\f472"; } + +.fa-dolly-box::before { + content: "\f472"; } + +.fa-dong-sign::before { + content: "\e169"; } + +.fa-door-closed::before { + content: "\f52a"; } + +.fa-door-open::before { + content: "\f52b"; } + +.fa-dove::before { + content: "\f4ba"; } + +.fa-down-left-and-up-right-to-center::before { + content: "\f422"; } + +.fa-compress-alt::before { + content: "\f422"; } + +.fa-down-long::before { + content: "\f309"; } + +.fa-long-arrow-alt-down::before { + content: "\f309"; } + +.fa-download::before { + content: "\f019"; } + +.fa-dragon::before { + content: "\f6d5"; } + +.fa-draw-polygon::before { + content: "\f5ee"; } + +.fa-droplet::before { + content: "\f043"; } + +.fa-tint::before { + content: "\f043"; } + +.fa-droplet-slash::before { + content: "\f5c7"; } + +.fa-tint-slash::before { + content: "\f5c7"; } + +.fa-drum::before { + content: "\f569"; } + +.fa-drum-steelpan::before { + content: "\f56a"; } + +.fa-drumstick-bite::before { + content: "\f6d7"; } + +.fa-dumbbell::before { + content: "\f44b"; } + +.fa-dumpster::before { + content: "\f793"; } + +.fa-dumpster-fire::before { + content: "\f794"; } + +.fa-dungeon::before { + content: "\f6d9"; } + +.fa-e::before { + content: "\45"; } + +.fa-ear-deaf::before { + content: "\f2a4"; } + +.fa-deaf::before { + content: "\f2a4"; } + +.fa-deafness::before { + content: "\f2a4"; } + +.fa-hard-of-hearing::before { + content: "\f2a4"; } + +.fa-ear-listen::before { + content: "\f2a2"; } + +.fa-assistive-listening-systems::before { + content: "\f2a2"; } + +.fa-earth-africa::before { + content: "\f57c"; } + +.fa-globe-africa::before { + content: "\f57c"; } + +.fa-earth-americas::before { + content: "\f57d"; } + +.fa-earth::before { + content: "\f57d"; } + +.fa-earth-america::before { + content: "\f57d"; } + +.fa-globe-americas::before { + content: "\f57d"; } + +.fa-earth-asia::before { + content: "\f57e"; } + +.fa-globe-asia::before { + content: "\f57e"; } + +.fa-earth-europe::before { + content: "\f7a2"; } + +.fa-globe-europe::before { + content: "\f7a2"; } + +.fa-earth-oceania::before { + content: "\e47b"; } + +.fa-globe-oceania::before { + content: "\e47b"; } + +.fa-egg::before { + content: "\f7fb"; } + +.fa-eject::before { + content: "\f052"; } + +.fa-elevator::before { + content: "\e16d"; } + +.fa-ellipsis::before { + content: "\f141"; } + +.fa-ellipsis-h::before { + content: "\f141"; } + +.fa-ellipsis-vertical::before { + content: "\f142"; } + +.fa-ellipsis-v::before { + content: "\f142"; } + +.fa-envelope::before { + content: "\f0e0"; } + +.fa-envelope-circle-check::before { + content: "\e4e8"; } + +.fa-envelope-open::before { + content: "\f2b6"; } + +.fa-envelope-open-text::before { + content: "\f658"; } + +.fa-envelopes-bulk::before { + content: "\f674"; } + +.fa-mail-bulk::before { + content: "\f674"; } + +.fa-equals::before { + content: "\3d"; } + +.fa-eraser::before { + content: "\f12d"; } + +.fa-ethernet::before { + content: "\f796"; } + +.fa-euro-sign::before { + content: "\f153"; } + +.fa-eur::before { + content: "\f153"; } + +.fa-euro::before { + content: "\f153"; } + +.fa-exclamation::before { + content: "\21"; } + +.fa-expand::before { + content: "\f065"; } + +.fa-explosion::before { + content: "\e4e9"; } + +.fa-eye::before { + content: "\f06e"; } + +.fa-eye-dropper::before { + content: "\f1fb"; } + +.fa-eye-dropper-empty::before { + content: "\f1fb"; } + +.fa-eyedropper::before { + content: "\f1fb"; } + +.fa-eye-low-vision::before { + content: "\f2a8"; } + +.fa-low-vision::before { + content: "\f2a8"; } + +.fa-eye-slash::before { + content: "\f070"; } + +.fa-f::before { + content: "\46"; } + +.fa-face-angry::before { + content: "\f556"; } + +.fa-angry::before { + content: "\f556"; } + +.fa-face-dizzy::before { + content: "\f567"; } + +.fa-dizzy::before { + content: "\f567"; } + +.fa-face-flushed::before { + content: "\f579"; } + +.fa-flushed::before { + content: "\f579"; } + +.fa-face-frown::before { + content: "\f119"; } + +.fa-frown::before { + content: "\f119"; } + +.fa-face-frown-open::before { + content: "\f57a"; } + +.fa-frown-open::before { + content: "\f57a"; } + +.fa-face-grimace::before { + content: "\f57f"; } + +.fa-grimace::before { + content: "\f57f"; } + +.fa-face-grin::before { + content: "\f580"; } + +.fa-grin::before { + content: "\f580"; } + +.fa-face-grin-beam::before { + content: "\f582"; } + +.fa-grin-beam::before { + content: "\f582"; } + +.fa-face-grin-beam-sweat::before { + content: "\f583"; } + +.fa-grin-beam-sweat::before { + content: "\f583"; } + +.fa-face-grin-hearts::before { + content: "\f584"; } + +.fa-grin-hearts::before { + content: "\f584"; } + +.fa-face-grin-squint::before { + content: "\f585"; } + +.fa-grin-squint::before { + content: "\f585"; } + +.fa-face-grin-squint-tears::before { + content: "\f586"; } + +.fa-grin-squint-tears::before { + content: "\f586"; } + +.fa-face-grin-stars::before { + content: "\f587"; } + +.fa-grin-stars::before { + content: "\f587"; } + +.fa-face-grin-tears::before { + content: "\f588"; } + +.fa-grin-tears::before { + content: "\f588"; } + +.fa-face-grin-tongue::before { + content: "\f589"; } + +.fa-grin-tongue::before { + content: "\f589"; } + +.fa-face-grin-tongue-squint::before { + content: "\f58a"; } + +.fa-grin-tongue-squint::before { + content: "\f58a"; } + +.fa-face-grin-tongue-wink::before { + content: "\f58b"; } + +.fa-grin-tongue-wink::before { + content: "\f58b"; } + +.fa-face-grin-wide::before { + content: "\f581"; } + +.fa-grin-alt::before { + content: "\f581"; } + +.fa-face-grin-wink::before { + content: "\f58c"; } + +.fa-grin-wink::before { + content: "\f58c"; } + +.fa-face-kiss::before { + content: "\f596"; } + +.fa-kiss::before { + content: "\f596"; } + +.fa-face-kiss-beam::before { + content: "\f597"; } + +.fa-kiss-beam::before { + content: "\f597"; } + +.fa-face-kiss-wink-heart::before { + content: "\f598"; } + +.fa-kiss-wink-heart::before { + content: "\f598"; } + +.fa-face-laugh::before { + content: "\f599"; } + +.fa-laugh::before { + content: "\f599"; } + +.fa-face-laugh-beam::before { + content: "\f59a"; } + +.fa-laugh-beam::before { + content: "\f59a"; } + +.fa-face-laugh-squint::before { + content: "\f59b"; } + +.fa-laugh-squint::before { + content: "\f59b"; } + +.fa-face-laugh-wink::before { + content: "\f59c"; } + +.fa-laugh-wink::before { + content: "\f59c"; } + +.fa-face-meh::before { + content: "\f11a"; } + +.fa-meh::before { + content: "\f11a"; } + +.fa-face-meh-blank::before { + content: "\f5a4"; } + +.fa-meh-blank::before { + content: "\f5a4"; } + +.fa-face-rolling-eyes::before { + content: "\f5a5"; } + +.fa-meh-rolling-eyes::before { + content: "\f5a5"; } + +.fa-face-sad-cry::before { + content: "\f5b3"; } + +.fa-sad-cry::before { + content: "\f5b3"; } + +.fa-face-sad-tear::before { + content: "\f5b4"; } + +.fa-sad-tear::before { + content: "\f5b4"; } + +.fa-face-smile::before { + content: "\f118"; } + +.fa-smile::before { + content: "\f118"; } + +.fa-face-smile-beam::before { + content: "\f5b8"; } + +.fa-smile-beam::before { + content: "\f5b8"; } + +.fa-face-smile-wink::before { + content: "\f4da"; } + +.fa-smile-wink::before { + content: "\f4da"; } + +.fa-face-surprise::before { + content: "\f5c2"; } + +.fa-surprise::before { + content: "\f5c2"; } + +.fa-face-tired::before { + content: "\f5c8"; } + +.fa-tired::before { + content: "\f5c8"; } + +.fa-fan::before { + content: "\f863"; } + +.fa-faucet::before { + content: "\e005"; } + +.fa-faucet-drip::before { + content: "\e006"; } + +.fa-fax::before { + content: "\f1ac"; } + +.fa-feather::before { + content: "\f52d"; } + +.fa-feather-pointed::before { + content: "\f56b"; } + +.fa-feather-alt::before { + content: "\f56b"; } + +.fa-ferry::before { + content: "\e4ea"; } + +.fa-file::before { + content: "\f15b"; } + +.fa-file-arrow-down::before { + content: "\f56d"; } + +.fa-file-download::before { + content: "\f56d"; } + +.fa-file-arrow-up::before { + content: "\f574"; } + +.fa-file-upload::before { + content: "\f574"; } + +.fa-file-audio::before { + content: "\f1c7"; } + +.fa-file-circle-check::before { + content: "\e493"; } + +.fa-file-circle-exclamation::before { + content: "\e4eb"; } + +.fa-file-circle-minus::before { + content: "\e4ed"; } + +.fa-file-circle-plus::before { + content: "\e4ee"; } + +.fa-file-circle-question::before { + content: "\e4ef"; } + +.fa-file-circle-xmark::before { + content: "\e494"; } + +.fa-file-code::before { + content: "\f1c9"; } + +.fa-file-contract::before { + content: "\f56c"; } + +.fa-file-csv::before { + content: "\f6dd"; } + +.fa-file-excel::before { + content: "\f1c3"; } + +.fa-file-export::before { + content: "\f56e"; } + +.fa-arrow-right-from-file::before { + content: "\f56e"; } + +.fa-file-image::before { + content: "\f1c5"; } + +.fa-file-import::before { + content: "\f56f"; } + +.fa-arrow-right-to-file::before { + content: "\f56f"; } + +.fa-file-invoice::before { + content: "\f570"; } + +.fa-file-invoice-dollar::before { + content: "\f571"; } + +.fa-file-lines::before { + content: "\f15c"; } + +.fa-file-alt::before { + content: "\f15c"; } + +.fa-file-text::before { + content: "\f15c"; } + +.fa-file-medical::before { + content: "\f477"; } + +.fa-file-pdf::before { + content: "\f1c1"; } + +.fa-file-pen::before { + content: "\f31c"; } + +.fa-file-edit::before { + content: "\f31c"; } + +.fa-file-powerpoint::before { + content: "\f1c4"; } + +.fa-file-prescription::before { + content: "\f572"; } + +.fa-file-shield::before { + content: "\e4f0"; } + +.fa-file-signature::before { + content: "\f573"; } + +.fa-file-video::before { + content: "\f1c8"; } + +.fa-file-waveform::before { + content: "\f478"; } + +.fa-file-medical-alt::before { + content: "\f478"; } + +.fa-file-word::before { + content: "\f1c2"; } + +.fa-file-zipper::before { + content: "\f1c6"; } + +.fa-file-archive::before { + content: "\f1c6"; } + +.fa-fill::before { + content: "\f575"; } + +.fa-fill-drip::before { + content: "\f576"; } + +.fa-film::before { + content: "\f008"; } + +.fa-filter::before { + content: "\f0b0"; } + +.fa-filter-circle-dollar::before { + content: "\f662"; } + +.fa-funnel-dollar::before { + content: "\f662"; } + +.fa-filter-circle-xmark::before { + content: "\e17b"; } + +.fa-fingerprint::before { + content: "\f577"; } + +.fa-fire::before { + content: "\f06d"; } + +.fa-fire-burner::before { + content: "\e4f1"; } + +.fa-fire-extinguisher::before { + content: "\f134"; } + +.fa-fire-flame-curved::before { + content: "\f7e4"; } + +.fa-fire-alt::before { + content: "\f7e4"; } + +.fa-fire-flame-simple::before { + content: "\f46a"; } + +.fa-burn::before { + content: "\f46a"; } + +.fa-fish::before { + content: "\f578"; } + +.fa-fish-fins::before { + content: "\e4f2"; } + +.fa-flag::before { + content: "\f024"; } + +.fa-flag-checkered::before { + content: "\f11e"; } + +.fa-flag-usa::before { + content: "\f74d"; } + +.fa-flask::before { + content: "\f0c3"; } + +.fa-flask-vial::before { + content: "\e4f3"; } + +.fa-floppy-disk::before { + content: "\f0c7"; } + +.fa-save::before { + content: "\f0c7"; } + +.fa-florin-sign::before { + content: "\e184"; } + +.fa-folder::before { + content: "\f07b"; } + +.fa-folder-blank::before { + content: "\f07b"; } + +.fa-folder-closed::before { + content: "\e185"; } + +.fa-folder-minus::before { + content: "\f65d"; } + +.fa-folder-open::before { + content: "\f07c"; } + +.fa-folder-plus::before { + content: "\f65e"; } + +.fa-folder-tree::before { + content: "\f802"; } + +.fa-font::before { + content: "\f031"; } + +.fa-football::before { + content: "\f44e"; } + +.fa-football-ball::before { + content: "\f44e"; } + +.fa-forward::before { + content: "\f04e"; } + +.fa-forward-fast::before { + content: "\f050"; } + +.fa-fast-forward::before { + content: "\f050"; } + +.fa-forward-step::before { + content: "\f051"; } + +.fa-step-forward::before { + content: "\f051"; } + +.fa-franc-sign::before { + content: "\e18f"; } + +.fa-frog::before { + content: "\f52e"; } + +.fa-futbol::before { + content: "\f1e3"; } + +.fa-futbol-ball::before { + content: "\f1e3"; } + +.fa-soccer-ball::before { + content: "\f1e3"; } + +.fa-g::before { + content: "\47"; } + +.fa-gamepad::before { + content: "\f11b"; } + +.fa-gas-pump::before { + content: "\f52f"; } + +.fa-gauge::before { + content: "\f624"; } + +.fa-dashboard::before { + content: "\f624"; } + +.fa-gauge-med::before { + content: "\f624"; } + +.fa-tachometer-alt-average::before { + content: "\f624"; } + +.fa-gauge-high::before { + content: "\f625"; } + +.fa-tachometer-alt::before { + content: "\f625"; } + +.fa-tachometer-alt-fast::before { + content: "\f625"; } + +.fa-gauge-simple::before { + content: "\f629"; } + +.fa-gauge-simple-med::before { + content: "\f629"; } + +.fa-tachometer-average::before { + content: "\f629"; } + +.fa-gauge-simple-high::before { + content: "\f62a"; } + +.fa-tachometer::before { + content: "\f62a"; } + +.fa-tachometer-fast::before { + content: "\f62a"; } + +.fa-gavel::before { + content: "\f0e3"; } + +.fa-legal::before { + content: "\f0e3"; } + +.fa-gear::before { + content: "\f013"; } + +.fa-cog::before { + content: "\f013"; } + +.fa-gears::before { + content: "\f085"; } + +.fa-cogs::before { + content: "\f085"; } + +.fa-gem::before { + content: "\f3a5"; } + +.fa-genderless::before { + content: "\f22d"; } + +.fa-ghost::before { + content: "\f6e2"; } + +.fa-gift::before { + content: "\f06b"; } + +.fa-gifts::before { + content: "\f79c"; } + +.fa-glass-water::before { + content: "\e4f4"; } + +.fa-glass-water-droplet::before { + content: "\e4f5"; } + +.fa-glasses::before { + content: "\f530"; } + +.fa-globe::before { + content: "\f0ac"; } + +.fa-golf-ball-tee::before { + content: "\f450"; } + +.fa-golf-ball::before { + content: "\f450"; } + +.fa-gopuram::before { + content: "\f664"; } + +.fa-graduation-cap::before { + content: "\f19d"; } + +.fa-mortar-board::before { + content: "\f19d"; } + +.fa-greater-than::before { + content: "\3e"; } + +.fa-greater-than-equal::before { + content: "\f532"; } + +.fa-grip::before { + content: "\f58d"; } + +.fa-grip-horizontal::before { + content: "\f58d"; } + +.fa-grip-lines::before { + content: "\f7a4"; } + +.fa-grip-lines-vertical::before { + content: "\f7a5"; } + +.fa-grip-vertical::before { + content: "\f58e"; } + +.fa-group-arrows-rotate::before { + content: "\e4f6"; } + +.fa-guarani-sign::before { + content: "\e19a"; } + +.fa-guitar::before { + content: "\f7a6"; } + +.fa-gun::before { + content: "\e19b"; } + +.fa-h::before { + content: "\48"; } + +.fa-hammer::before { + content: "\f6e3"; } + +.fa-hamsa::before { + content: "\f665"; } + +.fa-hand::before { + content: "\f256"; } + +.fa-hand-paper::before { + content: "\f256"; } + +.fa-hand-back-fist::before { + content: "\f255"; } + +.fa-hand-rock::before { + content: "\f255"; } + +.fa-hand-dots::before { + content: "\f461"; } + +.fa-allergies::before { + content: "\f461"; } + +.fa-hand-fist::before { + content: "\f6de"; } + +.fa-fist-raised::before { + content: "\f6de"; } + +.fa-hand-holding::before { + content: "\f4bd"; } + +.fa-hand-holding-dollar::before { + content: "\f4c0"; } + +.fa-hand-holding-usd::before { + content: "\f4c0"; } + +.fa-hand-holding-droplet::before { + content: "\f4c1"; } + +.fa-hand-holding-water::before { + content: "\f4c1"; } + +.fa-hand-holding-hand::before { + content: "\e4f7"; } + +.fa-hand-holding-heart::before { + content: "\f4be"; } + +.fa-hand-holding-medical::before { + content: "\e05c"; } + +.fa-hand-lizard::before { + content: "\f258"; } + +.fa-hand-middle-finger::before { + content: "\f806"; } + +.fa-hand-peace::before { + content: "\f25b"; } + +.fa-hand-point-down::before { + content: "\f0a7"; } + +.fa-hand-point-left::before { + content: "\f0a5"; } + +.fa-hand-point-right::before { + content: "\f0a4"; } + +.fa-hand-point-up::before { + content: "\f0a6"; } + +.fa-hand-pointer::before { + content: "\f25a"; } + +.fa-hand-scissors::before { + content: "\f257"; } + +.fa-hand-sparkles::before { + content: "\e05d"; } + +.fa-hand-spock::before { + content: "\f259"; } + +.fa-handcuffs::before { + content: "\e4f8"; } + +.fa-hands::before { + content: "\f2a7"; } + +.fa-sign-language::before { + content: "\f2a7"; } + +.fa-signing::before { + content: "\f2a7"; } + +.fa-hands-asl-interpreting::before { + content: "\f2a3"; } + +.fa-american-sign-language-interpreting::before { + content: "\f2a3"; } + +.fa-asl-interpreting::before { + content: "\f2a3"; } + +.fa-hands-american-sign-language-interpreting::before { + content: "\f2a3"; } + +.fa-hands-bound::before { + content: "\e4f9"; } + +.fa-hands-bubbles::before { + content: "\e05e"; } + +.fa-hands-wash::before { + content: "\e05e"; } + +.fa-hands-clapping::before { + content: "\e1a8"; } + +.fa-hands-holding::before { + content: "\f4c2"; } + +.fa-hands-holding-child::before { + content: "\e4fa"; } + +.fa-hands-holding-circle::before { + content: "\e4fb"; } + +.fa-hands-praying::before { + content: "\f684"; } + +.fa-praying-hands::before { + content: "\f684"; } + +.fa-handshake::before { + content: "\f2b5"; } + +.fa-handshake-angle::before { + content: "\f4c4"; } + +.fa-hands-helping::before { + content: "\f4c4"; } + +.fa-handshake-simple::before { + content: "\f4c6"; } + +.fa-handshake-alt::before { + content: "\f4c6"; } + +.fa-handshake-simple-slash::before { + content: "\e05f"; } + +.fa-handshake-alt-slash::before { + content: "\e05f"; } + +.fa-handshake-slash::before { + content: "\e060"; } + +.fa-hanukiah::before { + content: "\f6e6"; } + +.fa-hard-drive::before { + content: "\f0a0"; } + +.fa-hdd::before { + content: "\f0a0"; } + +.fa-hashtag::before { + content: "\23"; } + +.fa-hat-cowboy::before { + content: "\f8c0"; } + +.fa-hat-cowboy-side::before { + content: "\f8c1"; } + +.fa-hat-wizard::before { + content: "\f6e8"; } + +.fa-head-side-cough::before { + content: "\e061"; } + +.fa-head-side-cough-slash::before { + content: "\e062"; } + +.fa-head-side-mask::before { + content: "\e063"; } + +.fa-head-side-virus::before { + content: "\e064"; } + +.fa-heading::before { + content: "\f1dc"; } + +.fa-header::before { + content: "\f1dc"; } + +.fa-headphones::before { + content: "\f025"; } + +.fa-headphones-simple::before { + content: "\f58f"; } + +.fa-headphones-alt::before { + content: "\f58f"; } + +.fa-headset::before { + content: "\f590"; } + +.fa-heart::before { + content: "\f004"; } + +.fa-heart-circle-bolt::before { + content: "\e4fc"; } + +.fa-heart-circle-check::before { + content: "\e4fd"; } + +.fa-heart-circle-exclamation::before { + content: "\e4fe"; } + +.fa-heart-circle-minus::before { + content: "\e4ff"; } + +.fa-heart-circle-plus::before { + content: "\e500"; } + +.fa-heart-circle-xmark::before { + content: "\e501"; } + +.fa-heart-crack::before { + content: "\f7a9"; } + +.fa-heart-broken::before { + content: "\f7a9"; } + +.fa-heart-pulse::before { + content: "\f21e"; } + +.fa-heartbeat::before { + content: "\f21e"; } + +.fa-helicopter::before { + content: "\f533"; } + +.fa-helicopter-symbol::before { + content: "\e502"; } + +.fa-helmet-safety::before { + content: "\f807"; } + +.fa-hard-hat::before { + content: "\f807"; } + +.fa-hat-hard::before { + content: "\f807"; } + +.fa-helmet-un::before { + content: "\e503"; } + +.fa-highlighter::before { + content: "\f591"; } + +.fa-hill-avalanche::before { + content: "\e507"; } + +.fa-hill-rockslide::before { + content: "\e508"; } + +.fa-hippo::before { + content: "\f6ed"; } + +.fa-hockey-puck::before { + content: "\f453"; } + +.fa-holly-berry::before { + content: "\f7aa"; } + +.fa-horse::before { + content: "\f6f0"; } + +.fa-horse-head::before { + content: "\f7ab"; } + +.fa-hospital::before { + content: "\f0f8"; } + +.fa-hospital-alt::before { + content: "\f0f8"; } + +.fa-hospital-wide::before { + content: "\f0f8"; } + +.fa-hospital-user::before { + content: "\f80d"; } + +.fa-hot-tub-person::before { + content: "\f593"; } + +.fa-hot-tub::before { + content: "\f593"; } + +.fa-hotdog::before { + content: "\f80f"; } + +.fa-hotel::before { + content: "\f594"; } + +.fa-hourglass::before { + content: "\f254"; } + +.fa-hourglass-2::before { + content: "\f254"; } + +.fa-hourglass-half::before { + content: "\f254"; } + +.fa-hourglass-empty::before { + content: "\f252"; } + +.fa-hourglass-end::before { + content: "\f253"; } + +.fa-hourglass-3::before { + content: "\f253"; } + +.fa-hourglass-start::before { + content: "\f251"; } + +.fa-hourglass-1::before { + content: "\f251"; } + +.fa-house::before { + content: "\f015"; } + +.fa-home::before { + content: "\f015"; } + +.fa-home-alt::before { + content: "\f015"; } + +.fa-home-lg-alt::before { + content: "\f015"; } + +.fa-house-chimney::before { + content: "\e3af"; } + +.fa-home-lg::before { + content: "\e3af"; } + +.fa-house-chimney-crack::before { + content: "\f6f1"; } + +.fa-house-damage::before { + content: "\f6f1"; } + +.fa-house-chimney-medical::before { + content: "\f7f2"; } + +.fa-clinic-medical::before { + content: "\f7f2"; } + +.fa-house-chimney-user::before { + content: "\e065"; } + +.fa-house-chimney-window::before { + content: "\e00d"; } + +.fa-house-circle-check::before { + content: "\e509"; } + +.fa-house-circle-exclamation::before { + content: "\e50a"; } + +.fa-house-circle-xmark::before { + content: "\e50b"; } + +.fa-house-crack::before { + content: "\e3b1"; } + +.fa-house-fire::before { + content: "\e50c"; } + +.fa-house-flag::before { + content: "\e50d"; } + +.fa-house-flood-water::before { + content: "\e50e"; } + +.fa-house-flood-water-circle-arrow-right::before { + content: "\e50f"; } + +.fa-house-laptop::before { + content: "\e066"; } + +.fa-laptop-house::before { + content: "\e066"; } + +.fa-house-lock::before { + content: "\e510"; } + +.fa-house-medical::before { + content: "\e3b2"; } + +.fa-house-medical-circle-check::before { + content: "\e511"; } + +.fa-house-medical-circle-exclamation::before { + content: "\e512"; } + +.fa-house-medical-circle-xmark::before { + content: "\e513"; } + +.fa-house-medical-flag::before { + content: "\e514"; } + +.fa-house-signal::before { + content: "\e012"; } + +.fa-house-tsunami::before { + content: "\e515"; } + +.fa-house-user::before { + content: "\e1b0"; } + +.fa-home-user::before { + content: "\e1b0"; } + +.fa-hryvnia-sign::before { + content: "\f6f2"; } + +.fa-hryvnia::before { + content: "\f6f2"; } + +.fa-hurricane::before { + content: "\f751"; } + +.fa-i::before { + content: "\49"; } + +.fa-i-cursor::before { + content: "\f246"; } + +.fa-ice-cream::before { + content: "\f810"; } + +.fa-icicles::before { + content: "\f7ad"; } + +.fa-icons::before { + content: "\f86d"; } + +.fa-heart-music-camera-bolt::before { + content: "\f86d"; } + +.fa-id-badge::before { + content: "\f2c1"; } + +.fa-id-card::before { + content: "\f2c2"; } + +.fa-drivers-license::before { + content: "\f2c2"; } + +.fa-id-card-clip::before { + content: "\f47f"; } + +.fa-id-card-alt::before { + content: "\f47f"; } + +.fa-igloo::before { + content: "\f7ae"; } + +.fa-image::before { + content: "\f03e"; } + +.fa-image-portrait::before { + content: "\f3e0"; } + +.fa-portrait::before { + content: "\f3e0"; } + +.fa-images::before { + content: "\f302"; } + +.fa-inbox::before { + content: "\f01c"; } + +.fa-indent::before { + content: "\f03c"; } + +.fa-indian-rupee-sign::before { + content: "\e1bc"; } + +.fa-indian-rupee::before { + content: "\e1bc"; } + +.fa-inr::before { + content: "\e1bc"; } + +.fa-industry::before { + content: "\f275"; } + +.fa-infinity::before { + content: "\f534"; } + +.fa-info::before { + content: "\f129"; } + +.fa-italic::before { + content: "\f033"; } + +.fa-j::before { + content: "\4a"; } + +.fa-jar::before { + content: "\e516"; } + +.fa-jar-wheat::before { + content: "\e517"; } + +.fa-jedi::before { + content: "\f669"; } + +.fa-jet-fighter::before { + content: "\f0fb"; } + +.fa-fighter-jet::before { + content: "\f0fb"; } + +.fa-jet-fighter-up::before { + content: "\e518"; } + +.fa-joint::before { + content: "\f595"; } + +.fa-jug-detergent::before { + content: "\e519"; } + +.fa-k::before { + content: "\4b"; } + +.fa-kaaba::before { + content: "\f66b"; } + +.fa-key::before { + content: "\f084"; } + +.fa-keyboard::before { + content: "\f11c"; } + +.fa-khanda::before { + content: "\f66d"; } + +.fa-kip-sign::before { + content: "\e1c4"; } + +.fa-kit-medical::before { + content: "\f479"; } + +.fa-first-aid::before { + content: "\f479"; } + +.fa-kitchen-set::before { + content: "\e51a"; } + +.fa-kiwi-bird::before { + content: "\f535"; } + +.fa-l::before { + content: "\4c"; } + +.fa-land-mine-on::before { + content: "\e51b"; } + +.fa-landmark::before { + content: "\f66f"; } + +.fa-landmark-dome::before { + content: "\f752"; } + +.fa-landmark-alt::before { + content: "\f752"; } + +.fa-landmark-flag::before { + content: "\e51c"; } + +.fa-language::before { + content: "\f1ab"; } + +.fa-laptop::before { + content: "\f109"; } + +.fa-laptop-code::before { + content: "\f5fc"; } + +.fa-laptop-file::before { + content: "\e51d"; } + +.fa-laptop-medical::before { + content: "\f812"; } + +.fa-lari-sign::before { + content: "\e1c8"; } + +.fa-layer-group::before { + content: "\f5fd"; } + +.fa-leaf::before { + content: "\f06c"; } + +.fa-left-long::before { + content: "\f30a"; } + +.fa-long-arrow-alt-left::before { + content: "\f30a"; } + +.fa-left-right::before { + content: "\f337"; } + +.fa-arrows-alt-h::before { + content: "\f337"; } + +.fa-lemon::before { + content: "\f094"; } + +.fa-less-than::before { + content: "\3c"; } + +.fa-less-than-equal::before { + content: "\f537"; } + +.fa-life-ring::before { + content: "\f1cd"; } + +.fa-lightbulb::before { + content: "\f0eb"; } + +.fa-lines-leaning::before { + content: "\e51e"; } + +.fa-link::before { + content: "\f0c1"; } + +.fa-chain::before { + content: "\f0c1"; } + +.fa-link-slash::before { + content: "\f127"; } + +.fa-chain-broken::before { + content: "\f127"; } + +.fa-chain-slash::before { + content: "\f127"; } + +.fa-unlink::before { + content: "\f127"; } + +.fa-lira-sign::before { + content: "\f195"; } + +.fa-list::before { + content: "\f03a"; } + +.fa-list-squares::before { + content: "\f03a"; } + +.fa-list-check::before { + content: "\f0ae"; } + +.fa-tasks::before { + content: "\f0ae"; } + +.fa-list-ol::before { + content: "\f0cb"; } + +.fa-list-1-2::before { + content: "\f0cb"; } + +.fa-list-numeric::before { + content: "\f0cb"; } + +.fa-list-ul::before { + content: "\f0ca"; } + +.fa-list-dots::before { + content: "\f0ca"; } + +.fa-litecoin-sign::before { + content: "\e1d3"; } + +.fa-location-arrow::before { + content: "\f124"; } + +.fa-location-crosshairs::before { + content: "\f601"; } + +.fa-location::before { + content: "\f601"; } + +.fa-location-dot::before { + content: "\f3c5"; } + +.fa-map-marker-alt::before { + content: "\f3c5"; } + +.fa-location-pin::before { + content: "\f041"; } + +.fa-map-marker::before { + content: "\f041"; } + +.fa-location-pin-lock::before { + content: "\e51f"; } + +.fa-lock::before { + content: "\f023"; } + +.fa-lock-open::before { + content: "\f3c1"; } + +.fa-locust::before { + content: "\e520"; } + +.fa-lungs::before { + content: "\f604"; } + +.fa-lungs-virus::before { + content: "\e067"; } + +.fa-m::before { + content: "\4d"; } + +.fa-magnet::before { + content: "\f076"; } + +.fa-magnifying-glass::before { + content: "\f002"; } + +.fa-search::before { + content: "\f002"; } + +.fa-magnifying-glass-arrow-right::before { + content: "\e521"; } + +.fa-magnifying-glass-chart::before { + content: "\e522"; } + +.fa-magnifying-glass-dollar::before { + content: "\f688"; } + +.fa-search-dollar::before { + content: "\f688"; } + +.fa-magnifying-glass-location::before { + content: "\f689"; } + +.fa-search-location::before { + content: "\f689"; } + +.fa-magnifying-glass-minus::before { + content: "\f010"; } + +.fa-search-minus::before { + content: "\f010"; } + +.fa-magnifying-glass-plus::before { + content: "\f00e"; } + +.fa-search-plus::before { + content: "\f00e"; } + +.fa-manat-sign::before { + content: "\e1d5"; } + +.fa-map::before { + content: "\f279"; } + +.fa-map-location::before { + content: "\f59f"; } + +.fa-map-marked::before { + content: "\f59f"; } + +.fa-map-location-dot::before { + content: "\f5a0"; } + +.fa-map-marked-alt::before { + content: "\f5a0"; } + +.fa-map-pin::before { + content: "\f276"; } + +.fa-marker::before { + content: "\f5a1"; } + +.fa-mars::before { + content: "\f222"; } + +.fa-mars-and-venus::before { + content: "\f224"; } + +.fa-mars-and-venus-burst::before { + content: "\e523"; } + +.fa-mars-double::before { + content: "\f227"; } + +.fa-mars-stroke::before { + content: "\f229"; } + +.fa-mars-stroke-right::before { + content: "\f22b"; } + +.fa-mars-stroke-h::before { + content: "\f22b"; } + +.fa-mars-stroke-up::before { + content: "\f22a"; } + +.fa-mars-stroke-v::before { + content: "\f22a"; } + +.fa-martini-glass::before { + content: "\f57b"; } + +.fa-glass-martini-alt::before { + content: "\f57b"; } + +.fa-martini-glass-citrus::before { + content: "\f561"; } + +.fa-cocktail::before { + content: "\f561"; } + +.fa-martini-glass-empty::before { + content: "\f000"; } + +.fa-glass-martini::before { + content: "\f000"; } + +.fa-mask::before { + content: "\f6fa"; } + +.fa-mask-face::before { + content: "\e1d7"; } + +.fa-mask-ventilator::before { + content: "\e524"; } + +.fa-masks-theater::before { + content: "\f630"; } + +.fa-theater-masks::before { + content: "\f630"; } + +.fa-mattress-pillow::before { + content: "\e525"; } + +.fa-maximize::before { + content: "\f31e"; } + +.fa-expand-arrows-alt::before { + content: "\f31e"; } + +.fa-medal::before { + content: "\f5a2"; } + +.fa-memory::before { + content: "\f538"; } + +.fa-menorah::before { + content: "\f676"; } + +.fa-mercury::before { + content: "\f223"; } + +.fa-message::before { + content: "\f27a"; } + +.fa-comment-alt::before { + content: "\f27a"; } + +.fa-meteor::before { + content: "\f753"; } + +.fa-microchip::before { + content: "\f2db"; } + +.fa-microphone::before { + content: "\f130"; } + +.fa-microphone-lines::before { + content: "\f3c9"; } + +.fa-microphone-alt::before { + content: "\f3c9"; } + +.fa-microphone-lines-slash::before { + content: "\f539"; } + +.fa-microphone-alt-slash::before { + content: "\f539"; } + +.fa-microphone-slash::before { + content: "\f131"; } + +.fa-microscope::before { + content: "\f610"; } + +.fa-mill-sign::before { + content: "\e1ed"; } + +.fa-minimize::before { + content: "\f78c"; } + +.fa-compress-arrows-alt::before { + content: "\f78c"; } + +.fa-minus::before { + content: "\f068"; } + +.fa-subtract::before { + content: "\f068"; } + +.fa-mitten::before { + content: "\f7b5"; } + +.fa-mobile::before { + content: "\f3ce"; } + +.fa-mobile-android::before { + content: "\f3ce"; } + +.fa-mobile-phone::before { + content: "\f3ce"; } + +.fa-mobile-button::before { + content: "\f10b"; } + +.fa-mobile-retro::before { + content: "\e527"; } + +.fa-mobile-screen::before { + content: "\f3cf"; } + +.fa-mobile-android-alt::before { + content: "\f3cf"; } + +.fa-mobile-screen-button::before { + content: "\f3cd"; } + +.fa-mobile-alt::before { + content: "\f3cd"; } + +.fa-money-bill::before { + content: "\f0d6"; } + +.fa-money-bill-1::before { + content: "\f3d1"; } + +.fa-money-bill-alt::before { + content: "\f3d1"; } + +.fa-money-bill-1-wave::before { + content: "\f53b"; } + +.fa-money-bill-wave-alt::before { + content: "\f53b"; } + +.fa-money-bill-transfer::before { + content: "\e528"; } + +.fa-money-bill-trend-up::before { + content: "\e529"; } + +.fa-money-bill-wave::before { + content: "\f53a"; } + +.fa-money-bill-wheat::before { + content: "\e52a"; } + +.fa-money-bills::before { + content: "\e1f3"; } + +.fa-money-check::before { + content: "\f53c"; } + +.fa-money-check-dollar::before { + content: "\f53d"; } + +.fa-money-check-alt::before { + content: "\f53d"; } + +.fa-monument::before { + content: "\f5a6"; } + +.fa-moon::before { + content: "\f186"; } + +.fa-mortar-pestle::before { + content: "\f5a7"; } + +.fa-mosque::before { + content: "\f678"; } + +.fa-mosquito::before { + content: "\e52b"; } + +.fa-mosquito-net::before { + content: "\e52c"; } + +.fa-motorcycle::before { + content: "\f21c"; } + +.fa-mound::before { + content: "\e52d"; } + +.fa-mountain::before { + content: "\f6fc"; } + +.fa-mountain-city::before { + content: "\e52e"; } + +.fa-mountain-sun::before { + content: "\e52f"; } + +.fa-mug-hot::before { + content: "\f7b6"; } + +.fa-mug-saucer::before { + content: "\f0f4"; } + +.fa-coffee::before { + content: "\f0f4"; } + +.fa-music::before { + content: "\f001"; } + +.fa-n::before { + content: "\4e"; } + +.fa-naira-sign::before { + content: "\e1f6"; } + +.fa-network-wired::before { + content: "\f6ff"; } + +.fa-neuter::before { + content: "\f22c"; } + +.fa-newspaper::before { + content: "\f1ea"; } + +.fa-not-equal::before { + content: "\f53e"; } + +.fa-note-sticky::before { + content: "\f249"; } + +.fa-sticky-note::before { + content: "\f249"; } + +.fa-notes-medical::before { + content: "\f481"; } + +.fa-o::before { + content: "\4f"; } + +.fa-object-group::before { + content: "\f247"; } + +.fa-object-ungroup::before { + content: "\f248"; } + +.fa-oil-can::before { + content: "\f613"; } + +.fa-oil-well::before { + content: "\e532"; } + +.fa-om::before { + content: "\f679"; } + +.fa-otter::before { + content: "\f700"; } + +.fa-outdent::before { + content: "\f03b"; } + +.fa-dedent::before { + content: "\f03b"; } + +.fa-p::before { + content: "\50"; } + +.fa-pager::before { + content: "\f815"; } + +.fa-paint-roller::before { + content: "\f5aa"; } + +.fa-paintbrush::before { + content: "\f1fc"; } + +.fa-paint-brush::before { + content: "\f1fc"; } + +.fa-palette::before { + content: "\f53f"; } + +.fa-pallet::before { + content: "\f482"; } + +.fa-panorama::before { + content: "\e209"; } + +.fa-paper-plane::before { + content: "\f1d8"; } + +.fa-paperclip::before { + content: "\f0c6"; } + +.fa-parachute-box::before { + content: "\f4cd"; } + +.fa-paragraph::before { + content: "\f1dd"; } + +.fa-passport::before { + content: "\f5ab"; } + +.fa-paste::before { + content: "\f0ea"; } + +.fa-file-clipboard::before { + content: "\f0ea"; } + +.fa-pause::before { + content: "\f04c"; } + +.fa-paw::before { + content: "\f1b0"; } + +.fa-peace::before { + content: "\f67c"; } + +.fa-pen::before { + content: "\f304"; } + +.fa-pen-clip::before { + content: "\f305"; } + +.fa-pen-alt::before { + content: "\f305"; } + +.fa-pen-fancy::before { + content: "\f5ac"; } + +.fa-pen-nib::before { + content: "\f5ad"; } + +.fa-pen-ruler::before { + content: "\f5ae"; } + +.fa-pencil-ruler::before { + content: "\f5ae"; } + +.fa-pen-to-square::before { + content: "\f044"; } + +.fa-edit::before { + content: "\f044"; } + +.fa-pencil::before { + content: "\f303"; } + +.fa-pencil-alt::before { + content: "\f303"; } + +.fa-people-arrows-left-right::before { + content: "\e068"; } + +.fa-people-arrows::before { + content: "\e068"; } + +.fa-people-carry-box::before { + content: "\f4ce"; } + +.fa-people-carry::before { + content: "\f4ce"; } + +.fa-people-group::before { + content: "\e533"; } + +.fa-people-line::before { + content: "\e534"; } + +.fa-people-pulling::before { + content: "\e535"; } + +.fa-people-robbery::before { + content: "\e536"; } + +.fa-people-roof::before { + content: "\e537"; } + +.fa-pepper-hot::before { + content: "\f816"; } + +.fa-percent::before { + content: "\25"; } + +.fa-percentage::before { + content: "\25"; } + +.fa-person::before { + content: "\f183"; } + +.fa-male::before { + content: "\f183"; } + +.fa-person-arrow-down-to-line::before { + content: "\e538"; } + +.fa-person-arrow-up-from-line::before { + content: "\e539"; } + +.fa-person-biking::before { + content: "\f84a"; } + +.fa-biking::before { + content: "\f84a"; } + +.fa-person-booth::before { + content: "\f756"; } + +.fa-person-breastfeeding::before { + content: "\e53a"; } + +.fa-person-burst::before { + content: "\e53b"; } + +.fa-person-cane::before { + content: "\e53c"; } + +.fa-person-chalkboard::before { + content: "\e53d"; } + +.fa-person-circle-check::before { + content: "\e53e"; } + +.fa-person-circle-exclamation::before { + content: "\e53f"; } + +.fa-person-circle-minus::before { + content: "\e540"; } + +.fa-person-circle-plus::before { + content: "\e541"; } + +.fa-person-circle-question::before { + content: "\e542"; } + +.fa-person-circle-xmark::before { + content: "\e543"; } + +.fa-person-digging::before { + content: "\f85e"; } + +.fa-digging::before { + content: "\f85e"; } + +.fa-person-dots-from-line::before { + content: "\f470"; } + +.fa-diagnoses::before { + content: "\f470"; } + +.fa-person-dress::before { + content: "\f182"; } + +.fa-female::before { + content: "\f182"; } + +.fa-person-dress-burst::before { + content: "\e544"; } + +.fa-person-drowning::before { + content: "\e545"; } + +.fa-person-falling::before { + content: "\e546"; } + +.fa-person-falling-burst::before { + content: "\e547"; } + +.fa-person-half-dress::before { + content: "\e548"; } + +.fa-person-harassing::before { + content: "\e549"; } + +.fa-person-hiking::before { + content: "\f6ec"; } + +.fa-hiking::before { + content: "\f6ec"; } + +.fa-person-military-pointing::before { + content: "\e54a"; } + +.fa-person-military-rifle::before { + content: "\e54b"; } + +.fa-person-military-to-person::before { + content: "\e54c"; } + +.fa-person-praying::before { + content: "\f683"; } + +.fa-pray::before { + content: "\f683"; } + +.fa-person-pregnant::before { + content: "\e31e"; } + +.fa-person-rays::before { + content: "\e54d"; } + +.fa-person-rifle::before { + content: "\e54e"; } + +.fa-person-running::before { + content: "\f70c"; } + +.fa-running::before { + content: "\f70c"; } + +.fa-person-shelter::before { + content: "\e54f"; } + +.fa-person-skating::before { + content: "\f7c5"; } + +.fa-skating::before { + content: "\f7c5"; } + +.fa-person-skiing::before { + content: "\f7c9"; } + +.fa-skiing::before { + content: "\f7c9"; } + +.fa-person-skiing-nordic::before { + content: "\f7ca"; } + +.fa-skiing-nordic::before { + content: "\f7ca"; } + +.fa-person-snowboarding::before { + content: "\f7ce"; } + +.fa-snowboarding::before { + content: "\f7ce"; } + +.fa-person-swimming::before { + content: "\f5c4"; } + +.fa-swimmer::before { + content: "\f5c4"; } + +.fa-person-through-window::before { + content: "\e433"; } + +.fa-person-walking::before { + content: "\f554"; } + +.fa-walking::before { + content: "\f554"; } + +.fa-person-walking-arrow-loop-left::before { + content: "\e551"; } + +.fa-person-walking-arrow-right::before { + content: "\e552"; } + +.fa-person-walking-dashed-line-arrow-right::before { + content: "\e553"; } + +.fa-person-walking-luggage::before { + content: "\e554"; } + +.fa-person-walking-with-cane::before { + content: "\f29d"; } + +.fa-blind::before { + content: "\f29d"; } + +.fa-peseta-sign::before { + content: "\e221"; } + +.fa-peso-sign::before { + content: "\e222"; } + +.fa-phone::before { + content: "\f095"; } + +.fa-phone-flip::before { + content: "\f879"; } + +.fa-phone-alt::before { + content: "\f879"; } + +.fa-phone-slash::before { + content: "\f3dd"; } + +.fa-phone-volume::before { + content: "\f2a0"; } + +.fa-volume-control-phone::before { + content: "\f2a0"; } + +.fa-photo-film::before { + content: "\f87c"; } + +.fa-photo-video::before { + content: "\f87c"; } + +.fa-piggy-bank::before { + content: "\f4d3"; } + +.fa-pills::before { + content: "\f484"; } + +.fa-pizza-slice::before { + content: "\f818"; } + +.fa-place-of-worship::before { + content: "\f67f"; } + +.fa-plane::before { + content: "\f072"; } + +.fa-plane-arrival::before { + content: "\f5af"; } + +.fa-plane-circle-check::before { + content: "\e555"; } + +.fa-plane-circle-exclamation::before { + content: "\e556"; } + +.fa-plane-circle-xmark::before { + content: "\e557"; } + +.fa-plane-departure::before { + content: "\f5b0"; } + +.fa-plane-lock::before { + content: "\e558"; } + +.fa-plane-slash::before { + content: "\e069"; } + +.fa-plane-up::before { + content: "\e22d"; } + +.fa-plant-wilt::before { + content: "\e43b"; } + +.fa-plate-wheat::before { + content: "\e55a"; } + +.fa-play::before { + content: "\f04b"; } + +.fa-plug::before { + content: "\f1e6"; } + +.fa-plug-circle-bolt::before { + content: "\e55b"; } + +.fa-plug-circle-check::before { + content: "\e55c"; } + +.fa-plug-circle-exclamation::before { + content: "\e55d"; } + +.fa-plug-circle-minus::before { + content: "\e55e"; } + +.fa-plug-circle-plus::before { + content: "\e55f"; } + +.fa-plug-circle-xmark::before { + content: "\e560"; } + +.fa-plus::before { + content: "\2b"; } + +.fa-add::before { + content: "\2b"; } + +.fa-plus-minus::before { + content: "\e43c"; } + +.fa-podcast::before { + content: "\f2ce"; } + +.fa-poo::before { + content: "\f2fe"; } + +.fa-poo-storm::before { + content: "\f75a"; } + +.fa-poo-bolt::before { + content: "\f75a"; } + +.fa-poop::before { + content: "\f619"; } + +.fa-power-off::before { + content: "\f011"; } + +.fa-prescription::before { + content: "\f5b1"; } + +.fa-prescription-bottle::before { + content: "\f485"; } + +.fa-prescription-bottle-medical::before { + content: "\f486"; } + +.fa-prescription-bottle-alt::before { + content: "\f486"; } + +.fa-print::before { + content: "\f02f"; } + +.fa-pump-medical::before { + content: "\e06a"; } + +.fa-pump-soap::before { + content: "\e06b"; } + +.fa-puzzle-piece::before { + content: "\f12e"; } + +.fa-q::before { + content: "\51"; } + +.fa-qrcode::before { + content: "\f029"; } + +.fa-question::before { + content: "\3f"; } + +.fa-quote-left::before { + content: "\f10d"; } + +.fa-quote-left-alt::before { + content: "\f10d"; } + +.fa-quote-right::before { + content: "\f10e"; } + +.fa-quote-right-alt::before { + content: "\f10e"; } + +.fa-r::before { + content: "\52"; } + +.fa-radiation::before { + content: "\f7b9"; } + +.fa-radio::before { + content: "\f8d7"; } + +.fa-rainbow::before { + content: "\f75b"; } + +.fa-ranking-star::before { + content: "\e561"; } + +.fa-receipt::before { + content: "\f543"; } + +.fa-record-vinyl::before { + content: "\f8d9"; } + +.fa-rectangle-ad::before { + content: "\f641"; } + +.fa-ad::before { + content: "\f641"; } + +.fa-rectangle-list::before { + content: "\f022"; } + +.fa-list-alt::before { + content: "\f022"; } + +.fa-rectangle-xmark::before { + content: "\f410"; } + +.fa-rectangle-times::before { + content: "\f410"; } + +.fa-times-rectangle::before { + content: "\f410"; } + +.fa-window-close::before { + content: "\f410"; } + +.fa-recycle::before { + content: "\f1b8"; } + +.fa-registered::before { + content: "\f25d"; } + +.fa-repeat::before { + content: "\f363"; } + +.fa-reply::before { + content: "\f3e5"; } + +.fa-mail-reply::before { + content: "\f3e5"; } + +.fa-reply-all::before { + content: "\f122"; } + +.fa-mail-reply-all::before { + content: "\f122"; } + +.fa-republican::before { + content: "\f75e"; } + +.fa-restroom::before { + content: "\f7bd"; } + +.fa-retweet::before { + content: "\f079"; } + +.fa-ribbon::before { + content: "\f4d6"; } + +.fa-right-from-bracket::before { + content: "\f2f5"; } + +.fa-sign-out-alt::before { + content: "\f2f5"; } + +.fa-right-left::before { + content: "\f362"; } + +.fa-exchange-alt::before { + content: "\f362"; } + +.fa-right-long::before { + content: "\f30b"; } + +.fa-long-arrow-alt-right::before { + content: "\f30b"; } + +.fa-right-to-bracket::before { + content: "\f2f6"; } + +.fa-sign-in-alt::before { + content: "\f2f6"; } + +.fa-ring::before { + content: "\f70b"; } + +.fa-road::before { + content: "\f018"; } + +.fa-road-barrier::before { + content: "\e562"; } + +.fa-road-bridge::before { + content: "\e563"; } + +.fa-road-circle-check::before { + content: "\e564"; } + +.fa-road-circle-exclamation::before { + content: "\e565"; } + +.fa-road-circle-xmark::before { + content: "\e566"; } + +.fa-road-lock::before { + content: "\e567"; } + +.fa-road-spikes::before { + content: "\e568"; } + +.fa-robot::before { + content: "\f544"; } + +.fa-rocket::before { + content: "\f135"; } + +.fa-rotate::before { + content: "\f2f1"; } + +.fa-sync-alt::before { + content: "\f2f1"; } + +.fa-rotate-left::before { + content: "\f2ea"; } + +.fa-rotate-back::before { + content: "\f2ea"; } + +.fa-rotate-backward::before { + content: "\f2ea"; } + +.fa-undo-alt::before { + content: "\f2ea"; } + +.fa-rotate-right::before { + content: "\f2f9"; } + +.fa-redo-alt::before { + content: "\f2f9"; } + +.fa-rotate-forward::before { + content: "\f2f9"; } + +.fa-route::before { + content: "\f4d7"; } + +.fa-rss::before { + content: "\f09e"; } + +.fa-feed::before { + content: "\f09e"; } + +.fa-ruble-sign::before { + content: "\f158"; } + +.fa-rouble::before { + content: "\f158"; } + +.fa-rub::before { + content: "\f158"; } + +.fa-ruble::before { + content: "\f158"; } + +.fa-rug::before { + content: "\e569"; } + +.fa-ruler::before { + content: "\f545"; } + +.fa-ruler-combined::before { + content: "\f546"; } + +.fa-ruler-horizontal::before { + content: "\f547"; } + +.fa-ruler-vertical::before { + content: "\f548"; } + +.fa-rupee-sign::before { + content: "\f156"; } + +.fa-rupee::before { + content: "\f156"; } + +.fa-rupiah-sign::before { + content: "\e23d"; } + +.fa-s::before { + content: "\53"; } + +.fa-sack-dollar::before { + content: "\f81d"; } + +.fa-sack-xmark::before { + content: "\e56a"; } + +.fa-sailboat::before { + content: "\e445"; } + +.fa-satellite::before { + content: "\f7bf"; } + +.fa-satellite-dish::before { + content: "\f7c0"; } + +.fa-scale-balanced::before { + content: "\f24e"; } + +.fa-balance-scale::before { + content: "\f24e"; } + +.fa-scale-unbalanced::before { + content: "\f515"; } + +.fa-balance-scale-left::before { + content: "\f515"; } + +.fa-scale-unbalanced-flip::before { + content: "\f516"; } + +.fa-balance-scale-right::before { + content: "\f516"; } + +.fa-school::before { + content: "\f549"; } + +.fa-school-circle-check::before { + content: "\e56b"; } + +.fa-school-circle-exclamation::before { + content: "\e56c"; } + +.fa-school-circle-xmark::before { + content: "\e56d"; } + +.fa-school-flag::before { + content: "\e56e"; } + +.fa-school-lock::before { + content: "\e56f"; } + +.fa-scissors::before { + content: "\f0c4"; } + +.fa-cut::before { + content: "\f0c4"; } + +.fa-screwdriver::before { + content: "\f54a"; } + +.fa-screwdriver-wrench::before { + content: "\f7d9"; } + +.fa-tools::before { + content: "\f7d9"; } + +.fa-scroll::before { + content: "\f70e"; } + +.fa-scroll-torah::before { + content: "\f6a0"; } + +.fa-torah::before { + content: "\f6a0"; } + +.fa-sd-card::before { + content: "\f7c2"; } + +.fa-section::before { + content: "\e447"; } + +.fa-seedling::before { + content: "\f4d8"; } + +.fa-sprout::before { + content: "\f4d8"; } + +.fa-server::before { + content: "\f233"; } + +.fa-shapes::before { + content: "\f61f"; } + +.fa-triangle-circle-square::before { + content: "\f61f"; } + +.fa-share::before { + content: "\f064"; } + +.fa-arrow-turn-right::before { + content: "\f064"; } + +.fa-mail-forward::before { + content: "\f064"; } + +.fa-share-from-square::before { + content: "\f14d"; } + +.fa-share-square::before { + content: "\f14d"; } + +.fa-share-nodes::before { + content: "\f1e0"; } + +.fa-share-alt::before { + content: "\f1e0"; } + +.fa-sheet-plastic::before { + content: "\e571"; } + +.fa-shekel-sign::before { + content: "\f20b"; } + +.fa-ils::before { + content: "\f20b"; } + +.fa-shekel::before { + content: "\f20b"; } + +.fa-sheqel::before { + content: "\f20b"; } + +.fa-sheqel-sign::before { + content: "\f20b"; } + +.fa-shield::before { + content: "\f132"; } + +.fa-shield-blank::before { + content: "\f132"; } + +.fa-shield-cat::before { + content: "\e572"; } + +.fa-shield-dog::before { + content: "\e573"; } + +.fa-shield-halved::before { + content: "\f3ed"; } + +.fa-shield-alt::before { + content: "\f3ed"; } + +.fa-shield-heart::before { + content: "\e574"; } + +.fa-shield-virus::before { + content: "\e06c"; } + +.fa-ship::before { + content: "\f21a"; } + +.fa-shirt::before { + content: "\f553"; } + +.fa-t-shirt::before { + content: "\f553"; } + +.fa-tshirt::before { + content: "\f553"; } + +.fa-shoe-prints::before { + content: "\f54b"; } + +.fa-shop::before { + content: "\f54f"; } + +.fa-store-alt::before { + content: "\f54f"; } + +.fa-shop-lock::before { + content: "\e4a5"; } + +.fa-shop-slash::before { + content: "\e070"; } + +.fa-store-alt-slash::before { + content: "\e070"; } + +.fa-shower::before { + content: "\f2cc"; } + +.fa-shrimp::before { + content: "\e448"; } + +.fa-shuffle::before { + content: "\f074"; } + +.fa-random::before { + content: "\f074"; } + +.fa-shuttle-space::before { + content: "\f197"; } + +.fa-space-shuttle::before { + content: "\f197"; } + +.fa-sign-hanging::before { + content: "\f4d9"; } + +.fa-sign::before { + content: "\f4d9"; } + +.fa-signal::before { + content: "\f012"; } + +.fa-signal-5::before { + content: "\f012"; } + +.fa-signal-perfect::before { + content: "\f012"; } + +.fa-signature::before { + content: "\f5b7"; } + +.fa-signs-post::before { + content: "\f277"; } + +.fa-map-signs::before { + content: "\f277"; } + +.fa-sim-card::before { + content: "\f7c4"; } + +.fa-sink::before { + content: "\e06d"; } + +.fa-sitemap::before { + content: "\f0e8"; } + +.fa-skull::before { + content: "\f54c"; } + +.fa-skull-crossbones::before { + content: "\f714"; } + +.fa-slash::before { + content: "\f715"; } + +.fa-sleigh::before { + content: "\f7cc"; } + +.fa-sliders::before { + content: "\f1de"; } + +.fa-sliders-h::before { + content: "\f1de"; } + +.fa-smog::before { + content: "\f75f"; } + +.fa-smoking::before { + content: "\f48d"; } + +.fa-snowflake::before { + content: "\f2dc"; } + +.fa-snowman::before { + content: "\f7d0"; } + +.fa-snowplow::before { + content: "\f7d2"; } + +.fa-soap::before { + content: "\e06e"; } + +.fa-socks::before { + content: "\f696"; } + +.fa-solar-panel::before { + content: "\f5ba"; } + +.fa-sort::before { + content: "\f0dc"; } + +.fa-unsorted::before { + content: "\f0dc"; } + +.fa-sort-down::before { + content: "\f0dd"; } + +.fa-sort-desc::before { + content: "\f0dd"; } + +.fa-sort-up::before { + content: "\f0de"; } + +.fa-sort-asc::before { + content: "\f0de"; } + +.fa-spa::before { + content: "\f5bb"; } + +.fa-spaghetti-monster-flying::before { + content: "\f67b"; } + +.fa-pastafarianism::before { + content: "\f67b"; } + +.fa-spell-check::before { + content: "\f891"; } + +.fa-spider::before { + content: "\f717"; } + +.fa-spinner::before { + content: "\f110"; } + +.fa-splotch::before { + content: "\f5bc"; } + +.fa-spoon::before { + content: "\f2e5"; } + +.fa-utensil-spoon::before { + content: "\f2e5"; } + +.fa-spray-can::before { + content: "\f5bd"; } + +.fa-spray-can-sparkles::before { + content: "\f5d0"; } + +.fa-air-freshener::before { + content: "\f5d0"; } + +.fa-square::before { + content: "\f0c8"; } + +.fa-square-arrow-up-right::before { + content: "\f14c"; } + +.fa-external-link-square::before { + content: "\f14c"; } + +.fa-square-caret-down::before { + content: "\f150"; } + +.fa-caret-square-down::before { + content: "\f150"; } + +.fa-square-caret-left::before { + content: "\f191"; } + +.fa-caret-square-left::before { + content: "\f191"; } + +.fa-square-caret-right::before { + content: "\f152"; } + +.fa-caret-square-right::before { + content: "\f152"; } + +.fa-square-caret-up::before { + content: "\f151"; } + +.fa-caret-square-up::before { + content: "\f151"; } + +.fa-square-check::before { + content: "\f14a"; } + +.fa-check-square::before { + content: "\f14a"; } + +.fa-square-envelope::before { + content: "\f199"; } + +.fa-envelope-square::before { + content: "\f199"; } + +.fa-square-full::before { + content: "\f45c"; } + +.fa-square-h::before { + content: "\f0fd"; } + +.fa-h-square::before { + content: "\f0fd"; } + +.fa-square-minus::before { + content: "\f146"; } + +.fa-minus-square::before { + content: "\f146"; } + +.fa-square-nfi::before { + content: "\e576"; } + +.fa-square-parking::before { + content: "\f540"; } + +.fa-parking::before { + content: "\f540"; } + +.fa-square-pen::before { + content: "\f14b"; } + +.fa-pen-square::before { + content: "\f14b"; } + +.fa-pencil-square::before { + content: "\f14b"; } + +.fa-square-person-confined::before { + content: "\e577"; } + +.fa-square-phone::before { + content: "\f098"; } + +.fa-phone-square::before { + content: "\f098"; } + +.fa-square-phone-flip::before { + content: "\f87b"; } + +.fa-phone-square-alt::before { + content: "\f87b"; } + +.fa-square-plus::before { + content: "\f0fe"; } + +.fa-plus-square::before { + content: "\f0fe"; } + +.fa-square-poll-horizontal::before { + content: "\f682"; } + +.fa-poll-h::before { + content: "\f682"; } + +.fa-square-poll-vertical::before { + content: "\f681"; } + +.fa-poll::before { + content: "\f681"; } + +.fa-square-root-variable::before { + content: "\f698"; } + +.fa-square-root-alt::before { + content: "\f698"; } + +.fa-square-rss::before { + content: "\f143"; } + +.fa-rss-square::before { + content: "\f143"; } + +.fa-square-share-nodes::before { + content: "\f1e1"; } + +.fa-share-alt-square::before { + content: "\f1e1"; } + +.fa-square-up-right::before { + content: "\f360"; } + +.fa-external-link-square-alt::before { + content: "\f360"; } + +.fa-square-virus::before { + content: "\e578"; } + +.fa-square-xmark::before { + content: "\f2d3"; } + +.fa-times-square::before { + content: "\f2d3"; } + +.fa-xmark-square::before { + content: "\f2d3"; } + +.fa-staff-aesculapius::before { + content: "\e579"; } + +.fa-rod-asclepius::before { + content: "\e579"; } + +.fa-rod-snake::before { + content: "\e579"; } + +.fa-staff-snake::before { + content: "\e579"; } + +.fa-stairs::before { + content: "\e289"; } + +.fa-stamp::before { + content: "\f5bf"; } + +.fa-star::before { + content: "\f005"; } + +.fa-star-and-crescent::before { + content: "\f699"; } + +.fa-star-half::before { + content: "\f089"; } + +.fa-star-half-stroke::before { + content: "\f5c0"; } + +.fa-star-half-alt::before { + content: "\f5c0"; } + +.fa-star-of-david::before { + content: "\f69a"; } + +.fa-star-of-life::before { + content: "\f621"; } + +.fa-sterling-sign::before { + content: "\f154"; } + +.fa-gbp::before { + content: "\f154"; } + +.fa-pound-sign::before { + content: "\f154"; } + +.fa-stethoscope::before { + content: "\f0f1"; } + +.fa-stop::before { + content: "\f04d"; } + +.fa-stopwatch::before { + content: "\f2f2"; } + +.fa-stopwatch-20::before { + content: "\e06f"; } + +.fa-store::before { + content: "\f54e"; } + +.fa-store-slash::before { + content: "\e071"; } + +.fa-street-view::before { + content: "\f21d"; } + +.fa-strikethrough::before { + content: "\f0cc"; } + +.fa-stroopwafel::before { + content: "\f551"; } + +.fa-subscript::before { + content: "\f12c"; } + +.fa-suitcase::before { + content: "\f0f2"; } + +.fa-suitcase-medical::before { + content: "\f0fa"; } + +.fa-medkit::before { + content: "\f0fa"; } + +.fa-suitcase-rolling::before { + content: "\f5c1"; } + +.fa-sun::before { + content: "\f185"; } + +.fa-sun-plant-wilt::before { + content: "\e57a"; } + +.fa-superscript::before { + content: "\f12b"; } + +.fa-swatchbook::before { + content: "\f5c3"; } + +.fa-synagogue::before { + content: "\f69b"; } + +.fa-syringe::before { + content: "\f48e"; } + +.fa-t::before { + content: "\54"; } + +.fa-table::before { + content: "\f0ce"; } + +.fa-table-cells::before { + content: "\f00a"; } + +.fa-th::before { + content: "\f00a"; } + +.fa-table-cells-large::before { + content: "\f009"; } + +.fa-th-large::before { + content: "\f009"; } + +.fa-table-columns::before { + content: "\f0db"; } + +.fa-columns::before { + content: "\f0db"; } + +.fa-table-list::before { + content: "\f00b"; } + +.fa-th-list::before { + content: "\f00b"; } + +.fa-table-tennis-paddle-ball::before { + content: "\f45d"; } + +.fa-ping-pong-paddle-ball::before { + content: "\f45d"; } + +.fa-table-tennis::before { + content: "\f45d"; } + +.fa-tablet::before { + content: "\f3fb"; } + +.fa-tablet-android::before { + content: "\f3fb"; } + +.fa-tablet-button::before { + content: "\f10a"; } + +.fa-tablet-screen-button::before { + content: "\f3fa"; } + +.fa-tablet-alt::before { + content: "\f3fa"; } + +.fa-tablets::before { + content: "\f490"; } + +.fa-tachograph-digital::before { + content: "\f566"; } + +.fa-digital-tachograph::before { + content: "\f566"; } + +.fa-tag::before { + content: "\f02b"; } + +.fa-tags::before { + content: "\f02c"; } + +.fa-tape::before { + content: "\f4db"; } + +.fa-tarp::before { + content: "\e57b"; } + +.fa-tarp-droplet::before { + content: "\e57c"; } + +.fa-taxi::before { + content: "\f1ba"; } + +.fa-cab::before { + content: "\f1ba"; } + +.fa-teeth::before { + content: "\f62e"; } + +.fa-teeth-open::before { + content: "\f62f"; } + +.fa-temperature-arrow-down::before { + content: "\e03f"; } + +.fa-temperature-down::before { + content: "\e03f"; } + +.fa-temperature-arrow-up::before { + content: "\e040"; } + +.fa-temperature-up::before { + content: "\e040"; } + +.fa-temperature-empty::before { + content: "\f2cb"; } + +.fa-temperature-0::before { + content: "\f2cb"; } + +.fa-thermometer-0::before { + content: "\f2cb"; } + +.fa-thermometer-empty::before { + content: "\f2cb"; } + +.fa-temperature-full::before { + content: "\f2c7"; } + +.fa-temperature-4::before { + content: "\f2c7"; } + +.fa-thermometer-4::before { + content: "\f2c7"; } + +.fa-thermometer-full::before { + content: "\f2c7"; } + +.fa-temperature-half::before { + content: "\f2c9"; } + +.fa-temperature-2::before { + content: "\f2c9"; } + +.fa-thermometer-2::before { + content: "\f2c9"; } + +.fa-thermometer-half::before { + content: "\f2c9"; } + +.fa-temperature-high::before { + content: "\f769"; } + +.fa-temperature-low::before { + content: "\f76b"; } + +.fa-temperature-quarter::before { + content: "\f2ca"; } + +.fa-temperature-1::before { + content: "\f2ca"; } + +.fa-thermometer-1::before { + content: "\f2ca"; } + +.fa-thermometer-quarter::before { + content: "\f2ca"; } + +.fa-temperature-three-quarters::before { + content: "\f2c8"; } + +.fa-temperature-3::before { + content: "\f2c8"; } + +.fa-thermometer-3::before { + content: "\f2c8"; } + +.fa-thermometer-three-quarters::before { + content: "\f2c8"; } + +.fa-tenge-sign::before { + content: "\f7d7"; } + +.fa-tenge::before { + content: "\f7d7"; } + +.fa-tent::before { + content: "\e57d"; } + +.fa-tent-arrow-down-to-line::before { + content: "\e57e"; } + +.fa-tent-arrow-left-right::before { + content: "\e57f"; } + +.fa-tent-arrow-turn-left::before { + content: "\e580"; } + +.fa-tent-arrows-down::before { + content: "\e581"; } + +.fa-tents::before { + content: "\e582"; } + +.fa-terminal::before { + content: "\f120"; } + +.fa-text-height::before { + content: "\f034"; } + +.fa-text-slash::before { + content: "\f87d"; } + +.fa-remove-format::before { + content: "\f87d"; } + +.fa-text-width::before { + content: "\f035"; } + +.fa-thermometer::before { + content: "\f491"; } + +.fa-thumbs-down::before { + content: "\f165"; } + +.fa-thumbs-up::before { + content: "\f164"; } + +.fa-thumbtack::before { + content: "\f08d"; } + +.fa-thumb-tack::before { + content: "\f08d"; } + +.fa-ticket::before { + content: "\f145"; } + +.fa-ticket-simple::before { + content: "\f3ff"; } + +.fa-ticket-alt::before { + content: "\f3ff"; } + +.fa-timeline::before { + content: "\e29c"; } + +.fa-toggle-off::before { + content: "\f204"; } + +.fa-toggle-on::before { + content: "\f205"; } + +.fa-toilet::before { + content: "\f7d8"; } + +.fa-toilet-paper::before { + content: "\f71e"; } + +.fa-toilet-paper-slash::before { + content: "\e072"; } + +.fa-toilet-portable::before { + content: "\e583"; } + +.fa-toilets-portable::before { + content: "\e584"; } + +.fa-toolbox::before { + content: "\f552"; } + +.fa-tooth::before { + content: "\f5c9"; } + +.fa-torii-gate::before { + content: "\f6a1"; } + +.fa-tornado::before { + content: "\f76f"; } + +.fa-tower-broadcast::before { + content: "\f519"; } + +.fa-broadcast-tower::before { + content: "\f519"; } + +.fa-tower-cell::before { + content: "\e585"; } + +.fa-tower-observation::before { + content: "\e586"; } + +.fa-tractor::before { + content: "\f722"; } + +.fa-trademark::before { + content: "\f25c"; } + +.fa-traffic-light::before { + content: "\f637"; } + +.fa-trailer::before { + content: "\e041"; } + +.fa-train::before { + content: "\f238"; } + +.fa-train-subway::before { + content: "\f239"; } + +.fa-subway::before { + content: "\f239"; } + +.fa-train-tram::before { + content: "\f7da"; } + +.fa-tram::before { + content: "\f7da"; } + +.fa-transgender::before { + content: "\f225"; } + +.fa-transgender-alt::before { + content: "\f225"; } + +.fa-trash::before { + content: "\f1f8"; } + +.fa-trash-arrow-up::before { + content: "\f829"; } + +.fa-trash-restore::before { + content: "\f829"; } + +.fa-trash-can::before { + content: "\f2ed"; } + +.fa-trash-alt::before { + content: "\f2ed"; } + +.fa-trash-can-arrow-up::before { + content: "\f82a"; } + +.fa-trash-restore-alt::before { + content: "\f82a"; } + +.fa-tree::before { + content: "\f1bb"; } + +.fa-tree-city::before { + content: "\e587"; } + +.fa-triangle-exclamation::before { + content: "\f071"; } + +.fa-exclamation-triangle::before { + content: "\f071"; } + +.fa-warning::before { + content: "\f071"; } + +.fa-trophy::before { + content: "\f091"; } + +.fa-trowel::before { + content: "\e589"; } + +.fa-trowel-bricks::before { + content: "\e58a"; } + +.fa-truck::before { + content: "\f0d1"; } + +.fa-truck-arrow-right::before { + content: "\e58b"; } + +.fa-truck-droplet::before { + content: "\e58c"; } + +.fa-truck-fast::before { + content: "\f48b"; } + +.fa-shipping-fast::before { + content: "\f48b"; } + +.fa-truck-field::before { + content: "\e58d"; } + +.fa-truck-field-un::before { + content: "\e58e"; } + +.fa-truck-front::before { + content: "\e2b7"; } + +.fa-truck-medical::before { + content: "\f0f9"; } + +.fa-ambulance::before { + content: "\f0f9"; } + +.fa-truck-monster::before { + content: "\f63b"; } + +.fa-truck-moving::before { + content: "\f4df"; } + +.fa-truck-pickup::before { + content: "\f63c"; } + +.fa-truck-plane::before { + content: "\e58f"; } + +.fa-truck-ramp-box::before { + content: "\f4de"; } + +.fa-truck-loading::before { + content: "\f4de"; } + +.fa-tty::before { + content: "\f1e4"; } + +.fa-teletype::before { + content: "\f1e4"; } + +.fa-turkish-lira-sign::before { + content: "\e2bb"; } + +.fa-try::before { + content: "\e2bb"; } + +.fa-turkish-lira::before { + content: "\e2bb"; } + +.fa-turn-down::before { + content: "\f3be"; } + +.fa-level-down-alt::before { + content: "\f3be"; } + +.fa-turn-up::before { + content: "\f3bf"; } + +.fa-level-up-alt::before { + content: "\f3bf"; } + +.fa-tv::before { + content: "\f26c"; } + +.fa-television::before { + content: "\f26c"; } + +.fa-tv-alt::before { + content: "\f26c"; } + +.fa-u::before { + content: "\55"; } + +.fa-umbrella::before { + content: "\f0e9"; } + +.fa-umbrella-beach::before { + content: "\f5ca"; } + +.fa-underline::before { + content: "\f0cd"; } + +.fa-universal-access::before { + content: "\f29a"; } + +.fa-unlock::before { + content: "\f09c"; } + +.fa-unlock-keyhole::before { + content: "\f13e"; } + +.fa-unlock-alt::before { + content: "\f13e"; } + +.fa-up-down::before { + content: "\f338"; } + +.fa-arrows-alt-v::before { + content: "\f338"; } + +.fa-up-down-left-right::before { + content: "\f0b2"; } + +.fa-arrows-alt::before { + content: "\f0b2"; } + +.fa-up-long::before { + content: "\f30c"; } + +.fa-long-arrow-alt-up::before { + content: "\f30c"; } + +.fa-up-right-and-down-left-from-center::before { + content: "\f424"; } + +.fa-expand-alt::before { + content: "\f424"; } + +.fa-up-right-from-square::before { + content: "\f35d"; } + +.fa-external-link-alt::before { + content: "\f35d"; } + +.fa-upload::before { + content: "\f093"; } + +.fa-user::before { + content: "\f007"; } + +.fa-user-astronaut::before { + content: "\f4fb"; } + +.fa-user-check::before { + content: "\f4fc"; } + +.fa-user-clock::before { + content: "\f4fd"; } + +.fa-user-doctor::before { + content: "\f0f0"; } + +.fa-user-md::before { + content: "\f0f0"; } + +.fa-user-gear::before { + content: "\f4fe"; } + +.fa-user-cog::before { + content: "\f4fe"; } + +.fa-user-graduate::before { + content: "\f501"; } + +.fa-user-group::before { + content: "\f500"; } + +.fa-user-friends::before { + content: "\f500"; } + +.fa-user-injured::before { + content: "\f728"; } + +.fa-user-large::before { + content: "\f406"; } + +.fa-user-alt::before { + content: "\f406"; } + +.fa-user-large-slash::before { + content: "\f4fa"; } + +.fa-user-alt-slash::before { + content: "\f4fa"; } + +.fa-user-lock::before { + content: "\f502"; } + +.fa-user-minus::before { + content: "\f503"; } + +.fa-user-ninja::before { + content: "\f504"; } + +.fa-user-nurse::before { + content: "\f82f"; } + +.fa-user-pen::before { + content: "\f4ff"; } + +.fa-user-edit::before { + content: "\f4ff"; } + +.fa-user-plus::before { + content: "\f234"; } + +.fa-user-secret::before { + content: "\f21b"; } + +.fa-user-shield::before { + content: "\f505"; } + +.fa-user-slash::before { + content: "\f506"; } + +.fa-user-tag::before { + content: "\f507"; } + +.fa-user-tie::before { + content: "\f508"; } + +.fa-user-xmark::before { + content: "\f235"; } + +.fa-user-times::before { + content: "\f235"; } + +.fa-users::before { + content: "\f0c0"; } + +.fa-users-between-lines::before { + content: "\e591"; } + +.fa-users-gear::before { + content: "\f509"; } + +.fa-users-cog::before { + content: "\f509"; } + +.fa-users-line::before { + content: "\e592"; } + +.fa-users-rays::before { + content: "\e593"; } + +.fa-users-rectangle::before { + content: "\e594"; } + +.fa-users-slash::before { + content: "\e073"; } + +.fa-users-viewfinder::before { + content: "\e595"; } + +.fa-utensils::before { + content: "\f2e7"; } + +.fa-cutlery::before { + content: "\f2e7"; } + +.fa-v::before { + content: "\56"; } + +.fa-van-shuttle::before { + content: "\f5b6"; } + +.fa-shuttle-van::before { + content: "\f5b6"; } + +.fa-vault::before { + content: "\e2c5"; } + +.fa-vector-square::before { + content: "\f5cb"; } + +.fa-venus::before { + content: "\f221"; } + +.fa-venus-double::before { + content: "\f226"; } + +.fa-venus-mars::before { + content: "\f228"; } + +.fa-vest::before { + content: "\e085"; } + +.fa-vest-patches::before { + content: "\e086"; } + +.fa-vial::before { + content: "\f492"; } + +.fa-vial-circle-check::before { + content: "\e596"; } + +.fa-vial-virus::before { + content: "\e597"; } + +.fa-vials::before { + content: "\f493"; } + +.fa-video::before { + content: "\f03d"; } + +.fa-video-camera::before { + content: "\f03d"; } + +.fa-video-slash::before { + content: "\f4e2"; } + +.fa-vihara::before { + content: "\f6a7"; } + +.fa-virus::before { + content: "\e074"; } + +.fa-virus-covid::before { + content: "\e4a8"; } + +.fa-virus-covid-slash::before { + content: "\e4a9"; } + +.fa-virus-slash::before { + content: "\e075"; } + +.fa-viruses::before { + content: "\e076"; } + +.fa-voicemail::before { + content: "\f897"; } + +.fa-volcano::before { + content: "\f770"; } + +.fa-volleyball::before { + content: "\f45f"; } + +.fa-volleyball-ball::before { + content: "\f45f"; } + +.fa-volume-high::before { + content: "\f028"; } + +.fa-volume-up::before { + content: "\f028"; } + +.fa-volume-low::before { + content: "\f027"; } + +.fa-volume-down::before { + content: "\f027"; } + +.fa-volume-off::before { + content: "\f026"; } + +.fa-volume-xmark::before { + content: "\f6a9"; } + +.fa-volume-mute::before { + content: "\f6a9"; } + +.fa-volume-times::before { + content: "\f6a9"; } + +.fa-vr-cardboard::before { + content: "\f729"; } + +.fa-w::before { + content: "\57"; } + +.fa-walkie-talkie::before { + content: "\f8ef"; } + +.fa-wallet::before { + content: "\f555"; } + +.fa-wand-magic::before { + content: "\f0d0"; } + +.fa-magic::before { + content: "\f0d0"; } + +.fa-wand-magic-sparkles::before { + content: "\e2ca"; } + +.fa-magic-wand-sparkles::before { + content: "\e2ca"; } + +.fa-wand-sparkles::before { + content: "\f72b"; } + +.fa-warehouse::before { + content: "\f494"; } + +.fa-water::before { + content: "\f773"; } + +.fa-water-ladder::before { + content: "\f5c5"; } + +.fa-ladder-water::before { + content: "\f5c5"; } + +.fa-swimming-pool::before { + content: "\f5c5"; } + +.fa-wave-square::before { + content: "\f83e"; } + +.fa-weight-hanging::before { + content: "\f5cd"; } + +.fa-weight-scale::before { + content: "\f496"; } + +.fa-weight::before { + content: "\f496"; } + +.fa-wheat-awn::before { + content: "\e2cd"; } + +.fa-wheat-alt::before { + content: "\e2cd"; } + +.fa-wheat-awn-circle-exclamation::before { + content: "\e598"; } + +.fa-wheelchair::before { + content: "\f193"; } + +.fa-wheelchair-move::before { + content: "\e2ce"; } + +.fa-wheelchair-alt::before { + content: "\e2ce"; } + +.fa-whiskey-glass::before { + content: "\f7a0"; } + +.fa-glass-whiskey::before { + content: "\f7a0"; } + +.fa-wifi::before { + content: "\f1eb"; } + +.fa-wifi-3::before { + content: "\f1eb"; } + +.fa-wifi-strong::before { + content: "\f1eb"; } + +.fa-wind::before { + content: "\f72e"; } + +.fa-window-maximize::before { + content: "\f2d0"; } + +.fa-window-minimize::before { + content: "\f2d1"; } + +.fa-window-restore::before { + content: "\f2d2"; } + +.fa-wine-bottle::before { + content: "\f72f"; } + +.fa-wine-glass::before { + content: "\f4e3"; } + +.fa-wine-glass-empty::before { + content: "\f5ce"; } + +.fa-wine-glass-alt::before { + content: "\f5ce"; } + +.fa-won-sign::before { + content: "\f159"; } + +.fa-krw::before { + content: "\f159"; } + +.fa-won::before { + content: "\f159"; } + +.fa-worm::before { + content: "\e599"; } + +.fa-wrench::before { + content: "\f0ad"; } + +.fa-x::before { + content: "\58"; } + +.fa-x-ray::before { + content: "\f497"; } + +.fa-xmark::before { + content: "\f00d"; } + +.fa-close::before { + content: "\f00d"; } + +.fa-multiply::before { + content: "\f00d"; } + +.fa-remove::before { + content: "\f00d"; } + +.fa-times::before { + content: "\f00d"; } + +.fa-xmarks-lines::before { + content: "\e59a"; } + +.fa-y::before { + content: "\59"; } + +.fa-yen-sign::before { + content: "\f157"; } + +.fa-cny::before { + content: "\f157"; } + +.fa-jpy::before { + content: "\f157"; } + +.fa-rmb::before { + content: "\f157"; } + +.fa-yen::before { + content: "\f157"; } + +.fa-yin-yang::before { + content: "\f6ad"; } + +.fa-z::before { + content: "\5a"; } + +.sr-only, +.fa-sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; } + +.sr-only-focusable:not(:focus), +.fa-sr-only-focusable:not(:focus) { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; } +:root, :host { + --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands"; } + +@font-face { + font-family: 'Font Awesome 6 Brands'; + font-style: normal; + font-weight: 400; + font-display: block; + src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } + +.fab, +.fa-brands { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa-42-group:before { + content: "\e080"; } + +.fa-innosoft:before { + content: "\e080"; } + +.fa-500px:before { + content: "\f26e"; } + +.fa-accessible-icon:before { + content: "\f368"; } + +.fa-accusoft:before { + content: "\f369"; } + +.fa-adn:before { + content: "\f170"; } + +.fa-adversal:before { + content: "\f36a"; } + +.fa-affiliatetheme:before { + content: "\f36b"; } + +.fa-airbnb:before { + content: "\f834"; } + +.fa-algolia:before { + content: "\f36c"; } + +.fa-alipay:before { + content: "\f642"; } + +.fa-amazon:before { + content: "\f270"; } + +.fa-amazon-pay:before { + content: "\f42c"; } + +.fa-amilia:before { + content: "\f36d"; } + +.fa-android:before { + content: "\f17b"; } + +.fa-angellist:before { + content: "\f209"; } + +.fa-angrycreative:before { + content: "\f36e"; } + +.fa-angular:before { + content: "\f420"; } + +.fa-app-store:before { + content: "\f36f"; } + +.fa-app-store-ios:before { + content: "\f370"; } + +.fa-apper:before { + content: "\f371"; } + +.fa-apple:before { + content: "\f179"; } + +.fa-apple-pay:before { + content: "\f415"; } + +.fa-artstation:before { + content: "\f77a"; } + +.fa-asymmetrik:before { + content: "\f372"; } + +.fa-atlassian:before { + content: "\f77b"; } + +.fa-audible:before { + content: "\f373"; } + +.fa-autoprefixer:before { + content: "\f41c"; } + +.fa-avianex:before { + content: "\f374"; } + +.fa-aviato:before { + content: "\f421"; } + +.fa-aws:before { + content: "\f375"; } + +.fa-bandcamp:before { + content: "\f2d5"; } + +.fa-battle-net:before { + content: "\f835"; } + +.fa-behance:before { + content: "\f1b4"; } + +.fa-behance-square:before { + content: "\f1b5"; } + +.fa-bilibili:before { + content: "\e3d9"; } + +.fa-bimobject:before { + content: "\f378"; } + +.fa-bitbucket:before { + content: "\f171"; } + +.fa-bitcoin:before { + content: "\f379"; } + +.fa-bity:before { + content: "\f37a"; } + +.fa-black-tie:before { + content: "\f27e"; } + +.fa-blackberry:before { + content: "\f37b"; } + +.fa-blogger:before { + content: "\f37c"; } + +.fa-blogger-b:before { + content: "\f37d"; } + +.fa-bluetooth:before { + content: "\f293"; } + +.fa-bluetooth-b:before { + content: "\f294"; } + +.fa-bootstrap:before { + content: "\f836"; } + +.fa-bots:before { + content: "\e340"; } + +.fa-btc:before { + content: "\f15a"; } + +.fa-buffer:before { + content: "\f837"; } + +.fa-buromobelexperte:before { + content: "\f37f"; } + +.fa-buy-n-large:before { + content: "\f8a6"; } + +.fa-buysellads:before { + content: "\f20d"; } + +.fa-canadian-maple-leaf:before { + content: "\f785"; } + +.fa-cc-amazon-pay:before { + content: "\f42d"; } + +.fa-cc-amex:before { + content: "\f1f3"; } + +.fa-cc-apple-pay:before { + content: "\f416"; } + +.fa-cc-diners-club:before { + content: "\f24c"; } + +.fa-cc-discover:before { + content: "\f1f2"; } + +.fa-cc-jcb:before { + content: "\f24b"; } + +.fa-cc-mastercard:before { + content: "\f1f1"; } + +.fa-cc-paypal:before { + content: "\f1f4"; } + +.fa-cc-stripe:before { + content: "\f1f5"; } + +.fa-cc-visa:before { + content: "\f1f0"; } + +.fa-centercode:before { + content: "\f380"; } + +.fa-centos:before { + content: "\f789"; } + +.fa-chrome:before { + content: "\f268"; } + +.fa-chromecast:before { + content: "\f838"; } + +.fa-cloudflare:before { + content: "\e07d"; } + +.fa-cloudscale:before { + content: "\f383"; } + +.fa-cloudsmith:before { + content: "\f384"; } + +.fa-cloudversify:before { + content: "\f385"; } + +.fa-cmplid:before { + content: "\e360"; } + +.fa-codepen:before { + content: "\f1cb"; } + +.fa-codiepie:before { + content: "\f284"; } + +.fa-confluence:before { + content: "\f78d"; } + +.fa-connectdevelop:before { + content: "\f20e"; } + +.fa-contao:before { + content: "\f26d"; } + +.fa-cotton-bureau:before { + content: "\f89e"; } + +.fa-cpanel:before { + content: "\f388"; } + +.fa-creative-commons:before { + content: "\f25e"; } + +.fa-creative-commons-by:before { + content: "\f4e7"; } + +.fa-creative-commons-nc:before { + content: "\f4e8"; } + +.fa-creative-commons-nc-eu:before { + content: "\f4e9"; } + +.fa-creative-commons-nc-jp:before { + content: "\f4ea"; } + +.fa-creative-commons-nd:before { + content: "\f4eb"; } + +.fa-creative-commons-pd:before { + content: "\f4ec"; } + +.fa-creative-commons-pd-alt:before { + content: "\f4ed"; } + +.fa-creative-commons-remix:before { + content: "\f4ee"; } + +.fa-creative-commons-sa:before { + content: "\f4ef"; } + +.fa-creative-commons-sampling:before { + content: "\f4f0"; } + +.fa-creative-commons-sampling-plus:before { + content: "\f4f1"; } + +.fa-creative-commons-share:before { + content: "\f4f2"; } + +.fa-creative-commons-zero:before { + content: "\f4f3"; } + +.fa-critical-role:before { + content: "\f6c9"; } + +.fa-css3:before { + content: "\f13c"; } + +.fa-css3-alt:before { + content: "\f38b"; } + +.fa-cuttlefish:before { + content: "\f38c"; } + +.fa-d-and-d:before { + content: "\f38d"; } + +.fa-d-and-d-beyond:before { + content: "\f6ca"; } + +.fa-dailymotion:before { + content: "\e052"; } + +.fa-dashcube:before { + content: "\f210"; } + +.fa-deezer:before { + content: "\e077"; } + +.fa-delicious:before { + content: "\f1a5"; } + +.fa-deploydog:before { + content: "\f38e"; } + +.fa-deskpro:before { + content: "\f38f"; } + +.fa-dev:before { + content: "\f6cc"; } + +.fa-deviantart:before { + content: "\f1bd"; } + +.fa-dhl:before { + content: "\f790"; } + +.fa-diaspora:before { + content: "\f791"; } + +.fa-digg:before { + content: "\f1a6"; } + +.fa-digital-ocean:before { + content: "\f391"; } + +.fa-discord:before { + content: "\f392"; } + +.fa-discourse:before { + content: "\f393"; } + +.fa-dochub:before { + content: "\f394"; } + +.fa-docker:before { + content: "\f395"; } + +.fa-draft2digital:before { + content: "\f396"; } + +.fa-dribbble:before { + content: "\f17d"; } + +.fa-dribbble-square:before { + content: "\f397"; } + +.fa-dropbox:before { + content: "\f16b"; } + +.fa-drupal:before { + content: "\f1a9"; } + +.fa-dyalog:before { + content: "\f399"; } + +.fa-earlybirds:before { + content: "\f39a"; } + +.fa-ebay:before { + content: "\f4f4"; } + +.fa-edge:before { + content: "\f282"; } + +.fa-edge-legacy:before { + content: "\e078"; } + +.fa-elementor:before { + content: "\f430"; } + +.fa-ello:before { + content: "\f5f1"; } + +.fa-ember:before { + content: "\f423"; } + +.fa-empire:before { + content: "\f1d1"; } + +.fa-envira:before { + content: "\f299"; } + +.fa-erlang:before { + content: "\f39d"; } + +.fa-ethereum:before { + content: "\f42e"; } + +.fa-etsy:before { + content: "\f2d7"; } + +.fa-evernote:before { + content: "\f839"; } + +.fa-expeditedssl:before { + content: "\f23e"; } + +.fa-facebook:before { + content: "\f09a"; } + +.fa-facebook-f:before { + content: "\f39e"; } + +.fa-facebook-messenger:before { + content: "\f39f"; } + +.fa-facebook-square:before { + content: "\f082"; } + +.fa-fantasy-flight-games:before { + content: "\f6dc"; } + +.fa-fedex:before { + content: "\f797"; } + +.fa-fedora:before { + content: "\f798"; } + +.fa-figma:before { + content: "\f799"; } + +.fa-firefox:before { + content: "\f269"; } + +.fa-firefox-browser:before { + content: "\e007"; } + +.fa-first-order:before { + content: "\f2b0"; } + +.fa-first-order-alt:before { + content: "\f50a"; } + +.fa-firstdraft:before { + content: "\f3a1"; } + +.fa-flickr:before { + content: "\f16e"; } + +.fa-flipboard:before { + content: "\f44d"; } + +.fa-fly:before { + content: "\f417"; } + +.fa-font-awesome:before { + content: "\f2b4"; } + +.fa-font-awesome-flag:before { + content: "\f2b4"; } + +.fa-font-awesome-logo-full:before { + content: "\f2b4"; } + +.fa-fonticons:before { + content: "\f280"; } + +.fa-fonticons-fi:before { + content: "\f3a2"; } + +.fa-fort-awesome:before { + content: "\f286"; } + +.fa-fort-awesome-alt:before { + content: "\f3a3"; } + +.fa-forumbee:before { + content: "\f211"; } + +.fa-foursquare:before { + content: "\f180"; } + +.fa-free-code-camp:before { + content: "\f2c5"; } + +.fa-freebsd:before { + content: "\f3a4"; } + +.fa-fulcrum:before { + content: "\f50b"; } + +.fa-galactic-republic:before { + content: "\f50c"; } + +.fa-galactic-senate:before { + content: "\f50d"; } + +.fa-get-pocket:before { + content: "\f265"; } + +.fa-gg:before { + content: "\f260"; } + +.fa-gg-circle:before { + content: "\f261"; } + +.fa-git:before { + content: "\f1d3"; } + +.fa-git-alt:before { + content: "\f841"; } + +.fa-git-square:before { + content: "\f1d2"; } + +.fa-github:before { + content: "\f09b"; } + +.fa-github-alt:before { + content: "\f113"; } + +.fa-github-square:before { + content: "\f092"; } + +.fa-gitkraken:before { + content: "\f3a6"; } + +.fa-gitlab:before { + content: "\f296"; } + +.fa-gitter:before { + content: "\f426"; } + +.fa-glide:before { + content: "\f2a5"; } + +.fa-glide-g:before { + content: "\f2a6"; } + +.fa-gofore:before { + content: "\f3a7"; } + +.fa-golang:before { + content: "\e40f"; } + +.fa-goodreads:before { + content: "\f3a8"; } + +.fa-goodreads-g:before { + content: "\f3a9"; } + +.fa-google:before { + content: "\f1a0"; } + +.fa-google-drive:before { + content: "\f3aa"; } + +.fa-google-pay:before { + content: "\e079"; } + +.fa-google-play:before { + content: "\f3ab"; } + +.fa-google-plus:before { + content: "\f2b3"; } + +.fa-google-plus-g:before { + content: "\f0d5"; } + +.fa-google-plus-square:before { + content: "\f0d4"; } + +.fa-google-wallet:before { + content: "\f1ee"; } + +.fa-gratipay:before { + content: "\f184"; } + +.fa-grav:before { + content: "\f2d6"; } + +.fa-gripfire:before { + content: "\f3ac"; } + +.fa-grunt:before { + content: "\f3ad"; } + +.fa-guilded:before { + content: "\e07e"; } + +.fa-gulp:before { + content: "\f3ae"; } + +.fa-hacker-news:before { + content: "\f1d4"; } + +.fa-hacker-news-square:before { + content: "\f3af"; } + +.fa-hackerrank:before { + content: "\f5f7"; } + +.fa-hashnode:before { + content: "\e499"; } + +.fa-hips:before { + content: "\f452"; } + +.fa-hire-a-helper:before { + content: "\f3b0"; } + +.fa-hive:before { + content: "\e07f"; } + +.fa-hooli:before { + content: "\f427"; } + +.fa-hornbill:before { + content: "\f592"; } + +.fa-hotjar:before { + content: "\f3b1"; } + +.fa-houzz:before { + content: "\f27c"; } + +.fa-html5:before { + content: "\f13b"; } + +.fa-hubspot:before { + content: "\f3b2"; } + +.fa-ideal:before { + content: "\e013"; } + +.fa-imdb:before { + content: "\f2d8"; } + +.fa-instagram:before { + content: "\f16d"; } + +.fa-instagram-square:before { + content: "\e055"; } + +.fa-instalod:before { + content: "\e081"; } + +.fa-intercom:before { + content: "\f7af"; } + +.fa-internet-explorer:before { + content: "\f26b"; } + +.fa-invision:before { + content: "\f7b0"; } + +.fa-ioxhost:before { + content: "\f208"; } + +.fa-itch-io:before { + content: "\f83a"; } + +.fa-itunes:before { + content: "\f3b4"; } + +.fa-itunes-note:before { + content: "\f3b5"; } + +.fa-java:before { + content: "\f4e4"; } + +.fa-jedi-order:before { + content: "\f50e"; } + +.fa-jenkins:before { + content: "\f3b6"; } + +.fa-jira:before { + content: "\f7b1"; } + +.fa-joget:before { + content: "\f3b7"; } + +.fa-joomla:before { + content: "\f1aa"; } + +.fa-js:before { + content: "\f3b8"; } + +.fa-js-square:before { + content: "\f3b9"; } + +.fa-jsfiddle:before { + content: "\f1cc"; } + +.fa-kaggle:before { + content: "\f5fa"; } + +.fa-keybase:before { + content: "\f4f5"; } + +.fa-keycdn:before { + content: "\f3ba"; } + +.fa-kickstarter:before { + content: "\f3bb"; } + +.fa-kickstarter-k:before { + content: "\f3bc"; } + +.fa-korvue:before { + content: "\f42f"; } + +.fa-laravel:before { + content: "\f3bd"; } + +.fa-lastfm:before { + content: "\f202"; } + +.fa-lastfm-square:before { + content: "\f203"; } + +.fa-leanpub:before { + content: "\f212"; } + +.fa-less:before { + content: "\f41d"; } + +.fa-line:before { + content: "\f3c0"; } + +.fa-linkedin:before { + content: "\f08c"; } + +.fa-linkedin-in:before { + content: "\f0e1"; } + +.fa-linode:before { + content: "\f2b8"; } + +.fa-linux:before { + content: "\f17c"; } + +.fa-lyft:before { + content: "\f3c3"; } + +.fa-magento:before { + content: "\f3c4"; } + +.fa-mailchimp:before { + content: "\f59e"; } + +.fa-mandalorian:before { + content: "\f50f"; } + +.fa-markdown:before { + content: "\f60f"; } + +.fa-mastodon:before { + content: "\f4f6"; } + +.fa-maxcdn:before { + content: "\f136"; } + +.fa-mdb:before { + content: "\f8ca"; } + +.fa-medapps:before { + content: "\f3c6"; } + +.fa-medium:before { + content: "\f23a"; } + +.fa-medium-m:before { + content: "\f23a"; } + +.fa-medrt:before { + content: "\f3c8"; } + +.fa-meetup:before { + content: "\f2e0"; } + +.fa-megaport:before { + content: "\f5a3"; } + +.fa-mendeley:before { + content: "\f7b3"; } + +.fa-microblog:before { + content: "\e01a"; } + +.fa-microsoft:before { + content: "\f3ca"; } + +.fa-mix:before { + content: "\f3cb"; } + +.fa-mixcloud:before { + content: "\f289"; } + +.fa-mixer:before { + content: "\e056"; } + +.fa-mizuni:before { + content: "\f3cc"; } + +.fa-modx:before { + content: "\f285"; } + +.fa-monero:before { + content: "\f3d0"; } + +.fa-napster:before { + content: "\f3d2"; } + +.fa-neos:before { + content: "\f612"; } + +.fa-nfc-directional:before { + content: "\e530"; } + +.fa-nfc-symbol:before { + content: "\e531"; } + +.fa-nimblr:before { + content: "\f5a8"; } + +.fa-node:before { + content: "\f419"; } + +.fa-node-js:before { + content: "\f3d3"; } + +.fa-npm:before { + content: "\f3d4"; } + +.fa-ns8:before { + content: "\f3d5"; } + +.fa-nutritionix:before { + content: "\f3d6"; } + +.fa-octopus-deploy:before { + content: "\e082"; } + +.fa-odnoklassniki:before { + content: "\f263"; } + +.fa-odnoklassniki-square:before { + content: "\f264"; } + +.fa-old-republic:before { + content: "\f510"; } + +.fa-opencart:before { + content: "\f23d"; } + +.fa-openid:before { + content: "\f19b"; } + +.fa-opera:before { + content: "\f26a"; } + +.fa-optin-monster:before { + content: "\f23c"; } + +.fa-orcid:before { + content: "\f8d2"; } + +.fa-osi:before { + content: "\f41a"; } + +.fa-padlet:before { + content: "\e4a0"; } + +.fa-page4:before { + content: "\f3d7"; } + +.fa-pagelines:before { + content: "\f18c"; } + +.fa-palfed:before { + content: "\f3d8"; } + +.fa-patreon:before { + content: "\f3d9"; } + +.fa-paypal:before { + content: "\f1ed"; } + +.fa-perbyte:before { + content: "\e083"; } + +.fa-periscope:before { + content: "\f3da"; } + +.fa-phabricator:before { + content: "\f3db"; } + +.fa-phoenix-framework:before { + content: "\f3dc"; } + +.fa-phoenix-squadron:before { + content: "\f511"; } + +.fa-php:before { + content: "\f457"; } + +.fa-pied-piper:before { + content: "\f2ae"; } + +.fa-pied-piper-alt:before { + content: "\f1a8"; } + +.fa-pied-piper-hat:before { + content: "\f4e5"; } + +.fa-pied-piper-pp:before { + content: "\f1a7"; } + +.fa-pied-piper-square:before { + content: "\e01e"; } + +.fa-pinterest:before { + content: "\f0d2"; } + +.fa-pinterest-p:before { + content: "\f231"; } + +.fa-pinterest-square:before { + content: "\f0d3"; } + +.fa-pix:before { + content: "\e43a"; } + +.fa-playstation:before { + content: "\f3df"; } + +.fa-product-hunt:before { + content: "\f288"; } + +.fa-pushed:before { + content: "\f3e1"; } + +.fa-python:before { + content: "\f3e2"; } + +.fa-qq:before { + content: "\f1d6"; } + +.fa-quinscape:before { + content: "\f459"; } + +.fa-quora:before { + content: "\f2c4"; } + +.fa-r-project:before { + content: "\f4f7"; } + +.fa-raspberry-pi:before { + content: "\f7bb"; } + +.fa-ravelry:before { + content: "\f2d9"; } + +.fa-react:before { + content: "\f41b"; } + +.fa-reacteurope:before { + content: "\f75d"; } + +.fa-readme:before { + content: "\f4d5"; } + +.fa-rebel:before { + content: "\f1d0"; } + +.fa-red-river:before { + content: "\f3e3"; } + +.fa-reddit:before { + content: "\f1a1"; } + +.fa-reddit-alien:before { + content: "\f281"; } + +.fa-reddit-square:before { + content: "\f1a2"; } + +.fa-redhat:before { + content: "\f7bc"; } + +.fa-renren:before { + content: "\f18b"; } + +.fa-replyd:before { + content: "\f3e6"; } + +.fa-researchgate:before { + content: "\f4f8"; } + +.fa-resolving:before { + content: "\f3e7"; } + +.fa-rev:before { + content: "\f5b2"; } + +.fa-rocketchat:before { + content: "\f3e8"; } + +.fa-rockrms:before { + content: "\f3e9"; } + +.fa-rust:before { + content: "\e07a"; } + +.fa-safari:before { + content: "\f267"; } + +.fa-salesforce:before { + content: "\f83b"; } + +.fa-sass:before { + content: "\f41e"; } + +.fa-schlix:before { + content: "\f3ea"; } + +.fa-screenpal:before { + content: "\e570"; } + +.fa-scribd:before { + content: "\f28a"; } + +.fa-searchengin:before { + content: "\f3eb"; } + +.fa-sellcast:before { + content: "\f2da"; } + +.fa-sellsy:before { + content: "\f213"; } + +.fa-servicestack:before { + content: "\f3ec"; } + +.fa-shirtsinbulk:before { + content: "\f214"; } + +.fa-shopify:before { + content: "\e057"; } + +.fa-shopware:before { + content: "\f5b5"; } + +.fa-simplybuilt:before { + content: "\f215"; } + +.fa-sistrix:before { + content: "\f3ee"; } + +.fa-sith:before { + content: "\f512"; } + +.fa-sitrox:before { + content: "\e44a"; } + +.fa-sketch:before { + content: "\f7c6"; } + +.fa-skyatlas:before { + content: "\f216"; } + +.fa-skype:before { + content: "\f17e"; } + +.fa-slack:before { + content: "\f198"; } + +.fa-slack-hash:before { + content: "\f198"; } + +.fa-slideshare:before { + content: "\f1e7"; } + +.fa-snapchat:before { + content: "\f2ab"; } + +.fa-snapchat-ghost:before { + content: "\f2ab"; } + +.fa-snapchat-square:before { + content: "\f2ad"; } + +.fa-soundcloud:before { + content: "\f1be"; } + +.fa-sourcetree:before { + content: "\f7d3"; } + +.fa-speakap:before { + content: "\f3f3"; } + +.fa-speaker-deck:before { + content: "\f83c"; } + +.fa-spotify:before { + content: "\f1bc"; } + +.fa-square-font-awesome:before { + content: "\f425"; } + +.fa-square-font-awesome-stroke:before { + content: "\f35c"; } + +.fa-font-awesome-alt:before { + content: "\f35c"; } + +.fa-squarespace:before { + content: "\f5be"; } + +.fa-stack-exchange:before { + content: "\f18d"; } + +.fa-stack-overflow:before { + content: "\f16c"; } + +.fa-stackpath:before { + content: "\f842"; } + +.fa-staylinked:before { + content: "\f3f5"; } + +.fa-steam:before { + content: "\f1b6"; } + +.fa-steam-square:before { + content: "\f1b7"; } + +.fa-steam-symbol:before { + content: "\f3f6"; } + +.fa-sticker-mule:before { + content: "\f3f7"; } + +.fa-strava:before { + content: "\f428"; } + +.fa-stripe:before { + content: "\f429"; } + +.fa-stripe-s:before { + content: "\f42a"; } + +.fa-studiovinari:before { + content: "\f3f8"; } + +.fa-stumbleupon:before { + content: "\f1a4"; } + +.fa-stumbleupon-circle:before { + content: "\f1a3"; } + +.fa-superpowers:before { + content: "\f2dd"; } + +.fa-supple:before { + content: "\f3f9"; } + +.fa-suse:before { + content: "\f7d6"; } + +.fa-swift:before { + content: "\f8e1"; } + +.fa-symfony:before { + content: "\f83d"; } + +.fa-teamspeak:before { + content: "\f4f9"; } + +.fa-telegram:before { + content: "\f2c6"; } + +.fa-telegram-plane:before { + content: "\f2c6"; } + +.fa-tencent-weibo:before { + content: "\f1d5"; } + +.fa-the-red-yeti:before { + content: "\f69d"; } + +.fa-themeco:before { + content: "\f5c6"; } + +.fa-themeisle:before { + content: "\f2b2"; } + +.fa-think-peaks:before { + content: "\f731"; } + +.fa-tiktok:before { + content: "\e07b"; } + +.fa-trade-federation:before { + content: "\f513"; } + +.fa-trello:before { + content: "\f181"; } + +.fa-tumblr:before { + content: "\f173"; } + +.fa-tumblr-square:before { + content: "\f174"; } + +.fa-twitch:before { + content: "\f1e8"; } + +.fa-twitter:before { + content: "\f099"; } + +.fa-twitter-square:before { + content: "\f081"; } + +.fa-typo3:before { + content: "\f42b"; } + +.fa-uber:before { + content: "\f402"; } + +.fa-ubuntu:before { + content: "\f7df"; } + +.fa-uikit:before { + content: "\f403"; } + +.fa-umbraco:before { + content: "\f8e8"; } + +.fa-uncharted:before { + content: "\e084"; } + +.fa-uniregistry:before { + content: "\f404"; } + +.fa-unity:before { + content: "\e049"; } + +.fa-unsplash:before { + content: "\e07c"; } + +.fa-untappd:before { + content: "\f405"; } + +.fa-ups:before { + content: "\f7e0"; } + +.fa-usb:before { + content: "\f287"; } + +.fa-usps:before { + content: "\f7e1"; } + +.fa-ussunnah:before { + content: "\f407"; } + +.fa-vaadin:before { + content: "\f408"; } + +.fa-viacoin:before { + content: "\f237"; } + +.fa-viadeo:before { + content: "\f2a9"; } + +.fa-viadeo-square:before { + content: "\f2aa"; } + +.fa-viber:before { + content: "\f409"; } + +.fa-vimeo:before { + content: "\f40a"; } + +.fa-vimeo-square:before { + content: "\f194"; } + +.fa-vimeo-v:before { + content: "\f27d"; } + +.fa-vine:before { + content: "\f1ca"; } + +.fa-vk:before { + content: "\f189"; } + +.fa-vnv:before { + content: "\f40b"; } + +.fa-vuejs:before { + content: "\f41f"; } + +.fa-watchman-monitoring:before { + content: "\e087"; } + +.fa-waze:before { + content: "\f83f"; } + +.fa-weebly:before { + content: "\f5cc"; } + +.fa-weibo:before { + content: "\f18a"; } + +.fa-weixin:before { + content: "\f1d7"; } + +.fa-whatsapp:before { + content: "\f232"; } + +.fa-whatsapp-square:before { + content: "\f40c"; } + +.fa-whmcs:before { + content: "\f40d"; } + +.fa-wikipedia-w:before { + content: "\f266"; } + +.fa-windows:before { + content: "\f17a"; } + +.fa-wirsindhandwerk:before { + content: "\e2d0"; } + +.fa-wsh:before { + content: "\e2d0"; } + +.fa-wix:before { + content: "\f5cf"; } + +.fa-wizards-of-the-coast:before { + content: "\f730"; } + +.fa-wodu:before { + content: "\e088"; } + +.fa-wolf-pack-battalion:before { + content: "\f514"; } + +.fa-wordpress:before { + content: "\f19a"; } + +.fa-wordpress-simple:before { + content: "\f411"; } + +.fa-wpbeginner:before { + content: "\f297"; } + +.fa-wpexplorer:before { + content: "\f2de"; } + +.fa-wpforms:before { + content: "\f298"; } + +.fa-wpressr:before { + content: "\f3e4"; } + +.fa-xbox:before { + content: "\f412"; } + +.fa-xing:before { + content: "\f168"; } + +.fa-xing-square:before { + content: "\f169"; } + +.fa-y-combinator:before { + content: "\f23b"; } + +.fa-yahoo:before { + content: "\f19e"; } + +.fa-yammer:before { + content: "\f840"; } + +.fa-yandex:before { + content: "\f413"; } + +.fa-yandex-international:before { + content: "\f414"; } + +.fa-yarn:before { + content: "\f7e3"; } + +.fa-yelp:before { + content: "\f1e9"; } + +.fa-yoast:before { + content: "\f2b1"; } + +.fa-youtube:before { + content: "\f167"; } + +.fa-youtube-square:before { + content: "\f431"; } + +.fa-zhihu:before { + content: "\f63f"; } +:root, :host { + --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Free"; } + +@font-face { + font-family: 'Font Awesome 6 Free'; + font-style: normal; + font-weight: 400; + font-display: block; + src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); } + +.far, +.fa-regular { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } +:root, :host { + --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Free"; } + +@font-face { + font-family: 'Font Awesome 6 Free'; + font-style: normal; + font-weight: 900; + font-display: block; + src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } + +.fas, +.fa-solid { + font-family: 'Font Awesome 6 Free'; + font-weight: 900; } +@font-face { + font-family: "Font Awesome 5 Brands"; + font-display: block; + font-weight: 400; + src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } + +@font-face { + font-family: "Font Awesome 5 Free"; + font-display: block; + font-weight: 900; + src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } + +@font-face { + font-family: "Font Awesome 5 Free"; + font-display: block; + font-weight: 400; + src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); } +@font-face { + font-family: "FontAwesome"; + font-display: block; + src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } + +@font-face { + font-family: "FontAwesome"; + font-display: block; + src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } + +@font-face { + font-family: "FontAwesome"; + font-display: block; + src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); + unicode-range: U+F003,U+F006,U+F014,U+F016-F017,U+F01A-F01B,U+F01D,U+F022,U+F03E,U+F044,U+F046,U+F05C-F05D,U+F06E,U+F070,U+F087-F088,U+F08A,U+F094,U+F096-F097,U+F09D,U+F0A0,U+F0A2,U+F0A4-F0A7,U+F0C5,U+F0C7,U+F0E5-F0E6,U+F0EB,U+F0F6-F0F8,U+F10C,U+F114-F115,U+F118-F11A,U+F11C-F11D,U+F133,U+F147,U+F14E,U+F150-F152,U+F185-F186,U+F18E,U+F190-F192,U+F196,U+F1C1-F1C9,U+F1D9,U+F1DB,U+F1E3,U+F1EA,U+F1F7,U+F1F9,U+F20A,U+F247-F248,U+F24A,U+F24D,U+F255-F25B,U+F25D,U+F271-F274,U+F278,U+F27B,U+F28C,U+F28E,U+F29C,U+F2B5,U+F2B7,U+F2BA,U+F2BC,U+F2BE,U+F2C0-F2C1,U+F2C3,U+F2D0,U+F2D2,U+F2D4,U+F2DC; } + +@font-face { + font-family: "FontAwesome"; + font-display: block; + src: url("../webfonts/fa-v4compatibility.woff2") format("woff2"), url("../webfonts/fa-v4compatibility.ttf") format("truetype"); + unicode-range: U+F041,U+F047,U+F065-F066,U+F07D-F07E,U+F080,U+F08B,U+F08E,U+F090,U+F09A,U+F0AC,U+F0AE,U+F0B2,U+F0D0,U+F0D6,U+F0E4,U+F0EC,U+F10A-F10B,U+F123,U+F13E,U+F148-F149,U+F14C,U+F156,U+F15E,U+F160-F161,U+F163,U+F175-F178,U+F195,U+F1F8,U+F219,U+F250,U+F252,U+F27A; } diff --git a/test_tube_scanner/home/static/css/all.min.css b/test_tube_scanner/home/static/css/all.min.css new file mode 100644 index 0000000..9b2ac09 --- /dev/null +++ b/test_tube_scanner/home/static/css/all.min.css @@ -0,0 +1,6 @@ +/*! + * Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2022 Fonticons, Inc. + */ +.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-duotone,.fa-light,.fa-regular,.fa-solid,.fa-thin,.fab,.fad,.fal,.far,.fas,.fat{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,none));transform:rotate(var(--fa-rotate-angle,none))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-0:before{content:"\30"}.fa-1:before{content:"\31"}.fa-2:before{content:"\32"}.fa-3:before{content:"\33"}.fa-4:before{content:"\34"}.fa-5:before{content:"\35"}.fa-6:before{content:"\36"}.fa-7:before{content:"\37"}.fa-8:before{content:"\38"}.fa-9:before{content:"\39"}.fa-a:before{content:"\41"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-anchor:before{content:"\f13d"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-anchor-lock:before{content:"\e4ad"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-ankh:before{content:"\f644"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-archway:before{content:"\f557"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-arrow-trend-down:before{content:"\e097"}.fa-arrow-trend-up:before{content:"\e098"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-arrows-spin:before{content:"\e4bb"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-asterisk:before{content:"\2a"}.fa-at:before{content:"\40"}.fa-atom:before{content:"\f5d2"}.fa-audio-description:before{content:"\f29e"}.fa-austral-sign:before{content:"\e0a9"}.fa-award:before{content:"\f559"}.fa-b:before{content:"\42"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-backward:before{content:"\f04a"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-bacon:before{content:"\f7e5"}.fa-bacteria:before{content:"\e059"}.fa-bacterium:before{content:"\e05a"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-bahai:before{content:"\f666"}.fa-baht-sign:before{content:"\e0ac"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-barcode:before{content:"\f02a"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-bell:before{content:"\f0f3"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bicycle:before{content:"\f206"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blog:before{content:"\f781"}.fa-bold:before{content:"\f032"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-book-bookmark:before{content:"\e0bb"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-bookmark:before{content:"\f02e"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-bore-hole:before{content:"\e4c3"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-bottle-water:before{content:"\e4c5"}.fa-bowl-food:before{content:"\e4c6"}.fa-bowl-rice:before{content:"\e2eb"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-box-open:before{content:"\f49e"}.fa-box-tissue:before{content:"\e05b"}.fa-boxes-packing:before{content:"\e4c7"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-bread-slice:before{content:"\f7ec"}.fa-bridge:before{content:"\e4c8"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-bridge-lock:before{content:"\e4cc"}.fa-bridge-water:before{content:"\e4ce"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broom:before{content:"\f51a"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-brush:before{content:"\f55d"}.fa-bucket:before{content:"\e4cf"}.fa-bug:before{content:"\f188"}.fa-bug-slash:before{content:"\e490"}.fa-bugs:before{content:"\e4d0"}.fa-building:before{content:"\f1ad"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-building-circle-check:before{content:"\e4d2"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-building-flag:before{content:"\e4d5"}.fa-building-lock:before{content:"\e4d6"}.fa-building-ngo:before{content:"\e4d7"}.fa-building-shield:before{content:"\e4d8"}.fa-building-un:before{content:"\e4d9"}.fa-building-user:before{content:"\e4da"}.fa-building-wheat:before{content:"\e4db"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-burst:before{content:"\e4dc"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-c:before{content:"\43"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-week:before{content:"\f784"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-camera-rotate:before{content:"\e0d8"}.fa-campground:before{content:"\f6bb"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-car-burst:before,.fa-car-crash:before{content:"\f5e1"}.fa-car-on:before{content:"\e4dd"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-car-side:before{content:"\f5e4"}.fa-car-tunnel:before{content:"\e4de"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-cart-plus:before{content:"\f217"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cedi-sign:before{content:"\e0df"}.fa-cent-sign:before{content:"\e3f5"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-charging-station:before{content:"\f5e7"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-chart-column:before{content:"\e0e3"}.fa-chart-gantt:before{content:"\e0e4"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-chart-simple:before{content:"\e473"}.fa-check:before{content:"\f00c"}.fa-check-double:before{content:"\f560"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-child-dress:before{content:"\e59c"}.fa-child-reaching:before{content:"\e59d"}.fa-child-rifle:before{content:"\e4e0"}.fa-children:before{content:"\e4e1"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-circle-nodes:before{content:"\e4e2"}.fa-circle-notch:before{content:"\f1ce"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-city:before{content:"\f64f"}.fa-clapperboard:before{content:"\e131"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clipboard-question:before{content:"\e4e3"}.fa-clipboard-user:before{content:"\f7f3"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:"\f76c"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-clover:before{content:"\e139"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-code-commit:before{content:"\f386"}.fa-code-compare:before{content:"\e13a"}.fa-code-fork:before{content:"\e13b"}.fa-code-merge:before{content:"\f387"}.fa-code-pull-request:before{content:"\e13c"}.fa-coins:before{content:"\f51e"}.fa-colon-sign:before{content:"\e140"}.fa-comment:before{content:"\f075"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-compress:before{content:"\f066"}.fa-computer:before{content:"\e4e5"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cow:before{content:"\f6c8"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-d:before{content:"\44"}.fa-database:before{content:"\f1c0"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-democrat:before{content:"\f747"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-dharmachakra:before{content:"\f655"}.fa-diagram-next:before{content:"\e476"}.fa-diagram-predecessor:before{content:"\e477"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-diagram-successor:before{content:"\e47a"}.fa-diamond:before{content:"\f219"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-disease:before{content:"\f7fa"}.fa-display:before{content:"\e163"}.fa-divide:before{content:"\f529"}.fa-dna:before{content:"\f471"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-dong-sign:before{content:"\e169"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dove:before{content:"\f4ba"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-download:before{content:"\f019"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-e:before{content:"\45"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elevator:before{content:"\e16d"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-equals:before{content:"\3d"}.fa-eraser:before{content:"\f12d"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-exclamation:before{content:"\21"}.fa-expand:before{content:"\f065"}.fa-explosion:before{content:"\e4e9"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-eye-slash:before{content:"\f070"}.fa-f:before{content:"\46"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-fan:before{content:"\f863"}.fa-faucet:before{content:"\e005"}.fa-faucet-drip:before{content:"\e006"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-ferry:before{content:"\e4ea"}.fa-file:before{content:"\f15b"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-file-audio:before{content:"\f1c7"}.fa-file-circle-check:before{content:"\e493"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-file-circle-plus:before{content:"\e4ee"}.fa-file-circle-question:before{content:"\e4ef"}.fa-file-circle-xmark:before{content:"\e494"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-excel:before{content:"\f1c3"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-file-medical:before{content:"\f477"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-edit:before,.fa-file-pen:before{content:"\f31c"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-shield:before{content:"\e4f0"}.fa-file-signature:before{content:"\f573"}.fa-file-video:before{content:"\f1c8"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-file-word:before{content:"\f1c2"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-burner:before{content:"\e4f1"}.fa-fire-extinguisher:before{content:"\f134"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-fish:before{content:"\f578"}.fa-fish-fins:before{content:"\e4f2"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flask-vial:before{content:"\e4f3"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-florin-sign:before{content:"\e184"}.fa-folder-blank:before,.fa-folder:before{content:"\f07b"}.fa-folder-closed:before{content:"\e185"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-folder-tree:before{content:"\f802"}.fa-font:before{content:"\f031"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-franc-sign:before{content:"\e18f"}.fa-frog:before{content:"\f52e"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-g:before{content:"\47"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-glass-water:before{content:"\e4f4"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-glasses:before{content:"\f530"}.fa-globe:before{content:"\f0ac"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-greater-than:before{content:"\3e"}.fa-greater-than-equal:before{content:"\f532"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-guarani-sign:before{content:"\e19a"}.fa-guitar:before{content:"\f7a6"}.fa-gun:before{content:"\e19b"}.fa-h:before{content:"\48"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-sparkles:before{content:"\e05d"}.fa-hand-spock:before{content:"\f259"}.fa-handcuffs:before{content:"\e4f8"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-hands-bound:before{content:"\e4f9"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-hands-clapping:before{content:"\e1a8"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-handshake:before{content:"\f2b5"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:"\f4c6"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-handshake-slash:before{content:"\e060"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-hashtag:before{content:"\23"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-head-side-cough:before{content:"\e061"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-head-side-mask:before{content:"\e063"}.fa-head-side-virus:before{content:"\e064"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-heart-circle-plus:before{content:"\e500"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-helicopter-symbol:before{content:"\e502"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-helmet-un:before{content:"\e503"}.fa-highlighter:before{content:"\f591"}.fa-hill-avalanche:before{content:"\e507"}.fa-hill-rockslide:before{content:"\e508"}.fa-hippo:before{content:"\f6ed"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-hospital-user:before{content:"\f80d"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hourglass-2:before,.fa-hourglass-half:before,.fa-hourglass:before{content:"\f254"}.fa-hourglass-empty:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-house-chimney-user:before{content:"\e065"}.fa-house-chimney-window:before{content:"\e00d"}.fa-house-circle-check:before{content:"\e509"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-house-crack:before{content:"\e3b1"}.fa-house-fire:before{content:"\e50c"}.fa-house-flag:before{content:"\e50d"}.fa-house-flood-water:before{content:"\e50e"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-house-lock:before{content:"\e510"}.fa-house-medical:before{content:"\e3b2"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-house-medical-flag:before{content:"\e514"}.fa-house-signal:before{content:"\e012"}.fa-house-tsunami:before{content:"\e515"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-hurricane:before{content:"\f751"}.fa-i:before{content:"\49"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-images:before{content:"\f302"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-italic:before{content:"\f033"}.fa-j:before{content:"\4a"}.fa-jar:before{content:"\e516"}.fa-jar-wheat:before{content:"\e517"}.fa-jedi:before{content:"\f669"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-jet-fighter-up:before{content:"\e518"}.fa-joint:before{content:"\f595"}.fa-jug-detergent:before{content:"\e519"}.fa-k:before{content:"\4b"}.fa-kaaba:before{content:"\f66b"}.fa-key:before{content:"\f084"}.fa-keyboard:before{content:"\f11c"}.fa-khanda:before{content:"\f66d"}.fa-kip-sign:before{content:"\e1c4"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-kitchen-set:before{content:"\e51a"}.fa-kiwi-bird:before{content:"\f535"}.fa-l:before{content:"\4c"}.fa-land-mine-on:before{content:"\e51b"}.fa-landmark:before{content:"\f66f"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:"\f752"}.fa-landmark-flag:before{content:"\e51c"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-file:before{content:"\e51d"}.fa-laptop-medical:before{content:"\f812"}.fa-lari-sign:before{content:"\e1c8"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-lemon:before{content:"\f094"}.fa-less-than:before{content:"\3c"}.fa-less-than-equal:before{content:"\f537"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-lines-leaning:before{content:"\e51e"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-lira-sign:before{content:"\f195"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-location-arrow:before{content:"\f124"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-location-pin-lock:before{content:"\e51f"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-locust:before{content:"\e520"}.fa-lungs:before{content:"\f604"}.fa-lungs-virus:before{content:"\e067"}.fa-m:before{content:"\4d"}.fa-magnet:before{content:"\f076"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-manat-sign:before{content:"\e1d5"}.fa-map:before{content:"\f279"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-pin:before{content:"\f276"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-and-venus:before{content:"\f224"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-mask:before{content:"\f6fa"}.fa-mask-face:before{content:"\e1d7"}.fa-mask-ventilator:before{content:"\e524"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-mattress-pillow:before{content:"\e525"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-medal:before{content:"\f5a2"}.fa-memory:before{content:"\f538"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-meteor:before{content:"\f753"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-mill-sign:before{content:"\e1ed"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-mitten:before{content:"\f7b5"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-mobile-button:before{content:"\f10b"}.fa-mobile-retro:before{content:"\e527"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:"\f3cf"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-money-bills:before{content:"\e1f3"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-mosquito:before{content:"\e52b"}.fa-mosquito-net:before{content:"\e52c"}.fa-motorcycle:before{content:"\f21c"}.fa-mound:before{content:"\e52d"}.fa-mountain:before{content:"\f6fc"}.fa-mountain-city:before{content:"\e52e"}.fa-mountain-sun:before{content:"\e52f"}.fa-mug-hot:before{content:"\f7b6"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-music:before{content:"\f001"}.fa-n:before{content:"\4e"}.fa-naira-sign:before{content:"\e1f6"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-not-equal:before{content:"\f53e"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-notes-medical:before{content:"\f481"}.fa-o:before{content:"\4f"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-oil-can:before{content:"\f613"}.fa-oil-well:before{content:"\e532"}.fa-om:before{content:"\f679"}.fa-otter:before{content:"\f700"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-p:before{content:"\50"}.fa-pager:before{content:"\f815"}.fa-paint-roller:before{content:"\f5aa"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-palette:before{content:"\f53f"}.fa-pallet:before{content:"\f482"}.fa-panorama:before{content:"\e209"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-passport:before{content:"\f5ab"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-pause:before{content:"\f04c"}.fa-paw:before{content:"\f1b0"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-people-group:before{content:"\e533"}.fa-people-line:before{content:"\e534"}.fa-people-pulling:before{content:"\e535"}.fa-people-robbery:before{content:"\e536"}.fa-people-roof:before{content:"\e537"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-person-booth:before{content:"\f756"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-person-burst:before{content:"\e53b"}.fa-person-cane:before{content:"\e53c"}.fa-person-chalkboard:before{content:"\e53d"}.fa-person-circle-check:before{content:"\e53e"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-person-circle-minus:before{content:"\e540"}.fa-person-circle-plus:before{content:"\e541"}.fa-person-circle-question:before{content:"\e542"}.fa-person-circle-xmark:before{content:"\e543"}.fa-digging:before,.fa-person-digging:before{content:"\f85e"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-person-dress-burst:before{content:"\e544"}.fa-person-drowning:before{content:"\e545"}.fa-person-falling:before{content:"\e546"}.fa-person-falling-burst:before{content:"\e547"}.fa-person-half-dress:before{content:"\e548"}.fa-person-harassing:before{content:"\e549"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-person-military-pointing:before{content:"\e54a"}.fa-person-military-rifle:before{content:"\e54b"}.fa-person-military-to-person:before{content:"\e54c"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-person-pregnant:before{content:"\e31e"}.fa-person-rays:before{content:"\e54d"}.fa-person-rifle:before{content:"\e54e"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-person-shelter:before{content:"\e54f"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-person-through-window:before{content:"\e433"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-person-walking-luggage:before{content:"\e554"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-peseta-sign:before{content:"\e221"}.fa-peso-sign:before{content:"\e222"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-circle-check:before{content:"\e555"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-plane-departure:before{content:"\f5b0"}.fa-plane-lock:before{content:"\e558"}.fa-plane-slash:before{content:"\e069"}.fa-plane-up:before{content:"\e22d"}.fa-plant-wilt:before{content:"\e43b"}.fa-plate-wheat:before{content:"\e55a"}.fa-play:before{content:"\f04b"}.fa-plug:before{content:"\f1e6"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-plug-circle-check:before{content:"\e55c"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-plus-minus:before{content:"\e43c"}.fa-podcast:before{content:"\f2ce"}.fa-poo:before{content:"\f2fe"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-power-off:before{content:"\f011"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-pump-medical:before{content:"\e06a"}.fa-pump-soap:before{content:"\e06b"}.fa-puzzle-piece:before{content:"\f12e"}.fa-q:before{content:"\51"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\3f"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-r:before{content:"\52"}.fa-radiation:before{content:"\f7b9"}.fa-radio:before{content:"\f8d7"}.fa-rainbow:before{content:"\f75b"}.fa-ranking-star:before{content:"\e561"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-recycle:before{content:"\f1b8"}.fa-registered:before{content:"\f25d"}.fa-repeat:before{content:"\f363"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-republican:before{content:"\f75e"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-ribbon:before{content:"\f4d6"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-road-barrier:before{content:"\e562"}.fa-road-bridge:before{content:"\e563"}.fa-road-circle-check:before{content:"\e564"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-road-circle-xmark:before{content:"\e566"}.fa-road-lock:before{content:"\e567"}.fa-road-spikes:before{content:"\e568"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-route:before{content:"\f4d7"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-rug:before{content:"\e569"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-rupiah-sign:before{content:"\e23d"}.fa-s:before{content:"\53"}.fa-sack-dollar:before{content:"\f81d"}.fa-sack-xmark:before{content:"\e56a"}.fa-sailboat:before{content:"\e445"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-school:before{content:"\f549"}.fa-school-circle-check:before{content:"\e56b"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-school-flag:before{content:"\e56e"}.fa-school-lock:before{content:"\e56f"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-screwdriver:before{content:"\f54a"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-scroll:before{content:"\f70e"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-sd-card:before{content:"\f7c2"}.fa-section:before{content:"\e447"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-server:before{content:"\f233"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-arrow-turn-right:before,.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-sheet-plastic:before{content:"\e571"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-shield-blank:before,.fa-shield:before{content:"\f132"}.fa-shield-cat:before{content:"\e572"}.fa-shield-dog:before{content:"\e573"}.fa-shield-alt:before,.fa-shield-halved:before{content:"\f3ed"}.fa-shield-heart:before{content:"\e574"}.fa-shield-virus:before{content:"\e06c"}.fa-ship:before{content:"\f21a"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-shoe-prints:before{content:"\f54b"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-shop-lock:before{content:"\e4a5"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-shower:before{content:"\f2cc"}.fa-shrimp:before{content:"\e448"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-sim-card:before{content:"\f7c4"}.fa-sink:before{content:"\e06d"}.fa-sitemap:before{content:"\f0e8"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-soap:before{content:"\e06e"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-spa:before{content:"\f5bb"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-spray-can:before{content:"\f5bd"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-square:before{content:"\f0c8"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-square-full:before{content:"\f45c"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-square-nfi:before{content:"\e576"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-square-person-confined:before{content:"\e577"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-square-virus:before{content:"\e578"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:"\e579"}.fa-stairs:before{content:"\e289"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-stethoscope:before{content:"\f0f1"}.fa-stop:before{content:"\f04d"}.fa-stopwatch:before{content:"\f2f2"}.fa-stopwatch-20:before{content:"\e06f"}.fa-store:before{content:"\f54e"}.fa-store-slash:before{content:"\e071"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stroopwafel:before{content:"\f551"}.fa-subscript:before{content:"\f12c"}.fa-suitcase:before{content:"\f0f2"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-superscript:before{content:"\f12b"}.fa-swatchbook:before{content:"\f5c3"}.fa-synagogue:before{content:"\f69b"}.fa-syringe:before{content:"\f48e"}.fa-t:before{content:"\54"}.fa-table:before{content:"\f0ce"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-tablet-button:before{content:"\f10a"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tarp:before{content:"\e57b"}.fa-tarp-droplet:before{content:"\e57c"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:"\e03f"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:"\e040"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-tent:before{content:"\e57d"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-tent-arrows-down:before{content:"\e581"}.fa-tents:before{content:"\e582"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-text-width:before{content:"\f035"}.fa-thermometer:before{content:"\f491"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-ticket:before{content:"\f145"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-timeline:before{content:"\e29c"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-toilet-portable:before{content:"\e583"}.fa-toilets-portable:before{content:"\e584"}.fa-toolbox:before{content:"\f552"}.fa-tooth:before{content:"\f5c9"}.fa-torii-gate:before{content:"\f6a1"}.fa-tornado:before{content:"\f76f"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-tower-cell:before{content:"\e585"}.fa-tower-observation:before{content:"\e586"}.fa-tractor:before{content:"\f722"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\e041"}.fa-train:before{content:"\f238"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-train-tram:before,.fa-tram:before{content:"\f7da"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-tree-city:before{content:"\e587"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-trophy:before{content:"\f091"}.fa-trowel:before{content:"\e589"}.fa-trowel-bricks:before{content:"\e58a"}.fa-truck:before{content:"\f0d1"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-truck-droplet:before{content:"\e58c"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-truck-field:before{content:"\e58d"}.fa-truck-field-un:before{content:"\e58e"}.fa-truck-front:before{content:"\e2b7"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-truck-plane:before{content:"\e58f"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-u:before{content:"\55"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-universal-access:before{content:"\f29a"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-upload:before{content:"\f093"}.fa-user:before{content:"\f007"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-clock:before{content:"\f4fd"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-user-graduate:before{content:"\f501"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-user-injured:before{content:"\f728"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-user-lock:before{content:"\f502"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-between-lines:before{content:"\e591"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-users-line:before{content:"\e592"}.fa-users-rays:before{content:"\e593"}.fa-users-rectangle:before{content:"\e594"}.fa-users-slash:before{content:"\e073"}.fa-users-viewfinder:before{content:"\e595"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-v:before{content:"\56"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-vault:before{content:"\e2c5"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-vest:before{content:"\e085"}.fa-vest-patches:before{content:"\e086"}.fa-vial:before{content:"\f492"}.fa-vial-circle-check:before{content:"\e596"}.fa-vial-virus:before{content:"\e597"}.fa-vials:before{content:"\f493"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-virus:before{content:"\e074"}.fa-virus-covid:before{content:"\e4a8"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-virus-slash:before{content:"\e075"}.fa-viruses:before{content:"\e076"}.fa-voicemail:before{content:"\f897"}.fa-volcano:before{content:"\f770"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-volume-off:before{content:"\f026"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-vr-cardboard:before{content:"\f729"}.fa-w:before{content:"\57"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-wallet:before{content:"\f555"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-wand-sparkles:before{content:"\f72b"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-wave-square:before{content:"\f83e"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:"\e2cd"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-wheelchair:before{content:"\f193"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:"\e2ce"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-wind:before{content:"\f72e"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-worm:before{content:"\e599"}.fa-wrench:before{content:"\f0ad"}.fa-x:before{content:"\58"}.fa-x-ray:before{content:"\f497"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-xmarks-lines:before{content:"\e59a"}.fa-y:before{content:"\59"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-z:before{content:"\5a"}.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:host,:root{--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}.fa-brands,.fab{font-family:"Font Awesome 6 Brands";font-weight:400}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-alipay:before{content:"\f642"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-amilia:before{content:"\f36d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-pay:before{content:"\f415"}.fa-artstation:before{content:"\f77a"}.fa-asymmetrik:before{content:"\f372"}.fa-atlassian:before{content:"\f77b"}.fa-audible:before{content:"\f373"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-aws:before{content:"\f375"}.fa-bandcamp:before{content:"\f2d5"}.fa-battle-net:before{content:"\f835"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bilibili:before{content:"\e3d9"}.fa-bimobject:before{content:"\f378"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bootstrap:before{content:"\f836"}.fa-bots:before{content:"\e340"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-buromobelexperte:before{content:"\f37f"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-cloudflare:before{content:"\e07d"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cmplid:before{content:"\e360"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cotton-bureau:before{content:"\f89e"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-critical-role:before{content:"\f6c9"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dailymotion:before{content:"\e052"}.fa-dashcube:before{content:"\f210"}.fa-deezer:before{content:"\e077"}.fa-delicious:before{content:"\f1a5"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dhl:before{content:"\f790"}.fa-diaspora:before{content:"\f791"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-draft2digital:before{content:"\f396"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drupal:before{content:"\f1a9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edge-legacy:before{content:"\e078"}.fa-elementor:before{content:"\f430"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-etsy:before{content:"\f2d7"}.fa-evernote:before{content:"\f839"}.fa-expeditedssl:before{content:"\f23e"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-figma:before{content:"\f799"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\e007"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-fly:before{content:"\f417"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-fulcrum:before{content:"\f50b"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-gofore:before{content:"\f3a7"}.fa-golang:before{content:"\e40f"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-pay:before{content:"\e079"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guilded:before{content:"\e07e"}.fa-gulp:before{content:"\f3ae"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hashnode:before{content:"\e499"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-hive:before{content:"\e07f"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-hotjar:before{content:"\f3b1"}.fa-houzz:before{content:"\f27c"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-ideal:before{content:"\e013"}.fa-imdb:before{content:"\f2d8"}.fa-instagram:before{content:"\f16d"}.fa-instagram-square:before{content:"\e055"}.fa-instalod:before{content:"\e081"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joomla:before{content:"\f1aa"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaggle:before{content:"\f5fa"}.fa-keybase:before{content:"\f4f5"}.fa-keycdn:before{content:"\f3ba"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-korvue:before{content:"\f42f"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-leanpub:before{content:"\f212"}.fa-less:before{content:"\f41d"}.fa-line:before{content:"\f3c0"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-mailchimp:before{content:"\f59e"}.fa-mandalorian:before{content:"\f50f"}.fa-markdown:before{content:"\f60f"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medapps:before{content:"\f3c6"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-mendeley:before{content:"\f7b3"}.fa-microblog:before{content:"\e01a"}.fa-microsoft:before{content:"\f3ca"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mixer:before{content:"\e056"}.fa-mizuni:before{content:"\f3cc"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-nfc-directional:before{content:"\e530"}.fa-nfc-symbol:before{content:"\e531"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-octopus-deploy:before{content:"\e082"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-old-republic:before{content:"\f510"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-padlet:before{content:"\e4a0"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-palfed:before{content:"\f3d8"}.fa-patreon:before{content:"\f3d9"}.fa-paypal:before{content:"\f1ed"}.fa-perbyte:before{content:"\e083"}.fa-periscope:before{content:"\f3da"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-square:before{content:"\e01e"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pix:before{content:"\e43a"}.fa-playstation:before{content:"\f3df"}.fa-product-hunt:before{content:"\f288"}.fa-pushed:before{content:"\f3e1"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-r-project:before{content:"\f4f7"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-renren:before{content:"\f18b"}.fa-replyd:before{content:"\f3e6"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-rev:before{content:"\f5b2"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-rust:before{content:"\e07a"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-schlix:before{content:"\f3ea"}.fa-screenpal:before{content:"\e570"}.fa-scribd:before{content:"\f28a"}.fa-searchengin:before{content:"\f3eb"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-servicestack:before{content:"\f3ec"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shopify:before{content:"\e057"}.fa-shopware:before{content:"\f5b5"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sith:before{content:"\f512"}.fa-sitrox:before{content:"\e44a"}.fa-sketch:before{content:"\f7c6"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-slideshare:before{content:"\f1e7"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-square:before{content:"\f2ad"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spotify:before{content:"\f1bc"}.fa-square-font-awesome:before{content:"\f425"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-sticker-mule:before{content:"\f3f7"}.fa-strava:before{content:"\f428"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-superpowers:before{content:"\f2dd"}.fa-supple:before{content:"\f3f9"}.fa-suse:before{content:"\f7d6"}.fa-swift:before{content:"\f8e1"}.fa-symfony:before{content:"\f83d"}.fa-teamspeak:before{content:"\f4f9"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-the-red-yeti:before{content:"\f69d"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-think-peaks:before{content:"\f731"}.fa-tiktok:before{content:"\e07b"}.fa-trade-federation:before{content:"\f513"}.fa-trello:before{content:"\f181"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-uncharted:before{content:"\e084"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\e049"}.fa-unsplash:before{content:"\e07c"}.fa-untappd:before{content:"\f405"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-vaadin:before{content:"\f408"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-viber:before{content:"\f409"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-vuejs:before{content:"\f41f"}.fa-watchman-monitoring:before{content:"\e087"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-whmcs:before{content:"\f40d"}.fa-wikipedia-w:before{content:"\f266"}.fa-windows:before{content:"\f17a"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wodu:before{content:"\e088"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}:host,:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-family:"Font Awesome 6 Free";font-weight:400}:host,:root{--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-family:"Font Awesome 6 Free";font-weight:900}@font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f250,u+f252,u+f27a} \ No newline at end of file diff --git a/test_tube_scanner/home/static/css/w3-custom.css b/test_tube_scanner/home/static/css/w3-custom.css new file mode 100644 index 0000000..7e79b35 --- /dev/null +++ b/test_tube_scanner/home/static/css/w3-custom.css @@ -0,0 +1,220 @@ +/* custom.css */ +.w3-div-center { margin: 0 auto; } +.w3-hidden { display: none; } +.w3-no-border { border: 0px; } +.w3-no-resize { resize: none; } +.w3-resize-vertical { resize: vertical; } +.w3-resize-horizontal { resize: horiziontal; } +.w3-text-upper { text-transform: uppercase; } +.w3-transparent { background: transparent; } +.w3-nbsp { white-space: nowrap; } +a.w3-word-wrap { word-wrap: break-word; } +.w3-scroll-x { overflow-x: auto; overflow-y: hidden; } +.w3-scroll-y { overflow-x: hidden; overflow-y: auto; } +.w3-scroll { overflow: auto; } + +.w3-show-off, +.w3-display-none { display: none; } +.w3-show-on, +.w3-display-block { display: block; } +.w3-inline { display:inline-block; vertical-align: middle;} + +.w3-dropup { width:100%; overflow:hidden; display:inline-block; } +.w3-dropup-item { float:left; width:auto; border:none; display:block; outline:0; } +.w3-dropup .w3-dropup-content { display: none; position: absolute; bottom: 3.0em; z-index: 1; } + + +a.w3-no-deco:link, +a.w3-no-deco:visited { color: inherit; text-decoration: grey; } +a.w3-no-deco:hover { background-color: transparent; } +ul.w3-no-deco { list-style-type: none; } +hr.w3-bar-item.divider { margin: 0 .1em; padding: 0.025em; } + +.zindex-0 { z-index: 0; } +.zindex-1 { z-index: 10; } +.zindex-2 { z-index: 100; } +.zindex-3 { z-index: 200; } +.zindex-4 { z-index: 400; } + +.w3-no-padding,.w3-padding-0{ padding: 0; } +.w3-padding-01 { padding: .1em; } +.w3-padding-02 { padding: .2em; } +.w3-padding-1 { padding: .25em; } +.w3-padding-2 { padding: .5em; } +.w3-padding-3 { padding: .75em; } +.w3-padding-4 { padding: 1em; } +.w3-padding-5 { padding: 1.5em; } +.w3-padding-6 { padding: 2em; } + +.w3-margin-auto { margin: 0 auto; } +.w3-no-margin, .w3-margin-0 { margin: 0; } +.w3-margin-01 { margin: .1em; } +.w3-margin-02 { margin: .2em; } +.w3-margin-1, .w3-margin-small { margin: .25em; } +.w3-margin-2, .w3-margin-medium { margin: .5em; } +.w3-margin-3 { margin: .75em; } +.w3-margin-4 { margin: 1em; } +.w3-margin-5 { margin: 1.5em; } +.w3-margin-6 { margin: 2em; } + +.w3-margin-left-1 { margin-left: .25em; } +.w3-margin-left-2 { margin-left: .5em; } +.w3-margin-left-3 { margin-left: .75em; } +.w3-margin-left-4 { margin-left: 1em; } +.w3-margin-left-5 { margin-left: 1.5em; } +.w3-margin-left-6 { margin-left: 2em; } + +.w3-margin-right-1 { margin-right: .25em; } +.w3-margin-right-2 { margin-right: .5em; } +.w3-margin-right-3 { margin-right: .75em; } +.w3-margin-right-4 { margin-right: 1em; } +.w3-margin-right-5 { margin-right: 1.5em; } +.w3-margin-right-6 { margin-right: 2em; } + +.w3-margin-top-1 { margin-top: .25em; } +.w3-margin-top-2 { margin-top: .5em; } +.w3-margin-top-3 { margin-top: .75em; } +.w3-margin-top-4 { margin-top: 1em; } +.w3-margin-top-5 { margin-top: 1.5em; } +.w3-margin-top-6 { margin-top: 2em; } + +.w3-margin-bottom-1 { margin-bottom: .25em; } +.w3-margin-bottom-2 { margin-bottom: .5em; } +.w3-margin-bottom-3 { margin-bottom: .75em; } +.w3-margin-bottom-4 { margin-bottom: 1em; } +.w3-margin-bottom-5 { margin-bottom: 1.5em; } +.w3-margin-bottom-6 { margin-bottom: 25em; } + +.w1 { width: 1%; } +.w4 { width: 4%; } +.w5 { width: 5%; } +.w9 { width: 9%; } +.w10 { width: 10%; } +.w11 { width: 11%; } +.w15 { width: 15%; } +.w20 { width: 20%; } +.w25 { width: 25%; } +.w30 { width: 30%; } +.w35 { width: 35%; } +.w40 { width: 40%; } +.w45 { width: 45%; } +.w50 { width: 50%; } +.w55 { width: 55%; } +.w60 { width: 60%; } +.w65 { width: 55%; } +.w70 { width: 70%; } +.w75 { width: 75%; } +.w80 { width: 80%; } +.w85 { width: 85%; } +.w90 { width: 90%; } +.w95 { width: 95%; } +.w100 { width: 100%; } + +.w3-dark-low,.w3-hover-dark-low:hover,.w3-dark-low,.w3-hover-dark-low:hover{color:#fff!important;background-color:#111!important} +.w3-dark-medium,.w3-hover-dark-medium:hover,.w3-dark-medium,.w3-hover-dark-medium:hover{color:#fff!important;background-color:#222!important} +.w3-dark-light,.w3-hover-dark-light:hover,.w3-dark-light,.w3-hover-dark-light:hover{color:#fff!important;background-color:#333!important} +.w3-dark-xlight,.w3-hover-dark-xlight:hover,.w3-dark-xlight,.w3-hover-dark-xlight:hover{color:#fff!important;background-color:#444!important} +.w3-dark-xxlight,.w3-hover-dark-xxlight:hover,.w3-dark-xxlight,.w3-hover-dark-xxlight:hover{color:#fff!important;background-color:#555!important} +.w3-dark-hight,.w3-hover-dark-hight:hover,.w3-dark-hight,.w3-hover-dark-hight:hover{color:#fff!important;background-color:#666!important} + +.w3-theme-light {color:#000 !important; background-color:#f5f7f8 !important} +.w3-theme-dark {color:#fff !important; background-color:#303e45 !important} +.w3-theme-action {color:#fff !important; background-color:#303e45 !important} +.w3-theme {color:#fff !important; background-color:#607d8b !important} +.w3-text-theme {color:#607d8b !important} +.w3-border-theme {border-color:#607d8b !important} +.w3-hover-theme:hover {color:#fff !important; background-color:#607d8b !important} +.w3-hover-text-theme:hover {color:#607d8b !important} +.w3-hover-border-theme:hover {border-color:#607d8b !important} + + +.w3-flex-container, .w3-flex-container-row { + display: flex; + flex-direction: row; + justify-content: start; + align-content: start; + flex-wrap: wrap; +} +.w3-flex-container-col { + display: flex; + flex-direction: row; + justify-content: start; + align-content: start; + flex-wrap: wrap; +} +.w3-flex-container-center { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: center; + align-content: center; + align-items: top; + margin: auto; +} + +.w3-flex-item { order: 0; flex: 0 1 auto; align-self: auto; margin: .25em;} +.w3-flex-wrap { display: flex; flex-wrap: wrap; } +.w3-flex-wrap.align { align-items: center; justify-content: center; } + +.cursor-alias {cursor: alias;} +.cursor-all-scroll {cursor: all-scroll;} +.cursor-auto {cursor: auto;} +.cursor-cell {cursor: cell;} +.cursor-context-menu {cursor: context-menu;} +.cursor-col-resize {cursor: col-resize;} +.cursor-copy {cursor: copy;} +.cursor-crosshair {cursor: crosshair;} +.cursor-default {cursor: default;} +.cursor-e-resize {cursor: e-resize;} +.cursor-ew-resize {cursor: ew-resize;} +.cursor-grab {cursor: -webkit-grab; cursor: grab;} +.cursor-grabbing {cursor: -webkit-grabbing; cursor: grabbing;} +.cursor-help {cursor: help;} +.cursor-move {cursor: move;} +.cursor-n-resize {cursor: n-resize;} +.cursor-ne-resize {cursor: ne-resize;} +.cursor-nesw-resize {cursor: nesw-resize;} +.cursor-ns-resize {cursor: ns-resize;} +.cursor-nw-resize {cursor: nw-resize;} +.cursor-nwse-resize {cursor: nwse-resize;} +.cursor-no-drop {cursor: no-drop;} +.cursor-none {cursor: none;} +.cursor-not-allowed {cursor: not-allowed;} +.cursor-pointer {cursor: pointer;} +.cursor-progress {cursor: progress;} +.cursor-row-resize {cursor: row-resize;} +.cursor-s-resize {cursor: s-resize;} +.cursor-se-resize {cursor: se-resize;} +.cursor-sw-resize {cursor: sw-resize;} +.cursor-text {cursor: text;} +.cursor-w-resize {cursor: w-resize;} +.cursor-wait {cursor: wait;} +.cursor-zoom-in {cursor: zoom-in;} +.cursor-zoom-out {cursor: zoom-out;} + + +/* Extra small devices (phones, 600px and down) */ +@media only screen and (max-width: 600px) { + div.main-layout {background: transparent; margin:0.5em auto; width:100%; font-size: 1em; min-width:300px;} +} + +/* Small devices (portrait tablets and large phones, 600px and up) */ +@media only screen and (min-width: 600px) { + div.main-layout {background: transparent; margin:1em auto; width:95%; font-size: 1.1em; min-width:300px;} +} + + +/* Medium devices (landscape tablets, 768px and up) */ +@media only screen and (min-width: 768px) { + div.main-layout {background: transparent; width:85%;font-size: 1.3em;} +} + +/* Large devices (laptops/desktops, 992px and up) */ +@media only screen and (min-width: 992px) { + div.main-layout {background: transparent; width:75%;} +} + +/* Extra large devices (large laptops and desktops, 1200px and up) */ +@media only screen and (min-width: 1200px) { + div.main-layout {background: transparent; width:70%; } +} diff --git a/test_tube_scanner/home/static/css/w3.css b/test_tube_scanner/home/static/css/w3.css new file mode 100644 index 0000000..eee8c29 --- /dev/null +++ b/test_tube_scanner/home/static/css/w3.css @@ -0,0 +1,251 @@ +/* W3.CSS 5.02 March 31 2025 by Jan Egil and Borge Refsnes */ +html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit} +/* Extract from normalize.css by Nicolas Gallagher and Jonathan Neal git.io/normalize */ +html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0} +article,aside,details,figcaption,figure,footer,header,main,menu,nav,section{display:block}summary{display:list-item} +audio,canvas,progress,video{display:inline-block}progress{vertical-align:baseline} +audio:not([controls]){display:none;height:0}[hidden],template{display:none} +a{background-color:transparent}a:active,a:hover{outline-width:0} +abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted} +b,strong{font-weight:bolder}dfn{font-style:italic}mark{background:#ff0;color:#000} +small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline} +sub{bottom:-0.25em}sup{top:-0.5em}figure{margin:1em 40px}img{border-style:none} +code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}hr{box-sizing:content-box;height:0;overflow:visible} +button,input,select,textarea,optgroup{font:inherit;margin:0}optgroup{font-weight:bold} +button,input{overflow:visible}button,select{text-transform:none} +button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button} +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} +fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em} +legend{color:inherit;display:table;max-width:100%;padding:0;white-space:normal}textarea{overflow:auto} +[type=checkbox],[type=radio]{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-decoration{-webkit-appearance:none} +::-webkit-file-upload-button{-webkit-appearance:button;font:inherit} +/* End extract */ +html,body{font-family:Verdana,sans-serif;font-size:15px;line-height:1.5}html{overflow-x:hidden} +h1{font-size:36px}h2{font-size:30px}h3{font-size:24px}h4{font-size:20px}h5{font-size:18px}h6{font-size:16px} +.w3-serif{font-family:serif}.w3-sans-serif{font-family:sans-serif}.w3-cursive{font-family:cursive}.w3-monospace{font-family:monospace} +h1,h2,h3,h4,h5,h6{font-family:"Segoe UI",Arial,sans-serif;font-weight:400;margin:10px 0}.w3-wide{letter-spacing:4px} +hr{border:0;border-top:1px solid #eee;margin:20px 0} +.w3-image{max-width:100%;height:auto}img{vertical-align:middle}a{color:inherit} +.w3-table,.w3-table-all{border-collapse:collapse;border-spacing:0;width:100%;display:table}.w3-table-all{border:1px solid #ccc} +.w3-bordered tr,.w3-table-all tr{border-bottom:1px solid #ddd}.w3-striped tbody tr:nth-child(even){background-color:#f1f1f1} +.w3-table-all tr:nth-child(odd){background-color:#fff}.w3-table-all tr:nth-child(even){background-color:#f1f1f1} +.w3-hoverable tbody tr:hover,.w3-ul.w3-hoverable li:hover{background-color:#ccc}.w3-centered tr th,.w3-centered tr td{text-align:center} +.w3-table td,.w3-table th,.w3-table-all td,.w3-table-all th{padding:8px 8px;display:table-cell;text-align:left;vertical-align:top} +.w3-table th:first-child,.w3-table td:first-child,.w3-table-all th:first-child,.w3-table-all td:first-child{padding-left:16px} +.w3-btn,.w3-button{border:none;display:inline-block;padding:8px 16px;vertical-align:middle;overflow:hidden;text-decoration:none;color:inherit;background-color:inherit;text-align:center;cursor:pointer;white-space:nowrap} +.w3-btn:hover{box-shadow:0 8px 16px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)} +.w3-btn,.w3-button{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none} +.w3-disabled,.w3-btn:disabled,.w3-button:disabled{cursor:not-allowed;opacity:0.3}.w3-disabled *,:disabled *{pointer-events:none} +.w3-btn.w3-disabled:hover,.w3-btn:disabled:hover{box-shadow:none} +.w3-badge,.w3-tag{background-color:#000;color:#fff;display:inline-block;padding-left:8px;padding-right:8px;text-align:center}.w3-badge{border-radius:50%} +.w3-ul{list-style-type:none;padding:0;margin:0}.w3-ul li{padding:8px 16px;border-bottom:1px solid #ddd}.w3-ul li:last-child{border-bottom:none} +.w3-tooltip,.w3-display-container{position:relative}.w3-tooltip .w3-text{display:none}.w3-tooltip:hover .w3-text{display:inline-block} +.w3-ripple:active{opacity:0.5}.w3-ripple{transition:opacity 0s} +.w3-input{padding:8px;display:block;border:none;border-bottom:1px solid #ccc;width:100%} +.w3-select{padding:9px 0;width:100%;border:none;border-bottom:1px solid #ccc} +.w3-dropdown-click,.w3-dropdown-hover{position:relative;display:inline-block;cursor:pointer} +.w3-dropdown-hover:hover .w3-dropdown-content{display:block} +.w3-dropdown-hover:first-child,.w3-dropdown-click:hover{background-color:#ccc;color:#000} +.w3-dropdown-hover:hover > .w3-button:first-child,.w3-dropdown-click:hover > .w3-button:first-child{background-color:#ccc;color:#000} +.w3-dropdown-content{cursor:auto;color:#000;background-color:#fff;display:none;position:absolute;min-width:160px;margin:0;padding:0;z-index:1} +.w3-check,.w3-radio{width:24px;height:24px;position:relative;top:6px} +.w3-sidebar{height:100%;width:200px;background-color:#fff;position:fixed!important;z-index:1;overflow:auto} +.w3-bar-block .w3-dropdown-hover,.w3-bar-block .w3-dropdown-click{width:100%} +.w3-bar-block .w3-dropdown-hover .w3-dropdown-content,.w3-bar-block .w3-dropdown-click .w3-dropdown-content{min-width:100%} +.w3-bar-block .w3-dropdown-hover .w3-button,.w3-bar-block .w3-dropdown-click .w3-button{width:100%;text-align:left;padding:8px 16px} +.w3-main,#main{transition:margin-left .4s} +.w3-modal{z-index:3;display:none;padding-top:100px;position:fixed;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgb(0,0,0);background-color:rgba(0,0,0,0.4)} +.w3-modal-content{margin:auto;background-color:#fff;position:relative;padding:0;outline:0;width:600px} +.w3-bar{width:100%;overflow:hidden}.w3-center .w3-bar{display:inline-block;width:auto} +.w3-bar .w3-bar-item{padding:8px 16px;float:left;width:auto;border:none;display:block;outline:0} +.w3-bar .w3-dropdown-hover,.w3-bar .w3-dropdown-click{position:static;float:left} +.w3-bar .w3-button{white-space:normal} +.w3-bar-block .w3-bar-item{width:100%;display:block;padding:8px 16px;text-align:left;border:none;white-space:normal;float:none;outline:0} +.w3-bar-block.w3-center .w3-bar-item{text-align:center}.w3-block{display:block;width:100%} +.w3-responsive{display:block;overflow-x:auto} +.w3-container:after,.w3-container:before,.w3-panel:after,.w3-panel:before,.w3-row:after,.w3-row:before,.w3-row-padding:after,.w3-row-padding:before, +.w3-cell-row:before,.w3-cell-row:after,.w3-clear:after,.w3-clear:before,.w3-bar:before,.w3-bar:after{content:"";display:table;clear:both} +.w3-col,.w3-half,.w3-third,.w3-twothird,.w3-threequarter,.w3-quarter{float:left;width:100%} +.w3-col.s1{width:8.33333%}.w3-col.s2{width:16.66666%}.w3-col.s3{width:24.99999%}.w3-col.s4{width:33.33333%} +.w3-col.s5{width:41.66666%}.w3-col.s6{width:49.99999%}.w3-col.s7{width:58.33333%}.w3-col.s8{width:66.66666%} +.w3-col.s9{width:74.99999%}.w3-col.s10{width:83.33333%}.w3-col.s11{width:91.66666%}.w3-col.s12{width:99.99999%} +@media (min-width:601px){.w3-col.m1{width:8.33333%}.w3-col.m2{width:16.66666%}.w3-col.m3,.w3-quarter{width:24.99999%}.w3-col.m4,.w3-third{width:33.33333%} +.w3-col.m5{width:41.66666%}.w3-col.m6,.w3-half{width:49.99999%}.w3-col.m7{width:58.33333%}.w3-col.m8,.w3-twothird{width:66.66666%} +.w3-col.m9,.w3-threequarter{width:74.99999%}.w3-col.m10{width:83.33333%}.w3-col.m11{width:91.66666%}.w3-col.m12{width:99.99999%}} +@media (min-width:993px){.w3-col.l1{width:8.33333%}.w3-col.l2{width:16.66666%}.w3-col.l3{width:24.99999%}.w3-col.l4{width:33.33333%} +.w3-col.l5{width:41.66666%}.w3-col.l6{width:49.99999%}.w3-col.l7{width:58.33333%}.w3-col.l8{width:66.66666%} +.w3-col.l9{width:74.99999%}.w3-col.l10{width:83.33333%}.w3-col.l11{width:91.66666%}.w3-col.l12{width:99.99999%}} +.w3-rest{overflow:hidden}.w3-stretch{margin-left:-16px;margin-right:-16px} +.w3-content,.w3-auto{margin-left:auto;margin-right:auto}.w3-content{max-width:980px}.w3-auto{max-width:1140px} +.w3-cell-row{display:table;width:100%}.w3-cell{display:table-cell} +.w3-cell-top{vertical-align:top}.w3-cell-middle{vertical-align:middle}.w3-cell-bottom{vertical-align:bottom} +.w3-hide{display:none!important}.w3-show-block,.w3-show{display:block!important}.w3-show-inline-block{display:inline-block!important} +@media (max-width:1205px){.w3-auto{max-width:95%}} +@media (max-width:600px){.w3-modal-content{margin:0 10px;width:auto!important}.w3-modal{padding-top:30px} +.w3-dropdown-hover.w3-mobile .w3-dropdown-content,.w3-dropdown-click.w3-mobile .w3-dropdown-content{position:relative} +.w3-hide-small{display:none!important}.w3-mobile{display:block;width:100%!important}.w3-bar-item.w3-mobile,.w3-dropdown-hover.w3-mobile,.w3-dropdown-click.w3-mobile{text-align:center} +.w3-dropdown-hover.w3-mobile,.w3-dropdown-hover.w3-mobile .w3-btn,.w3-dropdown-hover.w3-mobile .w3-button,.w3-dropdown-click.w3-mobile,.w3-dropdown-click.w3-mobile .w3-btn,.w3-dropdown-click.w3-mobile .w3-button{width:100%}} +@media (max-width:768px){.w3-modal-content{width:500px}.w3-modal{padding-top:50px}} +@media (min-width:993px){.w3-modal-content{width:900px}.w3-hide-large{display:none!important}.w3-sidebar.w3-collapse{display:block!important}} +@media (max-width:992px) and (min-width:601px){.w3-hide-medium{display:none!important}} +@media (max-width:992px){.w3-sidebar.w3-collapse{display:none}.w3-main{margin-left:0!important;margin-right:0!important}.w3-auto{max-width:100%}} +.w3-top,.w3-bottom{position:fixed;width:100%;z-index:1}.w3-top{top:0}.w3-bottom{bottom:0} +.w3-overlay{position:fixed;display:none;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,0.5);z-index:2} +.w3-display-topleft{position:absolute;left:0;top:0}.w3-display-topright{position:absolute;right:0;top:0} +.w3-display-bottomleft{position:absolute;left:0;bottom:0}.w3-display-bottomright{position:absolute;right:0;bottom:0} +.w3-display-middle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%)} +.w3-display-left{position:absolute;top:50%;left:0%;transform:translate(0%,-50%);-ms-transform:translate(-0%,-50%)} +.w3-display-right{position:absolute;top:50%;right:0%;transform:translate(0%,-50%);-ms-transform:translate(0%,-50%)} +.w3-display-topmiddle{position:absolute;left:50%;top:0;transform:translate(-50%,0%);-ms-transform:translate(-50%,0%)} +.w3-display-bottommiddle{position:absolute;left:50%;bottom:0;transform:translate(-50%,0%);-ms-transform:translate(-50%,0%)} +.w3-display-container:hover .w3-display-hover{display:block}.w3-display-container:hover span.w3-display-hover{display:inline-block}.w3-display-hover{display:none} +.w3-display-position{position:absolute} +.w3-circle{border-radius:50%} +.w3-round-small{border-radius:2px}.w3-round,.w3-round-medium{border-radius:4px}.w3-round-large{border-radius:8px}.w3-round-xlarge{border-radius:16px}.w3-round-xxlarge{border-radius:32px} +.w3-row-padding,.w3-row-padding>.w3-half,.w3-row-padding>.w3-third,.w3-row-padding>.w3-twothird,.w3-row-padding>.w3-threequarter,.w3-row-padding>.w3-quarter,.w3-row-padding>.w3-col{padding:0 8px} +.w3-container,.w3-panel{padding:0.01em 16px}.w3-panel{margin-top:16px;margin-bottom:16px} +.w3-grid{display:grid}.w3-grid-padding{display:grid;gap:16px}.w3-flex{display:flex} +.w3-text-center{text-align:center}.w3-text-bold,.w3-bold{font-weight:bold}.w3-text-italic,.w3-italic{font-style:italic} +.w3-code,.w3-codespan{font-family:Consolas,"courier new";font-size:16px} +.w3-code{width:auto;background-color:#fff;padding:8px 12px;border-left:4px solid #4CAF50;word-wrap:break-word} +.w3-codespan{color:crimson;background-color:#f1f1f1;padding-left:4px;padding-right:4px;font-size:110%} +.w3-card,.w3-card-2{box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12)} +.w3-card-4,.w3-hover-shadow:hover{box-shadow:0 4px 10px 0 rgba(0,0,0,0.2),0 4px 20px 0 rgba(0,0,0,0.19)} +.w3-spin{animation:w3-spin 2s infinite linear}@keyframes w3-spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}} +.w3-animate-fading{animation:fading 10s infinite}@keyframes fading{0%{opacity:0}50%{opacity:1}100%{opacity:0}} +.w3-animate-opacity{animation:opac 0.8s}@keyframes opac{from{opacity:0} to{opacity:1}} +.w3-animate-top{position:relative;animation:animatetop 0.4s}@keyframes animatetop{from{top:-300px;opacity:0} to{top:0;opacity:1}} +.w3-animate-left{position:relative;animation:animateleft 0.4s}@keyframes animateleft{from{left:-300px;opacity:0} to{left:0;opacity:1}} +.w3-animate-right{position:relative;animation:animateright 0.4s}@keyframes animateright{from{right:-300px;opacity:0} to{right:0;opacity:1}} +.w3-animate-bottom{position:relative;animation:animatebottom 0.4s}@keyframes animatebottom{from{bottom:-300px;opacity:0} to{bottom:0;opacity:1}} +.w3-animate-zoom {animation:animatezoom 0.6s}@keyframes animatezoom{from{transform:scale(0)} to{transform:scale(1)}} +.w3-animate-input{transition:width 0.4s ease-in-out}.w3-animate-input:focus{width:100%!important} +.w3-opacity,.w3-hover-opacity:hover{opacity:0.60}.w3-opacity-off,.w3-hover-opacity-off:hover{opacity:1} +.w3-opacity-max{opacity:0.25}.w3-opacity-min{opacity:0.75} +.w3-greyscale-max,.w3-grayscale-max,.w3-hover-greyscale:hover,.w3-hover-grayscale:hover{filter:grayscale(100%)} +.w3-greyscale,.w3-grayscale{filter:grayscale(75%)}.w3-greyscale-min,.w3-grayscale-min{filter:grayscale(50%)} +.w3-sepia{filter:sepia(75%)}.w3-sepia-max,.w3-hover-sepia:hover{filter:sepia(100%)}.w3-sepia-min{filter:sepia(50%)} +.w3-tiny{font-size:10px!important}.w3-small{font-size:12px!important}.w3-medium{font-size:15px!important}.w3-large{font-size:18px!important} +.w3-xlarge{font-size:24px!important}.w3-xxlarge{font-size:36px!important}.w3-xxxlarge{font-size:48px!important}.w3-jumbo{font-size:64px!important} +.w3-left-align{text-align:left!important}.w3-right-align{text-align:right!important}.w3-justify{text-align:justify!important}.w3-center{text-align:center!important} +.w3-border-0{border:0!important}.w3-border{border:1px solid #ccc!important} +.w3-border-top{border-top:1px solid #ccc!important}.w3-border-bottom{border-bottom:1px solid #ccc!important} +.w3-border-left{border-left:1px solid #ccc!important}.w3-border-right{border-right:1px solid #ccc!important} +.w3-topbar{border-top:6px solid #ccc!important}.w3-bottombar{border-bottom:6px solid #ccc!important} +.w3-leftbar{border-left:6px solid #ccc!important}.w3-rightbar{border-right:6px solid #ccc!important} +.w3-section,.w3-code{margin-top:16px!important;margin-bottom:16px!important} +.w3-margin{margin:16px!important}.w3-margin-top{margin-top:16px!important}.w3-margin-bottom{margin-bottom:16px!important} +.w3-margin-left{margin-left:16px!important}.w3-margin-right{margin-right:16px!important} +.w3-padding-small{padding:4px 8px!important}.w3-padding{padding:8px 16px!important}.w3-padding-large{padding:12px 24px!important} +.w3-padding-16{padding-top:16px!important;padding-bottom:16px!important}.w3-padding-24{padding-top:24px!important;padding-bottom:24px!important} +.w3-padding-32{padding-top:32px!important;padding-bottom:32px!important}.w3-padding-48{padding-top:48px!important;padding-bottom:48px!important} +.w3-padding-64{padding-top:64px!important;padding-bottom:64px!important} +.w3-padding-top-64{padding-top:64px!important}.w3-padding-top-48{padding-top:48px!important} +.w3-padding-top-32{padding-top:32px!important}.w3-padding-top-24{padding-top:24px!important} +.w3-left{float:left!important}.w3-right{float:right!important} +.w3-button:hover{color:#000!important;background-color:#ccc!important} +.w3-transparent,.w3-hover-none:hover{background-color:transparent!important} +.w3-hover-none:hover{box-shadow:none!important} +.w3-rtl{direction:rtl}.w3-ltr{direction:ltr} +/* Colors */ +.w3-amber,.w3-hover-amber:hover{color:#000!important;background-color:#ffc107!important} +.w3-aqua,.w3-hover-aqua:hover{color:#000!important;background-color:#00ffff!important} +.w3-blue,.w3-hover-blue:hover{color:#fff!important;background-color:#2196F3!important} +.w3-light-blue,.w3-hover-light-blue:hover{color:#000!important;background-color:#87CEEB!important} +.w3-brown,.w3-hover-brown:hover{color:#fff!important;background-color:#795548!important} +.w3-cyan,.w3-hover-cyan:hover{color:#000!important;background-color:#00bcd4!important} +.w3-blue-grey,.w3-hover-blue-grey:hover,.w3-blue-gray,.w3-hover-blue-gray:hover{color:#fff!important;background-color:#607d8b!important} +.w3-green,.w3-hover-green:hover{color:#fff!important;background-color:#4CAF50!important} +.w3-light-green,.w3-hover-light-green:hover{color:#000!important;background-color:#8bc34a!important} +.w3-indigo,.w3-hover-indigo:hover{color:#fff!important;background-color:#3f51b5!important} +.w3-khaki,.w3-hover-khaki:hover{color:#000!important;background-color:#f0e68c!important} +.w3-lime,.w3-hover-lime:hover{color:#000!important;background-color:#cddc39!important} +.w3-orange,.w3-hover-orange:hover{color:#000!important;background-color:#ff9800!important} +.w3-deep-orange,.w3-hover-deep-orange:hover{color:#fff!important;background-color:#ff5722!important} +.w3-pink,.w3-hover-pink:hover{color:#fff!important;background-color:#e91e63!important} +.w3-purple,.w3-hover-purple:hover{color:#fff!important;background-color:#9c27b0!important} +.w3-deep-purple,.w3-hover-deep-purple:hover{color:#fff!important;background-color:#673ab7!important} +.w3-red,.w3-hover-red:hover{color:#fff!important;background-color:#f44336!important} +.w3-sand,.w3-hover-sand:hover{color:#000!important;background-color:#fdf5e6!important} +.w3-teal,.w3-hover-teal:hover{color:#fff!important;background-color:#009688!important} +.w3-yellow,.w3-hover-yellow:hover{color:#000!important;background-color:#ffeb3b!important} +.w3-white,.w3-hover-white:hover{color:#000!important;background-color:#fff!important} +.w3-black,.w3-hover-black:hover{color:#fff!important;background-color:#000!important} +.w3-grey,.w3-hover-grey:hover,.w3-gray,.w3-hover-gray:hover{color:#000!important;background-color:#9e9e9e!important} +.w3-light-grey,.w3-hover-light-grey:hover,.w3-light-gray,.w3-hover-light-gray:hover{color:#000!important;background-color:#f1f1f1!important} +.w3-dark-grey,.w3-hover-dark-grey:hover,.w3-dark-gray,.w3-hover-dark-gray:hover{color:#fff!important;background-color:#616161!important} +.w3-asphalt,.w3-hover-asphalt:hover{color:#fff!important;background-color:#343a40!important} +.w3-crimson,.w3-hover-crimson:hover{color:#fff!important;background-color:#a20025!important} +.w3-cobalt,w3-hover-cobalt:hover{color:#fff!important;background-color:#0050ef!important} +.w3-emerald,.w3-hover-emerald:hover{color:#fff!important;background-color:#008a00!important} +.w3-olive,.w3-hover-olive:hover{color:#fff!important;background-color:#6d8764!important} +.w3-paper,.w3-hover-paper:hover{color:#000!important;background-color:#f8f9fa!important} +.w3-sienna,.w3-hover-sienna:hover{color:#fff!important;background-color:#a0522d!important} +.w3-taupe,.w3-hover-taupe:hover{color:#fff!important;background-color:#87794e!important} +.w3-danger{color:#fff!important;background-color:#dd0000!important} +.w3-note{color:#000!important;background-color:#fff599!important} +.w3-info{color:#fff!important;background-color:#0a6fc2!important} +.w3-warning{color:#000!important;background-color:#ffb305!important} +.w3-success{color:#fff!important;background-color:#008a00!important} +.w3-pale-red,.w3-hover-pale-red:hover{color:#000!important;background-color:#ffdddd!important} +.w3-pale-green,.w3-hover-pale-green:hover{color:#000!important;background-color:#ddffdd!important} +.w3-pale-yellow,.w3-hover-pale-yellow:hover{color:#000!important;background-color:#ffffcc!important} +.w3-pale-blue,.w3-hover-pale-blue:hover{color:#000!important;background-color:#ddffff!important} +.w3-text-amber,.w3-hover-text-amber:hover{color:#ffc107!important} +.w3-text-aqua,.w3-hover-text-aqua:hover{color:#00ffff!important} +.w3-text-blue,.w3-hover-text-blue:hover{color:#2196F3!important} +.w3-text-light-blue,.w3-hover-text-light-blue:hover{color:#87CEEB!important} +.w3-text-brown,.w3-hover-text-brown:hover{color:#795548!important} +.w3-text-cyan,.w3-hover-text-cyan:hover{color:#00bcd4!important} +.w3-text-blue-grey,.w3-hover-text-blue-grey:hover,.w3-text-blue-gray,.w3-hover-text-blue-gray:hover{color:#607d8b!important} +.w3-text-green,.w3-hover-text-green:hover{color:#4CAF50!important} +.w3-text-light-green,.w3-hover-text-light-green:hover{color:#8bc34a!important} +.w3-text-indigo,.w3-hover-text-indigo:hover{color:#3f51b5!important} +.w3-text-khaki,.w3-hover-text-khaki:hover{color:#b4aa50!important} +.w3-text-lime,.w3-hover-text-lime:hover{color:#cddc39!important} +.w3-text-orange,.w3-hover-text-orange:hover{color:#ff9800!important} +.w3-text-deep-orange,.w3-hover-text-deep-orange:hover{color:#ff5722!important} +.w3-text-pink,.w3-hover-text-pink:hover{color:#e91e63!important} +.w3-text-purple,.w3-hover-text-purple:hover{color:#9c27b0!important} +.w3-text-deep-purple,.w3-hover-text-deep-purple:hover{color:#673ab7!important} +.w3-text-red,.w3-hover-text-red:hover{color:#f44336!important} +.w3-text-sand,.w3-hover-text-sand:hover{color:#fdf5e6!important} +.w3-text-teal,.w3-hover-text-teal:hover{color:#009688!important} +.w3-text-yellow,.w3-hover-text-yellow:hover{color:#d2be0e!important} +.w3-text-white,.w3-hover-text-white:hover{color:#fff!important} +.w3-text-black,.w3-hover-text-black:hover{color:#000!important} +.w3-text-grey,.w3-hover-text-grey:hover,.w3-text-gray,.w3-hover-text-gray:hover{color:#757575!important} +.w3-text-light-grey,.w3-hover-text-light-grey:hover,.w3-text-light-gray,.w3-hover-text-light-gray:hover{color:#f1f1f1!important} +.w3-text-dark-grey,.w3-hover-text-dark-grey:hover,.w3-text-dark-gray,.w3-hover-text-dark-gray:hover{color:#3a3a3a!important} +.w3-border-amber,.w3-hover-border-amber:hover{border-color:#ffc107!important} +.w3-border-aqua,.w3-hover-border-aqua:hover{border-color:#00ffff!important} +.w3-border-blue,.w3-hover-border-blue:hover{border-color:#2196F3!important} +.w3-border-light-blue,.w3-hover-border-light-blue:hover{border-color:#87CEEB!important} +.w3-border-brown,.w3-hover-border-brown:hover{border-color:#795548!important} +.w3-border-cyan,.w3-hover-border-cyan:hover{border-color:#00bcd4!important} +.w3-border-blue-grey,.w3-hover-border-blue-grey:hover,.w3-border-blue-gray,.w3-hover-border-blue-gray:hover{border-color:#607d8b!important} +.w3-border-green,.w3-hover-border-green:hover{border-color:#4CAF50!important} +.w3-border-light-green,.w3-hover-border-light-green:hover{border-color:#8bc34a!important} +.w3-border-indigo,.w3-hover-border-indigo:hover{border-color:#3f51b5!important} +.w3-border-khaki,.w3-hover-border-khaki:hover{border-color:#f0e68c!important} +.w3-border-lime,.w3-hover-border-lime:hover{border-color:#cddc39!important} +.w3-border-orange,.w3-hover-border-orange:hover{border-color:#ff9800!important} +.w3-border-deep-orange,.w3-hover-border-deep-orange:hover{border-color:#ff5722!important} +.w3-border-pink,.w3-hover-border-pink:hover{border-color:#e91e63!important} +.w3-border-purple,.w3-hover-border-purple:hover{border-color:#9c27b0!important} +.w3-border-deep-purple,.w3-hover-border-deep-purple:hover{border-color:#673ab7!important} +.w3-border-red,.w3-hover-border-red:hover{border-color:#f44336!important} +.w3-border-sand,.w3-hover-border-sand:hover{border-color:#fdf5e6!important} +.w3-border-teal,.w3-hover-border-teal:hover{border-color:#009688!important} +.w3-border-yellow,.w3-hover-border-yellow:hover{border-color:#ffeb3b!important} +.w3-border-white,.w3-hover-border-white:hover{border-color:#fff!important} +.w3-border-black,.w3-hover-border-black:hover{border-color:#000!important} +.w3-border-grey,.w3-hover-border-grey:hover,.w3-border-gray,.w3-hover-border-gray:hover{border-color:#9e9e9e!important} +.w3-border-light-grey,.w3-hover-border-light-grey:hover,.w3-border-light-gray,.w3-hover-border-light-gray:hover{border-color:#f1f1f1!important} +.w3-border-dark-grey,.w3-hover-border-dark-grey:hover,.w3-border-dark-gray,.w3-hover-border-dark-gray:hover{border-color:#616161!important} +.w3-border-pale-red,.w3-hover-border-pale-red:hover{border-color:#ffe7e7!important}.w3-border-pale-green,.w3-hover-border-pale-green:hover{border-color:#e7ffe7!important} +.w3-border-pale-yellow,.w3-hover-border-pale-yellow:hover{border-color:#ffffcc!important}.w3-border-pale-blue,.w3-hover-border-pale-blue:hover{border-color:#e7ffff!important} diff --git a/test_tube_scanner/home/static/img/adminer.png b/test_tube_scanner/home/static/img/adminer.png new file mode 100644 index 0000000000000000000000000000000000000000..47837bbc17386b307a85d426a11ba3958bf1bbe9 GIT binary patch literal 83670 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%0D82}`({|yp1&KHttuIAdS?D`6KZYwkZaAHi=>j` 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 Qc8gVLnzRXuVlA2f+4^aBk^lez literal 0 HcmV?d00001 diff --git a/test_tube_scanner/home/static/img/logo.png b/test_tube_scanner/home/static/img/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..361b70b5d2f46b9ecf8a69687b700fac33ae21ce GIT binary patch literal 6207 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 literal 0 HcmV?d00001 diff --git a/test_tube_scanner/home/static/img/mariadb.png b/test_tube_scanner/home/static/img/mariadb.png new file mode 100644 index 0000000000000000000000000000000000000000..35f44470575493c242e4e64b55e5d26c988ee3bf GIT binary patch literal 8263 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 literal 0 HcmV?d00001 diff --git a/test_tube_scanner/home/static/img/mire.jpg b/test_tube_scanner/home/static/img/mire.jpg new file mode 100644 index 0000000000000000000000000000000000000000..86eeeb44627689d46aa5974999f081be7477ec85 GIT binary patch literal 34205 zcmb5V1yo$kvM4;bySuwv2=0Ts6C`K`cMTFWxDM{_?u6j(PS6B`2M89N@P_2O=bn4t zJO5gLQ?qw=p;!Tc=idMvDHlsqH%kjjPir?2 zrL4TN+VeJaoxGHkiJFEgP+my}!VLgG=h>OtyTXbC0QL@UE*i3ulzRFGln93aC;$!s z8Gr~tF*SE}l2B7q0{q8xy#(Qgqm;u}Y)&M(z8-NXRcYsh_0UD5U$^Rfv{6}65B4q}VvIdw#B%}e30DFMxA9=t_ z3?Mv^^xtjkYQ@9-hXjQx2>`%tK0ja50RRX|0KilH^YcUg^Yc>y006TN0Q5Ngx4dH> z0Py-3gdYFjG}>GM03!qdXc_o#npr9U(E1SoAY5@Wbus-@4-DiAZDj=jT$BO;X!-yE z&I|y6{N``FLCRjr0fox|fEJ{!lqLay^b7!i{vAZO;eYTO5hC!fcKiS2`KSG!*8oxg z7-;AhfFxK5z#+oH!NS5JBOt&dq9UWBq9CK7prK=9qM>7!NU96SOn4C3=D02Kxb0F4QQ3F*w9OS<7i zaDDJxZawetCxGhCGG8;Xr(%jEAN@lK>?|8^YMIe3)U0=Z)M!)2fpEtnds#o52Pk><5~V)UVf#`L>Sj zDDaw7-D~-LApB6Kdt7iBKf|0Jy6S6NW9yIBF7Pa5QO;IdcMwkwu5aLbAa1JrzA%yD#QaO#hC5VnmYck_Sv4Y`j z@{Uo|uv#ol0}u#&p@j4G6_*2G%8?I7S|E_%LD51bSmU2Yp^i+jq@xy$(lFLpIEE%+ z`H6pRroSk%n? zNq}A?_O#YDZ9AJyv*Kz>K=?p0SrX`M2p?#Of;vZ-IS(}J@b(rzO*#_jVB(&tsh3X; zL33URZPY#-NjUZN$d#BB(1go1GDCpNC3RP~Ui5LHeV@H+T*^5pYEY_e4R%UjAfCF= zS3b<=<_`-Q2?PziYc^xhFK}%pojQ7ASdO{$Z&cW|9AC0UKrHPqU(hkQST3a=KlOCT zm7gTiw9ItWOJIPP9dnnkwl>a6AfNOMoh}p}S`_26;aSubm^_P~dQklFiZ3NlDM65>DeXCNHNI>3Ejp(lBr%W8zS0ZA$z86zJ8W(S6Iw7&* z3eaD;uIatL7Ig+kFC6vlMtIoPDwIa-FWpX=uCD8w7+Ee21N}$$HvOhYG##AM-~aer zX*%c<1KozY-Gfh5Ou4aENb0Ma^3^S%fj&k$*Xc6j8E}s>RvZrGxAA$g| zivhjYmh235n6Q}Exh@wR7}95$S?k?m`ThC#I40j8SR~M(+i6sy;01Wo+%ZaK&bmO8 zFw$|(mtcwm4rU?%jPh{Kb&Dg`mG_c3^5wkIm4j<;VVj3ZaMR_Soe9teparSH=Zy#7kMWk5u}VE?TDi`bAsGL6 z4N80bqyC`}iEilp)1MaBzB~iEoi{}5^O$YAzkT9P#rcBzfi{Nwlw9WfK^H9T9(Z#3 zfvtS;y+hDGjdw{1_q0s#6fwV%FGAX;yJHO{3sB!R>nH$!0iQBd<^)S;Y;mVV3@gc$@5)yBANW3riJegowZG1d2sLroU09mKl7y+3_EgcjE zELOq7tWahd*l1t(K`NzJvReh?0=7umj-c)A2UP_9avc{P6eioVuRa(?yM-*Q)og)3 z4_)~=?#;;{H8H3<{;V|-PjS{uQpx3CQ}fOBwl5T8?l`hKe%hj zuq<`H<0u_W@&U=y>Twaq3TxO{bTxvMd%9fmE6i>geImQ*K|%!_iJ|3h?p3_zxDRM@ z#Si2`ZlT@Cm?)cLR0`e5h{;_h*%0WP)8{D&bpGAkrfS`u_X0My_1MH35B;Z z9z^y@jR2;l&Pr22F}PTlS@4&Hk0cnv4}SMuk}6TSs+Yc`s;X5)G!&IMtN0i^pu?H~ zyXT6N7wZR8IXP>B56Y4IrUP?V##{VBmnPvds()*QA=E>>+y!-e1a-SNe5o@x^M;I5 zw>XlKD8|xF&ur^Fu2@Tig0o6r5^G`r()tHvh7OSjO(8R+k!^L85{0bLZDguo6AE-O z(W4)xDtkcFw~4*H(x@mC7uDGuc;{xw^ycbD_>^tF=7-vG3==FVav`n)2;y1y2s)V! zpV+W?5vXffX;iEcF4`fAW-#7SVsvB+W?=G%MGySKR|1BX(n$&$vuqFGDh(BMuu3@H z4$oDRtETC)CU)VY#;nv3py+Mjt$-r(1n`_qGhF5L;G6_=nexb|#M!bH)A2@$;mrO# z<7rEHeAI3KFFiV}iJin4&cb!DJa&!>2Tjs{JrgLR7&~wi)f5-W3UXs_xL`@-frJbR z@?al|FS>M)sa3>P;~`c!s~ha!riiTa7KW1?Wtq*o!5Ifg@WbEMC`v0sjZ{XVE)a7) z)_mmIBN*<_oQhlWvsSIh@$WyWy*JWqeO$Q)P20-j><&H*_jjY zlz?}-fkz_%c(@1?CjbD`%))Os3^J2q8EF3i1+CJkpH4C_F5k^do5+gE8^w^(!od`| zVg{S8{mrK_kTx*FOm`LX!iOb+9zaBuryMofod66NGTU3~jacFJfbe>(@DYjOg0afP z^(Sut++?WXm|2*pjvyjjLkw2)n4CkDC>^2S5$>xJQLFyo8dPg_R2TZ~!`&@X#DlvM97%oMZI zcuyYH#H(Ka)a~xr9e)X0-i3J>McI3JLBnEsg;-s)@?Tf9bmjx`O9x*bNN zN`Id&X`!pckz(g}4$BQUHDd;2P>iK*)^7WcB|p_yzO6nOqrUB>wddmE07a^}Ltg>0 z?03s;V_(}I+ZARDa*Q*0cgieyk$WJM+328N7`Zy{7|GtfSIB#>n)gw<`G3B><5>SX z`}^{2Mmm%z&!*ZnD^OBP)!;J61$8t7JNDa zQ;IpCZ5LgIZv-($h3j9eW|z$=2`CU#?GthQo-2OK{ls;0_hVaR+I%ni>fU^pTQqow zM`St;1G0K}4e8Ht(9j47uu!m&HN?vV6|#(hgNDb#L%_x*;Csc7iGxo`#l=g<%_G4{ zO-s)}BQ7ZmgsdzOA>2@K(EgJfPAj&vDWZMKNyRiS!+mALUzB*^7>r z&A&Ovg*@=v3XGdT$M{7*$gwTzM8+0Wxe`-VSGal-IX0 zbmpUhom{TeCfy^VOD?&sQVABI)7r_ce&jYzsrw&7Z1K?x@ ziwgZ5GJVI83vRWLuHsondlaH%*F|1K(=~2I_HGiGcm`a#eVP=tz$?eIPh~co>=dA+ z&d=d@(AkMaa2N@{eHT8Q+)nfHqlMJ#cM&pppCD+Fbd0t|#;f;QhWrx%pOmS((ZbS8L@)NZ=GG)}Q?1VNPF>ugVd#-+T$iym5s{jXSfr zb46Ge5e+TFZt(tCREf3xq3Ur7PoGcP(}8*RV@hbFvnQ^8|2rw=@%k)^_8UHC-LTJQ z%oS6dU`;f4SU>HZqJrQ~HMuh>gcFv&LF0M4DBBEkd*6{~KpnBhcN$sWsQ`D;>ECZ> zbD@aE#m?2@_H569;MZSfmwB{r0(SSuh8cV{Y2A7Tz4g8bixKd$hDm{@$i@ig%^nVmX$LXx3M)G*e9T>{)_F{qT(&)2-Qi6_5zNa zpmynI8m8r|*_>`{T-=5`A@N>fvn=rCC7hEeGO$^rvpmhzxX~G}Z@fV)@LD*W&#VD? zNWvH!i;umZvMNN_-*ByEpX2s%Hkam>`8P@Gj(2!x0^O$Y2n%H&eGwrT&dbZcZi>37 zU<|rGUWeBD9={x>sM)f7h>ce0*P&8kVaxu5@N7WtKf+OKtyn;0bv)I%Uy5iNSXWOt zy7O9cXJRXmX8Gieel2^m=H{0J>YmiY!bv5EV8R<~VgrxqQKPr~UW3 z?`&6%aBD8Bhv*?A6+-VP#0Lkn-}~barH$khlE%q{XMNXLk2qIk4VH#F`lRUGLP)@B zrl`%LWE!6fbDuf0AD=e*q#X_9MCN#I2A$=!aiG4x3m%#pD2lN=!5|SLf8~Xjq9Ho5 zX%P>BlJ8C)Iu|=(m$bp@#QRsyUml7+C-ES!r7WHAz@P8HR`+}&Vez_v@w$N4K5TFF zm1{ev-fHHpH1$ew-qs#a<`rp*+;x>Z=Lxh;#=$={tU>fj?_o*ki2%(rGLAe#tb?~( zna5Xm{>~bQEn4U0liPH|al=fwvIx6j=oTuYy_Ve<+@@w6vE&iply{0t0Ed?oBNU3@ zlm{-TUbH(x%T|}cbEs`o^F&5mRmsMJGzy31xs3K|CUc>cmLZdt5Bo|o33vXsdrs7~ zJ8-JZBKv**$|8wi!KO;X?B+z-N-{pR_PpisQB1meV}*>P>DD%f5^MlW|2#CdFe+i2 zqQQoJF%f!aiWyLQuLgqjPW zuX6j(0Qj1MF0o&(r%qM@vQ=kIW)+p*&ZWPby{GKsjxM@d6l;y>=;r;0H|UNNe!0qu z%HJP!$mV9`-u4HJp$`%LM1K7YSYo-n)O-eHn4}PhT?@q-5ei>r#lRh!H5_G?Vp{`0 zr8O)@QhkX1W?`I$gbs_bsyO#*OSUbw@h(v;Gu^Etr%=`jGT}nJkGv_K_U_F^(gag? zNawp*#P)RHJVLoNu<=8}>rsHk5Skq(TV_mlfsayL` z(rCDm=#EmRfjlg}-S2+pa!(=y0WchPQhm{5;rS9^#()$%VhM=`my`f*&b=igj?%K( zPQGVAZ)I7nkKs)gkyFN2A}7YeOps4P5Y6V$m?UjIpa}^_*{|Es}`v;G;ix+ z_91s{p%RqK2i2}O$*D(Dv8f{8>p!&P#cA!n&i=5{(Qu5+Vajak)JMp}I8muXfJ!AD z2ZM*Cg6Gr1S9tu}BJMxdU4H&=bz9;cfmUpZV3V!QC=XX7?1?!FWhZ}h7#J|NMa2Jd z`deuFb|%cOR}6Xu##`XkH$QH18bMX=d> z3J^X4Yrw09Lq8E<%vSAhG$Wb!bNij&#zS<+u#D7V4=cM|?FV-SsFpRJ0e6Mn={SSd zhZQ0UvAeBbsYKr=9ol_VBfglAHHtoB4NxN3zs~h-W#L%(NXGtt*c{4*g}i(;b)oQ$ zo%$@pRiEg{x(m#Ic|SDSkB%1#E|uyJQ8<6`a!LC zZz`f@()LR~(0%C#V=huP#m|6C*#K^aD9w4Tj%1Q?)!&l7cXV?r=y`m*rKFz-7UX`X zaZI0x(YCVGE`;72-oy@JJOfaNE1Zt!y*+d~U$Npwzk+RgMRv?-Rb)NrS=awL4D#Ti zXsSiQeg>?TeU(FMO_ThgOrnuZMX$?ZJIPDj-Z}3ScBUbeFt{w)k{R_xM<3sLAfK!o zih#T&Dx0D9JT>C^@F-KdU@&v`2TsASj;yK8Bxz9Y?1JtE)L_1ERU6YvTOum;k|J^sb^J0h7Q`!?b<`Ty0`}`y_%mahfY!n?D#x_9dXozmBr85pis_f z)i#l7yclD?74Qdz{|}U^CP7_d=!PWb^cBgv9UDq)R9{w2e)0nMSUq*mCtZWELq&zX zX;T|Ea3!0O85W;8p*H3+6@|Kmj6Rwf1}$a@%WDviN0 zSbJi=i?Hv#?Urc_Y~dv3T8xvkBNfA&${JC!#a+aW@a7fDrR6ZMm{HGH!DdmVo&_oy zJ>qrAjrIpcpy*GvC8OLO?|B(+eJ^#nwb?S8uw0ZErT8Ir28Kkr>*0P< zf?(iapY2AEG^-QHVhf(mOO5*~^ERm43j45C>{Z6CUi3D$E0VOyh1KRt+iq1lcWPHQ z{RSAudugF+GpPMwG0Wbv4s5D9$ZTzv*>Z{BA8PRCRn>j?J)Jx5d}tHTXsekckqlEo+ov;F2UHGQUR1EJGlH`4L~yu-JxL-|AqaO`>6L zqhv21Q_j^)&s&UtYx`7P9$ZfJ-hNhBNMMHCGt4Smp zX4~zD($)9l1{vdME|~6E%_R-}h9Sz9$;lRcBeGihlw#C~sA@?;9tEE;dmgWTtfj!ren`n&{Gg5R_&5i@;zQb=<1 z>+V{M3)Z}j>>4)-yc3hmRU1?QyU5YYte0RFWa!Wy^tUVVt0ck(nYXLrY8J%H%|KMs zXTzpb=a7w=fe+}P#?0H50w8;6oLB%TXlO(jMCd=K75?m@LBn9d!eQg!LAK7|F*$MZ zsUh2Ek{Z0?wCeGH_Rb)CZDLT*0J#0h2aMVBY01(2{GYUB_O3r`+0f7g4nQCUi#VkG zayq<0h!AQxEJdOD)GX{c8CK~vWIXDDG3?oCna#x;EsjoIT0{nuS_$kiVf&1}rDq9ysS=}gHgE5L$^+pWe$&6FiU zuG`g(3&v$9m-(9SuWV|Wb4k|&4q7vgwd?H!f%i#=T=a!F5}lu?nAb#Pj$*$G;_-I_ zD=x~f%wgD0qaC0s)yZei$0yKzT<&O>Icbd!&YL7vd6|FcE?QPG1SqB4{VqEP^&4SE$kI_?S zos}aFwVSc@H|^3FNGTQTs@yv&h7h0F@GNm{CL?BLQi|_Wk4(x}al7@wt2EaB=71ni zAE=F61kZ2Tn;#%3uwo7PrB0tUMUk4`DBNwCcYxFkoeP05I9g%=d5@3uC#$npiom9U zc$U1J&?KobRSa%*d2Mw@bi}bKrxG(#s03#kjm?tOBBDQRs;-nXA8lAzSjcFiOQzc% z1cRgsg9K4f0ZlD^NHT6BF>yey=7GFGfnw^%2VwelUEsvO?wK!2YSu z*Obo;1M#=>{7=P%hnU|HcQm9MwF6SpSyaaiFYsiC8w9SO0p5jpz>58fX8;?wPA<58 zy+UA2Sak+6q+Y!YDHu3dB*<}`f6l!?@~~KN*pLwgkISWji9^lF&BH69jvy|HZyFd+ zqo(QnXJA3U46NUw$?kd8r83N#=Qa`UyqZeM%xtg0)5^?rTBS0sps-NP0%BtH#bTRz zmDol2(rK@S$|w&%OTAWI&0nxLuQMftrs!u>nr$`B>6aE=ehpE;_UEPf;$Q?haEijk z2cFrJkkE1X5QR^$*lJ?MO_*`rMFY*#2CM|46$Bz=$!vyzDbk=Mw8}_a_Eg2N7h(X*vZtV5+UBZTpy%8wm{<)cz(>=3knq)GYmS@4P1@ z`o%}0lc&7#k!+nxWP7aOOzNHR;NcA$p>C!|)BLB*s88cvRQ!16K-cAe7s!9>WW0s+ z6JMJkh(utILlx?9iAz4r&=0|SeXfHidL;#jE}~w5?v+|Q&@5FYNo%;H^0}HWGSI&HCI6d4f>)^=?3i544wL2Xt|eK zCGsIv-1Kp$W;|79O%aV6=eH3J8s(?{Ny#{tbfGKyx*j(A8fwS(RD^}m>O=J3ahxMN z2aOHX`L8-kP|(zRzokjjAO^iXlf!orcURj=Irr)`=D?%wl_e>F{8d2y3Q!o=iZXAE z;TbP+yd&EN$wg;euhf5d+ip-7;A%5Ez0P=_;RXU}qro#9=T~G96BFYZL|qe?S0HO6 z=jZ1&VTo0(J_E`th+h}rDs}gk_G;aV1!7?u5MOyIFdtc;>0a~RvOHK8;Hu=nv0PW? z-56Q!qu9&$yDu}gtS9;dMd&8X=Y)quXeM55B$!ML(+W&DNM#M}{Oe{T`#YFT|8*3w zTeB8azv@0CyV?-nc=up?C_+mN%>c8rh6*{EJ-|EC>cn&hb?yf$48%+pt^QI+LtXPFJ=iE0#h013DM8 ziXI9^Hmyi0MSRB*wWM9UaYvfPD2@v?UTm@=Sc=3d&@4KK1a(Ke*AFk>zmy^0zhI$Y z&{5zZC+gt-e*c0zXyCB0;W2TjxFC-hbyv59#9mxVYCZ{5XP5fESsKawhBI1DjliV2 zEh#fRI&t?PP4nP_bBljIiouIPe~{F3R#cv&jaEMijQCtfdsRZV$V6vXwoX{M27~kd z?Lf99*`T^3SUNKp_x)QlM>|Aj%v09HS*(f7lrYBYojB6T>| zvNgW}z%>*T%E&9tXd`GbXX;=X+m=pglBy0{ODz>MLWE{inAI?-6Dh!T{)hK!JtAdq z$rm^=Y#;^jdQ#|#S=uBPh!;zFhZ^iNHX$wv{%~;mR7Lkt5WIh~dyxndDJytoE2j1ISgY$0PjQR`m> zSZ1<0gIc+HH;6n$XCOmW4!8O*R7-;}?(zrNjH1q>av8fJ?rJF_oqUE2W8RF+R**UK z0#~u>7s>-+>+FJ@WwjygG6;!~ejAOa#TYt5nsvbwTgDD2L0!SVyO*yKZk}HiUvnzk zDm~_PVvO?`Prh(wK$<@s0(RTZDh=<2uQZMGSd^Aj4BepKyv^4=nk_=-y(Q~n1OX%N zoY_a%VmwCnUJL|5jEAgNE_ljGb-8HQk~oF|;R&okr=?}tlpN*C&wP2VMOZ5X-0*F3 z#cgrDe08n^Ow5Ng2N;Q)8sQl{EJjjBgV3 zKY7N5#3pm17msACHr1;|cu+0>cCnqIy5&6RG;n5+foi8|X44y2JWa-$Fz z$F#4~gziVd8Ts=kwhPV9CjL)2yU8)2P6;X)yi(Wb71O}s^2PcK0d|Y&5-3{IVTGYf zEIjxGYvtGDumOUg1X-4irrst?lw7#fVY8V)>WoL_u$5{Lp0z5!u_k-PMY0$ET;C+9 zLkibPxtE|!{yo8#s6wP5`bk+4Y|KYNptMx=E9Lp3f+mwRuude^l!)lV31aCu-3=B6Nqj z{((uGs-@YaD`*cVRgYOLO}6Nd6(`8G4;213oJDwp>i}#dU5~L6XeXXU0f+p*<>l$)Zr0z%q?vtnKGYjo@D zv0D<%bIeY-{whBh&L+If%ipHf3J+?l9iWL&DLZHiNX~yTPXRYuqr_pRzsz)jj%ibU zLZ>5)ObWf8F}<@;-H_9GLkc~g{^@TwYOh`_!HniC->#xn$XstiQxKRqnI7`w4B!eV zcm@m@GYrwN0Ci!tgeAiZs_5l@KSTxKu|Y*-{0vSx_Ri?7y1ju8!|{l*8(fR!3j8=UM-O>^w*et}OBObVax%xaWA3 z+4gm-MlL95dwVQ%ol?!lvq1>GN=2?{6H$#r|D`9Tfe?F1QUuw-^0i^6IkdsZTSa}u zJ@8jH&*Ik{W{_<6H5CIH4GmX_S|6i)66=^-G<9<{^{sOHhL z4QMcEC@AgEaLQECl@$~;<1vqhhB0mEsPlz4M`PI{OV%cV`s=xDc=J{YG%d4&Ha_ZS zsJW8myE&yU^0-cLMlK*$MJ`}A2q`j4vqzyyPNedFN30glPji~I(p)EySVNX?D<9cw zgD~Pg3brF@4GW-rbH-picAY?`$35gX&-epC}T?~gCyymp8nU* zkj!5xov9nO^jGiMdfTjGJ&1K0G1I}fI`3W?$l7Iv1YL-{Hr+@!I^IPcDG`YVSzAcP6l9y~1ghgR^E-S7*OPOj>Q42ltckkA0- zCDU2ekX0%&+W6Taaeb*z}hP+rIHW%ZSTuAl>e#%sjl6l{|};S->H$&a3ex;4gINSK=F$eJWN%ac9nb^YMlSrH|o=^-mbu+4ihlZo~zDb!rwosbS|Dyc>CFhb>|*KKefJGr}3ygIGJO!VpMeN2b_ZJ@O zRyPu-@cNd*98)(Zuf&qYl`v+Xfk(oT@hUo|&+xdrKk%~f1yoU2ZIMVp8-%-QP;7`yx-y9 z=7wH75XgzyarP=|x|YidL=!3~u2(Z%>w>!)bc5^)^p!EZ7BmTmO%UX)6696li^U` zaS4ghnpd4*4(qQ{D#*`CtgAbxpFVA+NHE>lj+y8~=>$m(^9HGQS?LT5@>G2kXsil> zRuL%~ZD=aY1e0o*;b5t5%Hrh++<46zm7f#XN?DT(uFe>3@`!xx)U@^Eye=)uCr^yC zwrFT6;NFRKd#8^M`5`Wii4R=6|?%w}7>{9YW2miL=kHtJ%5`0`yQV0fsLJ)x_U z!ZUjK9qDa3cB!SeViTS<{|`2Ajyi6AoI$ImbfG!22`5DISqjmg}c6 zB?Z6aU5={cZ}H`lK{(FdvO)wsuIYf44tXY`lcLYc$j9!t7z`C6aSbRQMMAtyVgsJcod5I)#PfKAu7JTFuS z%5MLJF=I&OOudDev^7xROxk@ydTatUHF$wp-L0MIlW0`e{&%pq=T~({m5p6b@CxVg9no{=27xPt+(<8k`w}``?x*-vId8W z?{5(a6~b3b!B ze7nZbBsjZ}cc}v&`mdmRq#vR}#I`C;XU0o^x}eTaTv;IzI0S!(9UAH7s-sPpXLOjx z+{IJT`TSEN$lT&>+80y>>9DGCj|lKm4Jxka3m3Jerj#KS7A|5*Ge5(^+q4xz`d8BV zj7(_y2I|-fwo>pfx*F&XhBamd5F=)}+$r*U>l--L9;lY^*LV$?8Mvj59XbntC3a%# z;x{$vRuDdPo5Z&=3Yr)Nk+DST(+`jQKzOAtLu;eHPK_+VTOrrQ8dL%XPbFH}>RVAN z>uFmES)>O|4V5SOEik(yF)dhFNSmC)Z$#)wgZI*FP}m@+Ju|?4GByz_%KhnGnI)t` z#O(wd5-9Z*k+rIfN$HAKrAT)Rv58Dz))b!lgs-sl0~Ly&S@V|;$an|du%;wpHrh)k zZ|10**VSar&tm5oV;eKoq7*sSYL3dQG|DG1u+^0uGnZuUOgia0K?h5X{l)-DR^Mvr~S1Le!_mk4+igvfqX29?JcCc3xBzx(N;?W7lx zoSCEww0%2H2MQ@+bF=fGFEc-V@|U9U{BeO*6h4f*^0kto=U*gj&n1Hk(|~tn?gF@! z@3$*>&6}&Z#8^%SJqy7JG$3OM9q(PQw6Z9ZW!Z^9wu8_MOyjfwuE^BG2QF_JgC{p+ z@MxcibWy~LKQ7+8aLPl;$V5Q*_Y#XvJ02$I(B{q;@y(IKUhy zdl7G|xS3Ch_qF~fo`p_bX1JDz>kX1`X>+fGzv*!&%Z%1i+^$-sZ;GYCGa$a4^uo75 zNaCVQL4?BbGBROyyqCJBQQ=OD*m%t<~{wnj>t1WLVaa=ojF)~lYH(O z04mR>7|YisTJ(yHpJo`Nx#D0BDJ;Dklsnk{mY}O&?8T_HnYxb-dXq?fS#gdz`g@CM zrw}rM9yLZDX|2+{fSg79)+cTI8+J)9;!{8%l%?hZ{f_c8pl7YFq|qMKQPnbl;j0ad zeBUo7Z7rva!SbM)Xb4726p0@3a7J+rC4R9}DcxVqC~YvyVl@^ZaF6zau)e;{s-0f`gnl z%m1;ddzJZ}tXQ&S4Nt{69z~8SSoXkJ8%g%5e~MXFmIF4jW0GZ8ulzH|6zNPW?aS;3 zcSpS{-5%$HeTwGT)@PWX{e2e<5?1XkpIB{b4+QE*tCim!kaL+xw}MKdz2C8X~9|?Jd9k(=wk<2USPT^ZJHHdnO#IS-`~i{ zAO6qIny-`nX+*2bw-tdG64UGKeYvuUQQsowHEw@oY@M{+v=I2vT`C=-UGGrIcQ}`r z6-E?e64g9Dp{fU&gL*elaI){joGQ?8yxuE56_mKSLdMs3!CEZ!yPZ2}|Il4EaKO6o zc9EOQnOtSnT$gra=G^1fB#Mi)j=M2cm||Xa1Y|*=aZ(HIza_;|8Q(bG?->4sBQFZ9p!Yjq@^B=18Xo&OC-N&kIAG#rhA5j!RSSNx2T@%W4Hf-~@ULW{TgI8zsjCllj)x|<&ne~_po zSs1oY9rTDbKcd1snDoT(@*eX2ELwDXOR@SJ9`333n|!yv?Wo_38NQ|h>qq1+4VU=j z!q>dJ#Ea39?^7i$qF{e0UcaGzvUneYTiS~rg{oJk@yW)Nt+^L+cnMR#ta@_;8~U|C z>aESF>{xf&_>AnBFYduWqgkQIxF(!DKDm0gWrOMxE#x!4g_^zIL}^$10o~GTfoDLP zp}E%hymMV0bi-|b z#9H4w$#cT?7JW-mXS%tmm(V9Bk(l=~a4v2}b1rkSpun9a!XEQm;sE1k&Sm)d-I(6di z#|ez=e{MgZ)iXve|Ar@!b+as8%;dyJY?fY+&Co_b>*UJEv<49rflXyR<5Py;fKj@! zrzlH}3o3(bU8LBsc(x40AoWJaLRl1Q-7Jg1T;xksL`Ca?R2R(X<-Z*j9m`~liWzPL z!x{MqpzPu;MSc}P&d#jh25ifxRd23}sng4^6YhujjM(JduWxB|!>AX1sn^>-#!??s z8VlFYP^8jH7HZxlzOeV^=wJ_}(v55~9m3c2C%RXR{n{XNXhanR%nwre2Ld5DFmK^( zGJWz^&TP^yelTN&u<;EIzO4l$7p-5N2+7fMS+&TSRoh{LVzCNY!E$Cwc9;WcU#KFu z>ZGvEuSWjKQ<|8WzYTeWr+`o(i?<>vtdCFBgwbM$m;{hh;Z-M@BDDY zHY;UzYyp|4PBXL{h(GT(_=YJBL0`-r#=_JE_qZmH*0{o1>;}AB;ftu~#^uZIq%s%p z!?@u5^TP+}v7}c_s1w#mH)|KTCVxChVLQIOq&+&bl9=X7TH$Exm|KFk;~hH;J>H8R z*3c{LphViTQdd)kloh|>quhrx&^)eX^0TO=k19Awyig~Qd&7-wW$Q#wrcZ6Y(|#*y z=pe!@vCd6+i0agg>h=QA>_ko_ZCukIhDD)L*Ih&O@qpny(HH}7{izVYHBRUQna&AI z2h4J@B7OfSim2Z^C9@>Zz0HLYzV{4x3LaV$CLiJ$yk$4RQ+e&CmY6ls`$?=pxd;<{ z@(fTiB9Jam4DXOUM0!DSB7+p>D#No*&~1UUv9^v43E_04$cA)yMRTHZdqdY?f%?yd znDk|^?aDadBM7NUd6P3-TMEo0>thk%441R+o=(#)CqPC|9b_8Yk30K5^3envj~{uK zE_t9IdtK)Z(8^Se(?tlqtw=Hjc^1h%n+$@HGyfpWBlT;D^|!83HJ64_8|WTr%mcY;#(g7Q`(zbbkT zAI4~!B+G6UY0JVbCX)Se(gu`D8S}D(->s;LCX-DA)EYHDYRp;Z7Bkq%a`&;?(?^f8 zZ|TOJTs?&L6$eFF)J{21#+)$95>sjfDKKys`R2c5UEjP1(xjx}=EWOAT0-qlOH`8p zX-FAiiy1qD)YnLtVv5o29IYi){_Ke?C-J)Q*<(X_5MP~6uFSyL1*zMnX}!dfE49bz zkf{|kExizMVX3opXoq@FL zEaM+@T&UadSKof6Wxo@UR6bx>ve5iLRlNgvWk1v}eA=Gcp4zr;w^Q4;ZQHhO+qP{^ zr&G>UQ%o`6ng9FU=ic`uC(lWCl9j!ZlbxNl)-Sr}SfrsolLE8?Mp3!ZSva@QQd~Wx zGd$s9D|~7_4)Di*|5|h8v{aKnI-unJKSr6W+1A73q zQvDVwMDFS*G`Z&LOGKm$7=T&1NWWN|{t^aCGC}ar{f$C3jO&s^m92U&NrHU$`@ajK z{>hcrTms#%WGIpCtBz|*Q6d~kt4{9zyGONOEPwv!5)EU8-K!{$5?fsLT$AvR&p7X} zwDC2~J^mCdMKS$$NtPJG8Us^cQkcdwK=kdB1xiq`M8FTVOo?u#U~BBl%bz%r#Kfw2 z*AUhe$Nf$_6BLmCy>gV;yT5ooXxB6wv}9?3Wya9yg?8f0`{(J>*e{-Kt8lKg zazdE~nA|S1^GgEWNQGhoPoO`6Sf$d%8UD& zcvlpphLq;sC>sK&ggl8w)Z| z)VkhIidmumLYL7Y3d3~k0@Ex|s)s&}Rb^AchOn+uFDh$Nu`|s`(-R@C5ihH~^W|T( zp>s?3RHm4_CsbI;Nt>)9x$bL=J0(nhAYv#FOZrtSB=iDYJKu92EWQbR-==E8bc4L zy7#Jws!ojYk-;;7r&10a}BScgubeZnd5>td@dSH2(F# z>*yE)#V~2ii})tm9*4zBQ_HR{9a-!&&6+nIqE4gkg>}gjd&jlXnQSpV%$~jv<4n*` zU8`O=jIgwsifXo#Q9J^@ZBSB_CM&8rv4)#P<4k{~MKOn>&|S0_4T(y~bhO+>(?R(0 z#9@h-#C=X(bE5@bG(<<1GiYpYMQ?K5R z+_U!Qz)X*6`)%&&mHjKGXMi*RS5q{XG#Pxm1HL@G^-9;JI~)x#heLxmCJ^~r(+f?W z*KlEunFW?Joqy0&env&rajUENXW5z)oNeNDO!6+riM%68dzw*iVcQ>6*xcBG$ncn{ z;hY1}-fnA!y~G`VL}#;%KX}VLdumSAZd87seJ428c3V_b?os-NgrNj%4O zKgU_fw)${FeUSWUNn@+2AwhpiXq-y36WD)KS05(t3$ZTkT4*$rF&ID{PkpWvsLq=_ zS}bQv2YQd1RolUivXs?1T5jZo;xu-m! zYySD;&vp5Piz!7ls~Wn!a=r8(Yeci?!8f1}UM#0Od=LFLx4s(ep|X4xEqKwG#>7%W z!ul3$xhX$tIHQhL^_>{!zC|S(*cD>I73HFO4)4UwWA^nUJM!=q03wSAdSm~aX;Q+giXrgP}0m`qA&15q_Xjz{lcD1I5~FdmaDy}%vT zU2B%=yJ1VPs-)wgJTV&X^Wi0!TY)qPd`T#DqJFGB>4V>cw`l0k;ztRPp*oAxfXC|J zQ&J#$dypUDtaOX3sCk;M{-7FAt6{a4zFfPdtlnT^XxgY56?{p&M(gU|tsnVJX1aDa zkUALMJTOq2)KK6;XLls6+E7gsk4oky)!$1-%o09w+S7*pl9s)eteNS;Y-(y5oj5}Q zquzz(a+=n|B>)ZFSW-q~1TTNVO_Mr+MWRa-Pb-ZpH;xp4mhzE2O^VOGB7pL+S0#w@ z>uT=v;LA;LlbXx*8)>D%uOydRQqzXZ)69}AK3!bG=94M=#oE&egCLYPKd`sZf3(nj|h^%VdWiuz^r~Lr7Pg= zHZKBm$OI)O2OmBwSH@-UK{XyA7|>AV<+mITS|N4(1>8386n)oMOFW}R6)~uD!2&E@ z(#0p-rT|@d7s;ST_Yag{Gxx@CFNqQhYikIJu;db4WRh7^a+2l6)9C~X#lDd*)>kQh zzjAy%VcE&+V*4IDsKKDin@FN-{6irLljU2^@l%3G`zpmq1f}F{QB;K?w#vKT2cpvL z%YvRCy7Jtb-?YYlL{U=BEOO??;e*=du?1z<_3a@V18$Ixl%2lzaMiF5hJChA4s#(1 zrL+emg~VkEy6iTNAKxGmm#?#=Az^Q8XPt*#uSH{G?cjGkJKgTP29=1DGTVxP5N24_ zp`x;M^m#ZqRD?`Ye9b)-Xy$t?8wvI^>ld{nkQwCM{5B$Qx_}#Pm_emzxrNgnLnhQC z9pz=Kc@5Y7*huO)GS1kl_66ZW^LD54k~2ee-y1W=85x@07|kvLsYrHwJupFqy*Mhbpvl0xhy|^ zfx+Zl*&XJ2NsH~9uYFs?XyQ@SZg+Nh%F?!7dH_T!y7LQUX7qUUdPbr25}~s(|FQ{2 zpd|106+tfM1d~)<7U_2By!6D3$8A$78Efz(jH88yGbwUZ07}H&_oQ%CoIr4zWEue? zG+xO{i@XmUu)~-NWee!HhiB6QD_h}@?YCy)aE39%K_L(JS|_YvrbFU7KZ_r#PMY_N zhp`b|(mTHs=3`Ejb6T>BKD^(SeeGdwh`NPbWEgGqXkMv)jlXU{Jf9RU5+~f&A1h7^ zxzN;+@MbanRNPAiU!U)X&4}c@#|(;)f~D(06O9Ol!^&|r8EW5P$4*6EiwRiSprYVuA&7vP5usHMcV-b|fKa-m?WPM(ip;hJJN@EL?dyck0#=5-@^LePMDDfA z6SC?aPPFQ%b-gPGj-j+TA73+NTpOK_aeTbhExw;g(2fA?43TBHIZcH|$$WfrK%mD= zbvzHISSd_K`&t|S^*1c6vGq14<~$VMU{}+TqK54p9kr@*QA|p0?NaTD=o+$cYj8P^ zK}fAUrA)LuP>1#GSdKTPm9j!lrkG-H%c@s-tkKJkqH&bc)M`dHhKd9>2gj#( zH){t;bL9#TT!94DvT2jSS#N9{4{RcZlci-`eW^~ea}Lo=XvO%3T>gFuQQ@d&TlWmHbvQo+HUJL67OWj-YwJt*as zvpXzo?WrIiOg-JLQB{@`+lzo+FK$Ci2kroxB5}&$Nb7*#Tu6w9mxI-9xFSA65n)Cf zlS&*6ROG{T`4WeBE4~%I&ohdz=kYcyeqOa@d{7{N=C>yr zf1Z{D?$6-awC${sHIYphVVEsIPlIjpp>Manw;U+G93H7=%y5 zDa)CAMkbW&mnVSQ6Cy~OFN}8!<;}Rw2=dyAtn#=S^{bVv zwDp~`JQ-mfG7{txl+JSn@+ihrymOpHiiAZ3*iBddiL!(hp_R`BmdD$f`HJ>v1VX*$ z27}xa@M|7~k+pC!EbFhL#m#t2l~Zcew%PHgV_jY8T&|9kxV_*v|EmH0*Swa)*dgwS zjZ+@S3M(2-Ieb4K*nW+!B3D66T=O29u0%E$J#oCG@ulX=b=rV#)>$bUtLFWVy*1Oj z<2_2fJdl+1v{GiEtWgp8AX=>M$`x*b*2^IP`FxF!_A;c9bzEJ0PF~-L(IhGnQB!H% z`=@Xy#yC=a`!B$Eu<2X~XuxyD1_H;J5?F$t;gc^aJ%I_ccw5V z1^0&i$Og)ufR8Y$ybLA#PS41CT0C|JWQ3;8t`QE83d(s%0@Uuwn@QzUK7q*cK2MQ- z8S;Y|iuB6mozyRp@Ng)W+O?6oMc-u?xVyr(gSp6^iIl}=C<6pOeljANIn?nV~J26H|fJNshXzoMG&IUV&ilPwmv58I1H1o|gUjV0fvH0+cgF#Tv}JRX?8T9P8$QrBajQ#x6p>(-b+~tZcYNr14S`ZqQ;&A~28oOiug#$EtxkT<375L@pO!_`q}F&`LFz|CO_A*DU~ zNfRh;)D5E{%p;u+S6h65Mm?tnyhx+OQlId9FnpnrzsdH_VgKI`<@qc%t3vojZ46x;9}jjMN)krRRkm z;XjQwpF5Xf2XYo>_Uql$ws4(E71cDV#=kM`=Xvw(lIW;aM0u=dXg&348v4y`#clGs;VI>9kE>#7Q$7k`Ox#l83>o= z)JjQhY9-u`$Se3+b`1*^5;EsCK9CyfB*Ob*rRmN%p`H_MNaCiITr5tnZX>5R}@pzd=hqC8;>=Bej)hgE` z6z6jkf5@73=LKBO5XiJ?-qh#!oLi|&r5K`Upx(`f5t(6 z0vyr&Oie|LW+lEbXWWZQm($HA0p5uJsv%Fo0`_3=tKLU~_F(@*b^Z?<8|By2u6<_; zE-ZP93^B^{Uw{P&w&LUIF!1y37XSqfmOM!sOn=~}zw<2+WN-IT&;bx8MggUQ5&s2r z?1BVghc^Rnr$8V;1{fkkj0RZzHFy~K^yWAS!XN|$$q)y@0D~k7{XcgdLAgah<^EZ> zqR5cP2JG5Dz4?PQeL!^or2znFGN3v?L8bo!0YnaFChn2Z+wE=L{tv z5EZN?*_?by0yu5)=0CW5!%&noO`J^6x+78+B-1n*@D|uveelhvD;iB0hLlcqaH)Cb z22>}Y%iV>ePIb)b-Wa(ons;FLFW@iWMcA?Mb6M9u)x2Xze)r0OqH*`5b0a74x8o%zYI9)v`4D6{{I+gi38|s$&1LV7eKlCV3To={U%+$Ct^;;;$GyW=sVy9# zBIQIsNP=Jc(c+bYQh$2*k@y$DEHG%jm?PZ`b#>ZG4j~eh-Rt`Wq`ms_Z2My_D)EQG zjn-q<99)Dr2tbS`0|M&<1_3f12i|6+fgvKGY`_ozAO!@>M+M^dc@iuT9PD3a04xv% z0Cm&(7w{_ykRn44E&~ANLj#ckVM~Gf(FYa~O8FX=14)i}#|#Vj7zC-_fDp-&q@mr}0HpJsyEmYnj*mHpzP-VW!4WxM z&UX`C(75@Jq@xlZ4+7$BT}X<2(He-_UqI(!U?&AKJuurh1`dFwK=l{k2x`o~?}z%5 z;M;cuh<~{_q8&fqK$&;#K^Kg%&<0=dK`ZWhjkoEKfwvFPKz01w;mbH2YSR2T67KIf z^#42r2}5W>;Ok%@6nJnDBqHE{K47RQBrL=t#>~pj#lp=>!O6$BPC@_Ik{cwD63=`! z2?Qfx=YpJzU_bK2V9nCDzfRxkbu`iRdScJ@MYlu|pF)kciy{*rACqSrx+QCBrUnHq zr@y|YXqtXMKly;={0ytj5Ss+DByql_Jey|Vw0EkU$*FxI|Ee#K;5G5nb zMrVictjMYd8FkDVxx*R0%^8j@#4bcs1Il1K)G9ly)dl-{>20h-4MQbUSz3%%>psqO z?MAmwQn925>-s_4#6f(oS}NnnV&bX0D{+>gnQ- z^;Rw9nz-h|JmV_gsL(juu_N>0Nv9vHW)dOSNvF>1l2uY9e@1pRNf3!?#Hn#5iGWMm zzz_%1MT-e0wF#3NFZTmO$x}Fs*y~U(fXcNn8$HdXfOFmqt!9(aeI{AC1oZC5aP{Qr z3sGUYVTT;x?%e%|gFMLWDQ{pfnTv|)`59mP^YdFZqQ}ygP+6B8h$X8CTQk zk(>#pnM9{WEDmvRdc!E;lw#S6I4P?6Bz7^OxOh}CSj9*m$*BxSyje#)O>oMPmx>p$ zjZ&zIsnZ006xLSnwE4>`NJr;|SgRQ(Oq4iW6ct7kiSm)YFM0rV8y64^6Q&h|MS?OQ z-Hb#Q_l4=;aYASFl(m(A$rIE&Bn7!RC;I&FD8wMSAG2_=l5_HM^YQJl(SK6Ee}>g4S2E=B zPppao)8r|>IOxB~QzYNg_ohMC2PM9qhYj1$SL@4_HB7=aKU6M+4$aMi4>gFs?KA2>BDwtq|9=|XkV9XzF{n= zradRbpy+H#m$eCm6C~w~Kv(;-cKf5Vh=%T=*(~wYQ;fG!S~=yJam10ygwG&IrvjW3 zWTtr}^W~ZX+>UDbGR|xcfRV(Vz*J)-jXa4lq@RBDi@{sc`Aj~D3%y7cg?SXpeJyw5<9&bnx_XH71MBOH+&V=!~7Rt~yu^j0X z*RoKw9(Xw@KC)47rGKQST?lH>TG*rPRyrW5a=r)ECvSCU&?VyoGp5lOf`_`>%^RUj zhC#$hULn)+FyOK|Rv5M5wh1C=plB!5WKh8uvTymUf6j6yBUle5peb#(QlLePSCA7& zX1U0aztCbjYxFoftAlq)8HYiIQG{X)n-RxdT3QsjGkyx0*bWF;lD&MyDL0$#etRPA z<^jZ1eZzQwz&5ik-+gnG$MbrKZ@HE4b$E3vEN@8tt@#%q*spF_HF*K|At@xSuelil1A6v>JXuZ8Vj~bV#{YRKb@yzb z4=GtAgh5m<_KG;@5%xbm{<)F8u0@9Y=zpRGA3M_d5jAL55?T~?vRm?YswPT#U^MYx znC3m;e?!z%&{>Dq1)UmI<6WSVd*r#h;vD<*MIN$2;0 zPb4G-y|_I7@aW|Cfqwq*$Vk7l$rI&nBAPMTtT{dWUpl^_kQDafGAQEg_knd9Nal}) z7L%n!#eoHOaigN9MelP8cb1kGTvTPI8*;#tpqlobM?rb4YHd+PYnKsA#gb*gC9jfZ z#uY_F25l?H4W+qb>=Nl*QBs~8wbBxcg`;({Tzm;}>s`b+7z!FY0qZnck)#GFa(NaHLeIBQCLuaj+3Qee3@o&- z(J}EQvTL;|GGuP3l{V4E@$=zloaS!CHeXRNgZH+)2`ckHk7gHVX5t~as5LXpkt;~b zmQPLCFa9B&(4c@$69GLMAt3)dbmZTB0r(#^0q0wk;9}zB=HcbzyZ=W`0Hw(~VdfM* zv^!96S&1O4?OeTch!E3WtxdELx)<55|cG8REuOdPXH%MT22Q zK*^dT`CmY6;Y&9tO#CnWpWmRc7g3`(8N!$2S;hdW>vKvR=+t4XGN;ZpqW`&-7!-iL+-gST6`5( zgfMIJi@h&ZDN^9F*(2axk$^RqU~GYb81Um{TNtfuV~%5;@!kXDCbo~EQ%=9#VgN`H zMadq`<#G$)?dx%bwwmgZCpw8}5sV};?H&-;N>;0NIEhQdCPg{~OYjIDX`NoD+27a6 zD@ewBV+F_H9iEorU6{b)UT0QCt=o+}O&o*snf}1J<5N@$ofJq#;Yz|2L4l;rv&**2 z_T0H=w+a+)sk-}d5jP__37?RO_dl`(Y6Zp6lI8iwSaW0tA_gLKldHk@=G@A6)mq!y zRfdE$!@D$2Puepf=>Gy*)`ZPE`Da{c&O_q;iSO|R+%iactih`fNQ;431YyPtcX@7J zPMZeCq?dqYP1LD~-{FWG?^S@2gUc#*GKJ6sSFVA?_AwRp*T=LzRn6_R)f)y@;~lW% zug?h)2N_)t9I4r2u&bXHappb9+4Y?JZ!5FVhJS)+C3e{kvWCMPz$ zk}M^&@zym*YITVyB89Jt_BY*pNz0(;dd<=dRcGW8X)GfYi!7~N;uT&TC?e%}P6)qJ znNR()$lB$hj$qo?7{QSgG{?_U;~p=iMVogO`o^ZTlPHsKTwQL!#w(@DH0NkOgDYNk zavoq}@@6Y^33Zd!(wQZ(a~@zB_c>k}q<%E>VNf_#=xT}<+o$ejPP2F%32%!lSF=-I z*A<0)@hPfqu?d=>DZ~a%EIPi!>PeJTRS68Zx89ZACa&Ec{`0LmeVlQlG)3^MIuqH99RcAvf|>*&CYCJ_AYy2gbI1!94eP z#fwZr5LRG`=IvwJSw z{?zxCRJ0DQd+OBIsIPqGC9^(7XmR>#+BG1aG3%VAyk@WhcQEoi7WA4@Ejz{#r+F7w)kZ05uYP&(Sf@BuF2At zF4?jNJkZkc`>`m!LXpD2VJt>@uzzdL4^kqJVellYgIH)3uQFl6y0+cV5fyE2^mrYDDAUF zN8Sw!OK}rLy(0!su<4b=x5E_H)@v%k7*<1+UVkf`cKJxohy>E-m2tq8Y!rjQS>$-Q zGmKh$UunNcXk%Fw#VahGOu%qpFN~_`eB*#OZ4)dfomMO{%APQ`_ESh}uYKjwL0@-= zKB#B@8ES>0X1%XNHkE=|TW_kDQ9>dC;Qq4g4<)iB0q-7F%xmLo7x&AFgynTS6^?0%Yypw*fT%Y1+`H?@1ya%ug|+jc z+S)KF3BM+`67?14JZf=sRQg&@L@&M%(_#O&!p{j>-@!DF4I-ZCI_70afp7H;vOV9a zQ}2BMIoe52;??>|M{Ss`76Bw4k5~rmlJL~+&$*YBfFc5)H>ZxgwCa3~I30u*!w)KjoPo zc(Xp6a3Ak}bX!gZP-Xvk9e4y`avF<@_1F2ddwoOKKj)w3~L^H9ONj$t>Z6m z=`PC;?g_o@B^c0%{Q|_R@ftNROG|cr~L44boI_8L>*51dQL(>-+oKkmS z=0I897c{)X_3sztlqz(TYi3UCEki!Ah0CWD_2jI(fbT=qQkt$4-w(#_R1*)SlB!Te zi$oS~bIT7Q-n@L34j`&uvHc4eF;k3q|Io`Zj$lIP@clqU)wAjf)!4Uo3MOtwbjCcU zdFKsV8@0mX&W?vfT4|eqC}R4mB%pHl%aP~F2^)z9e!=7v#uMe zp6N}jA;B+O#ziLv(~Ick=PvEiT6zEp4 zwcVo8aX6NxyHS|VBK2-KuPT?JbLKeq0*U@3@i=eP8Lcsh@a=GEEmm&S`DYO^DW#!S2XYZZw9s(AC&V|Y&x!p@e_l;coPkuf<;HGVOp+oIBN;P_dbu(BgGDKJ^YE- zF7rk>H$yAqKO+_8`I0v`Itl|tRz9Fwj{}7?U#Mmj1U~e?h#;0WkpKWTKQIy~nN6bb z6pWhE5qxY4?+>D-ra9z6*efO-uc6q=-(+@aoX}UbRAwU1IyX#JA{xs!Z28{B!4EJV z?cr&c%=?Yi&Et6rK9bQD(Jpl0i0h2)E<@(PLbc{55E_zrs1F(RWpkSAPM5Mh)Y~?% z^YZ0HnCY`1lx zrt{k`=s-J)Zp;4GZ*tHFy5aH9d=g;3D0m5xm1B?|9S8>I2Bh`VzoSFE&g{*ql+&3M zZ)4lV{4sAZW;p7|R3%P~i-zRHWJ@E?HfR00art_pPb3rhSqszjeMMd8tX* z=WTNz5rmZX(*3UOe1%uc`wO77aA*Ug+qHqC_v3hpX-~7k5hQz#!X})5&_%nD&7KrO z=>)$nJkvJ~VgI^ZHQda|l0Rsr8v8Xc2YVVWCRV~iKHyNoQi6j*bjni}`anIOh)>P~ zZ}EL71_zPZwPS5gIXCyPO&ZCGg6@PLlXG07E55V3@jh?}w0x37U9w`Z27gHA_*9Sq zV{Vy2mwgdM1X;lPijLj|rjnL$8~v=s;>@WysFjZ|?=?6)wb7!et{k&9v5uDQndhIU zri+Ijg9@!xJVEAyFj!!ZinQeu23dwsyC3HsXz03*&u|sGq`g- z9$H~H!DLR0zb+*b1-6BQDB z79n?xA1BH+^%sRvkzw;|T8(zpBe7Q~=;lH%#x=t?Z zelcBL)NR;!hjOiaH}D)&GB>$Mj3N;y#!zQ5qn#*V2MwiE!_rrFbTu$0n4|k%c~Z|f z_;-28=*_Y&TLh-?9pK^Qrx=jX2)x{$l6j;rO8c9C@dt9uWz0f!LExP;hLGkfZe|z^ zU%UxqRfiO38fC#ttmwNr)M+fgwL)Q{%==8vJhsqSW$g~W562dROf6hfO+(-rO#KvW z;Iztj^+xN2VE*g%6D1r*;d=S~q2u$(4Fa-rl4ix>SCDvyj zbh~rdQk)dzr2f1k)L7AU)OAy>yq>LfGScf6O4oEB-#eiVxzPhVVa(xlad?bPqav_} zKe2xulEND&ko)LIXg8K;0*O60XK=IW8ZU*r#zfr5b)|hL>m>9q zR1afZ8u-p17Z`Omaxt?3x3|(xkY)r+|=W4 z`95~_069?}IqQ$ixwGO!-cWOVd*G4lnP5cjK9(Q{?Vrz_j6;1pl&2-1voJyU=v#b$ zCDez#A8}`bVpkhp=@t_0SNf0hW7@?D!W2~EVs&gPRgtgac$JlK9(p+K9q)2>*-@-l zsyv+KyCV?vnNK-I2lmP(-i!m?c7B~Jh3KI7n7kirl1$V7aHMj_UcZxOv-r~fWHm++ z$$m8n4d9D@719L|p)Pncnx0afdHGpS4GxKzi`_IInl9>>t1*n6VbtseKSk2!4HO+`E1E`QLPBq)rC~t5RMJ$d`Ni zl>lEyE+SFSBJQmvhBKboRafX8Wy8Mz1=uoHbjOp6J2!-KKF3*#6o_3!$0aXLItx)f z8t|&0b|>Z)CLW*bYE}WYFb4KqUpU;0;&f*_$9VfGBfaQ(DXU&9%i&ou9w?pYju{9r z)F;{#FM|Ww9uLcAlO_@VSEJ4Zk&9#R4Mh`bUJR(tjM$Ur3;eO2T6+4zlKxn=Y8KcD z3|6HH;E)w2oCHW3!d|G};r~bh^~NTQu4WMsC|PgzJs)_$IUktQy=YB9Z*!$8wkr5K zYR1k)xQ(hUDgYL<*Kt@Tqf=*A<1JGm)gO^V`4chq4IWKUX-7CRL4_giGq!~7{yX)%( zzI4v~k-Hn0UwsMDT9!!2`d%H6Ew9ldMfQu%0lrs&by7)3AnOpve4In15>M=j;XqzN zAnW`3#u67LS5CNu;Kp}{6?j?Hn5N$xcF6VYJ7avXT^i)>>>CDW+3HyFg>F+39ayTy ziG8iEZy^UcT*DoXX~u%1Fkd&kDV+;D^v2MNaFMsd!>?*WGi9w!;-BMflH8Lr#Zt|* zk}lRLZ+1nBnwtiOYaURq>6P6c!rHCSAUSjjR1$2eO(v)2jGEEfjf@@iU`sOL<}%H| zXfgcYe8*ioI7h?|$|5Lg5#_9# zWgUT{$}xWd;dIBYRy-g1W%#IWdsnjc4h)5C9ZI-@FEm;{9I?IrrZSd>`ha$5DK&6o z0`Q1XOFJ`J)XtQ3FR%0(YuzhB*E_h>vRNXDw2Rvi)qE?qOzT<`3})vA1bF?E65$Eo zva~Ya=I_@v?aiJi^nH4?NQ}B`rE<*?%9?O0-|~{n@B53bABwLvD7Y4$!tp;DN+)8@ z8poPinS@T_Q)3+zIuyYDI>N(?f3#VF1mV`7g%5dL_MbeK`372f=^leBks!~hixI1fs+USqT!_lwRg!C`|X+jm@yVJ7W>2H z=*AUs``ZB05qdoF8sXC$1PL@;Tuotg!Bq6 zew<#p6U0uB-Fylx>nvLpZ2r~XG~maY{^e`j3|~ug@jKh5bf*RuSI@dZi~p4ic3;q* zNu?xi@^T^Zd!gC|GFA4SP-4*r0e+m89n2xRe9EDhl=oAt)#Z0TxtCMg?TD^8-UA_7 zo2GZhW^n9Ctf_bt{*z7UOYg-?zqEF~d4<)53#3#-@8v~CSN~#|(ph!B87Zla)uTYR zvAcxCA{}gf^8?jLD(&i6^g6R#XE|4bK*LKpj%*XZ*88vX?1zIDSFBjwO;h6~<_#%( zOuK^9tDUu#+P3gB0`23t9yP zh$yq*h=^jOYK7wwelXFzAP@*`{8;Ht-(Nsx;r&wAJ5Q;W*@OX&B{S&s9?c3D1PXTA zyNbRv9cU>QkxKtn6>oiPmTDS}*79V}h9BGykyyTe@NJT$xMwv>y&5pxa)t0dX70&G z3(uVNw<>G}Nx-CTMbFYo@+Jh5I%}2&qavo#0hU5m37pt)%MO>lLm#2gIGRK9tgAf1 z<(TmZBDx^u94}d8Jppd%TQ6h@-5K%b4l+-GX$Dx`!jR2oaZvospjnxxJZ7_Ahl6WL z-rE>lIQdU}33{HQ9d)*19gRViWj_TM6^rtVFZ%9#Wy7lu zqcDr|6oc?c_7u-X>55^pV##k*gWP?Ml6f67=5u*6w#rrT1VZ=eH8phAhB;i;Xgce& ztDb8LlgNvW0R>%@Zd?Z=2HAo9A-Ew_1l4BUGrMsnRE`6WVs)L`2WfyHoU56z*gUjYCXq5W7SX zx0{IbSUZLX?0Xe|Q2XbG?%W>pZZ5GF0}P`qe$a6hDD$uLmw1cYS~qN}%=xH$#rm)W zoj~T$=EK$!-dwY^BYxYS)hX@c@jwsSv9~?YIedfZ5?$qiS?;Mm>(FxBP<12EdUvuk z5zNIi%$6ta%6yFV90y8tH2)%WpA7e5vExsMOrHT^3tfRV)iW-gUqvjjZ!~X!PhS-m z5@wdLzjgb0MdYrxpAZgDdc!LjmKTpEQ*zqxop|I2zKDGjQrhs7^lPm9g|D-rWxnbK zyAo>dtmhEt$iPhxWi~E3R&C(VI*Y# zSUZI)W7$sQ{?3A^{(KyT-^^vfvdq8zl3tkqo-@)O=iglY&|kss7_ns9f~YeLij)f? z=@6mo*V$C=Zh*Cf%P)FGu^Z=}t0M|*aq5#PT5k5P7NCdlDuyj)BNEkqkE#OSjJ82z z_@#d^3(@z*20La0$>^wqw?CgU=Kd|e(v1)k7+Z}KKrQJ89sboo2tl4yK9kje=!o~L zu}dEdavpVu?0IIs5L}SFK;R51zE3OPjzVr93xDr#9E~YxYpwJjb2ngNd>jG9C^IxB zwI%A`{KTD(e))>sjFS_587p};SmGwFmb%3Dvr>1`j#_#tSY{~5d+e2yETip@-X%g% zc=4lErnXD_RssglX1Araw|I^=|Ee4+BWCT1S`45^XSPwq8MECB=T18TpOfukbp#XD z$Hj&*uvNc-v9?HDA#d9Lnt|P><>zQM#SdY?Cx)m*Llj24*Y+1MV?T+duW+z?YYGd}7;?&6};p-gt&eoL$sSYdu%qqt|F= zdCAy+$}teN%*DlhhN7=;WvZ|L`_{pR(~l?YF{!c=J-d1{8am7EFX;EeDq|!oEA9cG z;Vr?V;SRr=Q@@_t#cvuNlilOuJ8{qHn6KZvmP&iU^|Fw$Q;AtINi3?3r%>O?`sIc3 z#jr6Q3BfO72I3w9= zokaW&!vR0p)w{zfFK(RATW=J{Yj<^@|8h^*MDRn0Q2Mh2d^IOuOVln(@;>%IY1H6X z9{(%bZ{7OLlgefN1#eHbSvGmWVD$AfG#-gom_-|pYQTwWyY(?7N4_TEslcA)bLEP^ zZ0TC3sHys|lU=iQm_E(>XDP;Ld^0&QZp`KaQEG(1U_<>L!-l#5GSkL8Oac#)V8JjsJX)q#$eRzM*Xq7Kwi-2!3Zt55Qz zm;}*Dwm}E&2ti&1O(IlJmrt9e1swR0m^cW_$D7K~V(CEF{Az(~&SN+fvSz~c(t$cz zSV8n@bP@!uidIFy3|SO^HK;BhM4L_|YuOkW{cr*9bfBJ0rmq$p9uN?q8h}!z(LLZu zO-)TWLJh8_1_Kr_Mj(}mW5K8lIgX3(J`6|<0-fT^q|m4kj!zt(c8sY5g@X5x-`D5k zYhm$+dn)4x3IGo{3+D?*sv_V%KJcGMFqnq^z{!sV{o4@?J5bSZ8xn(dj7}gK`jeF|e|*&@!MAj&YV}YM=w<%&$eH5hz5hwM$JR28Gff zAzR1?>h$g_WNW3NtNy4G9XdDVbAQ66YWlCi*aa00{;|e%er2s!9v>HlX9fg1q zi5hA!G#-hE;jjcv7#W39$6yeec(R(tPcAI!6p)oT@1Ix2aYY2KGzbI|0*6Au$Vd$h z7@CB^!|-SX35M0sz$4U2>Ntc3cFh%$pk+j(``|!0DLyz465N;SvG#%kxYj-^Qyr+9 zD&o&4R^B)!84S>Ynp3F9Sbx5-qxg_)nK%xbNDY*_rWy*3KqEELnppIoMh+x817sq{ zClaBG`o08CShT=q0I)bto&pDJBfws?^ywrVlSa3r(Y$q_oFzdxBma190m_MpW8w^O zOcHR4P*c}JAhi%EJEVq|Iz|hPR_5IPWKSbf$btXKno~Rw?e8Hsp)kPwfoqSxSClQu z@B7{NTW`u*DM27>MWKZweBS~C=T9Q8trPhA{)*snHJZ{hn7T>rrJw-ESS#{Xp3KXCmm1pb!sKiT#F1{dF-$0-sOsGtCF zSgI3d4ugZ%2K)hI1Fluh@6|GPB6zad*Tk8@#ic68`Qv8Y(DMfmH!@8v3^xvO^9W*9 zhLy!Sz@u$ULno#_&4;7Pxz@xYi3kaxFg+n0vFLbGK!S@)=!mJoK0DTj(F|utTW9eT z74jN9g6qXn&22BP!`sKK`yh@p*>rTCP|y-qMXi`o9^PDQaP=oJp63AaK7!^2m^1zZk7_R8$V;cvRU3{Z+U{yP*YvKUT<{?b#m{CsVVx(TyaIOf2pE^!c%ty znEc2UqFP;3lW@F@4xYujR92>AXTMXF&yUHJZ@LG()W~%Yw-%&cxpK3jBD1c}^jR;0 zT$I|>WHZ)PR{y}O^+kPsqN39jNmEys92}fBIqCQK@#FVhUAt1v@ef>b^75)i{TTzV ze^pXewod8@&d{8!PBlO4jfu(4WjmlxSDvUNKJ&&95R$*4V-28{U?thv*<1Meg|=*X zgXS;oJb2*1FVy0+uU~^+r)wtKQZ#n2M@w!Y7CA!`Ho=dS6DgD^JEdbs`<0cIvmZXZ zI9{!vCq>bteVl%0vkt1 zNADLGPcP4RXH%qNVq&&z-P$)Bv^jkLtz0u4ZU+nod*rHm=SW3d1G%rK=Y)y;vl|Ce z0J`vR*x_C5xt+!(9lrxTb-l5SX#q#V6)Jixl+A2J+L{V%G}Zt_?-N< zYycH{MMg=ey7n}Nt)LFF6YEppJQH79l$S#FK=@w1G@F{9Ch@HtF|Ib>r4OdJu&`L_ zhlgDQ^RTn8x-mU3?~)0xzWDM*NhW^x zKx>7j2)DXLl_wgHNxRqP{b^tTM3e6F4CK|vk5Eot`TCwOD=QPRrv?Y_nVp>#6%+Gg zv0i|*+$y8(?(MxLqRLO{@jA`Ujc;3RDpbtN{T0K`23#Ff|b zG8N^a0FvDs6P8@ME{NdVUElfsJtWmUOW|cy(y%YKdU{w^&EDSfFdRLw{;ft|YisM| zV#w`+0+E;+uDk7{cJ}s@eerrWj*hi8F%pJ^d9MQ{a&mGbBO_OHl^pWy?MgIgUDqEy za=N|Ma*yVYt2Zeim$Kd{5D0`PtjSZ^*>e8={w6nUph}WkHhdl!2%P$~xuKx}&p)ef z7j?}la%hMW6datIo-QvHo29@?d=^YF;maH zPLVP;HkMB`U70Ni6N;%(P*em#w+Cb&>fFIb?1&MMnl6e`H-VyL~UOn z``!{PfuZQsj4o^&*_hYQ(tiEy**aTWTM!Cs2ZyJ8kdi>fT^?fZA*zR}C?n z-n`jIAjo;VPG7v4)s>TTs{31vBHtt{y`jP4Lfxm}a0_-bs6+EzBH}UqF)sx9!Y`$z zWwY5EE4nSQ(z@3DS{VnAdU@4sYAIIe&Jmv&E$=N5+wquH>3-g$@d{F1J-n*-Y2V~T zgx=E0Cr_Rc1 zOO+pXe)#ZVaB#5adF=LX=F0{O_pBd7hfXYN3vkPN<7r@T4@#AvpC7+_-)cZ^Zec}5 zV_&A9L;ly{QWM*0h25S2F_+T>*`q`M<+cyoN zOG``7#ly&OlPjjC)T+mBo}%kWI;w&C|c}F#03OMWHuTDu=4Wq zs{8zIJ1DEGs{;zToR;Q?l~#zRAN5C+D{{~F+Ld;`21M;ip;R7yFa$8T|p)HHNI z@&vhPTTIQVHg9o?i@iN4iivN_tTH#Z@({o&-`u6_?2}XAN2ca0Rx|9B3_<4g_xFEX zEel<~oSM3A!-fr)($hapOb8~{833R;5x#N5&|Kxf;z694w_2)|C~sa%P!=LE7_uYd zU{Og)-NeM*NY7OB&)L~jt&ClQo9-4C?zguW8)(d|bw>zpT0gNE!VC!DG*4*4UTe{# zM~@yH>HiXO=6VSG5&!huWi#2vCUh()?z?yIKCOz_8aOwyjn?&K@p|uii{@LmZV3k8 z2kYIH)=*ej2z}j8rO~o;l@=ElcRy!G$HZ8R8b;5<=D25X^-nJjj*f~MR@S~`7ibI* z4-X9vUM(xj_(eihFxDs))J$pVb`VOmR1Hxricu0oSY+gO^z{)yhXeCnyLkZV zP1@*%dR$zblbaiv$xJ$Vl6!7$uB+5%-m4~}lR5xm1BfH#=FMGGQ&aET+JqDXNF>8o zV?&C?4<3j`R87_emjt0gNThJkqd^-Gh&cWF_3Oqj`exi=wdfE)$gf^)>Fn$@H#Y~% z(tF&0&A6WC;j|tyGvO`Uq_r?5t*z?-jp`jrmo-3J9 z*{8AFHGE54ciW7$$M&1ZpQ);y_@@irN@y65cwy~ub&mIrssjUJ6mo8rx7E+Rm z4Yf(m%T*E+69atk(ZAI2LIk!MYQyg+aej98X&~J)STd(8p8`b{T9F9` z-ej|*YWpg-SID2-(ZHM8gq|%ZSQ*D`A{5{{rS3<8b9uxJTm{S=8PpKO>B4n^%JYc z=Zxe)hV6w+I1lfzXjXv3YloQh@h%-88Mr~^i1*nBCFgG0dSZY4_iIts<5c&Ww-1xd?=P??5o%_e(9{ zpT6}oh-%ve1O!+M6FV3T1|VXQEgRZ8Iz)LyE=a@o>l*3;+6AHv6xO3o>YFCkp3BR0 zcyU?TVb}0$1(h2%ZrmmhyaAl-^Q8VAS5$f2Qbk@K1q+bMp&g{rN3J@gV# z?nxIfMwhu3w8k_Ji1gV4#$*>2B|dzJ0qqyE5S~wW@JRAs;Ua~H{qC?PX;lf6V17< z%VVE_$vLCGJ;5cpxffDWj2VogOHL2lM@PoTQAp%I8VwF0l9rXNzqOlp>CsD|VeT9* zJ=;Edv#4mgtj~7m&Yghv9MKnJjpTq>)()IH0~#0zEOsk6dxf3{Q3gtWaAZVOalZ9A zdnT#9tLxyQL)#_bZt|(-YJ2w7|Mr_8&~rdhIo~tm*3*a zp}X57Bt*KPwLV4y4y2sg7gKJ%@*4W`*JB;jV#&P9;q#GtB zJUl!zv$J)(?g4nR+$a>qgKQDt&1MW}Y0E3xIB-S-^qD{(2lP?jpOupn_3YXHQ z2{Nrg1rE=Y%rs*+Pu;#FI?)I8K3ZMf@7tUY@}BgT4d6fl3S+NpG zgn%rcnV$#8jT&sC>p0k&($vuKqeI2iC|eH@h;h3T5PqQ5!Q92v&S%tOhOh65#(}

ubjtRZyqZ6T8B#A5*!@7upA0b zq6UOEKrQ_*#enPs3aGbqyd0dM-vN#PZTU&iteI<-pUc_JGu`0$GF7X$lF(jEi=nN1 z(QH!3y^FYn#svBmKi2#LlnPK5($dnAZ~G=$)zyV7$%lnYHY`C0TXTkZtJ@uMgPe|>3{F~p3a(Jz zCA?QU=r^A}$*(Td>Vaw%>Xx6GTX`}GwaZjpez5VeIFJ|nfy#n9IaG4q&G`O?h{nY;eNZ82y literal 0 HcmV?d00001 diff --git a/test_tube_scanner/home/static/img/nobody.png b/test_tube_scanner/home/static/img/nobody.png new file mode 100644 index 0000000000000000000000000000000000000000..0df0e15bb1a3e0851190f3b7da3b18add93b5492 GIT binary patch literal 27004 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 HxyJqtqXZjw literal 0 HcmV?d00001 diff --git a/test_tube_scanner/home/static/img/reductstore.png b/test_tube_scanner/home/static/img/reductstore.png new file mode 100644 index 0000000000000000000000000000000000000000..d0ad71ce9545f1c017c5f622a14800ce1d954e79 GIT binary patch literal 19475 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 literal 0 HcmV?d00001 diff --git a/test_tube_scanner/home/static/img/websocket.png b/test_tube_scanner/home/static/img/websocket.png new file mode 100644 index 0000000000000000000000000000000000000000..c0da11313fca4917ca2dc9be5dd0c2b1fcb2e366 GIT binary patch literal 28321 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 B86p4x literal 0 HcmV?d00001 diff --git a/test_tube_scanner/home/static/js/w3-custom.js b/test_tube_scanner/home/static/js/w3-custom.js new file mode 100644 index 0000000..1b7642b --- /dev/null +++ b/test_tube_scanner/home/static/js/w3-custom.js @@ -0,0 +1,42 @@ +/* +** custom.js +** GNU GENERAL PUBLIC LICENSE: (c) DD miraceti.net return document.querySelectorAll(id); +*/ +let s = function(sel) { return document.querySelector(sel); }; +let ss = function(sel) { return document.querySelectorAll(sel); }; +let sId = function(sel) { return document.getElementById(sel); }; +let isJsonObject = function(value) { return value !== undefined && value !== null && typeof value === 'object'; } + +let sidebarOpen = function(width, left, right) { right.style.marginLeft=width; left.style.width=width; left.style.display="block"; }; +let sidebarClose = function(left, right) { right.style.marginLeft="0"; left.style.display="none"; } +let sidebarAction = function(width, left, right) { (left.style.display==="none") ? sidebarOpen(width, left, right): sidebarClose(left, right); }; +let goFullscreen = function() { if (!document.fullscreenElement) { document.documentElement.requestFullscreen(); } else { document.exitFullscreen(); } }; + +let uuidFromId = function(id) { return id.getAttribute('id').split('-')[1]; } +let strReplace = function(str, c) { return str.replace(/\s+g/, c); }; +let rtrim = function(str, c) { return str.replace(/\s+$/, c); }; +let ltrim = function(str, c) { return str.replace(/^\s+/, c); }; +let lastString = function(str, c) { let n = str.split(c); return n[n.length - 1]; }; + +let toggleCheckboxesByName = function(name) { + const boxes = document.querySelectorAll(`input[type="checkbox"][name="${name}"]`); + const shouldCheck = Array.from(boxes).some(b => !b.checked); + boxes.forEach(b => b.checked = shouldCheck); +}; + +let toggleDisplay = function(el) { + const current = window.getComputedStyle(el).display; + el.style.display = (current === 'none') ? 'block': 'none'; +}; + +function toLocalISOString(date) { + const offset = date.getTimezoneOffset() * 60000; // Convertir le décalage en millisecondes + const localDate = new Date(date.getTime() - offset); + return localDate.toISOString().slice(0, -1); // Retire le 'Z' final +} + +function timestampToLocalISOString(timestamp) { + const date = new Date(timestamp*1000); + return toLocalISOString(date); +} + diff --git a/test_tube_scanner/home/static/js/w3.js b/test_tube_scanner/home/static/js/w3.js new file mode 100644 index 0000000..9bd6554 --- /dev/null +++ b/test_tube_scanner/home/static/js/w3.js @@ -0,0 +1,400 @@ +/* W3.JS 1.04 April 2019 by w3schools.com */ +"use strict"; +var w3 = {}; +w3.hide = function (sel) { + w3.hideElements(w3.getElements(sel)); +}; +w3.hideElements = function (elements) { + var i, l = elements.length; + for (i = 0; i < l; i++) { + w3.hideElement(elements[i]); + } +}; +w3.hideElement = function (element) { + w3.styleElement(element, "display", "none"); +}; +w3.show = function (sel, a) { + var elements = w3.getElements(sel); + if (a) {w3.hideElements(elements);} + w3.showElements(elements); +}; +w3.showElements = function (elements) { + var i, l = elements.length; + for (i = 0; i < l; i++) { + w3.showElement(elements[i]); + } +}; +w3.showElement = function (element) { + w3.styleElement(element, "display", "block"); +}; +w3.addStyle = function (sel, prop, val) { + w3.styleElements(w3.getElements(sel), prop, val); +}; +w3.styleElements = function (elements, prop, val) { + var i, l = elements.length; + for (i = 0; i < l; i++) { + w3.styleElement(elements[i], prop, val); + } +}; +w3.styleElement = function (element, prop, val) { + element.style.setProperty(prop, val); +}; +w3.toggleShow = function (sel) { + var i, x = w3.getElements(sel), l = x.length; + for (i = 0; i < l; i++) { + if (x[i].style.display == "none") { + w3.styleElement(x[i], "display", "block"); + } else { + w3.styleElement(x[i], "display", "none"); + } + } +}; +w3.addClass = function (sel, name) { + w3.addClassElements(w3.getElements(sel), name); +}; +w3.addClassElements = function (elements, name) { + var i, l = elements.length; + for (i = 0; i < l; i++) { + w3.addClassElement(elements[i], name); + } +}; +w3.addClassElement = function (element, name) { + var i, arr1, arr2; + arr1 = element.className.split(" "); + arr2 = name.split(" "); + for (i = 0; i < arr2.length; i++) { + if (arr1.indexOf(arr2[i]) == -1) {element.className += " " + arr2[i];} + } +}; +w3.removeClass = function (sel, name) { + w3.removeClassElements(w3.getElements(sel), name); +}; +w3.removeClassElements = function (elements, name) { + var i, l = elements.length, arr1, arr2, j; + for (i = 0; i < l; i++) { + w3.removeClassElement(elements[i], name); + } +}; +w3.removeClassElement = function (element, name) { + var i, arr1, arr2; + arr1 = element.className.split(" "); + arr2 = name.split(" "); + for (i = 0; i < arr2.length; i++) { + while (arr1.indexOf(arr2[i]) > -1) { + arr1.splice(arr1.indexOf(arr2[i]), 1); + } + } + element.className = arr1.join(" "); +}; +w3.toggleClass = function (sel, c1, c2) { + w3.toggleClassElements(w3.getElements(sel), c1, c2); +}; +w3.toggleClassElements = function (elements, c1, c2) { + var i, l = elements.length; + for (i = 0; i < l; i++) { + w3.toggleClassElement(elements[i], c1, c2); + } +}; +w3.toggleClassElement = function (element, c1, c2) { + var t1, t2, t1Arr, t2Arr, j, arr, allPresent; + t1 = (c1 || ""); + t2 = (c2 || ""); + t1Arr = t1.split(" "); + t2Arr = t2.split(" "); + arr = element.className.split(" "); + if (t2Arr.length == 0) { + allPresent = true; + for (j = 0; j < t1Arr.length; j++) { + if (arr.indexOf(t1Arr[j]) == -1) {allPresent = false;} + } + if (allPresent) { + w3.removeClassElement(element, t1); + } else { + w3.addClassElement(element, t1); + } + } else { + allPresent = true; + for (j = 0; j < t1Arr.length; j++) { + if (arr.indexOf(t1Arr[j]) == -1) {allPresent = false;} + } + if (allPresent) { + w3.removeClassElement(element, t1); + w3.addClassElement(element, t2); + } else { + w3.removeClassElement(element, t2); + w3.addClassElement(element, t1); + } + } +}; +w3.getElements = function (id) { + if (typeof id == "object") { + return [id]; + } else { + return document.querySelectorAll(id); + } +}; +w3.filterHTML = function(id, sel, filter) { + var a, b, c, i, ii, iii, hit; + a = w3.getElements(id); + for (i = 0; i < a.length; i++) { + b = a[i].querySelectorAll(sel); + for (ii = 0; ii < b.length; ii++) { + hit = 0; + if (b[ii].innerText.toUpperCase().indexOf(filter.toUpperCase()) > -1) { + hit = 1; + } + c = b[ii].getElementsByTagName("*"); + for (iii = 0; iii < c.length; iii++) { + if (c[iii].innerText.toUpperCase().indexOf(filter.toUpperCase()) > -1) { + hit = 1; + } + } + if (hit == 1) { + b[ii].style.display = ""; + } else { + b[ii].style.display = "none"; + } + } + } +}; +w3.sortHTML = function(id, sel, sortvalue) { + var a, b, i, ii, y, bytt, v1, v2, cc, j; + a = w3.getElements(id); + for (i = 0; i < a.length; i++) { + for (j = 0; j < 2; j++) { + cc = 0; + y = 1; + while (y == 1) { + y = 0; + b = a[i].querySelectorAll(sel); + for (ii = 0; ii < (b.length - 1); ii++) { + bytt = 0; + if (sortvalue) { + v1 = b[ii].querySelector(sortvalue).innerText; + v2 = b[ii + 1].querySelector(sortvalue).innerText; + } else { + v1 = b[ii].innerText; + v2 = b[ii + 1].innerText; + } + v1 = v1.toLowerCase(); + v2 = v2.toLowerCase(); + if ((j == 0 && (v1 > v2)) || (j == 1 && (v1 < v2))) { + bytt = 1; + break; + } + } + if (bytt == 1) { + b[ii].parentNode.insertBefore(b[ii + 1], b[ii]); + y = 1; + cc++; + } + } + if (cc > 0) {break;} + } + } +}; +w3.slideshow = function (sel, ms, func) { + var i, ss, x = w3.getElements(sel), l = x.length; + ss = {}; + ss.current = 1; + ss.x = x; + ss.ondisplaychange = func; + if (!isNaN(ms) || ms == 0) { + ss.milliseconds = ms; + } else { + ss.milliseconds = 1000; + } + ss.start = function() { + ss.display(ss.current) + if (ss.ondisplaychange) {ss.ondisplaychange();} + if (ss.milliseconds > 0) { + window.clearTimeout(ss.timeout); + ss.timeout = window.setTimeout(ss.next, ss.milliseconds); + } + }; + ss.next = function() { + ss.current += 1; + if (ss.current > ss.x.length) {ss.current = 1;} + ss.start(); + }; + ss.previous = function() { + ss.current -= 1; + if (ss.current < 1) {ss.current = ss.x.length;} + ss.start(); + }; + ss.display = function (n) { + w3.styleElements(ss.x, "display", "none"); + w3.styleElement(ss.x[n - 1], "display", "block"); + } + ss.start(); + return ss; +}; +w3.includeHTML = function(cb) { + var z, i, elmnt, file, xhttp; + z = document.getElementsByTagName("*"); + for (i = 0; i < z.length; i++) { + elmnt = z[i]; + file = elmnt.getAttribute("w3-include-html"); + if (file) { + xhttp = new XMLHttpRequest(); + xhttp.onreadystatechange = function() { + if (this.readyState == 4) { + if (this.status == 200) {elmnt.innerHTML = this.responseText;} + if (this.status == 404) {elmnt.innerHTML = "Page not found.";} + elmnt.removeAttribute("w3-include-html"); + w3.includeHTML(cb); + } + } + xhttp.open("GET", file, true); + xhttp.send(); + return; + } + } + if (cb) cb(); +}; +w3.getHttpData = function (file, func) { + w3.http(file, function () { + if (this.readyState == 4 && this.status == 200) { + func(this.responseText); + } + }); +}; +w3.getHttpObject = function (file, func) { + w3.http(file, function () { + if (this.readyState == 4 && this.status == 200) { + func(JSON.parse(this.responseText)); + } + }); +}; +w3.displayHttp = function (id, file) { + w3.http(file, function () { + if (this.readyState == 4 && this.status == 200) { + w3.displayObject(id, JSON.parse(this.responseText)); + } + }); +}; +w3.http = function (target, readyfunc, xml, method) { + var httpObj; + if (!method) {method = "GET"; } + if (window.XMLHttpRequest) { + httpObj = new XMLHttpRequest(); + } else if (window.ActiveXObject) { + httpObj = new ActiveXObject("Microsoft.XMLHTTP"); + } + if (httpObj) { + if (readyfunc) {httpObj.onreadystatechange = readyfunc;} + httpObj.open(method, target, true); + httpObj.send(xml); + } +}; +w3.getElementsByAttribute = function (x, att) { + var arr = [], arrCount = -1, i, l, y = x.getElementsByTagName("*"), z = att.toUpperCase(); + l = y.length; + for (i = -1; i < l; i += 1) { + if (i == -1) {y[i] = x;} + if (y[i].getAttribute(z) !== null) {arrCount += 1; arr[arrCount] = y[i];} + } + return arr; +}; +w3.dataObject = {}, +w3.displayObject = function (id, data) { + var htmlObj, htmlTemplate, html, arr = [], a, l, rowClone, x, j, i, ii, cc, repeat, repeatObj, repeatX = ""; + htmlObj = document.getElementById(id); + htmlTemplate = init_template(id, htmlObj); + html = htmlTemplate.cloneNode(true); + arr = w3.getElementsByAttribute(html, "w3-repeat"); + l = arr.length; + for (j = (l - 1); j >= 0; j -= 1) { + cc = arr[j].getAttribute("w3-repeat").split(" "); + if (cc.length == 1) { + repeat = cc[0]; + } else { + repeatX = cc[0]; + repeat = cc[2]; + } + arr[j].removeAttribute("w3-repeat"); + repeatObj = data[repeat]; + if (repeatObj && typeof repeatObj == "object" && repeatObj.length != "undefined") { + i = 0; + for (x in repeatObj) { + i += 1; + rowClone = arr[j]; + rowClone = w3_replace_curly(rowClone, "element", repeatX, repeatObj[x]); + a = rowClone.attributes; + for (ii = 0; ii < a.length; ii += 1) { + a[ii].value = w3_replace_curly(a[ii], "attribute", repeatX, repeatObj[x]).value; + } + (i === repeatObj.length) ? arr[j].parentNode.replaceChild(rowClone, arr[j]) : arr[j].parentNode.insertBefore(rowClone, arr[j]); + } + } else { + console.log("w3-repeat must be an array. " + repeat + " is not an array."); + continue; + } + } + html = w3_replace_curly(html, "element"); + htmlObj.parentNode.replaceChild(html, htmlObj); + function init_template(id, obj) { + var template; + template = obj.cloneNode(true); + if (w3.dataObject.hasOwnProperty(id)) {return w3.dataObject[id];} + w3.dataObject[id] = template; + return template; + } + function w3_replace_curly(elmnt, typ, repeatX, x) { + var value, rowClone, pos1, pos2, originalHTML, lookFor, lookForARR = [], i, cc, r; + rowClone = elmnt.cloneNode(true); + pos1 = 0; + while (pos1 > -1) { + originalHTML = (typ == "attribute") ? rowClone.value : rowClone.innerHTML; + pos1 = originalHTML.indexOf("{{", pos1); + if (pos1 === -1) {break;} + pos2 = originalHTML.indexOf("}}", pos1 + 1); + lookFor = originalHTML.substring(pos1 + 2, pos2); + lookForARR = lookFor.split("||"); + value = undefined; + for (i = 0; i < lookForARR.length; i += 1) { + lookForARR[i] = lookForARR[i].replace(/^\s+|\s+$/gm, ''); //trim + if (x) {value = x[lookForARR[i]];} + if (value == undefined && data) {value = data[lookForARR[i]];} + if (value == undefined) { + cc = lookForARR[i].split("."); + if (cc[0] == repeatX) {value = x[cc[1]]; } + } + if (value == undefined) { + if (lookForARR[i] == repeatX) {value = x;} + } + if (value == undefined) { + if (lookForARR[i].substr(0, 1) == '"') { + value = lookForARR[i].replace(/"/g, ""); + } else if (lookForARR[i].substr(0,1) == "'") { + value = lookForARR[i].replace(/'/g, ""); + } + } + if (value != undefined) {break;} + } + if (value != undefined) { + r = "{{" + lookFor + "}}"; + if (typ == "attribute") { + rowClone.value = rowClone.value.replace(r, value); + } else { + w3_replace_html(rowClone, r, value); + } + } + pos1 = pos1 + 1; + } + return rowClone; + } + function w3_replace_html(a, r, result) { + var b, l, i, a, x, j; + if (a.hasAttributes()) { + b = a.attributes; + l = b.length; + for (i = 0; i < l; i += 1) { + if (b[i].value.indexOf(r) > -1) {b[i].value = b[i].value.replace(r, result);} + } + } + x = a.getElementsByTagName("*"); + l = x.length; + a.innerHTML = a.innerHTML.replace(r, result); + } +}; \ No newline at end of file diff --git a/test_tube_scanner/home/static/webfonts/fa-brands-400.eot b/test_tube_scanner/home/static/webfonts/fa-brands-400.eot new file mode 100644 index 0000000000000000000000000000000000000000..85d81ebcf1d397004e05a047896926c3a15e3058 GIT binary patch literal 129590 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 z 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�L>6d(A=PBb3j0RgEW~@K8sj5wK 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 Qn|(Yw-v7u=!{aag4>un1-T(jq literal 0 HcmV?d00001 diff --git a/test_tube_scanner/home/static/webfonts/fa-brands-400.svg b/test_tube_scanner/home/static/webfonts/fa-brands-400.svg new file mode 100644 index 0000000..594d619 --- /dev/null +++ b/test_tube_scanner/home/static/webfonts/fa-brands-400.svg @@ -0,0 +1,3449 @@ + + + + + +Created by FontForge 20190801 at Thu Aug 22 14:41:09 2019 + By Robert Madole +Copyright (c) Font Awesome + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test_tube_scanner/home/static/webfonts/fa-brands-400.ttf b/test_tube_scanner/home/static/webfonts/fa-brands-400.ttf new file mode 100644 index 0000000000000000000000000000000000000000..aa1687de5c0c76a69880ede7b3915d9fe1a6ede5 GIT binary patch literal 129284 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 z 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 literal 0 HcmV?d00001 diff --git a/test_tube_scanner/home/static/webfonts/fa-brands-400.woff b/test_tube_scanner/home/static/webfonts/fa-brands-400.woff new file mode 100644 index 0000000000000000000000000000000000000000..6d1c6148e3bfe459114178d9f2d7f1986db29457 GIT binary patch literal 87520 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ࣨ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⋘iyB%{NbZNa+VrmU8wx z(EeZYzvXOHPzFI8NiiuYiLmo3@O6}+Xu$@_rKUCr%1%L>!FL%va0NLvJbcMnWxh2! z*$6sqqw1~}jB-`Y_-ew^YMiW9NO7jFm77y~dnTE8UvWWUG&fV}r+WuSgZ*14NNc_~ zt5sUHYFf$mw8QpRSO}LYUZvr*phI+x)L5`QXUhF~zG+^#%N>4Ay+Qw#bS_Mv)Ss9e%+yDdS=Dp9EC4tsW@DeM zf8{mB&pz-9bzqNLy**;6U$eG$a{G8qo8^{na))(Yuf)WXvAZ+9uCCDX^sdI@v^g1I znyzE6MZTZ64Y(`cC1(^}NdQIHXx3b(JwT}KdDa^qpL^Ad-R+kwU(B7UdmlLE-e3$4 z9&FLS9Ly{ zpM3t2i|)9H)Zf;<`3*PUd}uUVzX)TmoG<+B**_wmgShr$%yI0b{MpG=k=M!KWyL<) zU8ftQH(n&L*u`146uHBZJfcRCbGwGZ0U5rcdbQPM^-uW>psZKY{1q^M zm_B5Qx!M4h8B=X@&X;Svvg%*w!G6MZOzO|MWy5jj>vLx4{f|@i>pl#hdkb(7&2ttS z^Je5S&2<(-;+n#yZ}xC18giv>?}s%6bP=`rT)YMiXgd!wHH zCiygA7}U&DMqP|a^2!^`XzNC!apFpiV#0AxCP<{~Y%n}Gi?q3BzV^c}Hujs%l&G^W zd+YcZ5BkeahlCY~?q!DMTh`;9_Gs?I_&ba`oY>mx5V9{KQ^5hEpQq|Fd@szk_4 zcOnv=?*fV^h3O_ChS$ovA&O#~4wd}wpCO+jpNC$LnVKkP?2-lA%?EWi5dC$>dZ}fvexe^=k#c zp8I^4(8aPYJ~+emFB$sJPji&Hq~!AupmF{-&JS~bjN5!4=d&9BrK>of;QXC}Uj zuzJKf?{WS<*zMgylYRTFoEH&FLs?eV&*RYsKPGY^?FBN(hS|7gkxQk79lgTdj*pg> zpubGsFwt+f`^Wb$+|8DnZYA~D?i;h}1!QZXKB)b}M45|Hr10sdu}+P7K=m!;RUvoz&;@KJ!`W`xNCr zV@`8Tjb&XZ%Gs?Enc3KrI#3v`A`g@-H%)TkjKy5wcqyk61`yVr&XZ2NfKCt#uMAfP z&;$`6k7H-4D79G2Q!26e7|T*|t{6OIKD4|d(+&pR)&OOz=JT}ORE|ik%UsrV07p{X zBEJi;%B#5cNatMgmkW^JF?_ns&Wd%FOH21tNUDYHNC*Y|l zDy|QBWmjwzD6P%fe${ut59fvI8emL;3St_=>T>pjOYG1<+Gy1ggi;G2B-W>EvgSjh zMyY5teCFE3=*7H1^=T8S@6EjK9v{p`c~~9JV}iIfhSeWJw_=T>P&+Xc&>XM48m+Pj$M88o7v(a|^b72Rb~rNScS>OFlAmMC#qzJx_RpJ)v0 z+Tp=W+h5|dEq|%9cu*tc@O74Ha>KPuS2vJANE6&PEmyFMM{XFpqfrplFLeEaUz_pV z3(qZW?4_>04##&4W5d-Qjiyc_-(E?;sc9&yrD+NQ8}_f@_a8w70o@YyG1}l3Fl6ZE z!wclI2lVP~%ciA&7NQgJom&GMlQ()Hxo-P6TmD6h<{iHREna(jLyN`FYJu`2Ib)Om zHZl%nb$JW9%+4oeX{Y1~H;&!yNAUS=_g=uYOK!hJJ0%VX_&dePlRKZ0SGe)^TkWe? zR}LLoiSbhrua0r|)8G@I&gbPxAbNu=$#4)B*=fk9zV(gcuYL6N)ve=Koxt>yGiSaw z_rfDbetP#H87zRq&(87k;(TH7Z!k47%k6_0=XuJd%H_({%5}=k%ALv!aOSnw@1ckf zG%aLSgf^T%V^+oZk&Pca%i3_%=kNpji9lY%F}ES>_L^L<@mfv3>z&(j{1wUnc+uk5 zK7ZS7u^YXft2Z%z52d%>cK$!&aCQe_H|@OtPq9NfZdioH?O#%Da=C6k7 LdKIi` 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 literal 0 HcmV?d00001 diff --git a/test_tube_scanner/home/static/webfonts/fa-regular-400.eot b/test_tube_scanner/home/static/webfonts/fa-regular-400.eot new file mode 100644 index 0000000000000000000000000000000000000000..ea607caa7e3c3163019a31dac60516ae57bf3346 GIT binary patch literal 34394 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℘?h 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 F{|8b4qXPf{ literal 0 HcmV?d00001 diff --git a/test_tube_scanner/home/static/webfonts/fa-regular-400.svg b/test_tube_scanner/home/static/webfonts/fa-regular-400.svg new file mode 100644 index 0000000..a35e6d9 --- /dev/null +++ b/test_tube_scanner/home/static/webfonts/fa-regular-400.svg @@ -0,0 +1,803 @@ + + + + + +Created by FontForge 20190801 at Thu Aug 22 14:41:09 2019 + By Robert Madole +Copyright (c) Font Awesome + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test_tube_scanner/home/static/webfonts/fa-regular-400.ttf b/test_tube_scanner/home/static/webfonts/fa-regular-400.ttf new file mode 100644 index 0000000000000000000000000000000000000000..34629a6deecda28d95b375c3ae15bf7c3838ce54 GIT binary patch literal 34096 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 UcV>QrJmDWsorRB=UvK=s0KK1li~s-t literal 0 HcmV?d00001 diff --git a/test_tube_scanner/home/static/webfonts/fa-regular-400.woff b/test_tube_scanner/home/static/webfonts/fa-regular-400.woff new file mode 100644 index 0000000000000000000000000000000000000000..e115b8b98d74e4e807d4795ccc7062846aaf1175 GIT binary patch literal 16804 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⁣aLoW^H3^Dj zZ7Qw2+FUKK3r|+b?>CpFVy~3WI7Vr@F_?|r!mr}@(;lV5w4IMOPiCSvxtZ=zaE6IX z*rd5b$*2*#5InwgdDvncuM}#0-8&jkI)FYqo)eU*2f*eFn+r6<8UY26r5upN^I3!) zU)n7iMm=W;LD9?&VVe#1na-&hYTZUta0`SDj~4V;@7slPkc&%jr9^k6x1hYyYaT_b zqBvScv6W%Ru_{>1COOo3kd2KGs#bLm9m;M)^)|~$9ef6z8Zq(E0jlHi`9ZSjPWr!fC8B3Tv^CMEQ&W&r=bpPC9Y<;~#@?Pw63 W*V{l~R@o|qye1p0X;CulD=7v!b~dg6 literal 0 HcmV?d00001 diff --git a/test_tube_scanner/home/static/webfonts/fa-solid-900.eot b/test_tube_scanner/home/static/webfonts/fa-solid-900.eot new file mode 100644 index 0000000000000000000000000000000000000000..4101e3180f1af636f3fd14c5f7cfad46212e2697 GIT binary patch literal 192122 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 z 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

E%8)F0w%NCOb((&0E8ODMT``F zbeSe2Y+Y)!Nn6M{B|{mJI+7Kjm}Jm(5Ed8|%BjdEivl3)Bq*kGKPHu+RChv>MJzB| zg`b2}IC_{qhsZ}TNC=h-R?3}CEzd(GxCPQ!@D>Ojq)0Bo+MBnu`4kMf?s*bGQ)Cy; z5URnDgHeN5X&$z}Lb066!b=07FnMtyNDiyiY>M2hIcq^Hks&Dz^niGSA%zK;Ofi5fXbaTGja+x{*y)Aj*?n z&z;SYG@+5UQv^{iTTnQZjWPqDIW(PYd3mvrOTl()&4VJsj{(#Rz|)Pnna4v2`=L~U zvX=ofcobwHqK#oC>tI{~hlIZ{yOzj^?ymrcpnfY$xUSec?4L@Ghl~zlnDH+Hh4E=h zOopwzknt&EVe4*CHff9&fK{Z;LKju17(MDTbZB)>#i%oy%0NY$P-+oqQy*c~+LM6{ z3UX2LC{JG%&`ov%d=SJ$3y%cRsbmqJ0>=@i9wH*13j=@`<_6fN!PH?4UntInVgAD% zN{C1jw+l5^z`o~M1iMQvn<)*XRhi3XmIE`X8KTbM2^eT&CRfa+XiDTvz6g5(IG;I zWzz#P1-lQ#NQ#Jngb(QvdJnuqWy^{F0cOMgvFu1P^Cns<~|lCZ3l^Y!(P3P!FD0e3=HB8-`=W zsvKj451x52a(Iy7Qm2u%OtP00zyzEYb=qA&cc;r$aBpGG&A}cFcRVETvaR?pz|I54 zXv?BN=W+%V5a?a3fIJwa6M~MVV1QFT@%jT16@Vu|^C5o{4Xm#OnH*j}`X*vY3V4(b z(zNM}y5#83a8sB*QpFs0?w(O}!#jf!#6y9JV9=^q0J38QRN1O5!`lb3NTZ;6#Ceei zo1PkWjCe{kpbE0;Rf;f!Bh)ES23F!t2tY#EPEuZ3`sve%TxTfJ8ss?s(U}k*#jjLn bIN(2O;riD6z<;RUyH>H<73X)YKJ)(pT}P)V literal 0 HcmV?d00001 diff --git a/test_tube_scanner/home/static/webfonts/fa-solid-900.svg b/test_tube_scanner/home/static/webfonts/fa-solid-900.svg new file mode 100644 index 0000000..228a9b6 --- /dev/null +++ b/test_tube_scanner/home/static/webfonts/fa-solid-900.svg @@ -0,0 +1,4649 @@ + + + + + +Created by FontForge 20190801 at Thu Aug 22 14:41:09 2019 + By Robert Madole +Copyright (c) Font Awesome + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test_tube_scanner/home/static/webfonts/fa-solid-900.ttf b/test_tube_scanner/home/static/webfonts/fa-solid-900.ttf new file mode 100644 index 0000000000000000000000000000000000000000..704a2a996eb5037908200da22c7c86f640034753 GIT binary patch literal 191836 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

Bo1xY9uy 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
bXSOx{wS6!ngAplCQDlMejJJ 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�Yw6(>3h3Ki)UqBdO#joC{%U+==re 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

%4CPgwanN}b5K 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 Cp+=wp literal 0 HcmV?d00001 diff --git a/test_tube_scanner/home/static/webfonts/fa-v4compatibility.ttf b/test_tube_scanner/home/static/webfonts/fa-v4compatibility.ttf new file mode 100644 index 0000000000000000000000000000000000000000..e9545ed579e6d86383c254713e8bd17356f72e6c GIT binary patch literal 10556 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 literal 0 HcmV?d00001 diff --git a/test_tube_scanner/home/templates/base.html b/test_tube_scanner/home/templates/base.html new file mode 100644 index 0000000..cc444be --- /dev/null +++ b/test_tube_scanner/home/templates/base.html @@ -0,0 +1,28 @@ +{% extends 'layout.html' %} + +{% block slider %} +

+{% endblock %} + +{% block main %} +
+ {% block header %}{% endblock %} +
+ {% block content %}{% endblock %} +
+ {% block footer %}{% endblock %} +
+{% endblock %} + + +{% block js_footer %} + +{% endblock %} \ No newline at end of file diff --git a/test_tube_scanner/home/templates/inc/404.html b/test_tube_scanner/home/templates/inc/404.html new file mode 100644 index 0000000..58b1380 --- /dev/null +++ b/test_tube_scanner/home/templates/inc/404.html @@ -0,0 +1,20 @@ +{% extends 'dashboard/base.html' %} +{% load i18n %} + +{% block main_content %} +
+ {% block main-bar %} + + {% endblock %} +

+ {% trans "This page does not exist.
Please re-enter a new address." %} +

+
+{% endblock %} diff --git a/test_tube_scanner/home/templates/inc/500.html b/test_tube_scanner/home/templates/inc/500.html new file mode 100644 index 0000000..c95872b --- /dev/null +++ b/test_tube_scanner/home/templates/inc/500.html @@ -0,0 +1,23 @@ +{% extends 'dashboard/base.html' %} +{% load i18n %} + +{% block main_content %} +
+ {% block main-bar %} +
+
+
{% block bar-title %}{% trans "System error" %}{% endblock %}
+
+ × +
+
+
+ {% endblock %} +

+ {% trans "This page server can't run correctly.
Please contact the site administrator." %} +

{{ error }}
+ +
+{% endblock %} + + diff --git a/test_tube_scanner/home/templates/inc/alert.html b/test_tube_scanner/home/templates/inc/alert.html new file mode 100644 index 0000000..13003ca --- /dev/null +++ b/test_tube_scanner/home/templates/inc/alert.html @@ -0,0 +1,13 @@ + +{% if messages %} +
+ {% for message in messages %} +
+
{{ message }}
+
×
+
+ {% endfor %} +
+{% endif %} + + diff --git a/test_tube_scanner/home/templates/inc/image-preview.html b/test_tube_scanner/home/templates/inc/image-preview.html new file mode 100644 index 0000000..d041608 --- /dev/null +++ b/test_tube_scanner/home/templates/inc/image-preview.html @@ -0,0 +1,7 @@ +
+
+ + +
+
+ diff --git a/test_tube_scanner/home/templates/layout.html b/test_tube_scanner/home/templates/layout.html new file mode 100644 index 0000000..8857380 --- /dev/null +++ b/test_tube_scanner/home/templates/layout.html @@ -0,0 +1,33 @@ + + + + {% block title %}Test Tube Scanner{% endblock %} + {% block metas %} + + + + + + + + {% endblock %} + + + + {% block styles %}{% endblock %} + + {% block js_header %}{% endblock %} + + + {% block main_content %} + {% block slider %}{% endblock %} + {% block main %} + {% block header %}{% endblock %} + {% block content %}{% endblock %} + {% block footer %}{% endblock %} + {% endblock %} + {% endblock %} + {% block modal %}{% endblock %} + {% block js_footer %}{% endblock %} + + diff --git a/test_tube_scanner/home/templatetags/__init__.py b/test_tube_scanner/home/templatetags/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/test_tube_scanner/home/templatetags/home_tags.py b/test_tube_scanner/home/templatetags/home_tags.py new file mode 100644 index 0000000..47a78e8 --- /dev/null +++ b/test_tube_scanner/home/templatetags/home_tags.py @@ -0,0 +1,131 @@ +# encoding: utf-8 +import time, json +from datetime import datetime, timezone + +from django import template +from django.utils.html import format_html #, escape + +register = template.Library() + +@register.simple_tag +def icon_name(obj, name=None): + if not name: + name = obj.name + color, icon = '#FF0000', '' + if obj.icon: + color, icon = obj.color, obj.icon.html + result = f"""{icon} {name}""" + return format_html(result) + + +@register.simple_tag +def x_range(start, end=None, step=1): + """ + Usage: + {% x_range 1 5 as my_range %} + ou + {% x_range 0 10 2 as my_range %} + Retourne une liste Python similaire à range(start, end, step). + """ + try: + # convertir en entiers + if end is None: + # seul un argument passé -> range(0, start) + start = int(start) + seq = list(range(start)) + else: + start = int(start) + end = int(end) + step = int(step) + seq = list(range(start, end, step)) + except (ValueError, TypeError): + seq = [] + return seq + + +@register.filter +def epoch(value): + try: + return int(time.mktime(value.timetuple())*1000) + except AttributeError: + return '' + +@register.filter +def to_int(value): + return int(value) + + +@register.simple_tag +def math_inc(value): + return value + 1 + + +@register.simple_tag +def math_dec(value): + return value - 1 + +@register.simple_tag +def math_sub(value, arg): + return value - arg + +@register.simple_tag +def math_add(value, arg): + return value + arg + +@register.simple_tag +def math_mul(value, arg): + return value * arg + +@register.simple_tag +def math_div(value, arg): + return value / arg + +@register.simple_tag +def define(val=None): + return val + +@register.simple_tag +def concat(*args): + c = "" + for arg in args: + c += str(arg) + return c + +@register.filter +def nope(value): + try: + return not int(value) + except: + return False + +@register.simple_tag +def dict_to_json(dictionary): + return json.dumps(dictionary) + + +@register.simple_tag +def from_dict(dictionary, key): + return dictionary.get(key) + +@register.simple_tag +def from_list(lst, key): + try: + return lst[key] + except: + return "" + +@register.simple_tag +def from_choices(dictionary, key): + for k, v in dictionary: + if k == key: + return v + return '' + +@register.simple_tag +def in_intlist(lst, key): + return key in lst + +@register.simple_tag +def in_charlist(lst, key): + return str(key) in lst + diff --git a/test_tube_scanner/home/urls.py b/test_tube_scanner/home/urls.py new file mode 100644 index 0000000..fb29ff1 --- /dev/null +++ b/test_tube_scanner/home/urls.py @@ -0,0 +1,52 @@ +""" +URL configuration for monitoring project. + +The `urlpatterns` list routes URLs to views. For more information please see: + https://docs.djangoproject.com/en/5.1/topics/http/urls/ +Examples: +Function views + 1. Add an import: from my_app import views + 2. Add a URL to urlpatterns: path('', views.home, name='home') +Class-based views + 1. Add an import: from other_app.views import Home + 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') +Including another URLconf + 1. Import the include() function: from django.urls import include, path + 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) +""" +from django.conf.urls.i18n import i18n_patterns +from django.contrib.auth import views as auth_views +from django.conf import settings +from django.contrib import admin +from django.urls import path, re_path, include +from django.views.static import serve +from django.views.generic import RedirectView +from . import views + +handler404 = views.handler404 +handler500 = views.handler500 + + +urlpatterns = [ + path('i18n/', include('django.conf.urls.i18n')), +] + +urlpatterns += i18n_patterns( + path('admin/', admin.site.urls), + path('login/', auth_views.LoginView.as_view(template_name='admin/login.html'), name='login'), + path('logout/', auth_views.LogoutView.as_view(), name='logout'), + + path('', RedirectView.as_view(url='/scanner/main/', permanent=True), name='redirect_to_mainboard'), + path('scanner/', include('scanner.urls', namespace='scanner')), +) + +if settings.DEBUG: + from django.conf.urls.static import static + from django.contrib.staticfiles.urls import staticfiles_urlpatterns + urlpatterns += staticfiles_urlpatterns() + urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) +else: + urlpatterns += i18n_patterns( + re_path(r'^media/(?P.*)$', serve,{'document_root': settings.MEDIA_ROOT}), + re_path(r'^static/(?P.*)$', serve,{'document_root': settings.STATIC_ROOT}), + ) diff --git a/test_tube_scanner/home/views.py b/test_tube_scanner/home/views.py new file mode 100644 index 0000000..7a7117a --- /dev/null +++ b/test_tube_scanner/home/views.py @@ -0,0 +1,11 @@ +# +# encoding: utf-8 +from django.shortcuts import render + + +def handler404(request, *args, **argv): + return render(request, 'inc/404.html', status=404) + + +def handler500(request, *args, **argv): + return render(request, 'inc/500.html', status=500) diff --git a/test_tube_scanner/home/wsgi.py b/test_tube_scanner/home/wsgi.py new file mode 100644 index 0000000..425da42 --- /dev/null +++ b/test_tube_scanner/home/wsgi.py @@ -0,0 +1,16 @@ +""" +WSGI config for home_automation project. + +It exposes the WSGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/5.2/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'home.settings') + +application = get_wsgi_application() diff --git a/test_tube_scanner/manage.py b/test_tube_scanner/manage.py new file mode 100755 index 0000000..8e10b97 --- /dev/null +++ b/test_tube_scanner/manage.py @@ -0,0 +1,22 @@ +#!../.venv/bin/python +"""Django's command-line utility for administrative tasks.""" +import os +import sys + + +def main(): + """Run administrative tasks.""" + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'home.settings') + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + +if __name__ == '__main__': + main() diff --git a/test_tube_scanner/modules/__init__.py b/test_tube_scanner/modules/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/test_tube_scanner/modules/capture_interface.py b/test_tube_scanner/modules/capture_interface.py new file mode 100644 index 0000000..a750a76 --- /dev/null +++ b/test_tube_scanner/modules/capture_interface.py @@ -0,0 +1,304 @@ +""" +Interface abstraite de capture vidéo. +Définit le contrat que toutes les implémentations doivent respecter. + + 4 méthodes @abstractmethod à implémenter : open(), close(), capture_frame(), is_available() + Boucle de capture dans un thread daemon avec compensation de latence pour tenir les 5 fps + Callback set_frame_callback(fn) appelé à chaque frame avec (bytes, datetime) + save_frame() avec horodatage, start()/stop(), gestionnaire de contexte (with) + CaptureError exception dédiée +""" +import os +os.environ['OPENCV_LOG_LEVEL']="0" +os.environ['OPENCV_FFMPEG_LOGLEVEL']="0" +import cv2 +import numpy as np + +import abc +import time +import threading +import logging +from datetime import datetime, timezone +from pathlib import Path +from typing import Optional, Callable, TYPE_CHECKING + +if TYPE_CHECKING: + from .circular_crop import CircularCrop # Evite l'import circulaire au runtime + +logger = logging.getLogger(__name__) + + +class CaptureError(Exception): + """Exception levée lors d'une erreur de capture.""" + pass + + +class VideoCaptureInterface(abc.ABC): + """ + Interface abstraite pour la capture d'images vidéo en JPEG. + + Cadence cible : 5 images par seconde (configurable). + Les sous-classes doivent implémenter les méthodes abstraites + pour gérer le matériel spécifique. + """ + + # Cadence par défaut en images par seconde + DEFAULT_FPS: float = 5.0 + + def __init__(self, fps: float = DEFAULT_FPS): + """ + Initialise l'interface de capture. + + :param fps: Cadence cible en images par seconde + """ + self._fps: float = fps + self._interval: float = 1.0 / fps # Intervalle en secondes entre chaque capture + self._running: bool = False # Indique si la capture est en cours + self._thread: Optional[threading.Thread] = None + self._frame_count: int = 0 # Compteur total d'images capturées + self._on_frame: Optional[Callable[[bytes, datetime], None]] = None # Callback image + self._circular_crop: Optional["CircularCrop"] = None # Recadrage circulaire optionnel + self._active_median = False + + # ------------------------------------------------------------------ + # Méthodes abstraites — obligatoires dans les sous-classes + # ------------------------------------------------------------------ + + @abc.abstractmethod + def open(self) -> None: + """ + Ouvre et initialise le périphérique de capture. + Doit lever CaptureError si le périphérique n'est pas disponible. + """ + + @abc.abstractmethod + def close(self) -> None: + """ + Libère le périphérique de capture et toutes les ressources associées. + """ + + @abc.abstractmethod + def capture_frame(self) -> bytes: + """ + Capture une seule image et la retourne en JPEG brut. + + :return: Données JPEG de l'image sous forme de bytes + :raises CaptureError: Si la capture échoue + """ + + @abc.abstractmethod + def is_available(self) -> bool: + """ + Vérifie si le périphérique est prêt à capturer. + + :return: True si le périphérique est opérationnel + """ + + # ------------------------------------------------------------------ + # Méthodes concrètes communes à toutes les implémentations + # ------------------------------------------------------------------ + + @property + def fps(self) -> float: + """Cadence actuelle en images par seconde.""" + return self._fps + + @fps.setter + def fps(self, value: float) -> None: + """Modifie la cadence de capture à la volée.""" + if value <= 0: + raise ValueError("La cadence doit être un nombre positif") + self._fps = value + self._interval = 1.0 / value + logger.debug("Cadence mise à jour : %.1f fps (intervalle %.3f s)", value, self._interval) + + @property + def frame_count(self) -> int: + """Nombre total d'images capturées depuis le démarrage.""" + return self._frame_count + + def set_frame_callback(self, callback: Callable[[bytes, datetime], None]) -> None: + """ + Définit la fonction appelée à chaque nouvelle image capturée. + + :param callback: Fonction(jpeg_bytes, timestamp) appelée pour chaque frame + """ + self._on_frame = callback + + def start(self) -> None: + """ + Démarre la capture en continu dans un thread dédié. + Appelle open() si le périphérique n'est pas encore disponible. + """ + if self._running: + logger.warning("La capture est déjà en cours") + return + + if not self.is_available(): + logger.info("Ouverture du périphérique avant démarrage") + self.open() + + self._running = True + self._frame_count = 0 + self._thread = threading.Thread( + target=self._capture_loop, + name=f"{self.__class__.__name__}-capture", + daemon=True, # Thread démon : s'arrête avec le processus principal + ) + self._thread.start() + logger.info("%s : capture démarrée à %.1f fps", self.__class__.__name__, self._fps) + + def stop(self) -> None: + """ + Arrête la capture et attend la fin du thread. + Appelle close() pour libérer les ressources. + """ + if not self._running: + return + + self._running = False + if self._thread and self._thread.is_alive(): + self._thread.join(timeout=5.0) # Attente max 5 secondes + self.close() + logger.info( + "%s : capture arrêtée — %d images capturées", + self.__class__.__name__, + self._frame_count, + ) + + def set_circular_crop(self, crop: Optional["CircularCrop"]) -> None: + """ + Active ou désactive le recadrage circulaire appliqué à chaque frame. + + Lorsqu'un CircularCrop est défini, chaque appel à capture_frame() + passe automatiquement par process_frame() avant d'être transmis + au callback ou sauvegardé. + + :param crop: Instance CircularCrop configurée, ou None pour désactiver + """ + self._circular_crop = crop + if crop is not None: + logger.info( + "%s : recadrage circulaire activé (R=%d, stratégie=%s)", + self.__class__.__name__, crop.radius, crop.strategy.name, + ) + else: + logger.info("%s : recadrage circulaire désactivé", self.__class__.__name__) + + def process_frame(self, jpeg_bytes: bytes) -> bytes: + """ + Applique le post-traitement configuré sur une image brute. + + Actuellement : recadrage circulaire si un CircularCrop est défini. + Peut être surchargé dans une sous-classe pour des traitements spécifiques. + + :param jpeg_bytes: Image JPEG brute issue du capteur + :return: Image traitée (JPEG ou PNG selon la stratégie) + """ + if self._circular_crop is not None: + return self._circular_crop.process(jpeg_bytes) + return jpeg_bytes + + def save_frame(self, jpeg_bytes: bytes, directory: str = ".", prefix: str = "frame") -> Path: + """ + Enregistre une image JPEG sur le disque avec un horodatage. + + :param jpeg_bytes: Données brutes JPEG + :param directory: Dossier de destination + :param prefix: Préfixe du nom de fichier + :return: Chemin du fichier créé + """ + dest = Path(directory) + dest.mkdir(parents=True, exist_ok=True) + timestamp = datetime.now().strftime("%Y%m%d_%H%M%S_%f") + filepath = dest / f"{prefix}_{timestamp}.jpg" + filepath.write_bytes(jpeg_bytes) + logger.debug("Image sauvegardée : %s (%d octets)", filepath, len(jpeg_bytes)) + return filepath + + def __enter__(self) -> "VideoCaptureInterface": + """Permet l'utilisation avec le gestionnaire de contexte 'with'.""" + self.open() + return self + + def __exit__(self, exc_type, exc_val, exc_tb) -> None: + """Ferme proprement le périphérique à la sortie du bloc 'with'.""" + self.close() + + def __repr__(self) -> str: + status = "actif" if self._running else "arrêté" + return f"<{self.__class__.__name__} fps={self._fps} status={status}>" + + # ------------------------------------------------------------------ + # tracer médianes + # ------------------------------------------------------------------ + def set_median(self, is_median=False): + """ + Active ou désactive les médianes + """ + self._active_median = is_median + + def display_median(self, jpeg): + if self._active_median: + nparr = np.frombuffer(jpeg, np.uint8) + frame = cv2.imdecode(nparr, cv2.IMREAD_COLOR) + height, width = frame.shape[:2] + center_x = width // 2 + center_y = height // 2 + + cv2.line(frame, (center_x, 0), (center_x, height), (0, 255, 0), 1) + cv2.line(frame, (0, center_y), (width, center_y), (0, 255, 0), 1) + cv2.circle(frame, (center_x, center_y), 2, (0, 0, 255), -1) + + cv2.putText(frame, f"Num: {self._frame_count}", (10, 30), + cv2.FONT_HERSHEY_SIMPLEX, 0.6, (255, 255, 255), 2) + + _, buffer = cv2.imencode('.jpg', frame) + jpeg_bytes = buffer.tobytes() + return jpeg_bytes + return jpeg + + + + # ------------------------------------------------------------------ + # Boucle interne de capture (privée) + # ------------------------------------------------------------------ + + def _capture_loop(self) -> None: + """ + Boucle principale de capture tournant dans le thread dédié. + Respecte la cadence cible et appelle le callback si défini. + """ + + while self._running: + loop_start = time.monotonic() + + try: + jpeg = self.capture_frame() + jpeg = self.display_median(jpeg) + jpeg = self.process_frame(jpeg) # Recadrage circulaire si configuré + + self._frame_count += 1 + + ts = datetime.now(timezone.utc) + + if self._on_frame: + try: + self._on_frame(jpeg, ts) + except Exception as cb_err: # noqa: BLE001 + logger.error("Erreur dans le callback image : %s", cb_err) + + except CaptureError as err: + logger.error("Échec de capture (#%d) : %s", self._frame_count, err) + + # Compensation du temps d'exécution pour tenir la cadence + elapsed = time.monotonic() - loop_start + sleep_time = self._interval - elapsed + if sleep_time > 0: + time.sleep(sleep_time) + else: + logger.debug( + "Cadence non tenue : %.3f s de retard (traitement=%.3f s)", + -sleep_time, + elapsed, + ) diff --git a/test_tube_scanner/modules/circular_crop.py b/test_tube_scanner/modules/circular_crop.py new file mode 100644 index 0000000..745127c --- /dev/null +++ b/test_tube_scanner/modules/circular_crop.py @@ -0,0 +1,245 @@ +""" +Utilitaire de recadrage circulaire centré sur une image JPEG. + +Trois stratégies disponibles : + - MASK_BLACK : image originale, pixels hors cercle mis à noir, sortie JPEG + - CROP_PNG : carré 2R×2R centré, canal alpha = masque circulaire, sortie PNG + - CROP_JPEG : carré 2R×2R centré sans transparence, sortie JPEG (le plus compact) + + Masque noir : image JPEG de taille originale, pixels hors cercle = noir → simple mais pas économe + Crop circulaire + PNG : on crop au carré 2R×2R, on applique le masque alpha → PNG plus petit, transparence vraie, mais PNG > JPEG en taille + Crop carré JPEG : on extrait juste le carré 2R×2R centré → JPEG compact, pas de transparence +""" + +import io +import logging +from enum import Enum, auto +from typing import Optional + +import numpy as np + +logger = logging.getLogger(__name__) + + +class CropStrategy(Enum): + """Stratégie de recadrage circulaire.""" + MASK_BLACK = auto() # Masque noir — taille originale, sortie JPEG + CROP_PNG = auto() # Carré cropé + alpha circulaire — sortie PNG + CROP_JPEG = auto() # Carré cropé sans alpha — sortie JPEG (défaut recommandé) + + +class CircularCrop: + """ + Applique un recadrage circulaire centré sur une image fournie en bytes JPEG. + + Utilise uniquement NumPy + Pillow pour rester léger et compatible + aussi bien sur PC que sur Raspberry Pi. + + Exemple :: + + crop = CircularCrop(radius=200, strategy=CropStrategy.CROP_JPEG, quality=80) + result_bytes = crop.process(jpeg_bytes) + """ + + def __init__( + self, + radius: int, + strategy: CropStrategy = CropStrategy.CROP_JPEG, + jpeg_quality: int = 85, + center: Optional[tuple[int, int]] = None, + ): + """ + :param radius: Rayon du cercle de recadrage en pixels + :param strategy: Stratégie de sortie (voir CropStrategy) + :param jpeg_quality: Qualité JPEG pour les sorties JPEG [0-100] + :param center: Centre du cercle (col, row) — None = centre de l'image + """ + if radius <= 0: + raise ValueError("Le rayon doit être un entier strictement positif") + if not 0 <= jpeg_quality <= 100: + raise ValueError("La qualité JPEG doit être comprise entre 0 et 100") + + self._radius = radius + self._strategy = strategy + self._jpeg_quality = jpeg_quality + self._center = center # None = calcul automatique au premier appel + + # Cache du masque pour éviter de le recalculer à chaque frame + self._mask_cache: Optional[np.ndarray] = None + self._mask_shape: Optional[tuple[int, int, int]] = None # (H, W, strategy) + + # ------------------------------------------------------------------ + # API publique + # ------------------------------------------------------------------ + + def process(self, jpeg_bytes: bytes) -> bytes: + """ + Applique le recadrage circulaire sur une image JPEG. + + :param jpeg_bytes: Image source en bytes JPEG + :return: Image recadrée selon la stratégie choisie (JPEG ou PNG) + :raises ValueError: Si les bytes ne sont pas une image valide + """ + from PIL import Image + + # Décodage JPEG → tableau NumPy RGB + img = Image.open(io.BytesIO(jpeg_bytes)).convert("RGB") + arr = np.asarray(img, dtype=np.uint8) # shape (H, W, 3) + + h, w = arr.shape[:2] + cx, cy = self._resolve_center(w, h) + + if self._strategy == CropStrategy.MASK_BLACK: + return self._apply_mask_black(arr, cx, cy) + elif self._strategy == CropStrategy.CROP_PNG: + return self._apply_crop_png(arr, cx, cy, w, h) + else: # CROP_JPEG par défaut + return self._apply_crop_jpeg(arr, cx, cy, w, h) + + @property + def radius(self) -> int: + return self._radius + + @radius.setter + def radius(self, value: int) -> None: + """Modifie le rayon et invalide le cache du masque.""" + if value <= 0: + raise ValueError("Le rayon doit être un entier strictement positif") + self._radius = value + self._invalidate_cache() + + @property + def strategy(self) -> CropStrategy: + return self._strategy + + @strategy.setter + def strategy(self, value: CropStrategy) -> None: + self._strategy = value + self._invalidate_cache() + + @property + def jpeg_quality(self) -> int: + return self._jpeg_quality + + @jpeg_quality.setter + def jpeg_quality(self, value: int) -> None: + if not 0 <= value <= 100: + raise ValueError("La qualité JPEG doit être comprise entre 0 et 100") + self._jpeg_quality = value + + # ------------------------------------------------------------------ + # Stratégies internes + # ------------------------------------------------------------------ + + def _apply_mask_black(self, arr: np.ndarray, cx: int, cy: int) -> bytes: + """ + Pixels hors cercle remplacés par du noir. + Sortie : JPEG de la même taille que l'original. + """ + from PIL import Image + + mask = self._get_circle_mask(arr.shape[:2], cx, cy) # shape (H, W) bool + result = arr.copy() + result[~mask] = 0 # Tout ce qui est hors cercle → noir RGB + + buf = io.BytesIO() + Image.fromarray(result).save(buf, format="JPEG", quality=self._jpeg_quality) + return buf.getvalue() + + def _apply_crop_png(self, arr: np.ndarray, cx: int, cy: int, w: int, h: int) -> bytes: + """ + Crop carré 2R×2R centré + canal alpha circulaire. + Sortie : PNG avec transparence (pixels hors cercle = transparent). + """ + from PIL import Image + + x1, y1, x2, y2 = self._crop_box(cx, cy, w, h) + cropped = arr[y1:y2, x1:x2] # shape (2R, 2R, 3) ou moins si bord + + # Canal alpha : 255 dans le cercle, 0 à l'extérieur + ch, cw = cropped.shape[:2] + local_cx = cx - x1 + local_cy = cy - y1 + alpha_mask = self._get_circle_mask((ch, cw), local_cx, local_cy) + alpha = np.where(alpha_mask, 255, 0).astype(np.uint8) + + rgba = np.dstack([cropped, alpha]) # shape (H, W, 4) + + buf = io.BytesIO() + Image.fromarray(rgba, mode="RGBA").save(buf, format="PNG", optimize=True) + return buf.getvalue() + + def _apply_crop_jpeg(self, arr: np.ndarray, cx: int, cy: int, w: int, h: int) -> bytes: + """ + Crop carré 2R×2R centré, pixels hors cercle mis à noir. + Sortie : JPEG compact sans canal alpha (meilleur compromis taille/qualité). + """ + from PIL import Image + + x1, y1, x2, y2 = self._crop_box(cx, cy, w, h) + cropped = arr[y1:y2, x1:x2].copy() + + ch, cw = cropped.shape[:2] + local_cx = cx - x1 + local_cy = cy - y1 + mask = self._get_circle_mask((ch, cw), local_cx, local_cy) + cropped[~mask] = 0 # Hors cercle → noir dans le crop + + buf = io.BytesIO() + Image.fromarray(cropped).save(buf, format="JPEG", quality=self._jpeg_quality) + return buf.getvalue() + + # ------------------------------------------------------------------ + # Helpers + # ------------------------------------------------------------------ + + def _resolve_center(self, w: int, h: int) -> tuple[int, int]: + """Retourne le centre configuré ou le centre géométrique de l'image.""" + if self._center is not None: + return self._center + return (w // 2, h // 2) + + def _crop_box(self, cx: int, cy: int, w: int, h: int) -> tuple[int, int, int, int]: + """ + Calcule la boîte de crop 2R×2R clampée aux bords de l'image. + + :return: (x1, y1, x2, y2) en coordonnées image + """ + r = self._radius + x1 = max(cx - r, 0) + y1 = max(cy - r, 0) + x2 = min(cx + r, w) + y2 = min(cy + r, h) + return (x1, y1, x2, y2) + + def _get_circle_mask(self, shape: tuple[int, int], cx: int, cy: int) -> np.ndarray: + """ + Construit (ou récupère du cache) le masque booléen circulaire. + + Le masque est recalculé uniquement si la taille ou le centre change. + + :param shape: (hauteur, largeur) du tableau cible + :param cx: Colonne du centre dans ce tableau + :param cy: Ligne du centre dans ce tableau + :return: Tableau bool shape (H, W) — True = dans le cercle + """ + cache_key = (shape[0], shape[1], cx, cy, self._radius) + + if self._mask_cache is None or self._mask_shape != cache_key: + h, w = shape + # Coordonnées entières de chaque pixel via meshgrid + ys, xs = np.ogrid[:h, :w] + dist_sq = (xs - cx) ** 2 + (ys - cy) ** 2 + self._mask_cache = dist_sq <= self._radius ** 2 + self._mask_shape = cache_key + logger.debug( + "Masque circulaire recalculé : shape=%s centre=(%d,%d) R=%d", + shape, cx, cy, self._radius, + ) + + return self._mask_cache + + def _invalidate_cache(self) -> None: + """Invalide le cache du masque (après changement de rayon ou stratégie).""" + self._mask_cache = None + self._mask_shape = None diff --git a/test_tube_scanner/modules/grbl.py b/test_tube_scanner/modules/grbl.py new file mode 100644 index 0000000..88505b5 --- /dev/null +++ b/test_tube_scanner/modules/grbl.py @@ -0,0 +1,356 @@ +''' +GCode pour piloter la L2544 Laser Engraving Machine + + GRBLController: + Commande uniquement les mouvements (X, Y) + Le mode absolue est retenu + + GridScanner + Balayage complet de la grille d'éprouvettes en mode serpentin + + Usage: + grbl = GRBLController() + scan = GridScanner(grbl, xbase=100, ybase=100, duration=5) + scan.start() + +Created on 25 mars 2026 + +@author: denis@miraceti.net +''' +import logging +import serial +import time +import threading +from typing import Optional + +logging.basicConfig(level=logging.INFO) +logger = logging.getLogger(__name__) + + +class GRBLController: + ''' + Contrôleur pour machine de gravure laser L2544 (GRBL 1.1f) + Fonctions de base pour la calibration : déplacement manuel et gestion de la position. + ''' + X_MAX = 350 + Y_MAX = 250 + X_MIN = 0 + Y_MIN = 0 + + def __init__(self, port='/dev/ttyUSB0', baudrate=115200, timeout=1, send_callback=None, x_max=None, y_max=None): + self.lock = threading.Lock() + self.port = port + self.baudrate = baudrate + self.timeout = timeout + + if x_max is not None: + self.X_MAX = x_max + if y_max is not None: + self.Y_MAX = y_max + + self._state = send_callback + if self._state is None: + self._state = self._send_msg + + self.x, self.y = 0, 0 + self.start_connection() + self._wake_up() + self._init_machine() + + def wait_for(self, delay=1.0): + threading.Event().wait(delay*1.0) + + def _send_msg(self, **msg): + print(msg) + + def clear_buffer(self): + while self.ser.in_waiting >0: + msg = self.ser.readline().decode().strip() + print(f"Buffer: {msg}") + self._state(state='serial', msg=msg) + + def start_connection(self): + n = 0 + while True: + try: + self.ser = serial.Serial(self.port, self.baudrate, timeout=self.timeout, exclusive=True) + # CRITIQUE : + self.ser.setDTR(False) + self.ser.setRTS(False) + self.clear_buffer() + break + except Exception as e: + print(f"Erreur de connexion (essai {n}): {e}") + n += 1 + self.wait_for(1.0) + + def _init_machine(self): + self.send("G21") # Unités en mm + self.send("G90") # Mode absolu + + def _clamp(self, x, y): + self.clear_buffer() + x = max(self.X_MIN, min(self.X_MAX, x)) + y = max(self.Y_MIN, min(self.Y_MAX, y)) + return x, y + + def _wake_up(self): + #with self.lock: + self.ser.write(b"\r\n\r\n") + self.wait_for(1) + self.clear_buffer() + + + def send(self, cmd, wait_ok=True, timeout=5): + try: + return self._send(cmd, wait_ok, timeout) + except Exception as e: + #print("Send error:", e) + self._state(state='error', msg=f"Error send {cmd} command: {e}") + self.close() + self.start_connection() + self._wake_up() + self._init_machine() + ''' + self.recover() + self.reset_grbl() + raise''' + + def recover(self): + #print("Récupération de GRBL...") + self._state(state='recover', msg=f"Erreur, récupération de GRBL...") + self.wait_for(1) + self._wake_up() + + def _send(self, cmd, wait_ok=True, timeout=5): + #print(f">>> {cmd}") + self._state(state='send', msg=f">>> {cmd}") + self.ser.write((cmd + "\n").encode()) + + if not wait_ok: + return None + + start = time.time() + while True: + if time.time() - start > timeout: + raise TimeoutError(f"Timeout sur la commande: {cmd}") + + raw = self.ser.readline() + if not raw: + continue + + line = raw.decode(errors="ignore").strip() + if not line: + continue + if line.startswith("<"): + continue # Ignorer les messages de status asynchrones + if "ok" in line.lower(): + return line + if "error" in line.lower(): + raise Exception(f"Erreur GRBL: {line}") + + def get_status(self): + #with self.lock: + self.ser.write(b"?\n") + while True: + line = self.ser.readline() + if not line: + continue + line = line.decode().strip() + if line.startswith("<"): + return line + + def reset_grbl(self): + self.send("$X") # Réinitialise les alarmes + self.wait_idle() + self.send("$H") # Homing + self.wait_idle() + + def _mpos(self, status): + if "MPos" in status: + mpos = status.split("MPos:")[1].split("|")[0] + x, y, *_ = mpos.split(",") + return float(x), float(y) + return None, None + + def get_mpos(self): + return self._mpos(self.get_status()) + + def wait_idle(self, timeout=10): + start = time.time() + while True: + if time.time() - start > timeout: + raise TimeoutError("Délai d'attente pour Idle dépassé") + status = self.get_status() + self.x, self.y = self._mpos(status) + self._state(xy=True, x=self.x, y=self.y) + if status and "Idle" in status: + break + self.wait_for(0.1) + + def move_to(self, x, y, feed=1000): + x, y = self._clamp(x, y) + #cmd = f"G0 X{x:.2f} Y{y:.2f} F{feed}" # feed is not updated in G0 mode + cmd = f"G53 G1 X{x:.2f} Y{y:.2f} F{feed}" + self.send(cmd) + self.wait_idle() + + def move_relative_(self, dx=0, dy=0, feed=1000): + self.send("G91") # Mode relatif + cmd = f"G0 X{dx} Y{dy} F{feed}" + self.send(cmd) + self.send("G90") # Retour en mode absolu + self.wait_idle() + + def move_relative(self, dx=0, dy=0, feed=1000): + x, y = self.get_mpos() # Position actuelle + self.move_to(x + dx, y + dy) + + def go_origin(self, feed=1000): + self.move_to(0, 0, feed=feed) + self.wait_for(2.0) + + def set_position(self, x, y): + x, y = self._clamp(x, y) + cmd = f"G92 X{x:.2f} Y{y:.2f}" + self.send(cmd) + self.wait_for(2.0) + + def move_up(self, step=10, feed=1000): + self.move_relative(dy=step, feed=feed) + + def move_down(self, step=10, feed=1000): + self.move_relative(dy=-step, feed=feed) + + def move_left(self, step=10, feed=1000): + self.move_relative(dx=-step, feed=feed) + + def move_right(self, step=10, feed=1000): + self.move_relative(dx=step, feed=feed) + + def close(self): + self.ser.close() + + +class GridScanner: + + def __init__(self, grbl, proc=None, **config): + ''' + xbase # Position X de départ (col 0) en mm + ybase # Position Y de départ (row 0) en mm + cols # Nombre de colonnes + rows # Nombre de lignes + dx # Pas entre colonnes en mm + dy # Pas entre lignes en mm + duration # Durée de filmage par éprouvette en secondes + feed # Vitesse de déplacement entre éprouvettes (mm/min) + ''' + self.grbl = grbl + self.proc = proc + + self.position = config.get('position', 'HG') + self.xbase = config.get('xbase', 50) + self.ybase = config.get('ybase', 50) + self.cols = config.get('cols', 6) + self.rows = config.get('rows', 4) + self.dx = config.get('dx', 20) + self.dy = config.get('dy', 19) + self.feed = config.get('feed', 1000) + self.duration = config.get('duration', 120) # secondes + self.xnext = config.get('xnext', 50) + self.ynext = config.get('ynext', 50) + + row_to_char = config.get('row_to_char', 'D,C,B,A') + self.row_to_char = row_to_char.split(',') + self.stop_playing = None + + + def halt(self): + self.proc.record = False + return self.stop_playing.set() + + def _capture(self, uuid: str, duration: float, stop_running: Optional[threading.Event]) -> None: + """ + Déclenche la caméra ArduCam et attend la fin de l'acquisition. + """ + print(f"# démarrer l'enregistrement {uuid}") + self.proc.uuid = uuid + self.proc.record = True + + start = time.monotonic() + while not stop_running.is_set(): + if time.monotonic() - start > duration: + break + self.grbl.wait_for(1.0) + + print("# arrêter l'enregistrement") + self.proc.record = False + self.proc.uuid = None + + def start(self, xnext=None, ynext=None, position=None): + """ + Balayage complet de la grille d'éprouvettes en mode serpentin. + + Parcours : + - Lignes paires (0, 2) : gauche → droite (col 0 → col 5) + - Lignes impaires (1, 3) : droite → gauche (col 5 → col 0) + + Le déplacement entre éprouvettes se fait en mode absolu via move_to(). + La caméra filme pendant `` secondes sur chaque position. + + Grille : 6 colonnes × 4 lignes = 24 éprouvettes + - x = XBASE + col * PAS_X + - y = YBASE + row * PAS_Y + """ + try: + if xnext is None: + xnext = self.xnext + if ynext is None: + ynext = self.ynext + if position is None: + position = self.position + + max_cells = self.cols * self.rows + cell = 0 + + logger.info("Début du scan serpentin : %d éprouvettes, %d s/éprouvette, durée totale estimée : %d min", + max_cells, + self.duration, + (max_cells * self.duration) // 60, + ) + + self.stop_playing = threading.Event() + for row in range(self.rows): + if self.stop_playing.is_set(): + break + + # Ordre des colonnes selon la parité de la ligne (serpentin) + if row % 2 == 0: + # Ligne paire : gauche → droite + cols = range(self.cols) + else: + # Ligne impaire : droite → gauche + cols = range(self.cols - 1, -1, -1) + + for col in cols: + if self.stop_playing.is_set(): + break + # Calcul de la position absolue en mm + x = self.xbase + col * self.dx + y = self.ybase + row * self.dy + cell += 1 + logger.info( + "[%02d/%02d] row=%d col=%d → X=%.1f mm Y=%.1f mm", + cell, max_cells, row, col, x, y, + ) + self.grbl.move_to(x, y, feed=self.feed) + + uuid = f'{self.proc.session}-{position}-{self.row_to_char[row]}{col+1}' + self._capture(uuid, self.duration, self.stop_playing) + + # Retour à nexr après le scan + logger.info("Scan terminé — retour à l'origine (X=%.1f Y=%.1f)", xnext, ynext) + self.grbl.move_to(xnext, ynext, feed=self.feed*2) + except Exception as e: + logger.error(f"scan error: {e}") + diff --git a/test_tube_scanner/modules/picamera2_capture.py b/test_tube_scanner/modules/picamera2_capture.py new file mode 100644 index 0000000..cc5354b --- /dev/null +++ b/test_tube_scanner/modules/picamera2_capture.py @@ -0,0 +1,339 @@ +""" +Implémentation de la capture vidéo pour Raspberry Pi via PiCamera2. +Dépendance : picamera2 (sudo apt install python3-picamera2) +Compatible Pi 4 / Pi 5 avec le module caméra officiel (v2, v3, HQ). +""" + +import io +import logging +from typing import Optional + +from .capture_interface import CaptureError, VideoCaptureInterface + +logger = logging.getLogger(__name__) + + +class PiCamera2Capture(VideoCaptureInterface): + """ + Capture JPEG depuis la caméra officielle Raspberry Pi via PiCamera2. + + Utilise le pipeline libcamera pour la capture basse latence. + Supporte les modules Camera Module v1, v2, v3 et HQ Camera. + + La résolution demandée (width, height) est approchée au mieux : + libcamera sélectionne automatiquement le mode sensor dont la résolution + native est la plus proche, puis redimensionne en ISP. + Utiliser list_sensor_modes() pour connaître les modes disponibles. + + Exemple d'utilisation :: + + # Afficher les modes disponibles avant d'instancier + PiCamera2Capture.list_sensor_modes() + + cam = PiCamera2Capture(fps=5, width=1280, height=720) + cam.set_frame_callback(lambda data, ts: print(f"{ts}: {len(data)} octets")) + cam.start() + time.sleep(10) + cam.stop() + """ + + def __init__( + self, + fps: float = VideoCaptureInterface.DEFAULT_FPS, + width: int = 1280, + height: int = 720, + jpeg_quality: int = 85, + camera_index: int = 0, + use_video_config: bool = True, + ): + """ + :param fps: Cadence cible en images par seconde + :param width: Largeur souhaitée en pixels (approchée au mode sensor le plus proche) + :param height: Hauteur souhaitée en pixels (approchée au mode sensor le plus proche) + :param jpeg_quality: Qualité de compression JPEG [0-100] + :param camera_index: Index de la caméra (0 par défaut, utile sur Pi 5 dual-cam) + :param use_video_config: True = VideoConfiguration (flux continu, basse latence) + False = StillConfiguration (haute résolution, plus lent) + """ + super().__init__(fps=fps) + self._width: int = width + self._height: int = height + self._jpeg_quality: int = jpeg_quality + self._camera_index: int = camera_index + self._use_video_config: bool = use_video_config + self._picam2 = None # Instance Picamera2 + self._effective_size: Optional[tuple[int, int]] = None # Résolution réellement appliquée + + # ------------------------------------------------------------------ + # Méthode statique utilitaire — à appeler avant d'instancier + # ------------------------------------------------------------------ + + @staticmethod + def list_sensor_modes(camera_index: int = 0) -> list[dict]: + """ + Affiche et retourne tous les modes sensor disponibles pour la caméra. + + À appeler avant d'instancier PiCamera2Capture pour choisir + une résolution compatible avec un mode sensor natif. + + :param camera_index: Index de la caméra à interroger + :return: Liste de dicts décrivant chaque mode sensor + :raises CaptureError: Si picamera2 n'est pas disponible + """ + try: + from picamera2 import Picamera2 + except ImportError as exc: + raise CaptureError( + "picamera2 introuvable — installez-le avec : " + "sudo apt install python3-picamera2" + ) from exc + + picam2 = Picamera2(camera_index) + try: + # sensor_modes doit être interrogé avant configure() + modes = picam2.sensor_modes + print(f"\n=== Modes sensor disponibles (caméra index={camera_index}) ===") + for i, mode in enumerate(modes): + size = mode.get("size", "?") + fps = mode.get("fps", "?") + crop = mode.get("crop_limits", "?") + fmt = mode.get("format", "?") + print( + f" [{i}] {size[0]}×{size[1]}px " + f"fps_max={fps:.1f} format={fmt} crop={crop}" + ) + print() + return modes + finally: + picam2.close() + + # ------------------------------------------------------------------ + # Implémentation des méthodes abstraites + # ------------------------------------------------------------------ + + def open(self) -> None: + """ + Initialise PiCamera2, sélectionne le mode sensor le plus adapté + à la résolution demandée, configure le flux et démarre libcamera. + + Le mode sensor est choisi en minimisant la distance euclidienne + entre la résolution native du mode et (width, height) demandés. + """ + try: + from picamera2 import Picamera2 + except ImportError as exc: + raise CaptureError( + "picamera2 introuvable — installez-le avec : " + "sudo apt install python3-picamera2" + ) from exc + + try: + self._picam2 = Picamera2(self._camera_index) + + # Sélection du mode sensor le plus proche de la résolution demandée + best_mode = self._select_best_sensor_mode(self._picam2) + + # Construction de la configuration avec le mode sensor forcé + if self._use_video_config: + config = self._picam2.create_video_configuration( + main={"size": (self._width, self._height), "format": "RGB888"}, + raw=best_mode, # Force le mode sensor natif + ) + logger.debug("Configuration VideoConfiguration sélectionnée") + else: + config = self._picam2.create_still_configuration( + main={"size": (self._width, self._height), "format": "RGB888"}, + raw=best_mode, + ) + logger.debug("Configuration StillConfiguration sélectionnée") + + self._picam2.configure(config) + self._picam2.start() + + # Lecture de la résolution effectivement appliquée par l'ISP + actual = config["main"]["size"] + self._effective_size = actual + + logger.info( + "PiCamera2 ouverte : index=%d demandé=%dx%d effectif=%dx%d " + "mode_sensor=%dx%d mode=%s", + self._camera_index, + self._width, self._height, + actual[0], actual[1], + best_mode["size"][0], best_mode["size"][1], + "video" if self._use_video_config else "still", + ) + + # Avertissement si la résolution effective diffère de la demande + if actual != (self._width, self._height): + logger.warning( + "Résolution ajustée par libcamera : %dx%d → %dx%d. " + "Utilisez list_sensor_modes() pour connaître les tailles compatibles.", + self._width, self._height, actual[0], actual[1], + ) + + except Exception as exc: + if self._picam2 is not None: + try: + self._picam2.close() + except Exception: # noqa: BLE001 + pass + self._picam2 = None + raise CaptureError(f"Impossible d'ouvrir PiCamera2 : {exc}") from exc + + def close(self) -> None: + """Arrête le pipeline libcamera et libère les ressources.""" + if self._picam2 is not None: + try: + self._picam2.stop() + self._picam2.close() + logger.info("PiCamera2 fermée (index=%d)", self._camera_index) + except Exception as exc: # noqa: BLE001 + logger.warning("Erreur lors de la fermeture de PiCamera2 : %s", exc) + finally: + self._picam2 = None + self._effective_size = None + + def capture_frame(self) -> bytes: + """ + Capture une image depuis le flux libcamera et l'encode en JPEG. + + Stratégie : capture_array() → tableau NumPy RGB → encodage Pillow. + capture_file() ne supporte pas le paramètre quality ; on encode + manuellement pour contrôler le taux de compression. + + :return: Données JPEG brutes + :raises CaptureError: Si la capture ou l'encodage échoue + """ + if self._picam2 is None: + raise CaptureError("PiCamera2 n'est pas initialisée") + + try: + from PIL import Image + + # Récupération du tableau RGB depuis le flux libcamera + arr = self._picam2.capture_array("main") # shape (H, W, 3) uint8 + + # Encodage manuel en JPEG avec la qualité configurée + buf = io.BytesIO() + Image.fromarray(arr).save(buf, format="JPEG", quality=self._jpeg_quality) + return buf.getvalue() + + except Exception as exc: + raise CaptureError(f"Échec de capture PiCamera2 : {exc}") from exc + + def is_available(self) -> bool: + """Retourne True si le pipeline libcamera est démarré.""" + return self._picam2 is not None + + # ------------------------------------------------------------------ + # Méthodes spécifiques à PiCamera2 + # ------------------------------------------------------------------ + + def capture_high_res(self, width: int, height: int) -> bytes: + """ + Capture une image haute résolution hors flux principal (photo ponctuelle). + + Utile pour déclencher une capture pleine résolution pendant un flux 5 fps. + Utilise capture_request() + make_array() + encodage Pillow. + + :param width: Largeur souhaitée en pixels (indicatif, dépend de la config active) + :param height: Hauteur souhaitée en pixels + :return: Données JPEG brutes + :raises CaptureError: Si PiCamera2 n'est pas initialisée + """ + if self._picam2 is None: + raise CaptureError("PiCamera2 n'est pas initialisée") + + try: + from PIL import Image + + # Capture d'une requête unique depuis le flux actif + request = self._picam2.capture_request() + arr = request.make_array("main") # shape (H, W, 3) uint8 RGB + request.release() + + buf = io.BytesIO() + Image.fromarray(arr).save(buf, format="JPEG", quality=self._jpeg_quality) + return buf.getvalue() + + except Exception as exc: + raise CaptureError(f"Échec de capture haute résolution : {exc}") from exc + + def set_controls(self, **kwargs) -> None: + """ + Applique des contrôles libcamera directement (exposition, gain, balance des blancs…). + + Exemple :: + + cam.set_controls(ExposureTime=10000, AnalogueGain=2.0) + + :param kwargs: Contrôles libcamera valides pour le module connecté + """ + if self._picam2 is None: + raise CaptureError("PiCamera2 n'est pas initialisée") + self._picam2.set_controls(kwargs) + logger.debug("Contrôles appliqués : %s", kwargs) + + def get_camera_properties(self) -> dict: + """ + Retourne les métadonnées du module caméra détecté. + + :return: Dictionnaire des propriétés (modèle, résolution max, etc.) + """ + if self._picam2 is None: + raise CaptureError("PiCamera2 n'est pas initialisée") + return self._picam2.camera_properties + + @property + def jpeg_quality(self) -> int: + """Qualité JPEG [0-100].""" + return self._jpeg_quality + + @jpeg_quality.setter + def jpeg_quality(self, value: int) -> None: + if not 0 <= value <= 100: + raise ValueError("La qualité JPEG doit être comprise entre 0 et 100") + self._jpeg_quality = value + + @property + def resolution(self) -> tuple[int, int]: + """Résolution de capture demandée (largeur, hauteur).""" + return (self._width, self._height) + + @property + def effective_resolution(self) -> Optional[tuple[int, int]]: + """ + Résolution effectivement appliquée par l'ISP après ouverture. + None si la caméra n'est pas encore ouverte. + """ + return self._effective_size + + # ------------------------------------------------------------------ + # Helpers privés + # ------------------------------------------------------------------ + + def _select_best_sensor_mode(self, picam2) -> dict: + """ + Choisit le mode sensor dont la résolution native est la plus proche + de (width, height) en minimisant la distance euclidienne. + + :param picam2: Instance Picamera2 déjà créée mais pas encore configurée + :return: Dict du mode sensor sélectionné + """ + modes = picam2.sensor_modes + if not modes: + raise CaptureError("Aucun mode sensor disponible") + + def distance(mode: dict) -> float: + mw, mh = mode["size"] + # Distance euclidienne normalisée entre la résolution du mode et la cible + return ((mw - self._width) ** 2 + (mh - self._height) ** 2) ** 0.5 + + best = min(modes, key=distance) + logger.debug( + "Mode sensor sélectionné : %dx%d (demandé : %dx%d)", + best["size"][0], best["size"][1], + self._width, self._height, + ) + return best diff --git a/test_tube_scanner/modules/picamera2_capture_basic.py b/test_tube_scanner/modules/picamera2_capture_basic.py new file mode 100644 index 0000000..3c3a496 --- /dev/null +++ b/test_tube_scanner/modules/picamera2_capture_basic.py @@ -0,0 +1,227 @@ +""" +Implémentation de la capture vidéo pour Raspberry Pi via PiCamera2. +Dépendance : picamera2 (sudo apt install python3-picamera2) +Compatible Pi 4 / Pi 5 avec le module caméra officiel. +""" + +import io +import logging +from typing import Optional + +from .capture_interface import CaptureError, VideoCaptureInterface + +logger = logging.getLogger(__name__) + + +class PiCamera2Capture(VideoCaptureInterface): + """ + Capture JPEG depuis la caméra officielle Raspberry Pi via PiCamera2. + + Utilise le pipeline libcamera pour la capture basse latence. + Supporte les modules Camera Module v1, v2, v3 et HQ Camera. + + Exemple d'utilisation :: + + cam = PiCamera2Capture(fps=5, width=1280, height=720) + cam.set_frame_callback(lambda data, ts: print(f"{ts}: {len(data)} octets")) + cam.start() + time.sleep(10) + cam.stop() + """ + + def __init__( + self, + fps: float = VideoCaptureInterface.DEFAULT_FPS, + width: int = 1280, + height: int = 720, + jpeg_quality: int = 85, + camera_index: int = 0, + use_video_config: bool = True, + ): + """ + :param fps: Cadence cible en images par seconde + :param width: Largeur du flux de capture en pixels + :param height: Hauteur du flux de capture en pixels + :param jpeg_quality: Qualité de compression JPEG [0-100] + :param camera_index: Index de la caméra (0 par défaut, utile sur Pi 5 dual-cam) + :param use_video_config: True = configuration VideoConfiguration (flux continu) + False = StillConfiguration (haute résolution, plus lent) + """ + super().__init__(fps=fps) + self._width: int = width + self._height: int = height + self._jpeg_quality: int = jpeg_quality + self._camera_index: int = camera_index + self._use_video_config: bool = use_video_config + self._picam2 = None # Instance Picamera2 + + # ------------------------------------------------------------------ + # Implémentation des méthodes abstraites + # ------------------------------------------------------------------ + + def open(self) -> None: + """ + Initialise PiCamera2, configure le flux et démarre le pipeline libcamera. + """ + try: + from picamera2 import Picamera2 # Import local : disponible uniquement sur Pi + except ImportError as exc: + raise CaptureError( + "picamera2 introuvable — installez-le avec : " + "sudo apt install python3-picamera2" + ) from exc + + try: + self._picam2 = Picamera2(self._camera_index) + + # Choix de la configuration selon le mode sélectionné + if self._use_video_config: + config = self._picam2.create_video_configuration( + main={"size": (self._width, self._height), "format": "RGB888"}, + ) + logger.debug("Configuration VideoConfiguration sélectionnée") + else: + config = self._picam2.create_still_configuration( + main={"size": (self._width, self._height), "format": "RGB888"}, + ) + logger.debug("Configuration StillConfiguration sélectionnée") + + self._picam2.configure(config) + self._picam2.start() + + logger.info( + "PiCamera2 ouverte : index=%d résolution=%dx%d mode=%s", + self._camera_index, + self._width, + self._height, + "video" if self._use_video_config else "still", + ) + + except Exception as exc: + # Nettoyage en cas d'échec partiel d'initialisation + if self._picam2 is not None: + try: + self._picam2.close() + except Exception: # noqa: BLE001 + pass + self._picam2 = None + raise CaptureError(f"Impossible d'ouvrir PiCamera2 : {exc}") from exc + + def close(self) -> None: + """Arrête le pipeline libcamera et libère les ressources.""" + if self._picam2 is not None: + try: + self._picam2.stop() + self._picam2.close() + logger.info("PiCamera2 fermée (index=%d)", self._camera_index) + except Exception as exc: # noqa: BLE001 + logger.warning("Erreur lors de la fermeture de PiCamera2 : %s", exc) + finally: + self._picam2 = None + + def capture_frame(self) -> bytes: + """ + Capture une image depuis le flux libcamera et l'encode en JPEG. + + Stratégie : capture_array() → tableau NumPy RGB → encodage Pillow. + capture_file() ne supporte pas le paramètre quality ; on encode + manuellement pour contrôler le taux de compression. + + :return: Données JPEG brutes + :raises CaptureError: Si la capture ou l'encodage échoue + """ + if self._picam2 is None: + raise CaptureError("PiCamera2 n'est pas initialisée") + + try: + from PIL import Image + + # Récupération du tableau RGB depuis le flux libcamera + arr = self._picam2.capture_array("main") # shape (H, W, 3) uint8 + + # Encodage manuel en JPEG avec la qualité configurée + buf = io.BytesIO() + Image.fromarray(arr).save(buf, format="JPEG", quality=self._jpeg_quality) + return buf.getvalue() + + except Exception as exc: + raise CaptureError(f"Échec de capture PiCamera2 : {exc}") from exc + + def is_available(self) -> bool: + """Retourne True si le pipeline libcamera est démarré.""" + return self._picam2 is not None + + # ------------------------------------------------------------------ + # Méthodes spécifiques à PiCamera2 + # ------------------------------------------------------------------ + + def capture_high_res(self, width: int, height: int) -> bytes: + """ + Capture une image haute résolution hors flux principal (photo ponctuelle). + + Utile pour déclencher une capture pleine résolution pendant un flux 5 fps. + Utilise capture_request() + make_array() + encodage Pillow. + + :param width: Largeur souhaitée en pixels (indicatif, dépend de la config active) + :param height: Hauteur souhaitée en pixels + :return: Données JPEG brutes + :raises CaptureError: Si PiCamera2 n'est pas initialisée + """ + if self._picam2 is None: + raise CaptureError("PiCamera2 n'est pas initialisée") + + try: + from PIL import Image + + # Capture d'une requête unique depuis le flux actif + request = self._picam2.capture_request() + arr = request.make_array("main") # shape (H, W, 3) uint8 RGB + request.release() + + buf = io.BytesIO() + Image.fromarray(arr).save(buf, format="JPEG", quality=self._jpeg_quality) + return buf.getvalue() + + except Exception as exc: + raise CaptureError(f"Échec de capture haute résolution : {exc}") from exc + + def set_controls(self, **kwargs) -> None: + """ + Applique des contrôles libcamera directement (exposition, gain, balance des blancs…). + + Exemple :: + + cam.set_controls(ExposureTime=10000, AnalogueGain=2.0) + + :param kwargs: Contrôles libcamera valides pour le module connecté + """ + if self._picam2 is None: + raise CaptureError("PiCamera2 n'est pas initialisée") + self._picam2.set_controls(kwargs) + logger.debug("Contrôles appliqués : %s", kwargs) + + def get_camera_properties(self) -> dict: + """ + Retourne les métadonnées du module caméra détecté. + + :return: Dictionnaire des propriétés (modèle, résolution max, etc.) + """ + if self._picam2 is None: + raise CaptureError("PiCamera2 n'est pas initialisée") + return self._picam2.camera_properties + + @property + def jpeg_quality(self) -> int: + """Qualité JPEG [0-100].""" + return self._jpeg_quality + + @jpeg_quality.setter + def jpeg_quality(self, value: int) -> None: + if not 0 <= value <= 100: + raise ValueError("La qualité JPEG doit être comprise entre 0 et 100") + self._jpeg_quality = value + + @property + def resolution(self) -> tuple[int, int]: + """Résolution de capture configurée (largeur, hauteur).""" + return (self._width, self._height) \ No newline at end of file diff --git a/test_tube_scanner/modules/reductstore.py b/test_tube_scanner/modules/reductstore.py new file mode 100644 index 0000000..3318269 --- /dev/null +++ b/test_tube_scanner/modules/reductstore.py @@ -0,0 +1,122 @@ +''' +Created on 21 août 2024 + +@author: denis +''' +import logging +import asyncio +from typing import Union +from abc import ABC +from reduct import Client, Bucket, BucketSettings #, QuotaType +from reduct.time import unix_timestamp_from_any, TIME_PRECISION #, unix_timestamp_to_datetime +from datetime import datetime, timedelta +from django.utils import timezone +from django.conf import settings + + +logging.basicConfig(level=logging.INFO) +logger = logging.getLogger(__name__) + +class ReductStoreBase(ABC): + + def __init__(self, url, api_token, name, quota_type=None, quota_size=1000_000_000): + self.bucket_name = name + self.client = Client(url, api_token=api_token) + self.quota_type = quota_type + self.quota_size = quota_size + self.bucket: Bucket = asyncio.run(self.create_bucket()) + logger.info(f"==== {url} token:{api_token}") + + + async def create_bucket(self): + settings = BucketSettings( + quota_type=self.quota_type, + quota_size=self.quota_size, + exist_ok=True, + ) + return await self.client.create_bucket(self.bucket_name, settings, exist_ok=True) + + + async def change_bucket(self, **settings): + new_settings = BucketSettings(**settings) + await self.bucket.set_settings(new_settings) + + + async def remove_bucket(self): + await self.bucket.remove() + + + async def write(self, entry_name, data, timestamp=None, content_type=None, labels=None): + await self.bucket.write(entry_name, data, timestamp=timestamp, content_type=content_type, labels=labels) + + + def query(self, entry_name, start, stop, ttl=None, when=None): + return self.bucket.query(entry_name, start=start, stop=stop, ttl=ttl, when=when) + + + async def remove_query(self, entry_name, start, stop, when=None): + return await self.bucket.remove_query(entry_name, start=start, stop=stop, when=when) + + + async def read(self, entry_name, timestamp, head=False): + async with self.bucket.read(entry_name, timestamp=timestamp, head=head) as record: + return await record.read_all() + + + async def record_content(self, entry_name, timestamp, head=False): + async with self.bucket.read(entry_name, timestamp=timestamp, head=head) as record: + content = await record.read_all() + return record, content + + +class ReductStore(ReductStoreBase): + def __init__(self, name): + super().__init__(settings.REDUCTSTORE_URL, settings.REDUCTSTORE_TOKEN, name=name) + + +async def old_last_dates(client_db, entry_name='uuid'): + oldest, latest = 0, 0 + infos = await client_db.bucket.get_entry_list() + for info in infos: + if info.name == entry_name: + oldest, latest = info.oldest_record, info.latest_record + break + return oldest, latest + + +async def date_posterior_to(client_db, uuid: str, post: Union[int, str]): + last = None + oldest, latest = await old_last_dates(client_db, uuid) + if oldest and post: + dtpost = timezone.now() - timedelta(seconds=int(post)) + ts = unix_timestamp_from_any(dtpost) + last = ts if ts < latest else None + return oldest, last + + +async def dates_filter(client_db, uuid: str, begin: Union[int, datetime, float, str], + end: Union[int, datetime, float, str] = None, duration: int = 0): + oldest, latest = await old_last_dates(client_db, uuid) + + ts_from, ts_to = 0, 0 + if latest: + ts_from = unix_timestamp_from_any(begin) if begin else oldest + if ts_from < oldest: + ts_from = oldest + + if end is None: + if not duration: + ts_to = latest + else: + ts_to = ts_from + (duration * TIME_PRECISION) + if ts_to > latest: + ts_to = latest + else: + ts_to = unix_timestamp_from_any(end) if end else latest + if ts_to > latest: + ts_to = latest + + return ts_from, ts_to if ts_from None: + """Ouvre le flux V4L2 via OpenCV et configure la résolution.""" + + self._cap = cv2.VideoCapture(self._device_index) + + if not self._cap.isOpened(): + raise CaptureError( + f"Impossible d'ouvrir la webcam (index={self._device_index})" + ) + + # Application de la résolution demandée + if self._width: + self._cap.set(cv2.CAP_PROP_FRAME_WIDTH, self._width) + if self._height: + self._cap.set(cv2.CAP_PROP_FRAME_HEIGHT, self._height) + + # Lecture de la résolution effectivement appliquée par le pilote + actual_w = int(self._cap.get(cv2.CAP_PROP_FRAME_WIDTH)) + actual_h = int(self._cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) + logger.info( + "Webcam ouverte : index=%d résolution=%dx%d", + self._device_index, actual_w, actual_h, + ) + + def close(self) -> None: + """Libère le flux OpenCV.""" + if self._cap and self._cap.isOpened(): + self._cap.release() + logger.info("Webcam fermée (index=%d)", self._device_index) + self._cap = None + + def capture_frame(self) -> bytes: + """ + Lit une trame brute depuis OpenCV et l'encode en JPEG. + + :return: Données JPEG brutes + :raises CaptureError: Si la lecture ou l'encodage échoue + """ + #import cv2 + #import numpy as np # noqa: F401 — utilisé implicitement par cv2 + + if not self._cap or not self._cap.isOpened(): + raise CaptureError("La webcam n'est pas ouverte") + + ret, frame = self._cap.read() + if not ret or frame is None: + raise CaptureError("Échec de lecture de la trame") + + # Encodage BGR → JPEG avec la qualité configurée + encode_params = [cv2.IMWRITE_JPEG_QUALITY, self._jpeg_quality] + success, buffer = cv2.imencode(".jpg", frame, encode_params) + + if not success: + raise CaptureError("Échec d'encodage JPEG") + + return buffer.tobytes() + + def is_available(self) -> bool: + """Retourne True si le flux OpenCV est ouvert et prêt.""" + return self._cap is not None and self._cap.isOpened() + + # ------------------------------------------------------------------ + # Accesseurs spécifiques à la webcam + # ------------------------------------------------------------------ + + @property + def device_index(self) -> int: + """Index du périphérique V4L2.""" + return self._device_index + + @property + def jpeg_quality(self) -> int: + """Qualité JPEG [0-100].""" + return self._jpeg_quality + + @jpeg_quality.setter + def jpeg_quality(self, value: int) -> None: + if not 0 <= value <= 100: + raise ValueError("La qualité JPEG doit être comprise entre 0 et 100") + self._jpeg_quality = value + + def get_resolution(self) -> Optional[tuple[int, int]]: + """ + Retourne la résolution effective du flux. + + :return: Tuple (largeur, hauteur) ou None si la webcam est fermée + """ + if not self.is_available(): + return None + + w = int(self._cap.get(cv2.CAP_PROP_FRAME_WIDTH)) + h = int(self._cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) + return (w, h) diff --git a/test_tube_scanner/scanner/__init__.py b/test_tube_scanner/scanner/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/test_tube_scanner/scanner/admin.py b/test_tube_scanner/scanner/admin.py new file mode 100644 index 0000000..fcb311f --- /dev/null +++ b/test_tube_scanner/scanner/admin.py @@ -0,0 +1,64 @@ +from django.contrib import admin +from django.db.models import Q +from . import models + +class WellAdmin(admin.ModelAdmin): + model = models.Well + list_display = ('name', 'author',) + +class ConfigurationAdmin(admin.ModelAdmin): + list_display = ('name', 'author', 'use_rpicam', 'video_width_capture', 'video_height_capture', 'video_frame_rate', 'active',) + +class MultiWellAdmin(admin.ModelAdmin): + list_filter = ('author',) + list_display = ('label', 'position', 'author', 'order', 'xbase', 'ybase', 'duration', 'feed', 'active',) + +class ObservationMultiWellDetailInline(admin.TabularInline): + model = models.ObservationMultiWellDetail + extra = 0 + +class ObservationAdmin(admin.ModelAdmin): + inlines = (ObservationMultiWellDetailInline,) + list_filter = ('sessionobservation__session', 'author', ) + list_display = ('title', 'author', 'multiwell', 'created', 'started', 'finished') + readonly_fields = ('created', 'started', 'finished', ) + +class SessionObservationInlineAdmin(admin.TabularInline): + model = models.SessionObservation + fk_name = 'session' + extra = 0 + + def formfield_for_foreignkey(self, db_field, request, **kwargs): + if db_field.name == "observation": + obj_id = request.resolver_match.kwargs.get("object_id") + + qs = models.Observation.objects.filter(sessionobservation__isnull=True) + if obj_id: + qs = models.Observation.objects.filter( + Q(sessionobservation__isnull=True) | + Q(sessionobservation__session_id=obj_id) + ) + kwargs["queryset"] = qs.distinct() + + return super().formfield_for_foreignkey(db_field, request, **kwargs) + +class SessionAdmin(admin.ModelAdmin): + list_filter = ('author',) + inlines = (SessionObservationInlineAdmin, ) + list_display = ('name', 'author', 'created', 'finished', 'active', 'expected_export', 'expected_scanning', ) + readonly_fields = ( + 'created', + 'finished', + 'export_status', + 'export_task', + 'export_exported_at', + 'scanning_status', + 'scanning_task', + 'scanning_finished_at' + ) + +admin.site.register(models.Configuration, ConfigurationAdmin) +admin.site.register(models.Well, WellAdmin) +admin.site.register(models.MultiWell, MultiWellAdmin) +admin.site.register(models.Observation, ObservationAdmin) +admin.site.register(models.Session, SessionAdmin) diff --git a/test_tube_scanner/scanner/apps.py b/test_tube_scanner/scanner/apps.py new file mode 100644 index 0000000..bd66dbb --- /dev/null +++ b/test_tube_scanner/scanner/apps.py @@ -0,0 +1,8 @@ +from django.apps import AppConfig + + +class ScannerConfig(AppConfig): + name = 'scanner' + + def ready(self): + import scanner.models # noqa — active les signaux post_save/post_delete \ No newline at end of file diff --git a/test_tube_scanner/scanner/consumers.py b/test_tube_scanner/scanner/consumers.py new file mode 100644 index 0000000..0fc6abf --- /dev/null +++ b/test_tube_scanner/scanner/consumers.py @@ -0,0 +1,62 @@ +# +#from django.utils.translation import gettext_lazy as _ +#from channels.layers import get_channel_layer +#from django.conf import settings +#import asyncio +#from asgiref.sync import sync_to_async +import json, logging +from channels.generic.websocket import AsyncWebsocketConsumer + +from .process import redisDB + +logger = logging.getLogger(__name__) + +class ScannerConsumer(AsyncWebsocketConsumer): + + async def connect(self): + self.this_group = f"scanner_proc" + await self.channel_layer.group_add(self.this_group, self.channel_name) + await self.accept() + logger.info(f"==== connected to {self.this_group}") + + async def disconnect(self, close_code): + await self.channel_layer.group_discard(self.this_group, self.channel_name) + logger.info( f"==== Disconnect from {self.this_group}") + + async def scanner_message(self, event): + await self.send(text_data=json.dumps(event["text"])) + + ## Receive message from WebSocket + async def receive(self, text_data): + data = json.loads(text_data) + msg_type = data.get("type") + if msg_type in ["scanner", "calibrate"]: + redisDB.publish(self.this_group, json.dumps(data)) + + async def replay_message(self, event): + await self.send(text_data=json.dumps(event["text"])) + + +class ReplayConsumer(AsyncWebsocketConsumer): + + async def connect(self): + self.this_group = f"replay_proc" + await self.channel_layer.group_add(self.this_group, self.channel_name) + await self.accept() + logger.info(f"==== connected to {self.this_group}") + + async def disconnect(self, close_code): + await self.channel_layer.group_discard(self.this_group, self.channel_name) + logger.info( f"==== Disconnect from {self.this_group}") + + async def replay_message(self, event): + await self.send(text_data=json.dumps(event["text"])) + + + ## Receive message from WebSocket + async def receive(self, text_data): + data = json.loads(text_data) + msg_type = data.get("type") + if msg_type == "replay": + redisDB.publish(self.this_group, json.dumps(data)) + diff --git a/test_tube_scanner/scanner/export_tasks.py b/test_tube_scanner/scanner/export_tasks.py new file mode 100644 index 0000000..abc5ad9 --- /dev/null +++ b/test_tube_scanner/scanner/export_tasks.py @@ -0,0 +1,604 @@ +# Tâches d'exportation pour les vidéos de caméra +import zipfile +from celery.utils.log import get_task_logger +import shutil +import os, sys +import posix_ipc +import mmap +import cv2 +import numpy as np +from django.http import JsonResponse, HttpResponse +from django.conf import settings +from reduct.time import unix_timestamp_to_iso + +from .process import CameraRecordManager, cameraDB + +logger = get_task_logger(__name__) + +def progress_bar(iteration, total, prefix='', suffix='', length=30, fill='█'): + percent = ("{0:.1f}").format(100 * (iteration / float(total))) + filled_length = int(length * iteration // total) + bar = fill * filled_length + '-' * (length - filled_length) + sys.stdout.write(f'\r{prefix} |{bar}| {percent}% {suffix}') + sys.stdout.flush() + + +def delete_file_later(path): + try: + if os.path.exists(path): + os.remove(path) + except Exception as e: + logger.error(f"[cleanup] error deleting {path}: {e}") + raise + + +async def remove_video_by_uuid(uuid, start_ts=None, end_ts=None, when=None): + record_manager = CameraRecordManager(cameraDB) + await record_manager.remove(uuid, start_ts, end_ts) + + +async def remove_video(uuid, start_ts, end_ts, when=None): + try: + await remove_video_by_uuid(uuid, start_ts, end_ts, when=when) + return JsonResponse({'state': 'ok'}, status=200) + except Exception as e: + return JsonResponse({'error': str(e)}, status=500) + + +async def shm_download_video(uuid, start_ts, end_ts, frame_rate=5, opencv_fourcc_format='mp4v', opencv_video_type='mp4'): + try: + record_manager = CameraRecordManager(cameraDB) + total_size = await record_manager.size(uuid, start_ts, end_ts) + + # segment de mémoire partagée pour stocker les frames + shm_size = int(total_size * 1.5) + shm_name = f"/video_frames_{uuid}" + try: + shm = posix_ipc.SharedMemory(shm_name, posix_ipc.O_CREAT | posix_ipc.O_EXCL, size=shm_size) + except posix_ipc.ExistentialError: + existing = posix_ipc.SharedMemory(shm_name, flags=0) + existing.close_fd() + try: + existing.unlink() + except posix_ipc.ExistentialError: + pass + shm = posix_ipc.SharedMemory(shm_name, posix_ipc.O_CREAT | posix_ipc.O_EXCL, size=shm_size) + mm = mmap.mmap(shm.fd, shm_size) + + queries = record_manager.query(uuid, start_ts, end_ts) + offset = 0 + frame_sizes = [] + total = 0 + async for record in queries: + frame_bytes = await record.read_all() + frame_size = len(frame_bytes) + + mm[offset:offset + frame_size] = frame_bytes + frame_sizes.append(frame_size) + offset += frame_size + total += 1 + + if not frame_sizes: + return JsonResponse({'error': 'Aucune frame trouvée'}, status=404) + + video_path = os.path.join(settings.MEDIA_ROOT, f"output.{opencv_video_type}") + fourcc = cv2.VideoWriter_fourcc(* opencv_fourcc_format) + + # Lit les frames depuis la mémoire partagée + current_offset = 0 + i = 0 + for size in frame_sizes: + frame_bytes = mm[current_offset:current_offset + size] + nparr = np.frombuffer(frame_bytes, np.uint8) + frame = cv2.imdecode(nparr, cv2.IMREAD_COLOR) + if 'video' not in locals(): + height, width, _ = frame.shape + video = cv2.VideoWriter(video_path, fourcc, frame_rate, (width, height)) + video.write(frame) + current_offset += size + + progress_bar(i + 1, total, prefix=f'Progression {uuid}:', suffix='Terminé', length=30) + i+=1 + + video.release() + + # Nettoie la mémoire partagée + shm.unlink() + + # Vérifier que le fichier existe + if not os.path.exists(video_path): + logger.error(f"Fichier non créé: {video_path}") + return JsonResponse({'error': 'Erreur création vidéo'}, status=500) + + # Lit le fichier vidéo généré + with open(video_path, 'rb') as f: + video_bytes = f.read() + + # Retourne la vidéo en réponse + response = HttpResponse(video_bytes, content_type='video/mp4') + response['Content-Disposition'] = f'attachment; filename="{video_path}"' + response['Content-Length'] = os.path.getsize(video_path) + + + # Supprime le fichier temporaire + os.remove(video_path) + return response + + except Exception as e: + logger.error(f"shm_download_video: {e}") + return JsonResponse({'error': str(e)}, status=500) + +# ───────────────────────────────────────────── +## +# ───────────────────────────────────────────── +def remote_mount_available(mount_point: str = "/mnt/exports_cam") -> bool: + """ + Vérifie que le point de montage Samba est actif et accessible en écriture. + """ + return os.path.ismount(mount_point) and os.access(mount_point, os.W_OK) + + +def _copy_to_destinations(source_path: str, filename: str) -> dict: + """ + Copie le fichier exporté vers les destinations configurées. + Retourne un dict avec les chemins effectivement écrits. + """ + results = {"local": None, "remote": None} + + for dest in settings.EXPORT_DESTINATIONS: + + if dest == "local": + # Déjà sur place, rien à copier + results["local"] = source_path + + elif dest == "remote": + remote_path = os.path.join(settings.EXPORT_REMOTE_DIR, filename) + try: + if not remote_mount_available(settings.EXPORT_REMOTE_DIR): + logger.warning("Partage Samba non disponible, copie ignorée") + results["remote_error"] = "Montage indisponible" + continue + + # Copie locale vers le point de montage Samba + shutil.copy2(source_path, remote_path) + results["remote"] = remote_path + logger.info("Copie distante OK : %s", remote_path) + except OSError as exc: + # Le partage est peut-être absent (machine Windows éteinte) + logger.error("Copie distante échouée [%s] : %s", remote_path, exc) + results["remote_error"] = str(exc) + + return results + + +# ───────────────────────────────────────────── +# Tâche 1 : Export des frames en ZIP d'images +# ───────────────────────────────────────────── +async def export_images_zip( + uuid: str, + start_ts: float | None = None, + end_ts: float | None = None, + jpeg_quality: int = 85, + max_zip_size_mb: int = 0, + max_image_width: int = 0, + max_image_height: int = 0, +): + """ + Exporte les frames d'une caméra sous forme d'archive ZIP contenant des JPEG. + + :param uuid: Identifiant de la caméra + :param start_ts: Timestamp de début (epoch secondes) + :param end_ts: Timestamp de fin (epoch secondes) + :param max_zip_size_mb: Taille maximale du ZIP en Mo (0 = illimité) + :param jpeg_quality: Qualité JPEG 1-100 (défaut 85) + :param max_image_width: Redimensionnement max largeur en px (0 = non redimensionné) + :param max_image_height: Redimensionnement max hauteur en px (0 = non redimensionné) + :return: Chemin du fichier ZIP généré + rapport JSON + """ + shm = None + mm = None + shm_name = f"/img_frames_{uuid}" + + try: + # --- Chargement des frames en mémoire partagée --- + record_manager = CameraRecordManager(cameraDB) + total_size = await record_manager.size(uuid, start_ts, end_ts) + shm_size = int(total_size * 1.5) + + try: + shm = posix_ipc.SharedMemory( + shm_name, posix_ipc.O_CREAT | posix_ipc.O_EXCL, size=shm_size + ) + except posix_ipc.ExistentialError: + existing = posix_ipc.SharedMemory(shm_name, flags=0) + existing.close_fd() + try: + existing.unlink() + except posix_ipc.ExistentialError: + pass + shm = posix_ipc.SharedMemory( + shm_name, posix_ipc.O_CREAT | posix_ipc.O_EXCL, size=shm_size + ) + + mm = mmap.mmap(shm.fd, shm_size) + + queries = record_manager.query(uuid, start_ts, end_ts) + if not start_ts: + start_ts = record_manager.oldest_ts + if not end_ts: + end_ts = record_manager.latest_ts + + offset = 0 + frame_sizes = [] + ts = [] + total = 0 + async for record in queries: + ts.append(record.timestamp) + frame_bytes = await record.read_all() + frame_size = len(frame_bytes) + + mm[offset:offset + frame_size] = frame_bytes + frame_sizes.append(frame_size) + offset += frame_size + total += 1 + + if not frame_sizes: + return {"status": "error", "message": "Aucune frame trouvée"} + + # --- Génération du ZIP --- + max_zip_bytes = max_zip_size_mb * 1024 * 1024 if max_zip_size_mb > 0 else 0 + ts_s = unix_timestamp_to_iso(start_ts) + zip_filename = f"{uuid}_{ts_s}.zip" + zip_path = os.path.join(settings.EXPORTS_LOCAL_PATH, 'images', zip_filename) + os.makedirs(os.path.dirname(zip_path), exist_ok=True) + + skipped = 0 + written = 0 + current_offset = 0 + encode_params = [cv2.IMWRITE_JPEG_QUALITY, jpeg_quality] + + i = 0 + with zipfile.ZipFile(zip_path, "w", zipfile.ZIP_DEFLATED) as zf: + for idx, size in enumerate(frame_sizes): + # Vérification de la taille du ZIP + if max_zip_bytes and os.path.getsize(zip_path) >= max_zip_bytes: + skipped += len(frame_sizes) - idx + logger.warning( + "export_images_zip: limite %d Mo atteinte, %d frames ignorées", + max_zip_size_mb, + len(frame_sizes) - idx, + ) + break + + frame_bytes = mm[current_offset:current_offset + size] + nparr = np.frombuffer(frame_bytes, np.uint8) + frame = cv2.imdecode(nparr, cv2.IMREAD_COLOR) + + if frame is None: + current_offset += size + skipped += 1 + continue + + # Redimensionnement optionnel + if max_image_width > 0 or max_image_height > 0: + frame = _resize_frame(frame, max_image_width, max_image_height) + + # Encodage JPEG en mémoire puis ajout au ZIP + ok, buf = cv2.imencode(".jpg", frame, encode_params) + if ok: + #zf.writestr(f"frame_{idx:06d}.jpg", buf.tobytes()) + ts_iso = unix_timestamp_to_iso(ts[idx]) + #logger.info(f"export_images_zip: adding frame {idx} with timestamp {ts_iso} to ZIP") + zf.writestr(f"{uuid}_{ts_iso}.jpg", buf.tobytes()) + written += 1 + + progress_bar(i + 1, total, prefix=f'Progression {uuid}:', suffix='Terminé', length=30) + i+=1 + current_offset += size + + ## Copie vers les destinations (local + Samba) + #destinations = _copy_to_destinations(zip_path, zip_filename) + return { + "status": "success", + "zip_path": zip_path, + "frames_written": written, + "frames_skipped": skipped, + "jpeg_quality": jpeg_quality, + #"destinations": destinations, + } + + except Exception as exc: + logger.error("export_images_zip [%s]: %s", uuid, exc, exc_info=True) + return {"status": "error", "message": str(exc)} + + finally: + if mm: + mm.close() + if shm: + try: + shm.unlink() + except posix_ipc.ExistentialError: + pass + + +# ───────────────────────────────────────────── +# Tâche 2 : Export des frames en vidéo MP4 +# ───────────────────────────────────────────── +#@shared_task(bind=True) +async def export_video_mp4( + uuid: str, + start_ts: float | None = None, + end_ts: float | None = None, + frame_rate: int = 5, + opencv_fourcc_format='mp4v', + opencv_video_type='mp4', + max_video_size_mb: int = 0, + max_width: int = 0, + max_height: int = 0, +): + """ + Exporte les frames d'une caméra en fichier MP4 via OpenCV. + + :param uuid: Identifiant de la caméra + :param start_ts: Timestamp de début (epoch secondes) + :param end_ts: Timestamp de fin (epoch secondes) + :param frame_rate: Images par seconde (défaut 5) + :param max_video_size_mb: Taille maximale du MP4 en Mo (0 = illimité) + :param max_width: Redimensionnement max largeur en px (0 = non redimensionné) + :param max_height: Redimensionnement max hauteur en px (0 = non redimensionné) + :return: Chemin du fichier MP4 généré + rapport JSON + """ + shm = None + mm = None + video = None + shm_name = f"/vid_frames_{uuid}" + + try: + # --- Chargement des frames en mémoire partagée --- + record_manager = CameraRecordManager(cameraDB) + total_size = await record_manager.size(uuid, start_ts, end_ts) + shm_size = int(total_size * 1.5) + + try: + shm = posix_ipc.SharedMemory( + shm_name, posix_ipc.O_CREAT | posix_ipc.O_EXCL, size=shm_size + ) + except posix_ipc.ExistentialError: + existing = posix_ipc.SharedMemory(shm_name, flags=0) + existing.close_fd() + try: + existing.unlink() + except posix_ipc.ExistentialError: + pass + shm = posix_ipc.SharedMemory( + shm_name, posix_ipc.O_CREAT | posix_ipc.O_EXCL, size=shm_size + ) + + mm = mmap.mmap(shm.fd, shm_size) + queries = record_manager.query(uuid, start_ts, end_ts) + + if not start_ts: + start_ts = record_manager.oldest_ts + if not end_ts: + end_ts = record_manager.latest_ts + + offset = 0 + frame_sizes = [] + total = 0 + async for record in queries: + frame_bytes = await record.read_all() + frame_size = len(frame_bytes) + + mm[offset:offset + frame_size] = frame_bytes + frame_sizes.append(frame_size) + offset += frame_size + total +=1 + + if not frame_sizes: + return {"status": "error", "message": "Aucune frame trouvée"} + + + # --- Génération du MP4 --- + max_video_bytes = max_video_size_mb * 1024 * 1024 if max_video_size_mb > 0 else 0 + + ts_s = unix_timestamp_to_iso(start_ts) + video_path = os.path.join( + settings.EXPORTS_LOCAL_PATH, 'videos', f"{uuid}_{ts_s}.{opencv_video_type}" + ) + os.makedirs(os.path.dirname(video_path), exist_ok=True) + + fourcc = cv2.VideoWriter_fourcc(*opencv_fourcc_format) + skipped = 0 + written = 0 + current_offset = 0 + + i=0 + for idx, size in enumerate(frame_sizes): + # Vérification de la taille du MP4 en cours + if ( + max_video_bytes + and video is not None + and os.path.exists(video_path) + and os.path.getsize(video_path) >= max_video_bytes + ): + skipped += len(frame_sizes) - idx + logger.warning( + "export_video_mp4: limite %d Mo atteinte, %d frames ignorées", + max_video_size_mb, + len(frame_sizes) - idx, + ) + break + + frame_bytes = mm[current_offset:current_offset + size] + nparr = np.frombuffer(frame_bytes, np.uint8) + frame = cv2.imdecode(nparr, cv2.IMREAD_COLOR) + + if frame is None: + current_offset += size + skipped += 1 + continue + + # Redimensionnement optionnel + if max_width > 0 or max_height > 0: + frame = _resize_frame(frame, max_width, max_height) + + # Initialisation du VideoWriter sur la première frame valide + if video is None: + h, w, _ = frame.shape + video = cv2.VideoWriter(video_path, fourcc, frame_rate, (w, h)) + + video.write(frame) + written += 1 + current_offset += size + + progress_bar(i + 1, total, prefix=f'Progression {uuid}:', suffix='Terminé', length=30) + i+=1 + + if video: + video.release() + + if not os.path.exists(video_path): + return {"status": "error", "message": f"Fichier {opencv_video_type} non créé"} + + ## Copie vers les destinations (local + Samba) + #filename = os.path.basename(video_path) + #destinations = _copy_to_destinations(video_path, filename) + return { + "status": "success", + "video_path": video_path, + "frames_written": written, + "frames_skipped": skipped, + "frame_rate": frame_rate, + "file_size_mb": round(os.path.getsize(video_path) / 1024 / 1024, 2), + #"destinations": destinations, + } + + except Exception as exc: + logger.error("export_video_mp4 [%s]: %s", uuid, exc, exc_info=True) + return {"status": "error", "message": str(exc)} + + finally: + if mm: + mm.close() + if shm: + try: + shm.unlink() + except posix_ipc.ExistentialError: + pass + + +# ───────────────────────────────────────────── +# Utilitaire commun +# ───────────────────────────────────────────── +def _resize_frame( + frame: np.ndarray, max_width: int, max_height: int +) -> np.ndarray: + """ + Redimensionne une frame en conservant le ratio si un max est dépassé. + max_width ou max_height à 0 signifie sans contrainte sur cet axe. + """ + h, w = frame.shape[:2] + scale = 1.0 + + if max_width > 0 and w > max_width: + scale = min(scale, max_width / w) + if max_height > 0 and h > max_height: + scale = min(scale, max_height / h) + + if scale < 1.0: + new_w = int(w * scale) + new_h = int(h * scale) + frame = cv2.resize(frame, (new_w, new_h), interpolation=cv2.INTER_AREA) + + return frame + +# tasks/export_tasks.py + +from celery import shared_task, group +from django.utils import timezone +import logging + +logger = logging.getLogger(__name__) + + +@shared_task(bind=True) +def run_session_exports(self, session_id: str): + """ + Point d'entrée déclenché par django_celery_beat. + Lance en parallèle l'export images et l'export vidéo de la session. + """ + from cameras.models import ExportSession + + try: + session = ExportSession.objects.get(session_id=session_id) + except ExportSession.DoesNotExist: + logger.error("run_session_exports: session %s introuvable", session_id) + return {"status": "error", "message": "Session introuvable"} + + session.status = ExportSession.Status.RUNNING + session.save(update_fields=["status"]) + + try: + # Lancement en parallèle avec group Celery + job = group( + export_all_images.s(session_id), + export_all_videos.s(session_id), + ).apply_async() + + results = job.get(timeout=7200) # 2h max pour les deux + + session.status = ExportSession.Status.DONE + session.exported_at = timezone.now() + session.save(update_fields=["status", "exported_at"]) + + return {"status": "success", "results": results} + + except Exception as exc: + session.status = ExportSession.Status.ERROR + session.save(update_fields=["status"]) + logger.error("run_session_exports [%s]: %s", session_id, exc, exc_info=True) + return {"status": "error", "message": str(exc)} + + +@shared_task(bind=True) +def export_all_images(self, session_id: str): + """ + Export ZIP de toutes les images de la session. + """ + from cameras.models import ExportSession + + session = ExportSession.objects.get(session_id=session_id) + + return export_images_zip( + session.camera_uuid, + session.start_ts, + session.end_ts, + max_zip_size_mb = session.max_zip_size_mb, + jpeg_quality = session.jpeg_quality, + max_image_width = session.max_image_width, + max_image_height = session.max_image_height, + ) + + +@shared_task(bind=True) +def export_all_videos(self, session_id: str): + """ + Export MP4 de toutes les vidéos de la session. + """ + from cameras.models import ExportSession + + session = ExportSession.objects.get(session_id=session_id) + + return export_video_mp4( + session.camera_uuid, + session.start_ts, + session.end_ts, + frame_rate = session.frame_rate, + max_video_size_mb = session.max_video_size_mb, + max_width = session.max_width, + max_height = session.max_height, + ) + + + + diff --git a/test_tube_scanner/scanner/models.py b/test_tube_scanner/scanner/models.py new file mode 100644 index 0000000..36adc49 --- /dev/null +++ b/test_tube_scanner/scanner/models.py @@ -0,0 +1,308 @@ +# Django models for test tube scanner application +# Created on 10/04/2024 +# denis@linuxtarn.org +from django.utils.translation import gettext_lazy as _ +import uuid +import json +from django_celery_beat.models import PeriodicTask, ClockedSchedule +from django.dispatch import receiver +from django.db.models.signals import post_save, post_delete + +from django.utils import timezone +from django.db import models +from django.contrib.auth.models import User + +# Multi-well positions on the table for calibration and observation +MULTIWELL_POSITION = [ + ('HG', _("Haut gauche")), + ('HD', _("Haut droit")), + ('BG', _("Bas gauche")), + ('BD', _("Bas droit")), + ('BM', _("Bas milieu")), + ('HM', _("Haut milieu")), +] + +FOURCC_FORMAT = [ + ('mp4v', _("MP4")), + ('XVID', _("XVID")), +] + +VIDEO_TYPE = [ + ('mp4', _("MP4")), + ('avi', _("AVI")), +] + +class Configuration(models.Model): + name = models.CharField(_("Nom de la Configuration"), help_text=_("Nom de la configuration"), max_length=100, null=True, blank=False, default=_("Configuration par défaut")) + author = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name="Auteur", null=True, blank=True) + # Dashboard configuration + sidebar_width = models.CharField(_("Barre latérale"), help_text=_("Largeur barre latérale (css)"), max_length=32, null=True, blank=False, default="350px") + default_grid_columns = models.PositiveSmallIntegerField(_("Colonnes de la grille par défaut"), help_text=_("Nombre de colonnes de la grille par défaut"), blank=False, default=3) + # opencv + opencv_fourcc_format = models.CharField(_("Fourcc"), help_text=_('Opencv fourcc format'), max_length=8, choices=FOURCC_FORMAT, null=True, blank=False, default='mp4v') + opencv_video_type = models.CharField(_("Video type"), help_text=_('Opencv video type'), max_length=8, choices=VIDEO_TYPE, null=True, blank=False, default='mp4') + # Grbl configuration + grbl_xmax = models.FloatField(_("Grbl Xmax"), help_text=_("CNC Grbl Xmax en mm"), blank=False, default=350.0) + grbl_ymax = models.FloatField(_("Grbl Ymax"), help_text=_("CNC Grbl Ymax en mm"), blank=False, default=250.0) + # camera configuration + use_rpicam = models.BooleanField(_("Utiliser rpicam"), help_text=_("Par défaaut. Sinon USB webcam"), default=True) + webcam_device_index = models.PositiveSmallIntegerField(_("Index de la webcam"), help_text=_("Index de la webcam (0, 1, ...) si présente"), default=2) + image_quality = models.PositiveSmallIntegerField(_("Qualité JPEG"), help_text=_("Qualité JPEG (1-100) pour les images exportées"), default=90) + video_jpeg_quality = models.PositiveSmallIntegerField(_("Qualité JPEG pour les vidéos"), help_text=_("Qualité JPEG (1-100) pour les images extraites des vidéos"), default=90) + video_frame_rate = models.FloatField(_("Fréquence vidéos (fps)"), help_text=_("Fréquence d'extraction des images des vidéos (images par seconde)"), default=5.0) + video_width_capture = models.PositiveSmallIntegerField(_("Largeur de capture vidéo"), help_text=_("Largeur de capture vidéo en pixels"), default=1280) + video_height_capture = models.PositiveSmallIntegerField(_("Hauteur de capture vidéo"), help_text=_("Hauteur de capture vidéo en pixels"), default=720) + # Calibration + calibration_crop_radius = models.PositiveSmallIntegerField(_("Rayon de découpe pour la calibration"), help_text=_("Rayon en pixels pour découper les images de calibration en px"), default=150) + calibration_default_multiwell = models.CharField(_("Multi-puits de calibration par défaut"), help_text=_("Position du multi-puits de calibration par défaut"), max_length=8, choices=MULTIWELL_POSITION, default='HG') + calibration_default_feed = models.PositiveIntegerField(_("Vitesse de calibration"), help_text=_("Vitesse de déplacement pour la calibration en mm/mn"), default=1000) + calibration_default_step = models.FloatField(_("Pas de calibration"), help_text=_("Pas de déplacement pour la calibration en mm"), default=1.0) + + active = models.BooleanField(_("Actif"), default=False) + + class Meta: + ordering = ['id', ] + verbose_name = _("Configuration") + verbose_name_plural = verbose_name + + def __str__(self): + return f'{self.name}' + +class Well(models.Model): + author = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name="Auteur", null=True, blank=True) + name = models.CharField(_("Nom"), help_text=_("Nom du puit: Ai..Di"), unique=True, max_length=4, null=True, blank=True) + + class Meta: + ordering = ['name', ] + verbose_name = _("Puit") + verbose_name_plural = _("Puits") + + def __str__(self): + return f'{self.name}' + +class MultiWell(models.Model): + label = models.CharField(_("Label"), help_text=_("Label du multi-puit"), max_length=100, null=True, blank=True) + author = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name="Auteur", null=True, blank=True) + position = models.CharField(_("Position"), help_text=_('Position du multi-puits sur la table'), unique=True, max_length=8, choices=MULTIWELL_POSITION, null=True, blank=False) + + cols = models.PositiveSmallIntegerField(_("Colonnes"), help_text=_('Nombre de colonnes'), blank=False, default=6) + rows = models.PositiveSmallIntegerField(_("Lignes"), help_text=_('Nombre de lignes'), blank=False, default=4) + row_def = models.CharField(_("Définition"), help_text=_('Définition des lignes'), max_length=16, null=True, blank=False, default="A,B,C,D") + row_order = models.CharField(_("Ordre"), help_text=_('Ordre de lecture en serpentin'), max_length=16, null=True, blank=False, default="D,C,B,A") + + order = models.PositiveSmallIntegerField(_("Ordre"), help_text=_('Ordre de lecture du multi-puit'), blank=False, default=0) + duration = models.PositiveIntegerField(_("Durée"), help_text=_('Durée du film en secondes'), blank=False, default=120) + xbase = models.FloatField(_("Origine X"), help_text=_('Base origine X en mm'), blank=False, default=50.0) + ybase = models.FloatField(_("Origine Y"), help_text=_('Base origine Y en mm'), blank=False, default=50.0) + + dx = models.FloatField(_("Pas X"), help_text=_('Pas ou interval sur X en mm'), blank=False, default=19.5) + dy = models.FloatField(_("Pas Y"), help_text=_('Pas ou interval sur Y en mm'), blank=False, default=19.5) + feed = models.PositiveIntegerField(_("Vitesse"), help_text=_('Vitesse déplacement en mm/mn '), blank=False, default=1000) + active = models.BooleanField(_("Active"), default=True) + + def config(self): + return dict( + cols=self.cols, + rows=self.rows, + row_def=self.row_def, + row_order=self.row_order, + dx=self.dx, + dy=self.dy, + duration=self.duration, + feed=self.feed, + xbase=self.xbase, + ybase=self.ybase, + ) + return {} + + @classmethod + def config_by_position(cls, position): + qs = MultiWell.objects.filter(position__exact=position).values() + if qs: + return dict(qs[0]) + return {} + + @classmethod + def by_position(cls, position): + return MultiWell.objects.filter(position__exact=position).first() + + @classmethod + def all(cls): + return MultiWell.objects.filter(active=True).all() + + class Meta: + ordering = ['order', ] + verbose_name = _("Multi-puits") + verbose_name_plural = _("Multi-puits") + + + def __str__(self): + return f'{self.position}: {self.label}' + +class Observation(models.Model): + title = models.CharField(_("Titre de l'observation"), max_length=100, null=True, blank=False) + comment = models.TextField(_("Commentaires"), help_text=_("Descriptions de l'observations"), null=True, blank=True) + author = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name="Auteur", null=True, blank=True) + multiwell = models.ForeignKey(MultiWell, verbose_name=_("Multi-puits"), on_delete=models.SET_NULL, null=True, blank=True) + created = models.DateTimeField(_("Date de création"), default=timezone.now) + started = models.DateTimeField (_("Date de début"), null=True, blank=True) + finished = models.DateTimeField (_("Date de fin"), null=True, blank=True) + + class Meta: + ordering = ['-created', ] + verbose_name = _("Observation") + verbose_name_plural = _("Observations") + + def __str__(self): + return f'{self.title}: {self.created} {self.multiwell.order}' + +class ObservationMultiWellDetail(models.Model): + author = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name="Auteur", null=True, blank=True) + observation = models.ForeignKey(Observation, on_delete=models.CASCADE, related_name="multiwell_details" , null=True, blank=True) + well = models.ForeignKey(Well, verbose_name="Puit", on_delete=models.CASCADE, related_name="observation_details", null=True, blank=True ) + detail = models.CharField("Détail", max_length=255) + comment = models.TextField("Commentaire", blank=True) + + class Meta: + ordering = ['observation', 'well__name'] + unique_together = ["observation", "well"] + verbose_name = _("Observation multi-puits détail") + verbose_name_plural = _("Observations multi-puits détails") + + def __str__(self): + return f"{self.observation.title} - {self.well} - {self.detail}" + + +class Session(models.Model): + + class Status(models.TextChoices): + PENDING = "pending", _("En attente") + RUNNING = "running", _("En cours") + DONE = "done", _("Terminé") + ERROR = "error", _("Erreur") + + name = models.CharField(_("Nom de la session"), help_text=_("Session d'observations. 4 Multi-puits maximum"), max_length=100, null=True, blank=False) + author = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name="Auteur", null=True, blank=True) + active = models.BooleanField(_("Active"), default=True) + expected_export = models.DateTimeField(_("Date d'exportation"), help_text=_("Date d'exportation prévue"), null=True, blank=True) + expected_scanning = models.DateTimeField(_("Date du balayage"), help_text=_("Date du balayage prévue"), null=True, blank=True) + + created = models.DateTimeField(_("Date de création"), default=timezone.now) + finished = models.DateTimeField (_("Date de fin"), null=True, blank=True) + + export_status = models.CharField(_("Status exportation"), max_length=16, choices=Status.choices, default=Status.PENDING) + export_task = models.OneToOneField( + "django_celery_beat.PeriodicTask", + verbose_name=_("Export médias"), + help_text=_("Programmation de l'exportation des vidéos et images"), + null=True, blank=True, on_delete=models.SET_NULL, related_name="export_session") + export_exported_at = models.DateTimeField(_("Exportation terminée à"), null=True, blank=True) + + scanning_status = models.CharField(_("Status scanning"), max_length=16, choices=Status.choices, default=Status.PENDING) + scanning_task = models.OneToOneField( + "django_celery_beat.PeriodicTask", + verbose_name=_("Lancer le balayage"), + help_text=_("Programmation du lancement du balayage"), + null=True, blank=True, on_delete=models.SET_NULL, related_name="scanning_session") + scanning_finished_at = models.DateTimeField(_("Balayage terminé à"), null=True, blank=True) + + + class Meta: + ordering = ['-created', ] + verbose_name = _("Session d'observation") + verbose_name_plural = _("Sessions d'observation") + + def __str__(self): + state = _("Terminée") if not self.active else _("Active") + return f'{self.name}: {state}' + + +@receiver(post_save, sender=Session) +def create_periodic_task(sender, instance, created, **kwargs): + """ + Crée automatiquement une PeriodicTask à la création d'une session. + La tâche est one-shot : elle se désactive après exécution (one_off=True). + """ + if instance.expected_export: + try: + clocked, _ = ClockedSchedule.objects.get_or_create(clocked_time=instance.expected_export) + export_task = PeriodicTask.objects.create( + name = f"export_session_{instance.id}", + task = "scanner.tasks.run_session_exports", + clocked = clocked, + one_off = True, # se désactive après la première exécution + enabled = True, + last_run_at = None, # force Celery Beat à ne pas la considérer déjà exécutée + start_time = None, # pas de contrainte de démarrage + kwargs = json.dumps({ # paramètres passés à la tâche + "session_id": str(instance.id), + }), + description = f"Export expected at {instance.expected_export} — {instance.name}", + ) + # Sauvegarde sans re-déclencher le signal + Session.objects.filter(pk=instance.pk).update(export_task=export_task) + except: + pass + + if instance.expected_export: + try: + clocked, _ = ClockedSchedule.objects.get_or_create(clocked_time=instance.expected_scanning) + scanning_task = PeriodicTask.objects.create( + name = f"scanning_session_{instance.id}", + task = "scanner.tasks.run_scanning", + clocked = clocked, + one_off = True, # se désactive après la première exécution + enabled = True, + last_run_at = None, # force Celery Beat à ne pas la considérer déjà exécutée + start_time = None, # pas de contrainte de démarrage + kwargs = json.dumps({ # paramètres passés à la tâche + "session_id": str(instance.id), + }), + description = f"Scanning expected at {instance.expected_scanning} — {instance.name}", + ) + # Sauvegarde sans re-déclencher le signal + Session.objects.filter(pk=instance.pk).update(scanning_task=scanning_task) + except: + pass + +@receiver(post_delete, sender=Session) +def delete_periodic_task(sender, instance, **kwargs): + """ + Supprime la PeriodicTask associée quand la session est supprimée. + """ + if instance.export_task: + instance.export_task.delete() + if instance.scanning_task: + instance.scanning_task.delete() + +class SessionObservation(models.Model): + author = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name="Auteur", null=True, blank=True) + session = models.ForeignKey(Session, verbose_name=_("Session"), on_delete=models.SET_NULL, null=True, blank=True) + observation = models.ForeignKey(Observation, verbose_name=_("Observation"), on_delete=models.SET_NULL, null=True, blank=True) + + @classmethod + def observation_by_session(cls, session_id, active=True): + return [ ss.observation for ss in SessionObservation.objects.filter(session__id=session_id, session__active=active).order_by('observation__multiwell__order') ] + + @classmethod + def uuid_from_session(cls, sid): + observations = [ss.observation for ss in SessionObservation.objects.filter(session__id=sid, session__active=False)] + uuid_list = [] + for obs in observations: + row_def = obs.multiwell.row_def.split(',') + for row in range(obs.multiwell.rows): + for col in range(obs.multiwell.cols): + uuid = f'{sid}-{obs.multiwell.position}-{row_def[row]}{col+1}' + uuid_list.append(uuid) + return uuid_list + + class Meta: + ordering = ['session',] + unique_together = ["session", "observation"] + verbose_name = _("Session observations") + verbose_name_plural = _("Sessions observations") + + def __str__(self): + return f'{self.session.name}' + + diff --git a/test_tube_scanner/scanner/process.py b/test_tube_scanner/scanner/process.py new file mode 100644 index 0000000..d91d5c9 --- /dev/null +++ b/test_tube_scanner/scanner/process.py @@ -0,0 +1,812 @@ +# +# process.py +import os +os.environ['OPENCV_LOG_LEVEL']="0" +os.environ['OPENCV_FFMPEG_LOGLEVEL']="0" +import cv2 +from django.utils.translation import gettext_lazy as _ +from datetime import datetime +import time, asyncio, bisect +import json, base64 +from threading import Thread, Event, Lock +from queue import Queue +from asgiref.sync import async_to_sync #, sync_to_async +from channels.layers import get_channel_layer + +from django.utils import timezone +from django.conf import settings + +from celery import Task +from celery.exceptions import Ignore +from celery.utils.log import get_task_logger +from redis import Redis +from dataclasses import dataclass +from modules import reductstore, grbl, utils + +## camera devices +from modules.circular_crop import CircularCrop, CropStrategy +from . import models + +@dataclass +class ProcTag: + play: bool = True + record: bool = False + uuid: str = None + session: int = 0 + +logger = get_task_logger(__name__) +redisDB = Redis(host=settings.REDIS_HOST, port=settings.REDIS_PORT, db=0, decode_responses=True) +cameraDB = reductstore.ReductStore(name='camera') + + +class CameraRecordManager(): + + def __init__(self, clienDB): + self.clienDB = clienDB + self.is_image = False + self.oldest_ts = None + self.latest_ts = None + + async def size(self, uuid, start_ts, end_ts): + try: + queries = self.query(uuid, start_ts, end_ts) + total_size = 0 + record_number = 0 + latest = None + async for record in queries: + if not record_number: + self.oldest_ts = record.timestamp + + frame_bytes = await record.read_all() + total_size += len(frame_bytes) + record_number += 1 + latest = record.timestamp + self.latest_ts = latest + + return total_size + except: + return None + + def black_jpg(self): + frame = cv2.imread(settings.MEDIA_ROOT / 'images' / 'black-screen.jpg', cv2.IMREAD_UNCHANGED) + _, frame = cv2.imencode('.jpg', frame) + black_jpg = frame.tobytes() + return f'data:image/jpeg;base64,{base64.b64encode(black_jpg).decode()}' + + def set_filters(self, session=None, test=None): + filters = [] + if session: + filters.append({"&session": { "$eq": session} }) + if test==True: + filters.append({"&test": { "$contains": "True"} }) + + when = {"$and": filters} + return when + + async def record_content(self, query): + record = await anext(query) + content = await record.read_all() + return record, content + + def query(self, uuid, start=None, stop=None, filters=None): + try: + return self.clienDB.query(uuid, start, stop, when=filters, ttl=3600) + except Exception as e: + logger.error(f"CameraRecordManager query: {e}") + + def first_image(self, uuid, start=None, stop=None, filters=None): + try: + query = self.query(uuid, start, stop, filters=filters) + record, content = async_to_sync(self.record_content)(query) + self.is_image = True + return f'data:image/jpeg;base64,{base64.b64encode(content).decode()}', record.timestamp + + except Exception as e: # @UnusedVariable + pass + #logger.error(f"CameraRecordManager first_image: {e}") + self.is_image = False + return self.black_jpg(), start + + def write(self, uuid, frame, labels, ts=None): + try: + if ts is None: + ts = timezone.now() + async_to_sync(self.clienDB.write)( + uuid, + frame, + timestamp=ts, + labels=labels, + content_type='application/octet-stream', + ) + except Exception as e: + logger.error(f"CameraRecordManager write: {e}") + + + async def remove_uuid(self, uuid, start=None, stop=None, when=None): + try: + await self.clienDB.remove_query(uuid, start, stop, when=when) + except Exception as e: + logger.error(f"CameraRecordManager remove: {e}") + + def remove(self, uuid, start=None, stop=None, when=None): + asyncio.run(self.remove_uuid(uuid, start, stop, when=when)) + + +class MultiWellManager: + + def __init__(self, position, feed=None, step=None, proc=None): + self.set_multiwell(position) + self._feed = feed + self._step = step + self.proc = proc + self.scanner = None + + def set_multiwell(self, position): + self._position = position + self.well = models.MultiWell.by_position(position) + self._xbase = self.well.xbase + self._ybase = self.well.ybase + self._dx = self.well.dx + self._dy = self.well.dy + + def _start_test(self): + self.scanner.start() + + def _start(self, machine, session, observations): + xynext = [] + for obs in observations: + xynext.append((obs.multiwell.xbase, obs.multiwell.ybase)) + xynext.append((0, 0)) + + pos = 1 + self.proc.session = session.id + started = timezone.now() + for obs in observations: + conf = obs.multiwell.config() + self.scanner = grbl.GridScanner(machine, proc=self.proc, **conf) + obs.started = timezone.now() + obs.save() + + xnext, ynext = xynext[pos] + pos +=1 + self.scanner.start(xnext=xnext, ynext=ynext, position=obs.multiwell.position) + + obs.finished = timezone.now() + obs.save() + session.finished = timezone.now() + session.active = False + session.save() + logger.info(f"==== Session {session.name} terminée à {session.finished} après {session.finished - started} secondes.") + + + def scan_test(self, machine, duration=5.0): + conf = self.well.config() + conf['duration'] = duration + conf['feed'] = self.feed + conf['xnext'] = self._xbase + conf['ynext'] = self._ybase + + self.proc.session = 0 + self.scanner = grbl.GridScanner(machine, proc=self.proc, **conf) + Thread(target=self._start_test, daemon=True).start() + + def scan(self, machine, sid): + try: + session = models.Session.objects.get(pk=sid) + observations = models.SessionObservation.observation_by_session(sid) + Thread(target=self._start, args=(machine, session, observations, ), daemon=True).start() + except Exception as e: + print("MultiWellManager::scan error", e) + + def halt(self): + if self.scanner: + self.scanner.halt() + + @property + def position(self): + return self._position + + @position.setter + def position(self, value): + self._position = value + + @property + def step(self): + return self._step + + @step.setter + def step(self, value): + self._step = value + + @property + def feed(self): + return self._feed + + @feed.setter + def feed(self, value): + self._feed = value + + @property + def xbase(self): + return self._xbase + + @xbase.setter + def xbase(self, value): + self._xbase = value + + @property + def ybase(self): + return self._ybase + + @ybase.setter + def ybase(self, value): + self._ybase = value + + @property + def dx(self): + return self._dx + + @dx.setter + def dx(self, value): + self._dx = value + + @property + def dy(self): + return self._dy + + @dy.setter + def dy(self, value): + self._dy = value + + def set_xy_step(self): + models.MultiWell.objects.filter(position__exact=self.position).update(dx=self.dx, dy=self.dy) + + def set_position(self, machine): + x, y = machine.get_mpos() + machine.wait_for(2.0) + models.MultiWell.objects.filter(position__exact=self.position).update(xbase=x, ybase=y) + self._xbase, self._ybase = x, y + + +class ScannerProcess(Task): + ''' + video_quality = settings.VIDEO_JPG_QUALITY + image_quality = settings.IMAGE_JPG_QUALITY + video_fps = settings.VIDEO_FPS + video_width = settings.VIDEO_WIDTH + video_height = settings.VIDEO_HEIGHT + + crop_radius = settings.CALIBRATION_CROP_RADIUS + default_multiwell = settings.CALIBRATION_DEFAULT_MULTIWELL + default_feed = settings.CALIBRATION_DEFAULT_FEED + default_step = settings.CALIBRATION_DEFAULT_STEP''' + + def __init__(self): + super().__init__() + self.channel_layer = get_channel_layer() + self.group = f'scanner_proc' + self.stop_event = Event() + self.cam = None + self.grbl = None + self.crop = None + self.multiwel = None + self.conf = None + self.record_queue = Queue() + self.proc = ProcTag() + self.manager = None + self.recordDB = CameraRecordManager(cameraDB) + + def __call__(self, *args, **kwargs): + return self.start(*args, **kwargs) + + def set_crop_radius(self, radius): + return CircularCrop(radius=radius, strategy=CropStrategy.CROP_JPEG, jpeg_quality=self.image_quality) + + def start(self, *args, **kwargs): + try: + self.conf = models.Configuration.objects.filter(active=True).first() + + self.video_quality = self.conf.video_jpeg_quality + self.image_quality = self.conf.image_quality + self.video_fps = self.conf.video_frame_rate + self.video_width = self.conf.video_width_capture + self.video_height = self.conf.video_height_capture + + self.crop_radius = self.conf.calibration_crop_radius + self.default_multiwell = self.conf.calibration_default_multiwell + self.default_feed = self.conf.calibration_default_feed + self.default_step = self.conf.calibration_default_step + + self.video_jpg_quality = [int(cv2.IMWRITE_JPEG_QUALITY), self.video_quality] + self.image_jpg_quality = [int(cv2.IMWRITE_JPEG_QUALITY), self.image_quality] + self.grbl_xmax = self.conf.grbl_xmax + self.grbl_ymax = self.conf.grbl_ymax + + #self.crop = CircularCrop(radius=self.crop_radius, strategy=CropStrategy.CROP_JPEG, jpeg_quality=self.image_quality) + self.crop = self.set_crop_radius(self.crop_radius) + if not self.conf.use_rpicam: + from modules.webcam_capture import WebcamCapture + self.cam = WebcamCapture( + device_index=self.conf.webcam_device_index, + fps=self.video_fps, + width=self.video_width, + height=self.video_height, + jpeg_quality=self.video_quality, + ) + else: + from modules.picamera2_capture import PiCamera2Capture + self.cam = PiCamera2Capture( + fps=self.video_fps, + width=self.video_width, + height=self.video_height, + jpeg_quality=self.video_quality, + ) + self.cam.set_frame_callback(self._on_frame) + self.cam.set_median(False) + self.cam.set_circular_crop(None) + self.stop_event.clear() + self.start_services() + except Exception as e: + logger.error(f"Scanner started error: {e}") + raise Ignore() + + def stop(self): + try: + info = 'Scanner stopped' + self._send(state='stop', msg=info) + self.stop_event.set() + self.cam.stop() + logger.info(info) + Event().wait(1.0) + finally: + self.stop_event.set() + + def start_services(self): + Thread(target=self._listen_to_redis, daemon=True).start() + Thread(target=self._recording, daemon=True).start() + self.cam.start() + + def _send(self, **payload): + async_to_sync(self.channel_layer.group_send)( + self.group, { + "type": 'scanner.message', + "text": payload + } + ) + + def _display(self, **msg): + if self.grbl: + self._send(**msg) + + def _on_frame(self, jpeg_bytes: bytes, ts: datetime) -> None: + if self.proc.record: + # record images + self.record_queue.put((self.proc.uuid, ts, jpeg_bytes)) + if self.proc.play: + # play image + self._send(ts=ts.timestamp(), jpeg=base64.b64encode(jpeg_bytes).decode(), ) + + def _recording(self): + logger.info(f"Scanner {self.group}: start recorder") + while not self.stop_event.is_set(): + try: + (uuid, ts, frame) = self.record_queue.get() + labels = dict(fps=self.video_fps, session=self.proc.session) + self.recordDB.write(uuid, frame, labels, ts=ts) + self.record_queue.task_done() + except Exception as e: + logger.error(f'recorder: {e}') + + def _init_grbl(self, feed=1000): + self.grbl = grbl.GRBLController( + send_callback=self._display, + x_max=self.conf.grbl_xmax, + y_max=self.conf.grbl_ymax + ) + self.grbl.go_origin(feed=feed) + self.grbl.wait_for(2.0) + + def _listen_to_redis(self): + try: + logger.info(f"==== Scanner {self.group}: listen via redisDB") + pubsub = redisDB.pubsub() + pubsub.subscribe(self.group) + self._init_grbl() + + self.manager = MultiWellManager( + self.default_multiwell, + feed=self.default_feed, + step=self.default_step, + proc=self.proc + ) + + for message in pubsub.listen(): + try: + #logger.info(f"{message}") + if self.stop_event.is_set(): + break + + cmd = json.loads(str(message.get('data'))) + logger.info(f"{cmd}") + + if not isinstance(cmd, dict): + continue + + self._send(state=cmd["type"], msg=f"Cmd: {cmd.get('topic')} {cmd.get('value', '')}") + if cmd["type"]=="scanner": + topic = cmd.get("topic") + if topic == 'init': + self.cam.set_circular_crop(self.crop) + self.cam.set_median(is_median=False) + self.grbl.go_origin(feed=self.manager.feed) + + elif topic == 'scan': + sid = cmd.get("session", '0') + if sid == "0": + self._send(state='error', msg=str(_('La session est nulle!...'))) + else: + self.cam.set_median(is_median=False) + self.manager.scan(self.grbl, sid) + + elif cmd["type"]=="calibrate": + topic = cmd.get("topic") + value = cmd.get("value") + + if topic == 'init': + self.manager.feed = int(cmd.get("feed", self.default_feed)) + self.manager.step = float(cmd.get("step", self.default_step)) + position = cmd.get("position", self.default_multiwell) + if self.manager.position != position: + self.manager.set_multiwell(position) + self.cam.set_circular_crop(None) + self.cam.set_median(is_median=False) + elif topic == 'up': + self.grbl.move_relative(dy=self.manager.step, feed=self.manager.feed) + elif topic == 'down': + self.grbl.move_relative(dy=-self.manager.step, feed=self.manager.feed) + elif topic == 'right': + self.grbl.move_relative(dx=self.manager.step, feed=self.manager.feed) + elif topic == 'left': + self.grbl.move_relative(dx=-self.manager.step, feed=self.manager.feed) + elif topic == 'median': + self.cam.set_median(is_median=value) + elif topic == 'crop': + self.cam.set_circular_crop(self.crop) if value else self.cam.set_circular_crop(None) + continue + elif topic == 'crop_radius': + self.conf.calibration_crop_radius=int(value) + self.crop = self.set_crop_radius(self.conf.calibration_crop_radius) + self.conf.save() + self.cam.set_circular_crop(self.crop) + continue + elif topic == 'position': + self.manager.set_multiwell(value) + elif topic == 'step': + self.manager.step = float(value) + elif topic == 'feed': + self.manager.feed = int(value) + elif topic == 'goto_0': + self.grbl.go_origin(feed=self.manager.feed) + elif topic == 'goto_xy': + self.grbl.move_to(self.manager.xbase, self.manager.ybase, feed=self.manager.feed) + elif topic == 'xy_base': + self.manager.set_position(self.grbl) + elif topic == 'dx': + self.manager.dx = float(value) + elif topic == 'dy': + self.manager.dy = float(value) + elif topic == 'xy_step': + self.manager.set_xy_step() + elif topic == 'test': + self.manager.scan_test(self.grbl) + continue + elif topic == 'halt': + self.manager.halt() + continue + + self._send( + xbase=self.manager.xbase, + ybase=self.manager.ybase, + x=self.grbl.x, + y=self.grbl.y, + xy=True, + dxy=True, + dx=self.manager.dx, + dy=self.manager.dy + ) + + except Exception as e: + logger.error(f'scanner listen_to_redis: {e}') + finally: + pubsub.unsubscribe() + pubsub.close() + + +#================================================================= +# +# REPLAY Buffer glissant +# +# temps réel replay → +# |---- préchargé ----|---- en lecture ----|---- à venir ----| +# -2s t +3s +# max_seconds: +# 3s → faible latence, faible RAM +# 10s → seek ultra fluide +#================================================================= + +class ReplayBuffer: + def __init__(self, max_seconds=5.0): + self.max_seconds = max_seconds + self.frames = {} # ts → bytes + self.timestamps = [] # triée + self.lock = Lock() + + def push(self, ts, frame): + with self.lock: + if ts in self.frames: + return + bisect.insort(self.timestamps, ts) + self.frames[ts] = frame + self._cleanup(ts) + + def get_nearest(self, ts_us: int): + try: + with self.lock: + if not self.timestamps: + return None + idx = bisect.bisect_right(self.timestamps, ts_us) - 1 + if idx < 0: + idx = 0 + nearest_ts = self.timestamps[idx] + return nearest_ts, self.frames[nearest_ts] + except Exception as e: # @UnusedVariable + pass + #logger.error(f"{e}") + return None + + def clear(self): + with self.lock: + self.frames.clear() + self.timestamps.clear() + + + def _cleanup(self, current_ts): + # supprime les frames trop anciennes + limit = current_ts - self.max_seconds + while self.timestamps and self.timestamps[0] < limit: + ts = self.timestamps.pop(0) + del self.frames[ts] + + +class ReplayClock: + def __init__(self, uuid, start_ts, stop_ts, fps=5.0, speed=1.0): + self.uuid = uuid + self.start_ts = start_ts + self.stop_ts = stop_ts + self.ts = start_ts + self.fps = fps + self.speed = speed + self.paused = False + self._seek_ts = None + self._last_tick = time.monotonic() + self.lock = Lock() + self.delta = self.stop_ts - self.start_ts + + def tick(self): + with self.lock: + now = time.monotonic() + dt_sec = now - self._last_tick + self._last_tick = now + delta_us = int(dt_sec * 1_000_000 * self.speed) + self.ts += delta_us + if self.ts >= self.stop_ts: + self.paused = True + return None + return self.ts + + def sleep_duration(self) -> float: + with self.lock: + frame_us = int(1_000_000 / self.fps) + return max((frame_us / self.speed) / 1_000_000, 0.001) + + def play(self): + with self.lock: + self.paused = False + + def pause(self): + with self.lock: + self.paused = True + + def stop(self): + with self.lock: + self.paused = True + self.ts = self.start_ts + return self.ts + + def set_speed(self, speed): + with self.lock: + self.speed = max(0.1, speed) + + def seek(self, k): + with self.lock: + self._seek_ts = int( self.start_ts + (k * self.delta) ) + + def consume_seek(self): + with self.lock: + ts = self._seek_ts + self._seek_ts = None + return ts + return None + + def progress(self, ts: int) -> float: + ptx = (ts - self.start_ts) / self.delta + return round( max(0.0, min(1.0, ptx)), 6) + + +class ReplayProcess(Task): + + def __init__(self, latency=5.0): + super().__init__() + self.channel_layer = get_channel_layer() + self.latency = latency + self.group = f'replay_proc' + self.recordDB = cameraDB + self.stop_event = Event() + self.clock = None + self.query = None + self.running = asyncio.Event() + + + def __call__(self, uuid, *args, **kwargs): + return self.start(*args, **kwargs) + + + def start(self, *args, **kwargs): + try: + self.stop_event.clear() + Thread(target=self._listen_to_redis, daemon=True).start() + except Exception as e: + logger.error(f"Replay error: {e}") + raise Ignore() + + def stop(self): + self.stop_event.set() + logger.info(f"==== ReplayProcess stopped.") + + def _listen_to_redis(self): + try: + loop = None + logger.info(f"==== ReplayProcess {self.group}: listen via redisDB") + pubsub = redisDB.pubsub() + pubsub.subscribe(self.group) + + for message in pubsub.listen(): + try: + if self.stop_event.is_set(): + break + + cmd = json.loads(str(message.get('data'))) + logger.info(f"{cmd}") + + if not isinstance(cmd, dict): + continue + + if cmd["type"] == "replay": + action = cmd["action"] + if action in ["init", "play"]: + uuid = cmd.get("uuid") + start_ts, stop_ts = int(cmd.get('dt_start')), int(cmd.get('dt_stop')) + + fps, speed = float(cmd.get('fps', 5.0)), int(cmd.get('speed')) + self.clock = ReplayClock(uuid, start_ts, stop_ts, fps, speed) + if action == "init": + if loop: + utils.stop_async(loop) + loop = None + elif action == "play": + if not loop: + loop = utils.start_async() + utils.submit_async(loop, self._replay()) + self.clock.play() + + elif action == 'stop': + self.running.set() + if loop: + utils.stop_async(loop) + loop = None + ts = self.clock.stop() + async_to_sync(self._send_message)('video-reset', dt_start=ts, percent=0.0) + + elif action == 'pause': + self.clock.pause() + + elif action == 'speed': + self.clock.set_speed(cmd.get("value")) + + elif action == 'seek': + k = float(cmd.get("value")) + self.clock.seek(k) + + except Exception as e: + logger.error(f'ReplayProcess::listen_to_redis: {e}') + finally: + self.running.set() + utils.stop_async(loop) + pubsub.unsubscribe() + pubsub.close() + + async def _send(self, payload): + await self.channel_layer.group_send(self.group, {"type": 'replay.message', "text": payload }) + + async def _send_message(self, motif, **msg): + payload = { + 'uuid': self.clock.uuid, + 'motif': motif, + **msg + } + await self._send(payload) + + async def _send_frame(self, ts, jpg_bytes): + payload = { + 'uuid': self.clock.uuid, + "ts": ts, + "progress": self.clock.progress(ts), + "jpeg": base64.b64encode(jpg_bytes).decode() + } + await self._send(payload) + + def _create_query(self, clock): + return self.recordDB.query(clock.uuid, start=clock.ts, stop=clock.stop_ts ) + + async def _replay(self): + try: + self.running.clear() + query = self._create_query(self.clock) + self.buffer = ReplayBuffer(max_seconds=self.latency) + while not self.running.is_set(): + try: + # ---- seek ? ---- + seek_ts = self.clock.consume_seek() + if seek_ts is not None: + self.clock.ts = seek_ts + query = self._create_query(self.clock) + await asyncio.sleep(0.01) + continue + + # ---- pause ---- + if self.clock.paused: + await asyncio.sleep(0.5) + continue + + # ---- frame ---- + record = await anext(query) + frame = await record.read_all() + + self.buffer.push(record.timestamp, frame) + if record.timestamp < self.clock.ts + self.buffer.max_seconds: + continue + + # ---- get frame ---- + nearest = self.buffer.get_nearest(self.clock.ts) + if nearest is None: + await asyncio.sleep(0.01) + continue + + # ---- emit jpg ---- + frame_ts, jpg = nearest + await self._send_frame(frame_ts, jpg) + + # ---- avance temps ---- + self.clock.tick() + await asyncio.sleep(self.clock.sleep_duration()) + + except StopAsyncIteration: + self.clock.pause() + self.buffer.clear() + + except Exception as e: + logger.error(f'_replay loop: {e}') + + await asyncio.sleep(0.5) + except Exception as e: + logger.error(f"_replay: {e}") diff --git a/test_tube_scanner/scanner/routing.py b/test_tube_scanner/scanner/routing.py new file mode 100644 index 0000000..e599821 --- /dev/null +++ b/test_tube_scanner/scanner/routing.py @@ -0,0 +1,13 @@ +# +# routing.py +from django.urls import re_path +from django.conf import settings +from . import consumers + +urla = settings.SCANNER_WEBSOCKET_ROUTE +urlb = settings.REPLAY_WEBSOCKET_ROUTE + +websocket_urlpatterns = [ + re_path(urla, consumers.ScannerConsumer.as_asgi()), + re_path(urlb, consumers.ReplayConsumer.as_asgi()), +] \ No newline at end of file diff --git a/test_tube_scanner/scanner/static/scanner/css/calibration.css b/test_tube_scanner/scanner/static/scanner/css/calibration.css new file mode 100644 index 0000000..5c73d51 --- /dev/null +++ b/test_tube_scanner/scanner/static/scanner/css/calibration.css @@ -0,0 +1,34 @@ + +.container { + height: 100%; + padding: 0.25em; + display: grid; + grid-template-columns: 180px 1fr 150px; + grid-template-rows: 64px 1fr; + + gap: 1em 1em; + grid-auto-flow: row; + grid-template-areas: + "header header header" + "move scanner scan" +} +.header { + align-self: stretch; + grid-area: header; +} + +.scanner { + justify-self: center; + align-self: center; + grid-area: scanner; +} + +.scan { + padding: 0 0.25em; + align-self: start; + grid-area: scan; +} +.move { + align-self: start; + grid-area: move; +} diff --git a/test_tube_scanner/scanner/static/scanner/css/images.css b/test_tube_scanner/scanner/static/scanner/css/images.css new file mode 100644 index 0000000..a5ac35c --- /dev/null +++ b/test_tube_scanner/scanner/static/scanner/css/images.css @@ -0,0 +1,28 @@ + +.multiwell_cards { + display: grid; + /*grid-auto-columns: 1fr; + grid-auto-rows: 1fr;*/ + grid-template-columns: 1fr 1fr; + grid-template-rows: 1fr 1fr 1fr; + gap: 0.1em; + grid-template-areas: + ". ." + ". ." + ". ."; +} +button.multiwell { + padding: 0.15em ; +} + +#image-grid { + display: grid; + grid-template-columns: repeat(var(--grid-columns, 4), 1fr); + gap: 0.5em; + width: 100%; + height: 100%; + padding: 0.5em; + justify-items: center; + align-items: center; + +} diff --git a/test_tube_scanner/scanner/static/scanner/css/main.css b/test_tube_scanner/scanner/static/scanner/css/main.css new file mode 100644 index 0000000..a264c16 --- /dev/null +++ b/test_tube_scanner/scanner/static/scanner/css/main.css @@ -0,0 +1,30 @@ + + +.container { + height: 100%; + padding: 0.25em; + display: grid; + grid-template-columns: 180px 1fr; + grid-template-rows: 64px 0.5fr; + + gap: 1em 1em; + grid-auto-flow: row; + grid-template-areas: + "header header" + "scan scanner" +} +.header { + align-self: stretch; + grid-area: header; +} + +.scanner { + justify-self: center; + align-self: center; + grid-area: scanner; +} + +.scan { + align-self: start; + grid-area: scan; +} diff --git a/test_tube_scanner/scanner/static/scanner/css/range-slider.css b/test_tube_scanner/scanner/static/scanner/css/range-slider.css new file mode 100644 index 0000000..f78313c --- /dev/null +++ b/test_tube_scanner/scanner/static/scanner/css/range-slider.css @@ -0,0 +1,21 @@ + :root{ + --track-height:10px; + --track-color:#ddd; + --range-color:#4aa3ff; + --thumb-size:18px; + --thumb-color:#fff; + --thumb-border:#4aa3ff; + } + + .slider-container{ width:100%; max-width:640px; margin:32px auto; } + .labels{ display:flex; justify-content:space-between; margin-bottom:12px; font-size:14px; } + .range-wrap{ position:relative; height:var(--thumb-size); user-select:none; touch-action:none; } + .track{ position:absolute; left:0; right:0; top:50%; transform:translateY(-50%); height:var(--track-height); background:var(--track-color); border-radius:999px; } + .range-highlight{ position:absolute; top:50%; transform:translateY(-50%); height:var(--track-height); background:var(--range-color); border-radius:999px; } + + input[type=range]{ -webkit-appearance:none; appearance:none; position:absolute; left:0; right:0; top:0; width:100%; height:100%; background:transparent; pointer-events:none; } + input[type=range]::-webkit-slider-thumb{ -webkit-appearance:none; appearance:none; pointer-events:auto; width:var(--thumb-size); height:var(--thumb-size); border-radius:50%; background:var(--thumb-color); border:2px solid var(--thumb-border); box-shadow:0 1px 3px rgba(0,0,0,0.15); cursor:pointer; margin-top: calc((var(--track-height) - var(--thumb-size)) / 2); } + input[type=range]::-moz-range-thumb{ pointer-events:auto; width:var(--thumb-size); height:var(--thumb-size); border-radius:50%; background:var(--thumb-color); border:2px solid var(--thumb-border); box-shadow:0 1px 3px rgba(0,0,0,0.15); cursor:pointer; } + input[type=range]::-moz-range-track{ background:transparent; border:0; } + + @media (max-width:520px){ .values{ flex-direction:column; align-items:flex-start; } .readable{ min-width:unset; width:100%; } } \ No newline at end of file diff --git a/test_tube_scanner/scanner/static/scanner/css/replay.css b/test_tube_scanner/scanner/static/scanner/css/replay.css new file mode 100644 index 0000000..cc9dbfa --- /dev/null +++ b/test_tube_scanner/scanner/static/scanner/css/replay.css @@ -0,0 +1,39 @@ + +.multiwell_cards { + display: grid; + /*grid-auto-columns: 1fr; + grid-auto-rows: 1fr;*/ + grid-template-columns: 1fr 1fr; + grid-template-rows: 1fr 1fr 1fr; + gap: 0.1em; + grid-template-areas: + ". ." + ". ." + ". ."; +} +button.multiwell { + padding: 0.15em ; +} +#replay-grid { + display: grid; + grid-template-columns: repeat(var(--grid-columns, 1), 1fr); + gap: 0.5em; + width: 100%; + height: 100%; + padding: 0.5em; + justify-items: center; + align-items: center; + +} + +.replay-slider, .replay-sub-slide, .replay_ts_cursor{ + width: 100%; + flex: 0 0 auto; +} +.replay-timeline { + width: 100%; + background: transparent; + display: block; +} + + diff --git a/test_tube_scanner/scanner/static/scanner/css/scanner.css b/test_tube_scanner/scanner/static/scanner/css/scanner.css new file mode 100644 index 0000000..33dbcf4 --- /dev/null +++ b/test_tube_scanner/scanner/static/scanner/css/scanner.css @@ -0,0 +1,31 @@ + +.container { + padding: 0.25em; + display: grid; + grid-template-columns: 0.25fr 1.5fr; + grid-template-rows: 0.5fr 3fr 0.5fr; + grid-auto-columns: 1fr; + gap: 1em 1em; + grid-auto-flow: row; + grid-template-areas: + "header header" + "move scanner" + "command command"; +} +.header { + align-self: stretch; + grid-area: header; +} + +.command { grid-area: command; } + +.scanner { + justify-self: center; + align-self: center; + grid-area: scanner; +} + +.move { + align-self: stretch; + grid-area: move; +} diff --git a/test_tube_scanner/scanner/static/scanner/js/calibration.js b/test_tube_scanner/scanner/static/scanner/js/calibration.js new file mode 100644 index 0000000..b6b038a --- /dev/null +++ b/test_tube_scanner/scanner/static/scanner/js/calibration.js @@ -0,0 +1,138 @@ + +class ScannerManager { + + constructor(container) { + this.container = container; + this.socket = null; + this.axes = 0; + this.cropping = 0; + this.debug_count = 0 + } + + toggle_median() { this.axes = !this.axes; return this.axes; } + toggle_crop() { this.croping = !this.croping; return this.croping; } + + init_controls() { + this.ts = sId("_ts"); + const goto_0 = sId("_goto-0"); + const goto_xy = sId("_goto-xy"); + const xy_base = sId("_xy-base"); + const xy_step = sId("_xy-step"); + const up = sId("_up"); + const down = sId("_down"); + const left = sId("_left"); + const right = sId("_right"); + this.feed = sId("_feed"); + this.step = sId("_step"); + this.well = sId("_well"); + this.x = sId("_x"); + this.y = sId("_y"); + this.dx = sId("_dx"); + this.dy = sId("_dy"); + this.xbase = sId("_xbase"); + this.ybase = sId("_ybase"); + this.debug = sId("_debug"); + const test = sId("_test"); + const halt = sId("_halt"); + + const median = sId("_median"); + const crop = sId("_crop"); + const crop_radius = sId("_crop_radius"); + + up.addEventListener('mousedown', (e) => { this._send({ type: 'calibrate', topic: "up" }); }); + down.addEventListener('mousedown', (e) => { this._send({ type: 'calibrate', topic: "down" }); }); + left.addEventListener('mousedown', (e) => { this._send({ type: 'calibrate', topic: "left" }); }); + right.addEventListener('mousedown', (e) => { this._send({ type: 'calibrate', topic: "right" }); }); + + goto_0.addEventListener('click', (e) => { this._send({ type: 'calibrate', topic: "goto_0" }); }); + goto_xy.addEventListener('click', (e) => { this._send({ type: 'calibrate', topic: "goto_xy" }); }); + xy_base.addEventListener('click', (e) => { this._send({ type: 'calibrate', topic: "xy_base" }); }); + xy_step.addEventListener('click', (e) => { this._send({ type: 'calibrate', topic: "xy_step" }); }); + + median.addEventListener('click', (e) => { this._send({ type: 'calibrate', topic: "median", value: this.toggle_median() }); }); + crop.addEventListener('click', (e) => { this._send({ type: 'calibrate', topic: "crop", value: this.toggle_crop() }); }); + crop_radius.addEventListener('change',(e) => { this._send({ type: 'calibrate', topic: "crop_radius", value: crop_radius.value }); }); + this.well.addEventListener("change", (e) => { this._send({ type: 'calibrate', topic: "position", value: e.target.value }); }); + this.step.addEventListener("change", (e) => { this._send({ type: 'calibrate', topic: "step", value: e.target.value }); }); + this.feed.addEventListener("change", (e) => { this._send({ type: 'calibrate', topic: "feed", value: e.target.value }); }); + + this.dx.addEventListener("change", (e) => { this._send({ type: 'calibrate', topic: "dx", value: e.target.value }); }); + this.dy.addEventListener("change", (e) => { this._send({ type: 'calibrate', topic: "dy", value: e.target.value }); }); + + test.addEventListener('click', (e) => { this._send({ type: 'calibrate', topic: "test" }); }); + halt.addEventListener('click', (e) => { this._send({ type: 'calibrate', topic: "halt" }); }); + } + + registerSocket(socket) { + this.socket = socket; + this.init_controls(); + } + + update(payload) { + try { + if (payload.jpeg) { this.container.src = `data:image/jpeg;base64,${payload.jpeg}`; } + if (payload.xbase) { this.xbase.textContent = payload.xbase; this.ybase.textContent = payload.ybase; } + if (payload.dxy) { this.dy.value=payload.dy; this.dx.value=payload.dx; } + if (payload.xy) { this.x.textContent=payload.x.toFixed(2); this.y.textContent=payload.y.toFixed(2); } + if (payload.state) { this.debug.insertAdjacentHTML('afterbegin', `
  • [ ${++this.debug_count} - ${payload.state} ]: ${payload.msg}
  • `); } + if (payload.ts) { this.ts.textContent = timestampToLocalISOString(payload.ts); } + } catch(e) { console.log(e); } + } + + init() { + this.axes = 0; + this.cropping = 0; + this._send({ + type: 'calibrate', + topic: "init", + feed: this.feed.value, + step: this.step.value, + position: this.well.value + }); + } + start() { this._send({ type: 'scanner', topic: "start"}); } + halt() { this._send({ type: 'scanner', topic: "halt" }); } + + _send(message) { this.socket.send(message); } +} + +class MetadataSocket { + constructor(url) { + this.url = url; + this.ws = null; + this.manager = null; + this.reconnectDelay = 1000; + this.shouldReconnect = true; + this.reconnect = false; + } + + setManager(manager) { this.manager = manager; } + + connect() { + this.ws = new WebSocket(this.url); + + this.ws.onmessage = (event) => { + const data = JSON.parse(event.data); + this.manager.update(data); + }; + + this.ws.onopen = (event) => { + if (this.manager && !this.reconnect) + this.manager['init'](); + this.reconnect = false; + }; + + this.ws.onclose = () => { + console.warn(`WebSocket closed...`); + if (this.shouldReconnect) { + this.reconnect = true; + setTimeout(() => { + console.log("Reconnect WebSocket..."); + this.connect(); + }, this.reconnectDelay); + } + }; + } + + send(obj) { if (this.ws?.readyState === WebSocket.OPEN) { this.ws.send(JSON.stringify(obj)); } } +} \ No newline at end of file diff --git a/test_tube_scanner/scanner/static/scanner/js/main.js b/test_tube_scanner/scanner/static/scanner/js/main.js new file mode 100644 index 0000000..5d186e7 --- /dev/null +++ b/test_tube_scanner/scanner/static/scanner/js/main.js @@ -0,0 +1,92 @@ + +class ScannerManager { + + constructor(container) { + this.container = container; + this.socket = null; + this.axes = 0; + this.cropping = 1; + this.debug_count = 0 + } + + toggle_median() { this.axes = !this.axes; return this.axes; } + toggle_crop() { this.croping = !this.croping; return this.croping; } + + init_controls() { + this.session= sId("_session"); + this.ts = sId("_ts"); + this.x = sId("_x"); + this.y = sId("_y"); + this.debug = sId("_debug"); + const scan = sId("_scan"); + const halt = sId("_halt"); + const median = sId("_median"); + const crop = sId("_crop"); + + median.addEventListener('click',(e) => { this._send({ type: 'calibrate', topic: "median", value: this.toggle_median() }); }); + crop.addEventListener('click', (e) => { this._send({ type: 'calibrate', topic: "crop", value: this.toggle_crop() }); }); + scan.addEventListener('click', (e) => { this.scan(); }); + halt.addEventListener('click', (e) => { this.halt(); }); + } + + registerSocket(socket) { + this.socket = socket; + this.init_controls(); + } + + update(payload) { + try { + if (payload.jpeg) { this.container.src = `data:image/jpeg;base64,${payload.jpeg}`; } + if (payload.xy) { this.x.textContent=payload.x.toFixed(2); this.y.textContent=payload.y.toFixed(2); } + if (payload.state) { this.debug.insertAdjacentHTML('afterbegin', `
  • [ ${++this.debug_count} - ${payload.state} ]: ${payload.msg}
  • `); } + if (payload.ts) { this.ts.textContent = timestampToLocalISOString(payload.ts); } + } catch(e) { console.log(e); } + } + + init() { this.axes = 0; this.cropping = 1; this._send({ type: 'scanner', topic: "init", }); } + scan() { this._send({ type: 'scanner', topic: "scan", session: this.session.value ? this.session.value: "0" }); } + halt() { this._send({ type: 'calibrate', topic: "halt" }); } + + _send(message) { this.socket.send(message); } +} + +class MetadataSocket { + constructor(url) { + this.url = url; + this.ws = null; + this.manager = null; + this.reconnectDelay = 1000; + this.shouldReconnect = true; + this.reconnect = false; + } + + setManager(manager) { this.manager = manager; } + + connect() { + this.ws = new WebSocket(this.url); + + this.ws.onmessage = (event) => { + const data = JSON.parse(event.data); + this.manager.update(data); + }; + + this.ws.onopen = (event) => { + if (this.manager && !this.reconnect) + this.manager['init'](); + this.reconnect = false; + }; + + this.ws.onclose = () => { + console.warn(`WebSocket closed...`); + if (this.shouldReconnect) { + this.reconnect = true; + setTimeout(() => { + console.log("Reconnect WebSocket..."); + this.connect(); + }, this.reconnectDelay); + } + }; + } + + send(obj) { if (this.ws?.readyState === WebSocket.OPEN) { this.ws.send(JSON.stringify(obj)); } } +} \ No newline at end of file diff --git a/test_tube_scanner/scanner/static/scanner/js/range-slider-num.js b/test_tube_scanner/scanner/static/scanner/js/range-slider-num.js new file mode 100644 index 0000000..b5b5657 --- /dev/null +++ b/test_tube_scanner/scanner/static/scanner/js/range-slider-num.js @@ -0,0 +1,220 @@ +class DualRangeSlider { + constructor(root, options = {}) { + // root: element containing the slider UI + this.root = (typeof root === 'string') ? document.querySelector(root) : root; + if (!this.root) throw new Error('Root element not found'); + + // elements + this.slider = this.root.querySelector('.slider'); + this.minRange = this.root.querySelector('.min-range'); + this.maxRange = this.root.querySelector('.max-range'); + this.minNumber = this.root.querySelector('.min-number'); + this.maxNumber = this.root.querySelector('.max-number'); + this.displayRange = this.root.querySelector('.display-range'); + this.highlight = this.root.querySelector('.range-highlight'); + + // config + this.min = Number(this.slider.dataset.min ?? this.minRange.min ?? 0); + this.max = Number(this.slider.dataset.max ?? this.minRange.max ?? 100); + this.gap = Number(options.gap ?? 0); + + this._bindEvents(); + this.updateFromInputs(); + } + + // calc & repaint + updateHighlight() { + const a = Number(this.minRange.value); + const b = Number(this.maxRange.value); + const pctA = (a - this.min) / (this.max - this.min) * 100; + const pctB = (b - this.min) / (this.max - this.min) * 100; + this.highlight.style.left = pctA + '%'; + this.highlight.style.width = (pctB - pctA) + '%'; + } + + // keep values coherent and sync UI + updateFromInputs(triggerSource) { + let a = Number(this.minRange.value); + let b = Number(this.maxRange.value); + + if (a > b - this.gap) { + if (triggerSource === 'min') a = b - this.gap; + else if (triggerSource === 'max') b = a + this.gap; + else a = Math.min(a, b - this.gap); + } + + a = Math.max(this.min, Math.min(a, this.max)); + b = Math.max(this.min, Math.min(b, this.max)); + + this.minRange.value = a; + this.maxRange.value = b; + this.minNumber.value = a; + this.maxNumber.value = b; + //if (this.displayRange) this.displayRange.textContent = a + ' — ' + b; + if (this.displayRange) + this.displayRange.innerHTML = `
    ${a}
    ${b}
    `; + + this.updateHighlight(); + } + + updateFromNumbers() { + let a = Number(this.minNumber.value) || this.min; + let b = Number(this.maxNumber.value) || this.max; + if (a > b - this.gap) a = b - this.gap; + a = Math.max(this.min, Math.min(a, this.max)); + b = Math.max(this.min, Math.min(b, this.max)); + this.minRange.value = a; + this.maxRange.value = b; + this.minNumber.value = a; + this.maxNumber.value = b; + //if (this.displayRange) this.displayRange.textContent = a + ' — ' + b; + if (this.displayRange) + this.displayRange.innerHTML = `
    ${a}
    ${b}
    `; + this.updateHighlight(); + } + + _bindEvents() { + this.minRange.addEventListener('input', () => this.updateFromInputs('min')); + this.maxRange.addEventListener('input', () => this.updateFromInputs('max')); + this.minNumber.addEventListener('change', () => this.updateFromNumbers()); + this.maxNumber.addEventListener('change', () => this.updateFromNumbers()); + + // click on track reposition nearest thumb + this.slider.addEventListener('click', (e) => { + if (e.target.tagName.toLowerCase() === 'input') return; + const rect = this.slider.getBoundingClientRect(); + const clickX = e.clientX - rect.left; + const pct = clickX / rect.width; + const value = Math.round(pct * (this.max - this.min) + this.min); + const distMin = Math.abs(value - Number(this.minRange.value)); + const distMax = Math.abs(value - Number(this.maxRange.value)); + if (distMin <= distMax) { + this.minRange.value = Math.min(value, Number(this.maxRange.value)); + } else { + this.maxRange.value = Math.max(value, Number(this.minRange.value)); + } + this.updateFromInputs(); + }); + } + + // public API: get current values + getValues() { + return { min: Number(this.minRange.value), max: Number(this.maxRange.value) }; + } + + // public API: set values programmatically + setValues(a, b) { + this.minRange.value = a; + this.maxRange.value = b; + this.updateFromInputs(); + } +} + +/* +// Exemple d'usage +document.addEventListener('DOMContentLoaded', () => { + // initialisation simple + const slider1 = new DualRangeSlider('#myRangeSlider', { gap: 0 }); + + // accéder aux valeurs + // console.log(slider1.getValues()); + + // modifier les valeurs depuis le code + // slider1.setValues(10, 50); +}); +*/ +/** + * Crée le DOM du slider et instancie DualRangeSlider à partir d'options. + * Retourne { instance, root } ou null si erreur. + * + * options = { + * container: selector|Element, // obligatoire + * min: number, max: number, // obligatoire (timestamps) + * valueMin: number, valueMax: number, // optionnel + * ms: boolean, // unité interne en ms + * gap: number, // minimal gap (same unit as min/max) + * classes: { root, slider, ... } // opcional CSS classes overrides + * labels: { left, right } // opcional text + * } + */ +function createAndInitDualRange(options = {}) { + if (!options.container) throw new Error('options.container required'); + const parent = (typeof options.container === 'string') ? document.querySelector(options.container) : options.container; + if (!parent) throw new Error('Container element not found'); + + if (typeof options.min === 'undefined' || typeof options.max === 'undefined') { + throw new Error('options.min and options.max required'); + } + + const cls = Object.assign({ + root: 'slider-container', + display: 'display-range', + rangeWrap: 'range-wrap slider', + sliderSel: 'slider', + track: 'track', + highlight: 'range-highlight', + minRange: 'min-range', + maxRange: 'max-range', + values: 'values', + minNumber: 'min-number', + maxNumber: 'max-number', + }, options.classes || {}); + + // build root + const root = document.createElement('div'); + root.className = cls.root; + + // labels + const labels = document.createElement('div'); + labels.className = cls.display; + root.appendChild(labels); + + // range wrap / slider + const rangeWrap = document.createElement('div'); + rangeWrap.className = cls.rangeWrap; + // set data-min/data-max as provided + rangeWrap.dataset.min = String(options.min); + rangeWrap.dataset.max = String(options.max); + + const track = document.createElement('div'); track.className = cls.track; + const highlight = document.createElement('div'); highlight.className = cls.highlight; + rangeWrap.appendChild(track); + rangeWrap.appendChild(highlight); + + // inputs range + const minR = document.createElement('input'); minR.type = 'range'; minR.className = cls.minRange; + const maxR = document.createElement('input'); maxR.type = 'range'; maxR.className = cls.maxRange; + minR.min = String(options.min); minR.max = String(options.max); + maxR.min = String(options.min); maxR.max = String(options.max); + minR.step = options.step ?? '1'; maxR.step = options.step ?? '1'; + minR.value = String(options.valueMin ?? options.min); + maxR.value = String(options.valueMax ?? options.max); + rangeWrap.appendChild(minR); rangeWrap.appendChild(maxR); + root.appendChild(rangeWrap); + + // values area + const values = document.createElement('div'); values.className = "w3-row"; + const minLabel = document.createElement('div'); minLabel.className = "w3-half"; + const minStrong = document.createElement('span'); minStrong.textContent = 'Min)'; + const minNum = document.createElement('input'); minNum.type = 'number'; minNum.className = cls.minNumber; + minNum.min = String(options.min); minNum.max = String(options.max); minNum.value = String(options.valueMin ?? options.min); minNum.step = options.step ?? '1'; + minLabel.appendChild(minStrong); minLabel.appendChild(minNum); + + const maxLabel = document.createElement('div'); maxLabel.className = "w3-half w3-right-align"; + const maxStrong = document.createElement('span'); maxStrong.textContent = 'Max'; + const maxNum = document.createElement('input'); maxNum.type = 'number'; maxNum.className = cls.maxNumber; + maxNum.min = String(options.min); maxNum.max = String(options.max); maxNum.value = String(options.valueMax ?? options.max);maxNum.step = options.step ?? '1'; + maxLabel.appendChild(maxStrong); maxLabel.appendChild(maxNum); + + values.appendChild(minLabel); values.appendChild(maxLabel); + root.appendChild(values); + + // append to parent + parent.appendChild(root); + + const instOptions = { gap: options.gap ?? 0, ms: Boolean(options.ms), callback: options.callback ?? null }; + const instance = new DualRangeSlider(root, instOptions); + return instance; +} + + diff --git a/test_tube_scanner/scanner/static/scanner/js/range-slider-time.js b/test_tube_scanner/scanner/static/scanner/js/range-slider-time.js new file mode 100644 index 0000000..86af5e9 --- /dev/null +++ b/test_tube_scanner/scanner/static/scanner/js/range-slider-time.js @@ -0,0 +1,265 @@ + +class DualRangeSlider { + + constructor(root, options = {}) { + this.root = (typeof root === 'string') ? document.querySelector(root) : root; + if (!this.root) throw new Error('Root element not found'); + + this.slider = this.root.querySelector('.slider'); + this.minRange = this.root.querySelector('.min-range'); + this.maxRange = this.root.querySelector('.max-range'); + this.minNumber = this.root.querySelector('.min-number'); + this.maxNumber = this.root.querySelector('.max-number'); + this.displayRange = this.root.querySelector('.display-range'); + this.highlight = this.root.querySelector('.range-highlight'); + + this.useMilliseconds = Boolean(options.ms); + this.callback = options.callback || null; + + // lire min/max depuis data- ou attributs, puis normaliser en unité interne + const rawMin = Number(this.slider.dataset.min ?? this.minRange.min ?? 0); + const rawMax = Number(this.slider.dataset.max ?? this.minRange.max ?? 100); + + // unité interne = ms si useMilliseconds true, sinon seconds + this.min = this.useMilliseconds ? rawMin : rawMin; + this.max = this.useMilliseconds ? rawMax : rawMax; + + // Si ms=true mais HTML inputs fournis en secondes, détecter et convertir automatiquement + // Détection simple : si ms=true et raw values semblent petits (<1e12), on multiplie par 1000 + if (this.useMilliseconds) { + const needsConversion = (n) => n && n < 1e12; // timestamp en s + if (needsConversion(this.min)) this.min *= 1000; + if (needsConversion(this.max)) this.max *= 1000; + } else { + // si ms=false mais raw semblent en ms (>1e12), convertir en s + const needsConversion = (n) => n && n > 1e12; + if (needsConversion(this.min)) this.min = Math.floor(this.min / 1000); + if (needsConversion(this.max)) this.max = Math.floor(this.max / 1000); + } + + // normaliser les inputs HTML pour qu'ils correspondent à l'unité interne + const setInputRangeAttrs = (el, val) => { + if (!el) return; + if (this.useMilliseconds) el.min = String(this.min); + else el.min = String(this.min); + if (this.useMilliseconds) el.max = String(this.max); + else el.max = String(this.max); + // si value absent, initialiser + if (!el.value) el.value = el.min; + }; + + setInputRangeAttrs(this.minRange); + setInputRangeAttrs(this.maxRange); + if (this.minNumber) { this.minNumber.min = String(this.min); this.minNumber.max = String(this.max); } + if (this.maxNumber) { this.maxNumber.min = String(this.min); this.maxNumber.max = String(this.max); } + + this.gap = Number(options.gap ?? 0) * (this.useMilliseconds ? 1000 : 1); + + // if inputs have values, ensure they are in internal unit; convert if necessary + const normalizeInputValue = (el) => { + if (!el) return; + let v = Number(el.value || el.getAttribute('value') || this.min); + if (this.useMilliseconds && v < 1e12) v = v * 1000; + if (!this.useMilliseconds && v > 1e12) v = Math.floor(v / 1000); + el.value = String(Math.max(this.min, Math.min(v, this.max))); + }; + normalizeInputValue(this.minRange); + normalizeInputValue(this.maxRange); + normalizeInputValue(this.minNumber); + normalizeInputValue(this.maxNumber); + + this._bindEvents(); + this.updateFromInputs(); + } + + _toDate(ts) { + // ts is in internal unit: ms if useMilliseconds else seconds + return this.useMilliseconds ? new Date(Number(ts)) : new Date(Number(ts) * 1000); + } + + _formatDate(ts) { + const d = this._toDate(ts); + const pad = (n) => String(n).padStart(2, '0'); + return `${d.getFullYear()}-${pad(d.getMonth()+1)}-${pad(d.getDate())} ${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}`; + } + + updateHighlight() { + const a = Number(this.minRange.value); + const b = Number(this.maxRange.value); + + if (this.callback) this.callback(a, b); + + const pctA = (a - this.min) / (this.max - this.min) * 100; + const pctB = (b - this.min) / (this.max - this.min) * 100; + this.highlight.style.left = pctA + '%'; + this.highlight.style.width = (pctB - pctA) + '%'; + } + + updateFromInputs(triggerSource) { + let a = Number(this.minRange.value); + let b = Number(this.maxRange.value); + + if (a > b - this.gap) { + if (triggerSource === 'min') a = b - this.gap; + else if (triggerSource === 'max') b = a + this.gap; + else a = Math.min(a, b - this.gap); + } + + a = Math.max(this.min, Math.min(a, this.max)); + b = Math.max(this.min, Math.min(b, this.max)); + + this.minRange.value = String(a); + this.maxRange.value = String(b); + if (this.minNumber) this.minNumber.value = String(a); + if (this.maxNumber) this.maxNumber.value = String(b); + //if (this.displayRange) this.displayRange.textContent = `${this._formatDate(a)} — ${this._formatDate(b)}`; + if (this.displayRange) + this.displayRange.innerHTML = `
    ${this._formatDate(a)}
    ${this._formatDate(b)}
    `; + this.updateHighlight(); + } + + updateFromNumbers() { + let a = Number(this.minNumber.value) || this.min; + let b = Number(this.maxNumber.value) || this.max; + if (a > b - this.gap) a = b - this.gap; + a = Math.max(this.min, Math.min(a, this.max)); + b = Math.max(this.min, Math.min(b, this.max)); + this.minRange.value = String(a); + this.maxRange.value = String(b); + this.minNumber.value = String(a); + this.maxNumber.value = String(b); + //if (this.displayRange) this.displayRange.textContent = `${this._formatDate(a)} — ${this._formatDate(b)}`; + if (this.displayRange) + this.displayRange.innerHTML = `
    ${this._formatDate(a)}
    ${this._formatDate(b)}
    `; + this.updateHighlight(); + } + + _bindEvents() { + this.minRange.addEventListener('input', () => this.updateFromInputs('min')); + this.maxRange.addEventListener('input', () => this.updateFromInputs('max')); + if (this.minNumber) this.minNumber.addEventListener('change', () => this.updateFromNumbers()); + if (this.maxNumber) this.maxNumber.addEventListener('change', () => this.updateFromNumbers()); + + this.slider.addEventListener('click', (e) => { + if (e.target.tagName.toLowerCase() === 'input') return; + const rect = this.slider.getBoundingClientRect(); + const clickX = e.clientX - rect.left; + const pct = clickX / rect.width; + const value = Math.round(pct * (this.max - this.min) + this.min); + const distMin = Math.abs(value - Number(this.minRange.value)); + const distMax = Math.abs(value - Number(this.maxRange.value)); + if (distMin <= distMax) { + this.minRange.value = String(Math.min(value, Number(this.maxRange.value))); + } else { + this.maxRange.value = String(Math.max(value, Number(this.minRange.value))); + } + this.updateFromInputs(); + }); + } + + getValues() { + return { min: Number(this.minRange.value), max: Number(this.maxRange.value) }; + } + + setValues(a, b) { + // a,b given in same unit as useMilliseconds setting + this.minRange.value = String(a); + this.maxRange.value = String(b); + this.updateFromInputs(); + } +} + +/** + * Crée le DOM du slider et instancie DualRangeSlider à partir d'options. + * Retourne { instance, root } ou null si erreur. + * + * options = { + * container: selector|Element, // obligatoire + * min: number, max: number, // obligatoire (timestamps) + * valueMin: number, valueMax: number, // optionnel + * ms: boolean, // unité interne en ms + * gap: number, // minimal gap (same unit as min/max) + * classes: { root, slider, ... } // opcional CSS classes overrides + * labels: { left, right } // opcional text + * } + */ +function createAndInitDualRange(options = {}) { + if (!options.container) throw new Error('options.container required'); + const parent = (typeof options.container === 'string') ? document.querySelector(options.container) : options.container; + if (!parent) throw new Error('Container element not found'); + + if (typeof options.min === 'undefined' || typeof options.max === 'undefined') { + throw new Error('options.min and options.max required'); + } + + const cls = Object.assign({ + root: 'slider-container', + display: 'display-range', + rangeWrap: 'range-wrap slider', + sliderSel: 'slider', + track: 'track', + highlight: 'range-highlight', + minRange: 'min-range', + maxRange: 'max-range', + values: 'values', + minNumber: 'min-number', + maxNumber: 'max-number', + }, options.classes || {}); + + // build root + const root = document.createElement('div'); + root.className = cls.root; + + // labels + const labels = document.createElement('div'); + labels.className = cls.display; + root.appendChild(labels); + + // range wrap / slider + const rangeWrap = document.createElement('div'); + rangeWrap.className = cls.rangeWrap; + // set data-min/data-max as provided + rangeWrap.dataset.min = String(options.min); + rangeWrap.dataset.max = String(options.max); + + const track = document.createElement('div'); track.className = cls.track; + const highlight = document.createElement('div'); highlight.className = cls.highlight; + rangeWrap.appendChild(track); + rangeWrap.appendChild(highlight); + + // inputs range + const minR = document.createElement('input'); minR.type = 'range'; minR.className = cls.minRange; + const maxR = document.createElement('input'); maxR.type = 'range'; maxR.className = cls.maxRange; + minR.min = String(options.min); minR.max = String(options.max); + maxR.min = String(options.min); maxR.max = String(options.max); + minR.step = options.step ?? '1'; maxR.step = options.step ?? '1'; + minR.value = String(options.valueMin ?? options.min); + maxR.value = String(options.valueMax ?? options.max); + rangeWrap.appendChild(minR); rangeWrap.appendChild(maxR); + root.appendChild(rangeWrap); + + // values area + const values = document.createElement('div'); values.className = "w3-row"; + const minLabel = document.createElement('div'); minLabel.className = "w3-half"; + const minStrong = document.createElement('span'); minStrong.textContent = 'Min (ms)'; + const minNum = document.createElement('input'); minNum.type = 'number'; minNum.className = cls.minNumber; + minNum.min = String(options.min); minNum.max = String(options.max); minNum.value = String(options.valueMin ?? options.min); minNum.step = options.step ?? '1'; + minLabel.appendChild(minStrong); minLabel.appendChild(minNum); + + const maxLabel = document.createElement('div'); maxLabel.className = "w3-half w3-right-align"; + const maxStrong = document.createElement('span'); maxStrong.textContent = 'Max (ms)'; + const maxNum = document.createElement('input'); maxNum.type = 'number'; maxNum.className = cls.maxNumber; + maxNum.min = String(options.min); maxNum.max = String(options.max); maxNum.value = String(options.valueMax ?? options.max);maxNum.step = options.step ?? '1'; + maxLabel.appendChild(maxStrong); maxLabel.appendChild(maxNum); + + values.appendChild(minLabel); values.appendChild(maxLabel); + root.appendChild(values); + + // append to parent + parent.appendChild(root); + + const instOptions = { gap: options.gap ?? 0, ms: Boolean(options.ms), callback: options.callback ?? null }; + const instance = new DualRangeSlider(root, instOptions); + return instance; +} + diff --git a/test_tube_scanner/scanner/static/scanner/js/replay.js b/test_tube_scanner/scanner/static/scanner/js/replay.js new file mode 100644 index 0000000..c573869 --- /dev/null +++ b/test_tube_scanner/scanner/static/scanner/js/replay.js @@ -0,0 +1,260 @@ + +class ReplayProgressBar { + constructor(parent, input) { + this.input = input; + this.parent = parent; + this.isUserSeeking = false; + + input.addEventListener("input", () => { + this.isUserSeeking = true; + const percent = input.value / 1000; + this.parent.seek(percent); + }); + input.addEventListener("change", () => { + this.isUserSeeking = false; + }); + } + update(progress) { + if (this.isUserSeeking) return; + this.input.value = progress * 1000; + } +} + +class ReplaySpeedControl { + constructor(parent, initialSpeed = 1) { + this.parent = parent; + + this.SPEED_STEPS = [0.25, 0.5, 0.75, 1, 2, 4, 8, 16, 32]; + const initialIndex = this.SPEED_STEPS.indexOf(initialSpeed) !== -1 + ? this.SPEED_STEPS.indexOf(initialSpeed) + : this.SPEED_STEPS.indexOf(1); + + this.parent.speed_control.addEventListener("input", () => { + this.parent.speed_label.textContent = this.SPEED_STEPS[this.parent.speed_control.value]; + }); + + this.parent.speed_control.addEventListener("change", () => { + const speed = this.getSpeed(); + this.parent.setSpeed(speed); + }); + } + getSpeed() { + return this.SPEED_STEPS[this.parent.speed_control.value]; + } + updateSpeed(speed) { + this.parent.speed_control.value = this.SPEED_STEPS.indexOf(speed); + this.parent.speed_label.textContent = this.SPEED_STEPS[this.parent.speed_control.value]; + } +} + +class ReplayManager { + + constructor(options = {}) { + this.img = options.img; + this.btplay = options.play; + this.btpause= options.pause; + this.btstop = options.stop; + this.ts = options.ts; + this.btsnapshot = options.snapshot; + this.btvideosnap = options.videosnap; + + this.speed_label = options.speed_label; + this.speed_control = options.speed_control; + this.ts_iso = options.ts_iso; + this.percent = options.percent; + this.dt_left = options.dt_left; + this.dt_right = options.dt_right; + this.timeline = options.timeline; + + this.uuid = options.uuid; + this.fps = options.fps; + this.video_endpoint = options.video_endpoint; + + this.dt_start = options.dt_start; + this.dt_stop = options.dt_stop; + this.video_type = options.video_type || 'mp4'; + this.state = null; + this.socket = null; + this.cursor = null; + } + + registerSocket(socket) { + this.socket = socket; + } + + async start() { + if (!this.uuid) return; + this.btplay.addEventListener('click', (e) => { this.play(); }); + this.btpause.addEventListener('click', (e) => { this.pause(); }); + this.btstop.addEventListener('click', (e) => { this.stop(); }); + this.btsnapshot.addEventListener('click', (e) => { this.snapshot(); }); + this.btvideosnap.addEventListener('click', (e) => { this.videosnap(); }); + + this.speedControl = new ReplaySpeedControl(this); + this.progressBar = new ReplayProgressBar(this, this.timeline); + + this._update_container(this.dt_start); + this.updateState("stopped"); + } + + updateProgessBar(progress) { + if (this.progressBar) { + this.progressBar.update(progress); + } + } + + updateState(state) { + const rules = { + stopped: { play: true, pause: false, stop: false, range: true, snapshot: true, videosnap: true }, + playing: { play: false, pause: true, stop: true, range: false , snapshot: false, videosnap: false }, + paused: { play: true, pause: false, stop: true, range: true , snapshot: true, videosnap: true } + }; + const rule = rules[state]; + this.btplay.disabled = !rule.play; + this.btpause.disabled = !rule.pause; + this.btstop.disabled = !rule.stop; + this.btsnapshot.disabled = !rule.snapshot; + this.btvideosnap.disabled = !rule.videosnap; + this.timeline.disabled = rule.range; + } + + _setState(state) { + this.state = state; + this.updateState(state); + } + + _update_container(cursor) { + this.cursor = cursor; + this.filter = { + uuid: this.uuid, + dt_start: cursor, + dt_stop: this.dt_stop, + fps: this.fps, + speed: this.speedControl.getSpeed() + } + this.percent.textContent = ''; + this.updateProgessBar(0.0); + const dt = cursor / 1_000; + this.ts_iso.textContent = toLocalISOString(new Date(dt)); + this.dt_left.textContent = timestampToLocalISOString(dt/1_000); + this.dt_right.textContent = timestampToLocalISOString(this.dt_stop/1_000_000); + this._setState("stopped"); + } + + _update_content_slider(ts, progress) { + this.cursor = ts; + this.ts_iso.textContent = toLocalISOString(new Date(ts/1000)); + const percent = Math.ceil(progress * 1000000) / 10000; + this.percent.textContent = percent.toFixed(3) +' %'; + this.updateProgessBar(progress); + } + + update(payload) { + try { + if (payload.jpeg) { this.img.src = `data:image/jpeg;base64,${payload.jpeg}`; } + if (payload.ts) { this._update_content_slider(payload.ts, payload.progress); } + if (payload.motif === "video-reset") { this._update_container(payload.dt_start); } + } catch(e) { console.log(e); } + } + + init() { this._send({ type: 'replay', action: "init", }); } + play() { if (this.state === "playing") return; this._setState("playing"); this._send({ type: 'replay', action: "play", }); } + pause() { if (this.state !== "playing") return; this._setState("paused"); this._send({ type: 'replay', action: "pause", }); } + stop() { this._setState("stopped"); this._send({ type: 'replay', action: "stop", }); } + + setSpeed(speed) { this._send({ type: 'replay', action: "speed", value: speed }); } + seek(percent) { this._send({ type: 'replay', action: "seek", value: percent }); } + + videosnap() { + let filename = `${this.uuid}-${this.ts_iso.textContent}.${this.video_type}`; + filename = filename.replace(/ /g, '_'); + const ok = confirm(`Télécharger le fichier ?\n\n${filename}`); + if (!ok) return false; + + fetch(this.video_endpoint, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + action: 'download', + uuid: this.uuid, + dt_start: this.cursor, + dt_stop: this.dt_stop, + fps: this.fps + }) + }).then(res => { + if (!res.ok) throw new Error(res.status); + return res.blob(); + }).then(blob => { + const url = window.URL.createObjectURL(blob); + const a = document.createElement('a'); + a.href = url; + a.download = filename; + document.body.appendChild(a); + a.click(); + window.URL.revokeObjectURL(url); + }).catch(error => { + console.error('Erreur:', error); + }); + + } + + snapshot() { + let filename = `${this.uuid}-${this.ts_iso.textContent}.jpg`; + filename = filename.replace(/ /g, '_'); + const ok = confirm(`Télécharger le fichier ?\n\n${filename}`); + if (!ok) return false; + + const a = document.createElement('a'); + a.href = this.img.src; + a.download = filename || 'image'; + document.body.appendChild(a); + a.click(); + a.remove(); + } + + _send(message) { + if (!this.uuid) return; + this.socket.send({ ...message, ...this.filter }); + } +} + +class MetadataSocket { + constructor(url) { + this.url = url; + this.ws = null; + this.manager = null; + this.reconnectDelay = 1000; + this.shouldReconnect = true; + this.reconnect = false; + } + + setManager(manager) { this.manager = manager; } + + connect() { + this.ws = new WebSocket(this.url); + + this.ws.onmessage = (event) => { + const data = JSON.parse(event.data); + this.manager.update(data); + }; + + this.ws.onopen = (event) => { + if (this.manager && !this.reconnect) + this.manager['init'](); + this.reconnect = false; + }; + + this.ws.onclose = () => { + console.warn(`WebSocket closed...`); + if (this.shouldReconnect) { + this.reconnect = true; + setTimeout(() => { + console.log("Reconnect WebSocket..."); + this.connect(); + }, this.reconnectDelay); + } + }; + } + send(obj) { if (this.ws?.readyState === WebSocket.OPEN) { this.ws.send(JSON.stringify(obj)); } } +} + diff --git a/test_tube_scanner/scanner/static/scanner/js/scanner.js b/test_tube_scanner/scanner/static/scanner/js/scanner.js new file mode 100644 index 0000000..11b04e7 --- /dev/null +++ b/test_tube_scanner/scanner/static/scanner/js/scanner.js @@ -0,0 +1,132 @@ + +class ScannerManager { + + constructor(container, multiwells=null) { + this.container = container; + this.socket = null; + this.multiweels = multiwells; + this.axes = 0; + this.cropping = 0; + } + + toggle_median() { this.axes = !this.axes; return this.axes; } + toggle_crop() { this.croping = !this.croping; return this.croping; } + + init_controls() { + const goto_0 = sId("_goto-0"); + const goto_xy = sId("_goto-xy"); + const xy_base = sId("_xy-base"); + const xy_step = sId("_xy-step"); + const up = sId("_up"); + const down = sId("_down"); + const left = sId("_left"); + const right = sId("_right"); + this.feed = sId("_feed"); + this.step = sId("_step"); + this.well = sId("_well"); + this.x = sId("_x"); + this.y = sId("_y"); + this.dx = sId("_dx"); + this.dy = sId("_dy"); + this.xbase = sId("_xbase"); + this.ybase = sId("_ybase"); + const test = sId("_test"); + const halt = sId("_halt"); + + const median = sId("_median"); + const crop = sId("_crop"); + + up.addEventListener('mousedown', (e) => { this._send({ type: 'calibrate', topic: "up" }); }); + down.addEventListener('mousedown', (e) => { this._send({ type: 'calibrate', topic: "down" }); }); + left.addEventListener('mousedown', (e) => { this._send({ type: 'calibrate', topic: "left" }); }); + right.addEventListener('mousedown', (e) => { this._send({ type: 'calibrate', topic: "right" }); }); + + goto_0.addEventListener('click', (e) => { this._send({ type: 'calibrate', topic: "goto_0" }); }); + goto_xy.addEventListener('click', (e) => { this._send({ type: 'calibrate', topic: "goto_xy" }); }); + xy_base.addEventListener('click', (e) => { this._send({ type: 'calibrate', topic: "xy_base" }); }); + xy_step.addEventListener('click', (e) => { this._send({ type: 'calibrate', topic: "xy_step" }); }); + + median.addEventListener('click', (e) => { this._send({ type: 'calibrate', topic: "median", value: this.toggle_median() }); }); + crop.addEventListener('click', (e) => { this._send({ type: 'calibrate', topic: "crop", value: this.toggle_crop() }); }); + this.well.addEventListener("change", (e) => { this._send({ type: 'calibrate', topic: "well", value: e.target.value }); }); + this.step.addEventListener("change", (e) => { this._send({ type: 'calibrate', topic: "step", value: e.target.value }); }); + this.feed.addEventListener("change", (e) => { this._send({ type: 'calibrate', topic: "feed", value: e.target.value }); }); + + this.dx.addEventListener("change", (e) => { this._send({ type: 'calibrate', topic: "dx", value: e.target.value }); }); + this.dy.addEventListener("change", (e) => { this._send({ type: 'calibrate', topic: "dy", value: e.target.value }); }); + + test.addEventListener('click', (e) => { this._send({ type: 'calibrate', topic: "test" }); }); + halt.addEventListener('click', (e) => { this._send({ type: 'calibrate', topic: "halt" }); }); + + } + + registerSocket(socket) { + this.socket = socket; + this.init_controls(); + } + + update(payload) { + try { + if (payload.jpeg) { this.container.src = `data:image/jpeg;base64,${payload.jpeg}`; } + if (payload.xbase) { this.xbase.textContent = payload.xbase; this.ybase.textContent = payload.ybase; } + if (payload.dxy) { this.dy.value=payload.dy; this.dx.value=payload.dx; } + if (payload.xy) { this.x.textContent=payload.x; this.y.textContent=payload.y; } + //if (payload.ts) { console.log(payload.ts); } + } catch(e) { console.log(e); } + } + + init() { + this._send({ + type: 'scanner', + topic: "init", + feed: this.feed.value, + step: this.step.value, + well: this.well.value + }); + } + start() { this._send({ type: 'scanner', topic: "start"}); } + halt() { this._send({ type: 'scanner', topic: "halt" }); } + + _send(message) { this.socket.send(message); } +} + +class MetadataSocket { + constructor(url) { + this.url = url; + this.ws = null; + this.manager = null; + this.reconnectDelay = 1000; + this.shouldReconnect = true; + this.reconnect = false; + } + + setManager(manager) { this.manager = manager; } + + connect() { + this.ws = new WebSocket(this.url); + + this.ws.onmessage = (event) => { + const data = JSON.parse(event.data); + this.manager.update(data); + }; + + this.ws.onopen = (event) => { + if (this.manager && !this.reconnect) + this.manager['init'](); + this.reconnect = false; + }; + + this.ws.onclose = () => { + console.warn(`WebSocket closed...`); + if (this.shouldReconnect) { + this.reconnect = true; + setTimeout(() => { + console.log("Reconnect WebSocket..."); + this.connect(); + }, this.reconnectDelay); + } + }; + } + + send(obj) { if (this.ws?.readyState === WebSocket.OPEN) { this.ws.send(JSON.stringify(obj)); } } +} \ No newline at end of file diff --git a/test_tube_scanner/scanner/static/scanner/js/stats.js b/test_tube_scanner/scanner/static/scanner/js/stats.js new file mode 100644 index 0000000..73b974f --- /dev/null +++ b/test_tube_scanner/scanner/static/scanner/js/stats.js @@ -0,0 +1,31 @@ + + const cpu_used = sId('cpu-used'); + const shm_used = sId('shm-used'); + const mem_used = sId('mem-used'); + const disk_used = sId('disk-used'); + const ramdisk_used = sId('ramdisk-used'); + + let autoTimer = null; + + async function fetchStats() { + try { + const r = await fetch(stats_endpoint, { credentials: 'same-origin' }); + if (!r.ok) throw new Error('HTTP ' + r.status); + const j = await r.json(); + //console.log(j); + const cpu_percent = j.cpu_info.cpu_percent+'%'; cpu_used.style.setProperty("--cpu-used", cpu_percent); cpu_used.title=`Cpu: ${cpu_percent}`; + const shm_length = j.shm.length; shm_used.style.setProperty("--shm_used", shm_length); shm_used.title= `Shm: ${shm_length}`; + const virtual_memory = j.memory_info.virtual_memory.percent+'%'; mem_used.style.setProperty("--mem-used", virtual_memory); mem_used.title=`Mem: ${virtual_memory}`; + const root_percent = j.disk_info.root.percent+'%'; disk_used.style.setProperty("--disk-used", root_percent); disk_used.title=`Disk: ${root_percent}`; + let ramdisk_percent = "0%"; + if (! j.ramdisk_info) ramdisk_percent = j.ramdisk_info.percent+'%'; + ramdisk_used.style.setProperty("--ramdisk-used", ramdisk_percent); ramdisk_used.title=`Ramdisk: ${ramdisk_percent}`; + + } catch (e) { + console.log('Error: ' + e.message); + } + } + function auto_fetch_start() { fetchStats(); autoTimer = setInterval(fetchStats, 5000);} + function auto_fetch_stop() { clearInterval(autoTimer); autoTimer = null; } + + auto_fetch_start(); diff --git a/test_tube_scanner/scanner/tasks.py b/test_tube_scanner/scanner/tasks.py new file mode 100644 index 0000000..c1e3b09 --- /dev/null +++ b/test_tube_scanner/scanner/tasks.py @@ -0,0 +1,243 @@ +# tasks.py +import asyncio +from celery import shared_task, group, chord, chain +from celery.utils.log import get_task_logger +from django.utils import timezone + +from .process import ScannerProcess, ReplayProcess +from .export_tasks import shm_download_video, export_images_zip, export_video_mp4 +from . import models + +logger = get_task_logger(__name__) + +class ScannerTaskManager: + + def __init__(self): + self.scanner = None + self.replay = None + + def start_scanner(self): + if self.scanner is None: + self.scanner = ScannerProcess() + self.scanner.start() + + def stop_scanner(self): + if self.scanner: + self.scanner.stop() + + def start_replay(self, latency=5.0): + if self.replay is None: + self.replay = ReplayProcess(latency=latency) + self.replay.start() + + def stop_replay(self): + if self.replay: + self.replay.stop() + + +task_manager = ScannerTaskManager() + +@shared_task(bind=True) +def scanner_start(self): + task_manager.start_scanner() + return f"Scanner démarré." + +#@shared_task(bind=True) +#def scanner_stop(self): +# task_manager.stop_scanner() +# return f"Scanner arrêté." + +@shared_task(bind=True) +def replay_start(self): + task_manager.start_replay() + return f"Replay démarré." + +#@shared_task(bind=True) +#def replay_stop(self): +# task_manager.stop_replay() +# return f"Replay arrêté." + +@shared_task +def download_video(uuid, start_ts, end_ts, frame_rate=10, opencv_fourcc_format='mp4v', opencv_video_type='mp4'): + try: + return asyncio.run(shm_download_video(uuid, start_ts, end_ts, frame_rate, opencv_fourcc_format, opencv_video_type)) + except Exception as e: + logger.error(f"download_video: {e}") + +@shared_task +def export_images( + uuid: str, + start_ts: float | None = None, + end_ts: float | None = None, + jpeg_quality: int = 90, + max_zip_size_mb: int = 0, + max_image_width: int = 0, + max_image_height: int = 0 ): + try: + return asyncio.run(export_images_zip(uuid, start_ts, end_ts, jpeg_quality, max_zip_size_mb, max_image_width, max_image_height)) + except Exception as e: + logger.error(f"export_images: {e}") + +@shared_task +def export_all_images(session_id=None): + try: + conf = models.Configuration.objects.filter(active=True).first() + if session_id is None: + sessions = [s.id for s in models.Session.objects.filter(active=False)] + else: + sessions = [session_id] + + for session_id in sessions: + uuid_list = models.SessionObservation.uuid_from_session(session_id) + job_zip = [] + for uuid in uuid_list: + job = export_images.delay( # @UndefinedVariable + uuid, + start_ts=None, + end_ts=None, + jpeg_quality=conf.video_jpeg_quality, # Qualité JPEG + ) + job_zip.append(job.id) + + return job_zip + except Exception as e: + logger.error(f"export_images: {e}") + +@shared_task +def export_videos(uuid: str, + start_ts: float | None = None, + end_ts: float | None = None, + frame_rate: int = 5, + opencv_fourcc_format='mp4v', + opencv_video_type='mp4', + max_video_size_mb: int = 0, + max_width: int = 0, + max_height: int = 0, ): + try: + return asyncio.run(export_video_mp4(uuid, start_ts, end_ts, frame_rate, opencv_fourcc_format, opencv_video_type, max_video_size_mb, max_width, max_height)) + except Exception as e: + logger.error(f"export_videos: {e}") + + +@shared_task +def export_all_videos(session_id=None): + try: + conf = models.Configuration.objects.filter(active=True).first() + if session_id is None: + sessions = [s.id for s in models.Session.objects.filter(active=False)] + else: + sessions = [session_id] + + for session_id in sessions: + uuid_list = models.SessionObservation.uuid_from_session(session_id) + job_mp4 = [] + for uuid in uuid_list: + job = export_videos.delay( # @UndefinedVariable + uuid, + start_ts=None, + end_ts=None, + frame_rate=conf.video_frame_rate, # Frame rate de la vidéo exportée + opencv_fourcc_format=conf.opencv_fourcc_format, # Format de compression vidéo (ex: 'mp4v' pour MP4), + opencv_video_type=conf.opencv_video_type, # Type de vidéo exportée (ex: 'mp4', 'avi', 'mkv'), + ) + job_mp4.append(job.id) + + return job_mp4 + except Exception as e: + logger.error(f"export_all_videos: {e}") + + +@shared_task(bind=True) +def run_session_exports(self, session_id: str): + """ + Orchestre l'export images + vidéo en parallèle via chord. + Lance en parallèle l'export images et l'export vidéo de la session. + Le callback on_exports_done est appelé quand les 2 sont terminés. + """ + try: + session = models.Session.objects.get(pk=session_id) + except models.Session.DoesNotExist: + logger.error("run_session_exports: session %s introuvable", session_id) + return {"status": "error", "message": "Session introuvable"} + + session.status = models.Session.Status.RUNNING + session.save(update_fields=["export_status"]) + + chord( + group( + export_all_images.s(session_id), + export_all_videos.s(session_id), + ), + on_exports_done.s(session_id=session_id) + ).apply_async() + + +@shared_task +def on_exports_done(results: list, session_id: str): + """ + Callback appelé par chord quand export_all_images ET export_all_videos + sont tous les deux terminés. + results = [résultat_images, résultat_vidéo] + """ + session = models.Session.objects.get(pk=session_id) + + errors = [r for r in results if isinstance(r, dict) and r.get("export_status") == "error"] + if errors: + session.export_status = models.Session.Status.ERROR + logger.error(f"on_exports_done [{session_id}]: échec avec {len(errors)} erreurs") + else: + session.export_status = models.Session.Status.DONE + logger.info(f"on_exports_done [{session_id}]: succès export terminé") + + session.export_exported_at = timezone.now() + session.save(update_fields=["export_status", "export_exported_at"]) + return {"status": session.export_status} + + +@shared_task +def scanning(session_id: str): + try: + scanner = task_manager.scanner + scanner.cam.set_median(is_median=False) + scanner.cam.set_circular_crop(scanner.crop) + scanner.grbl.go_origin(feed=scanner.manager.feed) + scanner.manager.scan(scanner.grbl, session_id) + except Exception as e: + logger.error(f"scanning session: {session_id} error {e}") + return {"status": "error", "message": str(e)} + +@shared_task(bind=True) +def run_scanning(self, session_id: str): + try: + session = models.Session.objects.get(pk=session_id) + if not session.active: + raise Exception("La session n'est plus active") + except models.Session.DoesNotExist: + logger.error("run_session_exports: session %s introuvable", session_id) + return {"status": "error", "message": "Session introuvable"} + + session.scanning_status = models.Session.Status.RUNNING + session.save(update_fields=["scanning_status"]) + chain( + scanning.s(session_id), + on_scanning_done.s(session_id=session_id), + ).apply_async() + + +@shared_task +def on_scanning_done(result: dict, session_id: str): + """ + Callback appelé automatiquement à la fin de scanning(). + Met à jour scanning_status en base — détectable par polling. + """ + try: + session = models.Session.objects.get(pk=session_id) + except models.Session.DoesNotExist: + logger.error("on_scanning_done: session %s introuvable", session_id) + return + + session.scanning_status = models.Session.Status.ERROR if result.get("status") == "error" else models.Session.Status.DONE + session.scanning_finished_at = timezone.now() + session.save(update_fields=["scanning_status", "scanning_finished_at"]) + + \ No newline at end of file diff --git a/test_tube_scanner/scanner/templates/scanner/base.html b/test_tube_scanner/scanner/templates/scanner/base.html new file mode 100644 index 0000000..b096b0e --- /dev/null +++ b/test_tube_scanner/scanner/templates/scanner/base.html @@ -0,0 +1,128 @@ +{% extends 'base.html' %} +{% load i18n home_tags %} +{% block header %} +
    + + + +
    + {{ choice_title }} +
    + + + +
    +{% endblock %} +{% block sidebar %} +
    + +
    + {% csrf_token %} + +
    +
    + {% block system %} +
    +
    +
    +
    +
    +
    +
    + {% endblock %} + {% block columns %} +
    +
    +
    {% trans "Grille" %}
    +
    + {% x_range 1 13 as cols %} + {% for c in cols %} + + {% endfor %} +
    +
    +
    + + {% endblock %} + {% block sidebar_list %} + + {% endblock %} +{% endblock %} +{% block content %}{% endblock %} + +{% block js_footer %} + {{ block.super }} + + +{% endblock %} + + diff --git a/test_tube_scanner/scanner/templates/scanner/calibration.html b/test_tube_scanner/scanner/templates/scanner/calibration.html new file mode 100644 index 0000000..f4e8a0d --- /dev/null +++ b/test_tube_scanner/scanner/templates/scanner/calibration.html @@ -0,0 +1,122 @@ +{% extends 'scanner/base.html' %} +{% load i18n home_tags %} + +{% block styles %} + {{ block.super }} + +{% endblock %} +{% block columns %}{% endblock %} + +{% block content %} +
    +
    +
    +
    + {% trans 'Position multi-puit' %}
    + +
    +
    +
    {% trans 'Vitesse' %}
    + +
    + +
    +
    {% trans 'Pas' %}
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    {% trans 'dx' %}
    +
    {% trans 'dy' %}
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    X
    +
    Y
    +
    + + + + +
    + + + + {% trans 'Rayon' %}: + +
    + + + +
    +
    +
    +
      +{% endblock %} + +{% block js_footer %} + {{ block.super }} + + +{% endblock %} + diff --git a/test_tube_scanner/scanner/templates/scanner/iframe.html b/test_tube_scanner/scanner/templates/scanner/iframe.html new file mode 100644 index 0000000..6d03e80 --- /dev/null +++ b/test_tube_scanner/scanner/templates/scanner/iframe.html @@ -0,0 +1,6 @@ +{% extends 'scanner/base.html' %} +{% block columns %}{% endblock %} +{% block content %} + +{% endblock %} + diff --git a/test_tube_scanner/scanner/templates/scanner/image-preview.html b/test_tube_scanner/scanner/templates/scanner/image-preview.html new file mode 100644 index 0000000..00c77c6 --- /dev/null +++ b/test_tube_scanner/scanner/templates/scanner/image-preview.html @@ -0,0 +1,14 @@ +
      +
      + +
      +
      + + + +
      + +
      +
      +
      + diff --git a/test_tube_scanner/scanner/templates/scanner/images.html b/test_tube_scanner/scanner/templates/scanner/images.html new file mode 100644 index 0000000..9e62515 --- /dev/null +++ b/test_tube_scanner/scanner/templates/scanner/images.html @@ -0,0 +1,114 @@ +{% extends 'scanner/base.html' %} +{% load i18n home_tags scanner_tags %} + +{% block styles %} + {{ block.super }} + +{% endblock %} +{% block sidebar_list %} + {% trans "Retour accueil" %} +
      + {% csrf_token %} + + {% if cursid %} +
      + {% multiwell_cards cursid observations %} +
      + {% endif %} +
      + {% if cursid %} + + {% trans "Exporter l'ensemble des images" %} + + {% endif %} +{% endblock %} + +{% block content %} +
      + {% if images %} + {% for img in images %} +
      +
      + {{ img.uuid }} + {{ img.index }} +
      + +
      + + {{ img.ts }} +
      +
      + {% endfor %} + {% endif %} +
      +{% endblock %} +{% block modal %} + {% include "scanner/image-preview.html" %} +{% endblock %} +{% block js_footer %} + {{ block.super }} + +{% endblock %} + + diff --git a/test_tube_scanner/scanner/templates/scanner/logtail-workers.html b/test_tube_scanner/scanner/templates/scanner/logtail-workers.html new file mode 100644 index 0000000..e69de29 diff --git a/test_tube_scanner/scanner/templates/scanner/main.html b/test_tube_scanner/scanner/templates/scanner/main.html new file mode 100644 index 0000000..a4714e1 --- /dev/null +++ b/test_tube_scanner/scanner/templates/scanner/main.html @@ -0,0 +1,63 @@ +{% extends 'scanner/base.html' %} +{% load i18n home_tags %} + +{% block styles %} + {{ block.super }} + +{% endblock %} +{% block columns %}{% endblock %} + +{% block content %} +
      +
      +
      +
      +
      {% trans "Choix de la session" %}
      + +
      +
      +
      +
      + (, ) +
      +
      +
      +
      +
      + + +
      + + +
      +
      +
      +
        +{% endblock %} + +{% block js_footer %} + {{ block.super }} + + +{% endblock %} + diff --git a/test_tube_scanner/scanner/templates/scanner/range-slider.html b/test_tube_scanner/scanner/templates/scanner/range-slider.html new file mode 100644 index 0000000..ad9f606 --- /dev/null +++ b/test_tube_scanner/scanner/templates/scanner/range-slider.html @@ -0,0 +1,22 @@ +
        +
        +
        + +
        +
        + + +
        +
        +
        + Min (ms) + +
        +
        + Max (ms) + +
        +
        +
        + + diff --git a/test_tube_scanner/scanner/templates/scanner/redirection.html b/test_tube_scanner/scanner/templates/scanner/redirection.html new file mode 100644 index 0000000..b2f09fe --- /dev/null +++ b/test_tube_scanner/scanner/templates/scanner/redirection.html @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/test_tube_scanner/scanner/templates/scanner/replay.html b/test_tube_scanner/scanner/templates/scanner/replay.html new file mode 100644 index 0000000..92a98c4 --- /dev/null +++ b/test_tube_scanner/scanner/templates/scanner/replay.html @@ -0,0 +1,134 @@ +{% extends 'scanner/base.html' %} +{% load i18n home_tags scanner_tags %} + +{% block styles %} + {{ block.super }} + +{% endblock %} +{% block columns %}{% endblock %} +{% block sidebar_list %} + {% trans "Retour accueil" %} +
        + {% csrf_token %} + + {% if cursid %} +
        + {% multiwell_cards cursid observations %} +
        + {% endif %} +
        + {% if cursid %} + + {% trans "Exporter l'ensemble des vidéos" %} + + {% endif %} +{% endblock %} + +{% block content %} +
        + {% if image %} +
        + +
        + {{ uuid }} + + + + + + +
        + x 1 + +
        +
        +
        +
        + 2026-04-05T08:13:18.067 + +
        +
        + +
        +
        + 2026-04-05T08:13:18.067 + 2026-02-20T17:18:44.331 +
        +
        +
        + {% endif %} +
        +{% endblock %} + +{% block js_footer %} + {{ block.super }} + + +{% endblock %} + + diff --git a/test_tube_scanner/scanner/templatetags/__init__.py b/test_tube_scanner/scanner/templatetags/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/test_tube_scanner/scanner/templatetags/scanner_tags.py b/test_tube_scanner/scanner/templatetags/scanner_tags.py new file mode 100644 index 0000000..e34d6d8 --- /dev/null +++ b/test_tube_scanner/scanner/templatetags/scanner_tags.py @@ -0,0 +1,27 @@ +# encoding: utf-8 +from django import template +from django.utils.html import mark_safe + +register = template.Library() + +@register.simple_tag +def multiwell_cards(sid, observations): + multiwells = [] + for obs in observations: + row_def = obs.multiwell.row_def.split(',') + multiwells.append( + f''' +
        +
        {obs.title}
        + ''') + for row in range(obs.multiwell.rows): + multiwells.append('''
        ''') + for col in range(obs.multiwell.cols): + btn = f'{row_def[row]}{col+1}' + uuid = f'{sid}-{obs.multiwell.position}-{btn}' + multiwells.append(f"""""") + multiwells.append('''
        ''') + multiwells.append('''
        ''') + + return mark_safe("\n".join(multiwells)) + diff --git a/test_tube_scanner/scanner/tests.py b/test_tube_scanner/scanner/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/test_tube_scanner/scanner/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/test_tube_scanner/scanner/urls.py b/test_tube_scanner/scanner/urls.py new file mode 100644 index 0000000..76b40a7 --- /dev/null +++ b/test_tube_scanner/scanner/urls.py @@ -0,0 +1,23 @@ + +from django.urls import path +from . import views + +app_name = "scanner" + +urlpatterns = [ + path('scanner/admin/', views.admin_view, name='admin'), + path('scanner/reductstore/', views.reductstore_view, name='reductstore'), + path('scanner/adminer/', views.adminer_view, name='adminer'), + path('scanner/portainer/', views.portainer_view, name='portainer'), + path('scanner/calibration/', views.calibration_view, name='calibration'), + path('scanner/supervisor/', views.supervisor_view, name='supervisor'), + path('scanner/logs/worker', views.supervisor_worker, name='logs_worker'), + path('scanner/logs/scheduler', views.supervisor_scheduler, name='logs_scheduler'), + + path('main/', views.main_view, name='main'), + path('scanner/images/', views.images_view, name='images'), + path('scanner/replay/', views.replay_view, name='replay'), + path('api/stats/', views.stats_view, name='api_stats'), + path('api/video/', views.download_api, name='download_api'), + path('api/export/', views.export_api, name='export_api'), +] diff --git a/test_tube_scanner/scanner/views.py b/test_tube_scanner/scanner/views.py new file mode 100644 index 0000000..c0d00e2 --- /dev/null +++ b/test_tube_scanner/scanner/views.py @@ -0,0 +1,199 @@ +# +from asgiref.sync import async_to_sync +import base64, json +from django.shortcuts import render +from django.http import JsonResponse +from django.utils.translation import gettext_lazy as _ +from django.views.decorators.http import require_GET, require_POST +from django.views.decorators.csrf import csrf_exempt +from django.contrib.auth.decorators import login_required +from django.conf import settings +from reduct.time import unix_timestamp_to_iso +from modules.system_stats import get_cached_stats, start_background_updater +from modules import reductstore + +from .tasks import download_video, export_images, export_videos, export_all_images, export_all_videos +from .process import CameraRecordManager, cameraDB +from . import models + + +record_manager = CameraRecordManager(cameraDB) +start_background_updater() + + +@require_GET +def stats_view(request): + """ + Retourne tout le cache (shm, cpu_info, memory_info, disk_info, updated_at) + """ + try: + data = get_cached_stats() + return JsonResponse(data, safe=False) + except Exception as e: + return JsonResponse({"error": str(e)}, status=500) + +def global_context(request, **ctx): + return dict( + app_title=settings.APP_TITLE, + app_sub_title=settings.APP_SUB_TITLE, + domain_server=settings.DOMAIN_SERVER, + conf=models.Configuration.objects.filter(active=True).first(), + **ctx + ) + +@login_required +def admin_view(request): + return render(request, "scanner/iframe.html", context=global_context(request, link='/admin/')) + +@login_required +def reductstore_view(request): + return render(request, "scanner/iframe.html", context=global_context(request, link=f'http://{settings.DOMAIN_SERVER}:8383/')) + +@login_required +def adminer_view(request): + return render(request, "scanner/iframe.html", context=global_context(request, link=f'http://{settings.DOMAIN_SERVER}:8181/')) + +@login_required +def portainer_view(request): + return render(request, "scanner/redirection.html", context=global_context(request, link=f'http://{settings.DOMAIN_SERVER}:9000/')) + +@login_required +def supervisor_view(request): + return render(request, "scanner/iframe.html", context=global_context(request, link=f'http://{settings.DOMAIN_SERVER}:9001/')) + +@login_required +def supervisor_worker(request): + return render(request, "scanner/iframe.html", context=global_context(request, link=f'http://{settings.DOMAIN_SERVER}:9001/logtail/test_tube:workers')) + +@login_required +def supervisor_scheduler(request): + return render(request, "scanner/iframe.html", context=global_context(request, link=f'http://{settings.DOMAIN_SERVER}:9001/logtail/test_tube:beat')) + +## Mainboard +@login_required +def main_view(request): + ctx = dict( + ws_route=settings.SCANNER_WEBSOCKET_ROUTE, + columns=1, + sessions=models.Session.objects.filter(active=True).all(), + choice_title=_("Balayage multi-puits") + ) + return render(request, "scanner/main.html", context=global_context(request, **ctx)) + +## Calibration +@login_required +def calibration_view(request): + ctx = dict( + ws_route=settings.SCANNER_WEBSOCKET_ROUTE, + columns=1, + choice_title=_("Calibration"), + wells = models.MultiWell.objects.all(), + ) + return render(request, "scanner/calibration.html", context=global_context(request, **ctx)) + + +## images +def get_images(uuid): + oldest, latest, n, images = 0, 0, 0, [] + + filters = record_manager.set_filters(test=False) + queries = record_manager.query(uuid, filters=filters) + while True: + try: + record, content = async_to_sync(record_manager.record_content)(queries) + if n<1: + oldest = record.timestamp + latest = record.timestamp + msg = { + "uuid": uuid, + "ts": unix_timestamp_to_iso(latest), + "content": f'data:image/jpeg;base64,{base64.b64encode(content).decode()}', + "index": n, + } + images.append(msg) + n+=1 + except: + break + return int((latest-oldest)/1_000_000), images + + +@login_required +def images_view(request): + cursid, duration, uuid, images = 0, 0, "", [] + if request.method == 'POST': + cursid = request.POST.get('_sid') + uuid = request.POST.get('_multiwell') + duration, images = get_images(uuid) + + ctx = dict( + choice_title=_("Gestionnaire d'images"), + sessions=models.Session.objects.filter(active=False).all(), + observations=models.SessionObservation.observation_by_session(cursid, active=False), + cursid=int(cursid), + images=images, + uuid=uuid, + duration=duration, + ) + return render(request, "scanner/images.html", context=global_context(request, **ctx)) + + +## replay +@require_POST +@csrf_exempt +def download_api(request): + data = json.loads(request.body.decode() or "{}") + action = data.get("action") + if action=='download': + uuid, dt_start, dt_stop, frame_rate = data.get("uuid"), data.get("dt_start"), data.get("dt_stop"), data.get("fps") + return download_video.delay(uuid, dt_start, dt_stop, frame_rate=frame_rate) # @UndefinedVariable + else: + return JsonResponse({"state": False}) + + +def get_video(uuid): + oldest, latest = async_to_sync(reductstore.old_last_dates)(cameraDB, entry_name=uuid) + filters = record_manager.set_filters(test=False) + image, _ = record_manager.first_image(uuid, filters=filters) + return oldest, latest, image + + +@login_required +def replay_view(request): + cursid, oldest, latest, uuid, image = 0, 0, 0, "", "" + + if request.method == 'POST': + cursid = request.POST.get('_sid') + uuid = request.POST.get('_multiwell') + if uuid: + oldest, latest, image = get_video(uuid) + + ctx = dict( + choice_title=_("Gestionnaire de vidéos"), + ws_route=settings.REPLAY_WEBSOCKET_ROUTE, + sessions=models.Session.objects.filter(active=False).all(), + observations=models.SessionObservation.observation_by_session(cursid, active=False), + cursid=int(cursid), + image=image, + uuid=uuid, + oldest=oldest, + latest=latest, + ) + return render(request, "scanner/replay.html", context=global_context(request, **ctx)) + +@require_POST +@csrf_exempt +def export_api(request): + data = json.loads(request.body.decode() or "{}") + session_id = data.get("sid") + action = data.get("action") + + if action == 'export_images': + job_zip = export_all_images(session_id) + return JsonResponse({"state": True, "tasks": job_zip}) + elif action == 'export_videos': + job_mp4 = export_all_videos(session_id) + return JsonResponse({"state": True, "tasks": job_mp4}) + else: + return JsonResponse({"state": False}) + + diff --git a/test_tube_scanner/templates/admin/base_site.html b/test_tube_scanner/templates/admin/base_site.html new file mode 100644 index 0000000..29dd516 --- /dev/null +++ b/test_tube_scanner/templates/admin/base_site.html @@ -0,0 +1,20 @@ +{% extends "admin/base.html" %} + +{% block title %} + {% if subtitle %}{{ subtitle }} | {% endif %}{{ title }} | {{ site_title|default:_('Django site admin') }} +{% endblock %} + +{% block branding %} + + {% if user.is_anonymous %} + {% include "admin/color_theme_toggle.html" %} + {% endif %} +{% endblock %} + +{% block nav-global %}{% endblock %} + +{% block usertools %}{% endblock %}